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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

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


3 x; H4 ?2 v% N

【1】建立编译环境

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

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

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

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


7 I3 r9 A- A5 f* f" R4 `1 f

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


+ X9 T& w% ]( z& w9 M& v9 r

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


4 ?9 M  h: h. O

解压后进入lichee目录下面:

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

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

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

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

然后编译内核:

  • - h( N9 ^8 W4 V& r' W
forlinx@ubuntu:~/work/lichee$ sudo ./build.sh -m kernel

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

生成rootfs.ext4、镜像打包:

打包:

打包结束。

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

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


9 o- D4 ?& @$ l

【2】镜像烧写

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

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

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


9 Z7 E6 ]! x# u

【3】编译自己的程序

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

  • - `7 p( n7 g9 @0 b

    ( V4 F! e9 g, u& s4 [& O, N- [/ A#include <stdio.h>  % j/ L3 t, I* k  p. [

    & V6 N( y* Y# P- _

  • & O  v+ D1 F- Q$ K
    & t) t; j( Z& h  v$ `& n7 A
    int main(void)) z# t% ^% q) D* s+ J/ y' g
    $ G$ {. J- ~+ f* ]9 g% e- b' u
  • : ^7 _) p1 \" Z
    # s* _) v8 B: \) A7 k; ]
    {   
    9 n2 l! y# I: e* B, \9 h& @; E
    - s4 B, H# Z1 Q( B8 r4 Z# v
  • 3 I) X4 U5 a9 u' ]

    * }7 O- Q6 Z/ G/ ~) N, ]1 f* B4 V! ]    printf("helloworld!\r\n");  
    0 Q& N5 i9 R1 B! h9 c( ]
    # [" k  M8 ?0 G3 L0 p' ~6 ?
  • 9 r9 F3 D7 z  P; W- r3 M1 M
    ) |% s9 p0 \! C. s1 i: p2 x" b
        printf("hello OKA40i-C\r\n");  / B5 M# r: c$ i+ N6 q
    ' u( e0 N! N7 U

  • 5 t3 g- w9 q, d+ m
    ! n4 W0 S: F& P! R  Q
        return 0;
    * B/ t% r* P0 Z5 m

    2 G4 B+ z  y1 W) T8 `; j
  • $ h; ^  n6 Z7 e. W% U

    & _* m8 X& V: v0 `}  l, U5 W% h; A- c  h) y' f0 m
    $ R2 n4 {" Q# K1 S

    : X, h5 P+ ?1 u0 d+ ?

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

    • - e2 I/ r/ a5 A  D5 h
      " P- T: T- W; `! m2 |
      DEST_DIR      ?=_install) Z, i; t. ^( c7 d, A) F
      $ l5 h3 W: s% j$ P
    • 1 U3 [# D9 V; @
        V5 ~7 H& f9 G! R. c% x, G  _
      #CC            ?=ARM-linux-gcc
      6 l7 B! ~) s' L0 s$ X7 ]" V

      ( U: O' t8 d! j8 s- @) l6 P( J
    • 9 d* B5 m- V; D; Z
      & i% d  |5 w+ d" [6 p+ E
      CC              =arm-linux-gnueabihf-gcc-5.3.1 ; Y) E( Q+ P/ b/ g1 m

      - h8 G2 S% k% @" ^, S, G

    • 6 ^: `+ J' K! }) r/ E9 ?1 N) J
      8 g4 q) c, z: M6 i  H
      build:
      5 w. p7 ]$ T. F0 ?' U" y2 U
      1 Z$ u; [: ]3 e5 P$ K

    • 5 P: M! e5 G2 _/ c9 k
      / w* M* E2 w$ @+ o
        @$(CC) -o $(TARGET) helloworld.c
      . b0 `6 E  v4 w8 Y6 b+ @$ b7 T' H
      ! ]/ `* P/ n8 a2 t9 n

    • 1 u  M# D* |& `% [% p+ K8 P7 Q% J
      , C4 S# c. y! ?3 i, E& l  T

      , ?  d# q3 z) v: ?
      $ G% n0 K" Y+ D) u+ v$ N
    • 1 d( d! R1 K5 F, e2 U: K

      4 u: D0 I* M6 [1 x4 U5 Rhold:
      / v% H& k4 u: P7 k/ f0 b; \# ^7 @

      / [6 `( ^! z( h( z4 V3 E0 [- G

    • , I0 \: Y* ^# B; X$ _& N+ m# I

      ; K9 ~- `$ W+ \3 n  [url=home.php?mod=space&uid=70594]@echo[/url] "helloworld hold[skip]"0 f$ a' }9 P! ?1 Q, v, T! j

      " r9 X+ `) v( S$ |
    • 1 K( K# S8 t( q% A  m

      % {- {" p+ H6 i* A$ n2 W+ @7 `* `8 U+ o$ k% Z/ ^

      * @7 Q" n  P; l

    • 4 e- X$ h1 a3 D9 v! S+ Z) \

      8 W# I- ^8 J1 Y* v: _$ Ninstall:/ R+ |1 |; G, j5 f- T
      7 ~2 {5 {3 I& d  P1 t
    • $ G" a* G+ H/ s$ o- g1 p* f* A0 x4 ~
      - e- J. M- }; b" Y3 \# G
        [url=home.php?mod=space&uid=2293869]@MKDIR[/url] -p $(DEST_DIR)
      ' G2 o& ]( [4 E' R  @+ _

      7 x' C% ?9 i! O8 O) _( B7 r/ s# q

    • ! C  u, L& E" y5 Q/ y

      5 e; W" F; M, w! p  @cp $(TARGET) $(DEST_DIR)
      1 j( G# `. T& O  ?2 o7 t/ s
      2 J" |" `. s1 N" n& K6 p: Z# B
    • # K; Y/ `( X5 V: x
      " J- t8 n# \2 y  n% h- d! X6 ?
        e; W* ~. t: o9 L. _  j- M
      6 A3 h% T* H6 |: a7 T
    •   a) S9 h! E: j; U( T; Y, E% K

      $ f- N. \6 Q4 P* c4 q$ z8 P2 `0 quninstall:$ }3 x9 Y3 R9 B- `+ b5 k
      5 F# _8 ^, x  q
    • # R' [8 K" j) l$ o: j) w' f

        {7 U, y0 A  U  @rm -fr $(DEST_DIR)/$(TARGET)7 {0 g- g  r7 c1 F

      $ s# _% K/ b; q$ B, ~' Q
    • % y5 L5 k5 X  V# l$ n; y% I
      ) [6 W; ?4 ~, P9 E. Z' L4 d, O

      7 Z; j% r* A* ?5 o% Y- ~
      2 g( k5 T2 z3 D& R

    • 8 x' r9 w2 B8 ?5 m

      9 g$ [; D7 I  z4 Zdistclean: uninstall- t" ?, C8 w! Q: U+ c5 n2 v, x
      4 \- i. o8 y% m" c6 ]. g1 ^$ [

    • 0 P: d  b- E" }0 V: [

      ; w" m! v9 R! G- g$ g5 E. ]" `2 B3 U  @rm -fr $(TARGET)  Q+ v9 S/ R+ d* k# ~; }

      % J& F0 Y3 F7 f$ h% U1 Y! Q

    • + Z4 v7 S1 U; d6 j; U6 ?

      ' T1 w% K9 M8 M" t/ k! n# A  @rm -fr _install% a; J+ ~3 E6 |9 A4 f' n

      4 U5 \4 P( l7 x4 U( N1 r6 {. L& R) y* [7 h7 q& ~0 P& a6 ]

    2 @4 k- K4 [7 @+ S/ {: p7 I( c! Q% Y1 D

然后执行make:

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

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

" T# f5 j" v: l* D" a# S8 E

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-23 15:06 , Processed in 0.156250 second(s), 23 queries , Gzip On.

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

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

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