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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

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


4 ]+ E4 M+ j  g# ~

【1】建立编译环境

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

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

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

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

! A. D* g  [$ r

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


/ h) R+ s* h+ B+ G

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


( ^$ _& T: o" v  a

解压后进入lichee目录下面:

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

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

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

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

然后编译内核:


  • ! ^# C$ s* e* u& o+ u" R2 ^
forlinx@ubuntu:~/work/lichee$ sudo ./build.sh -m kernel

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

生成rootfs.ext4、镜像打包:

打包:

打包结束。

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

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

6 b. H  Z3 b! J, d' S

【2】镜像烧写

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

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

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


4 K' |* I( ~6 h. ^

【3】编译自己的程序

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


  • / C3 J3 b. R' w" v7 f7 Q8 t
    3 k* X3 S+ n6 e
    #include <stdio.h>  8 u7 V1 J" s& A$ N% h: @

    1 R5 `$ e2 I8 M. W

  • * l( m$ F( I, L
    & V0 _7 g( w# U1 s& f
    int main(void)
    : u% {% s0 t" X, Z& r0 M* Y5 K& J
    - h1 b4 B8 p2 \( o( D, {( C

  • & |: [% y, @. c8 d, Q$ o" D+ Q

    ) b0 C( }3 @! Q8 y{    " U6 L$ K5 s- G; N4 A( p. B
    9 b) \# p' X" j* n& S
  • ' x. w2 d( q5 f5 c: W

    % f. S9 a8 Y' _+ M    printf("helloworld!\r\n");  0 R; O( j) t% `) T, ^) @& Z* B; W
    * i  B  [8 T1 x9 e9 f3 c9 f, r2 E

  • 8 k# b4 q1 }& A0 H2 r0 s* z9 _
    * ?" X) r" S( a" E  J* l
        printf("hello OKA40i-C\r\n");  4 q/ t8 D; Y: M' u; E
    4 j3 F! P+ N) X, ^& I; Y  a: g

  • ' ?# Z/ d, _# @

    9 n5 G8 [8 W: x& w6 n& P5 ~    return 0;- g0 Q: L" P' F4 t
    $ P3 X, t4 L& M" d0 f+ R0 r; @

  • . M+ s+ W& ]$ H7 A

    . \% Y: b1 i: }  C- v, \4 m; e}, j. w9 s3 a# Q* B, q/ J6 t& }! d  ?
    $ M& t: L; X* I/ p$ J

    4 F3 T" U$ h7 P& {1 v+ |$ V1 p

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


    • 6 O1 F! q% M; a; ?8 ~" c  y
      $ v1 q( j/ z/ ^+ \: \+ M4 b
      DEST_DIR      ?=_install4 b  H% f( G' D

      : H4 J' ?* G3 w% G
    • ! |% I  q; f  N* v/ o* N! t% S
      6 X9 z1 H: `) {/ K* I2 I# F- |
      #CC            ?=ARM-linux-gcc
      ! A. o& v; M( c. x1 ^# N( n
      % C/ \1 y$ J0 I

    • , a3 N# Z# q8 l- z4 t, ]

      - R5 S4 z6 ]( w( U- u% N; T/ |1 ZCC              =arm-linux-gnueabihf-gcc-5.3.1
      ' \  q$ `" a4 x7 M4 l

      ; O+ l0 |- K+ G" B
    • % T& P: V: l7 G( H

      1 C# M# L6 j5 y8 Z+ nbuild:
      , n% R" Z7 }" o8 `% V
      # S% X3 I$ H9 k# i, H2 _
    • 9 t; G/ _' _/ R$ a6 z
      # N  L4 V2 }" ~% P
        @$(CC) -o $(TARGET) helloworld.c5 o: ^0 d/ i4 z4 a1 T; b

      ( A# Z# S$ Q6 _- B4 o2 y# j
    • . @2 e. I! h" I/ A
      : r: C$ R) p  H1 B: k

      - [& ^4 y/ I2 _+ F2 q1 c0 v% N
        \3 l5 P* |5 x% z7 H5 c; o

    • ' V' e2 J* _+ l5 u+ ~& {1 m4 o

      5 R& f5 I6 `* w9 A% g: K% jhold:) J/ c9 v" A. X2 |

      # f+ H, ~! n: Q# f$ k0 Q, u: n/ p
    • ) o+ i7 C% y! I
      % y6 W$ E- Y8 `
        [url=home.php?mod=space&uid=70594]@echo[/url] "helloworld hold[skip]"& Z6 l8 a# o: s8 U, d+ D4 g
      + e( L; {$ q" @% ~) B8 x* g( B

    • : s; C( U* k# t
      4 i8 n$ o; M& b

      4 W( @. S& H  j

      " _# C$ v' ]) I& t# \8 b3 _
    • 3 ]0 q9 B/ X) a* \& C

      ( j# p$ F% p9 s: zinstall:
      / p  h& N) d6 [

      1 ]% s6 N9 u8 S( x. {, r2 a3 J; G; C& F
    • % g* F1 t' T0 d
      ) A3 {& f- u8 ~! S* ~  O3 \
        [url=home.php?mod=space&uid=2293869]@MKDIR[/url] -p $(DEST_DIR)
      , F6 M+ J* {, G8 y  }) T
      % _8 \* F- e/ K0 g

    • & C7 l% C  i& \3 C5 Q8 u5 i9 E

      * X( _. T) q* ^/ i  @cp $(TARGET) $(DEST_DIR)
      3 y/ |3 X0 C1 I8 e5 U0 c

      5 r6 V1 @* N/ g" z2 T9 _
    • ) Y6 z3 a% m$ E* Z# P% W4 c, F

      6 h# b" F# V# Q0 W2 D6 H% p2 y7 ?8 W0 t/ C& `. q  ], j

      ! U4 g/ ?; n. H

    • 6 z' g* k& y& Q' E( R

      % g* r4 R0 M4 |uninstall:* D4 ^% _3 n7 X

      ! n7 e- S5 v' j  |% |* t

    • , ^5 Z3 L3 v* J/ ~4 |9 r
      3 W3 r9 d9 ^$ J) m4 d$ u8 j
        @rm -fr $(DEST_DIR)/$(TARGET)
      6 s7 _# L6 ?/ D) {2 X0 u4 G
      , {# y4 F, A/ [+ j  _' z
    • $ R, j) _4 h8 O

      ' h5 ?) P. \, R1 A. z" O
      % l" d+ N7 x/ B! D: x3 e

      3 x: k# Z& A6 C' R  O' t' d. O
    • 6 r  h  Z' G- O# Z* o1 e# s
      & u" ^  Q4 N+ X
      distclean: uninstall
      ) r- _1 y$ o) I: N" B
      7 \2 V2 Y5 J) y7 @% X. _* u! ^
    • * s4 F- X6 e" S: X) {

      + n1 }& n/ R3 i6 K- [  @rm -fr $(TARGET)
      3 n- ~4 Z, R6 _' A1 [( a& e- Q
      $ Z; @6 @( F  j$ Q+ ~* A, u& d" I" n
    • " g' w: P2 t% Y  G1 B

      ' O* H; U! E! b: X& j7 f  @rm -fr _install4 Q; `# t4 `( \$ U6 s' u

      ' D; R! M- v& [9 Y* Q4 \7 X% T6 l7 }, R' o

    & j$ X5 z+ Y7 c) y6 ^0 W
    1 U8 ~4 H* S3 M7 G7 M0 @

然后执行make:

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

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

. W/ B. A. H' A; F2 g

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-7-29 02:58 , Processed in 0.125000 second(s), 23 queries , Gzip On.

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

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

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