找回密码
 注册
关于网站域名变更的通知
查看: 280|回复: 1
打印 上一主题 下一主题

全志A40i开发板编译环境的搭建

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2022-11-5 15:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x

笔者主要下载了官方已经建立好环境的Ubuntu虚拟机包,还有OKA40i-C开发板的Linux用户资料。

5 D- R+ V6 J# o* U

【1】建立编译环境

1、安装ubuntu虚拟机,由于我在以前的开发板试用中已经安装好了VMware。这里就不再展示,如果没有安装的,请自行根据OKA40i-C开发板用户编译手册的第一、三章来安装,手册有详细的安装说明:

2、我这里直接按照手册的第二章,直接就有现成的环境,应该很快就可以。安装好后打开虚拟机:

3、仔细阅读编译手册《第四章:linux编译篇》,并一步步实现。

先在虚拟机中的/home/目录下新建work文件夹,并把OKA40i-C用户资料-20220322\Linux\源码\目录下的xaa、xab拷贝到虚拟机work目录下面:


) {( E& [* f( Q6 r. m' \. q

将共享文件夹中的源码拷贝到 ubuntu 的/home/forlinx/work 目录下并校验。

3 _- N0 D$ d, _5 H( N  p

合并源码,进行校验和解压。


+ C8 p2 ^# G8 Z/ V9 S( l

解压后进入lichee目录下面:

这个源码包很大,差不多70G,所以大家要准备一个大的硬盘,要不一下就“爆炸”。

解压文件系统:(注意)这里文件里的解压文件跟实际的不同,这里是rootfs-a40i.tar.gz。

到这里,源码解压完毕,我发现我的硬盘只有4G不到了,赶紧把虚拟机换个硬盘。

换了硬盘接着来编译源码,按照《手册》4.2.1一步步设置:

然后编译内核:


  • / n2 n& ^: m/ U# G
forlinx@ubuntu:~/work/lichee$ sudo ./build.sh -m kernel

然后就要耐心等待,看大家自己的电脑来决定:

生成rootfs.ext4、镜像打包:

打包:

打包结束。

至此源码的编译到这里就结束了。这是我第一次编译源码,教程写得非常详细,大家应该对照起来没有什么问题。这里建议的就是硬盘一定要留100G。

当然大家要是不想折腾源码编译,在飞凌嵌入式官方提供的OKA40i-C、OKT3-C_Linux3.1.0用户资料-20220322\Linux\镜像\ 目录下面有编译好的好些包,大家可以自己选择下载:


1 J' o% n- k' r& \2 b

【2】镜像烧写

1、将生成的sun8iw11p1_linuxOKA40i_C_uart0-1024x600.img文件拷到win下面。

2、安装PhoenixSuit。安装包在OKA40i-C、OKT3-C_Linux3.1.0用户资料-20220322\Linux\工具目录中,安装过程这里省略。

3、烧写,可以多试几次。

2 z6 W6 y, n; e- |

【3】编译自己的程序

在work目录下新建一个helloworld文件夹,在helloworld文件夹内新建helloworld.c,写代码如下:

  • 7 A" L: ^( p3 W) ~0 v

    " q7 i* y/ W9 j4 s+ @1 I# F#include <stdio.h>  
    ) G+ A1 X* j7 p9 S5 e+ o$ |% o! a

    % u+ Y- _3 u5 x# T$ v5 {  W

  • : L. I# e! l# c' y# a3 K8 ~( n

    0 ~) N" w2 O/ w. o! C* }0 Jint main(void); z- o  @: f/ Y* i

    , n# ]; I" |5 p2 c) L! |, T
  • ' B8 G2 c+ q- z" [6 F

    2 V% }3 {+ {3 }0 L* k$ ]) ~) ]{    9 ~* t7 e0 L8 s) p; S& K

    6 K! s- X) X& f
  • , {6 F5 C# V/ _

    3 c) w$ M3 ?/ b. W    printf("helloworld!\r\n");  
    ( M+ F9 X6 C9 S6 y0 }6 W& n

    6 Z2 f) D( c) j& l& i/ O

  • 0 H3 E- z7 p( _

    # N% t7 B, D, ^+ S    printf("hello OKA40i-C\r\n");  & o+ b& q7 \" M" V( s2 g
    4 h9 F% e! V7 E' l6 D; h

  • # H$ h4 Q) b2 V' M( k8 M

    ) Q" r- b0 c5 m  k+ E; o    return 0;* T- d! q0 Z  z" ?3 Y# N
    1 a. ]' K6 y! d& _+ K& Q
  • 7 b/ c# [( _4 w$ k. h1 W' t

    # k( W4 G2 Q3 E0 @$ }, A9 m" @5 t}
    9 Y& z0 M0 N( Q7 v

    ! l) T8 h/ q2 l$ O
    % o% P* {* {. l& A$ k9 o

在lichee/buildroot-201611/target/user_rootfs_apps/cmd/subs下的rtc中复制一个makefile文件过来,并修改为:


    • ' a* t' q; [# {, B$ [: ~4 d+ F7 r
      % D( }# k/ H  }6 r7 J
      DEST_DIR      ?=_install0 [' n6 r3 ?( I
      ; `- s# O8 h9 \1 g' C# \" F" ?
    • + K2 `  Z8 k; J0 p2 l
      2 W3 B8 i9 j0 x$ G) R0 c/ P, X+ `
      #CC            ?=ARM-linux-gcc
      " u: M' i/ n. T) B) d0 k
      ) y, E0 I' S$ s0 z, m( e5 C) z
    • 3 u) b! x) |8 k' \/ W8 e

      * D4 F$ a+ ^3 R3 t' _) D  o! B4 WCC              =arm-linux-gnueabihf-gcc-5.3.1 9 _9 f: \  |3 [& z+ K: M& q; m, c

      ( u" i4 v0 r3 T* ?5 ~
    • ; U) ]7 n9 \- B7 m9 N
      & L" T, q8 \& I8 u5 j/ k
      build:
      ! z+ T5 |6 \1 b" ?

      3 C, R0 t# k2 ~3 p
    • % s2 @& ^" s' y: o5 k) P
      9 d3 {* s: Q0 f3 i& n' d
        @$(CC) -o $(TARGET) helloworld.c
      ) K5 t: o4 x3 N: s! T. m, X

      1 ^$ e9 f+ B3 f

    • / h3 W8 r2 C& c; E+ P  N/ E" `" P

      1 v5 \6 T7 n0 I9 l, M, |) [! j" M( f! _) u8 l- b7 K

      ! U! P/ Q- L" }3 j

    • / W6 o) R* ^' ~5 p2 r/ J
      + ]1 }( \! j  b" u. P1 I0 N: ]3 p
      hold:8 F0 R! }0 p, M- c% b; a! R

      $ V) t8 s2 u& R# Y: t5 S7 q$ G
    • " c# r" j) ?8 }! L
      # X$ h; r$ G5 a% B0 {
        [url=home.php?mod=space&uid=70594]@echo[/url] "helloworld hold[skip]"
      5 i7 U( c9 ~& [7 d0 G4 ?2 k

      3 J% c9 q* X( }( S
    • 2 \/ u0 o9 T0 G: y
      # n/ r$ y0 r. u' Z+ F& x
      ' ]# J' m0 ]5 V: B
      - m) t. v- I2 v8 Q) \
    • % m1 Y) g. ]6 A# Z
      5 g. e9 w4 @' p& a  i* ?1 i# j5 |4 I
      install:
      # v$ u: |" P5 Q  x7 Q5 Z

      + s# f) t9 q. R5 Y- G

    • 7 }, d( H' J0 A0 A0 g
      % J5 W* G* b9 w  t
        [url=home.php?mod=space&uid=2293869]@MKDIR[/url] -p $(DEST_DIR)
      1 W7 D: a' }# ]- q
      2 R/ |6 f: _' ?2 W0 N$ @) ^
    • / N1 ~, v1 Y$ D+ y9 E+ J: J

      ; @3 }) E9 M) n  @cp $(TARGET) $(DEST_DIR)1 n% P/ ^" x0 @6 T3 @/ `

      2 k- ?6 D) E% Z# S& N

    • 2 r8 n4 x/ b8 N6 b( ^
      " J: s0 U+ ^( X) G
      0 ^4 V* X6 L1 f3 Z

      # K0 v! i) E3 Q: i8 x
    • % z' }% j( x# S4 w
      9 ]8 H  p- ?+ i3 B4 s
      uninstall:
        k0 A% F- C- ~4 T  ^
      4 x8 s+ {8 G( k! Y- x! N9 U5 i, _

    • - L- Q& Y2 A: q2 o& s+ r" y
      4 D* [" k  l1 k! H3 J0 W. o) m5 L; r
        @rm -fr $(DEST_DIR)/$(TARGET)
      $ ?( i9 G$ z7 b, q
      % \5 J( i( `! R# l$ b" l% R! O

    • 5 b. p5 A5 J' a' I+ a2 T8 x  N

      " ~" X+ r& J! u# v: c5 w7 Y( A. Y4 a

      ; z5 S0 L6 n7 g
    • 5 p! s0 `  ^) H& G/ x" p$ A. Y
      6 |1 |* L$ U4 v
      distclean: uninstall
      5 f6 E- [# O8 s5 N4 [! l0 p* `# Q

      4 O" f4 I9 H+ y( z; ]7 Z) r

    • * G' D9 H6 y5 |# A! W" L" C; |: e' r

      2 ~! X# ~0 [/ ]  @rm -fr $(TARGET)' m# a0 ]* K  @7 G
      4 I+ L% z0 N! E/ M

    • , F3 d) V! g! S( P6 g' C1 Y* `
      . H  ^) [0 p" s9 l" R
        @rm -fr _install( \. H; {& G* u9 z' Q8 ]4 Y9 ]
      ( p: P# t! u0 Z! l2 ?1 {
      / }! q$ \; k. D  c, Y
    8 p  g, e- p% F
    # R% g0 N8 e$ z

然后执行make:

没有报错,在当前目录下生成的helloworld文件:

把helloworld拷到开发板下面,修改权限就可以运行了:


2 V% K7 G) }6 {5 r" ?: T) E

该用户从未签到

2#
发表于 2022-11-7 09:58 | 只看该作者
操作流程很详细,照着操作一遍,效果就更好
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-6-14 17:45 , Processed in 0.078125 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表