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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

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

, x/ q4 \+ z$ g1 P

【1】建立编译环境

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

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

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

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


% [: w. X1 \* m. A7 E& a% {+ c5 n1 F

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


% [: B9 R4 d+ j+ T

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

' P8 |% O# ]7 h0 T* a

解压后进入lichee目录下面:

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

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

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

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

然后编译内核:

  • % M4 D$ R0 E' r1 C0 U  n$ B
forlinx@ubuntu:~/work/lichee$ sudo ./build.sh -m kernel

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

生成rootfs.ext4、镜像打包:

打包:

打包结束。

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

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


. n- R, _9 X7 k. R. k) S( F& z$ J, M' v

【2】镜像烧写

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

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

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

/ [. W6 @2 Y$ y5 F

【3】编译自己的程序

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

  • ' o( G! T( X0 c
    5 }2 w: M4 {, K: P! s
    #include <stdio.h>  
    7 F3 H4 i# O. P9 `  t  W; F0 O

    . X; `1 ~5 F, h6 X# ]( ]
  • # O. Y) T+ K( L5 ?

    6 W( W# u7 l: _* ~2 _0 Lint main(void)
    ( v% W* \/ T3 q% @" }) Z, e
    ' p1 k& I! }' |' z5 Y% g0 c

  • ; H) J$ G* Z. n- x( \( F. m

    . X: o0 e4 M4 m6 E! T/ u8 ]{      L5 D( T# f4 Y7 ~; x
    % g" Q% |; r  P6 `" U
  • 3 N- [- Q  s' ]
    " |( C' J: u6 X4 A- Z
        printf("helloworld!\r\n");  9 ]" ]5 ]  ^3 v( Q" H/ F) f0 n

    9 f( _$ `* ^7 Z/ _2 X

  • 5 s! P; \, H" q; Q

      n4 r+ @  m' n, @* J4 ?2 @    printf("hello OKA40i-C\r\n");  
    ; z% \" Y9 D8 H% P8 ~

    * K+ g" R5 J7 L8 I% n
  • 5 ^. W* S6 h  b0 V: B+ x. r

      j% a* a3 r( ^/ P! M7 [" r    return 0;
    4 G0 r) d4 ~- x" W  D5 D1 M( [
    3 a. Z5 W, f  C4 g& v' ]

  • 6 V8 R# j/ [. R+ K) E, }
    4 ]4 g. j4 L% `0 P, L& p7 b  y" d
    }1 f' B' A9 x, m2 [& M8 x* L* A
    , ?+ C; _. y; k, A! i

    % G: }) p" c( I& W

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


    • ) q. `7 w8 N6 z, I8 ], Z) l

      ) J& `" M+ C. \5 \; t8 e/ xDEST_DIR      ?=_install
      8 F0 |3 D. {8 G0 o' e: T

      & v2 l+ }: @& \% `0 D8 m4 B
    • # `! s' |5 J+ L

        R1 b6 g* o4 [0 v0 `4 i#CC            ?=ARM-linux-gcc: g* o2 J7 U0 K& V( M" @9 z' f) d

      ; {6 d6 i9 Q, ?% \# n, n# ^
    • 4 O, }4 G. v- Z' G3 r% k

      & U9 Y1 r, n* E, BCC              =arm-linux-gnueabihf-gcc-5.3.1
      ) _3 M. y5 ^: ?
      : m5 M/ X1 v- a  P
    • 6 _4 I) R# Z- f- H7 E3 o, [. b

      5 P- ?' [" f0 R1 Y  abuild:
      " [& l5 X' `) @5 G8 d( z3 F3 M! d
      3 D! {# ~2 C) o; Z7 I. W1 _1 U

    • 6 a8 i( I  s% m& E

      4 q* Y- n( L% W* T9 O+ K8 S2 A) ?  @$(CC) -o $(TARGET) helloworld.c- |6 Y2 e3 M+ }' |& v
      ( K5 b) P7 z0 y& o: K4 s; S& P
    • * t3 r, E1 U- f# g& `6 ^
      8 V9 v. n$ r+ x9 Q$ {; C3 P# o

      1 `  S# H+ P. y$ y" p- @0 B! t
        m0 O, S" C3 D1 V* k

    • - R8 `  @8 b. ?; }
      / i: R6 ]* l9 s3 ^8 G/ R
      hold:
      2 J" x7 h: a, s8 ?1 \" e6 H% p3 N

      ' N# B! m+ i5 F, V; y  S
    • $ B; g( g) X# O% Z0 G1 s$ h

      $ h, B2 S; J" {0 P  [url=home.php?mod=space&uid=70594]@echo[/url] "helloworld hold[skip]"
        [+ ]9 O2 Y, V& _5 T8 @  a6 j

      " y- f$ _( g8 h* z% t1 p
    • . g7 I, x& a. X# c

      6 a4 I1 c  ]7 Z2 }8 z8 Y! W/ I

      ( D, U3 s& c' w' E7 s0 D. B
    • ! F* e2 S1 G' u# y1 L4 {
      / L  L: j9 T/ u. x$ H1 b
      install:- u$ N* Z& K) {9 R7 L

      0 z( C0 k& }! @; f* ?
    • ( C, N! m. H) `0 }
      1 h) h1 i# B, X6 `# w+ \9 q5 j' a+ j
        [url=home.php?mod=space&uid=2293869]@MKDIR[/url] -p $(DEST_DIR)
      0 {& W; I5 U: y; ], [

      4 T( B5 ~. S+ h0 X5 @
    • 4 w0 d$ L" F7 r+ C! C

      3 }# s% z' i: y; H3 b+ K# \9 t  @cp $(TARGET) $(DEST_DIR)0 H) R: q+ e/ O5 _' p2 v
      4 U8 Q3 M5 [! T1 D, c& u
    • , d* c! k/ {; Y% ?1 ]7 `

      7 j2 k! e0 m5 N5 d4 U5 D1 S/ C
      , ~/ T- @6 l# ~  X& L
      . {0 J% X4 l5 ^

    • + F2 A% p( ]9 w( t* ], k

      % x" m& t, Y1 J& A; Huninstall:9 m% N: s- `! T& \! L2 N
      9 W9 f, u# Y1 T" Z9 _2 q: B9 ]

    • 7 G/ v, w- }5 C9 M( F
      1 w' T$ G/ y- c+ Z. v
        @rm -fr $(DEST_DIR)/$(TARGET)
      0 T1 O/ C' K$ P, I; G+ U$ s$ {3 O( X

      & {* V$ B7 `9 B

    • 4 O' V9 {6 f, I7 ]# T

      ) }% p6 l" D8 W; C# e/ P1 a/ V3 w( a) @; }9 F

      , e2 b/ U% L% r; q) ]

    • ' ~5 h8 M7 X& o5 e

      6 C1 P, D6 e; g8 |8 @) d- N, Sdistclean: uninstall, f/ s+ i9 q, l5 Y
      % G1 Q5 h  _; P0 N/ w- T" d' B
    • ; d% u$ x7 w) k% W* M+ J1 T
      7 J! g7 z* s9 H3 Y& U5 y
        @rm -fr $(TARGET)+ w* j1 |+ B# t7 S4 x3 ]( e% m

      / F7 T8 \- `0 y# j
    • 6 V7 e( @, j( J; v7 t" |& _

      7 S2 {9 h2 k' b$ M; J& k" Q& [  @rm -fr _install
      2 O4 u: U2 g' F/ v; T

      & a3 E1 V( s4 d' T  r" q( ~
      # P( U9 v; e) |" C7 c: C
    . C* I! D/ Y$ ^, G! I8 F

    8 L+ Y  `  t3 T0 L5 c

然后执行make:

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

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

7 D  H) t3 Z1 r

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-8-19 12:44 , Processed in 0.125000 second(s), 23 queries , Gzip On.

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

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

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