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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

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


0 n; z% {! P1 Q

【1】建立编译环境

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

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

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

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

/ y# {, i9 A! O. m) N3 k3 [

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


* S/ f, D; l6 J# {

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


7 j" f0 l. g1 X5 x

解压后进入lichee目录下面:

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

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

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

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

然后编译内核:

  • 5 t+ f! b% _  `: Y* k) w0 {1 Y$ b% Z
forlinx@ubuntu:~/work/lichee$ sudo ./build.sh -m kernel

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

生成rootfs.ext4、镜像打包:

打包:

打包结束。

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

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


! R. F1 a* v# @- n/ Z

【2】镜像烧写

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

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

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


7 c- F, k0 L! `% a( G

【3】编译自己的程序

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


  • , N; M6 C3 Q* @0 m

    2 \0 H. Q4 U& f2 \0 t' v( o' l#include <stdio.h>  
    9 Q! O: ~% D$ O
    1 _, c+ X/ Q; g4 C

  • 1 {& i' T& ~$ }' h$ U8 `4 f+ n7 I

    , H0 O, `( ^3 R9 ?% [4 Q8 eint main(void)
    ; n; T- e* z( m# W! P$ r' V# ~

    3 Z: J& S- D, z& D" W

  • % l  x3 ^  q5 X( @$ t
    5 v" j: I4 N5 D' n6 @6 z! ~
    {    0 x$ \3 W* t9 ~+ y" m! p/ {& S" g
      C6 i. f; _) B: e" B
  • / |; o+ b+ N+ k7 \2 B* H7 y, X
    5 l- F+ b+ ~" R/ y4 _
        printf("helloworld!\r\n");  
    8 o, d4 g$ t- D4 o; X2 J0 R
    5 a- V$ C9 F+ ]) b8 r

  • 1 h' @8 v  `" Y3 p- K+ m
    " Q5 y1 j0 G. J, p
        printf("hello OKA40i-C\r\n");  
    + x1 e4 G6 M$ E6 ^. Q, V
    * N4 l( ]' Y9 `  k

  • 8 T3 @' @6 P% [% X  j$ S
    5 u" ]7 [- L6 G, N
        return 0;
    ; j( K; J, X2 y, {( b5 I+ F( d

    " V) T+ a2 a" y( J6 I. p" p
  • 3 f& Z9 u$ U/ T
    7 B$ }. ]* @1 Y7 y" U; T
    }
    2 v" Q( ]) E+ n2 J

    : R+ S. |4 \5 Q% h- z$ s
    7 F- \0 G% b5 B2 i

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

    • , x4 ]) b: t# a: }. q  z. F3 F* V

      7 ~% ?3 h1 B$ VDEST_DIR      ?=_install( M7 U- R  Z' y( F( T6 a1 z2 H

      0 `% S3 \; M' e) k% G

    • 0 I& Y' t* z5 C$ \; i7 w  A

      ! t) L% \; }+ f8 [) \! F# }#CC            ?=ARM-linux-gcc: P+ k/ i% ^9 r0 G1 {+ P* t
      ) P* x( E: g) a
    • + Y/ K2 v' h2 o9 y: [) |. `9 x) m

      3 c/ N9 L5 l. u, \  QCC              =arm-linux-gnueabihf-gcc-5.3.1
      ' E0 u9 V/ g/ h' z  B5 o

      , S* F! E1 L1 x# w

    •   p3 I+ n0 s' d4 @0 N" X0 K

      3 |2 r3 f3 U, s4 |% G7 jbuild:# s2 s# A" N% _5 n$ r, ^$ E
      ( p' ]1 q( j. r# @
    • 1 T, k6 K( u" c; u# q9 p8 u

      ! Y5 c7 l  q& Z- C; `  @$(CC) -o $(TARGET) helloworld.c
      + K6 n( G- K& C/ n$ D4 }5 v. T
      * X$ ?7 U2 M. _+ v/ q$ e  U- L+ A* K; E

    • % y( X7 o- t1 C0 c& D

      $ b* e+ [8 v2 H, v# R
      2 P4 E$ Q/ ?8 g) }
      / d2 Z9 ^& t  r  L3 v, b  y/ O

    • 4 Y. u( @2 l! y4 p

      0 W& f; j  }: Y% P  k- Y/ jhold:
      * P& C# Q: I" }! g4 f

      ( G' ]7 \+ S7 Y
    • 5 L% }& f. k2 f
      7 N/ u4 a  ?5 _9 T0 b9 y
        [url=home.php?mod=space&uid=70594]@echo[/url] "helloworld hold[skip]"$ _4 N: x+ g5 X: [/ h1 k0 L! V/ ?
      1 l* R4 C( Z2 g3 C

    • 2 B2 O" c& r9 `( {. B

      6 v$ L4 |, B. v/ d
      ' y1 f; c: i  c- [/ d5 v/ {* M; s

      + H& _6 ?, d1 z' `' o+ g' Y" x8 {) n

    • 8 a+ i$ |" h' G) J- X; h5 s8 }
      . A  N! f$ z7 [, j5 `# `
      install:& r* l8 P$ o( w; T( R% B- ~/ _

        k1 U1 i- U0 l0 S1 ]! Y& s# x

    • & g! V# I# P9 e
      ' m% e7 b5 b8 I. U, U
        [url=home.php?mod=space&uid=2293869]@MKDIR[/url] -p $(DEST_DIR)
      - K9 E; o' f1 r+ q" y

      7 ]7 @( d1 U' `6 g+ i

    • 6 W, K+ ^* H8 r3 b+ m

      % t7 ~, g$ q5 B8 M5 Y  @cp $(TARGET) $(DEST_DIR)
      % h) d$ T" }) [! C

      ) a7 X) C# P* M" R9 l
    • + W6 G+ g1 ^7 M' \% V, ^7 h, t
      0 T7 R  p% k: n  J3 H* w8 T
      0 e# {: i6 C: C" |+ n
      9 g+ F0 F# ^+ {3 B8 d3 u
    • % T/ x. z" ?7 S1 {6 f6 Z1 ?

      ; u4 |6 e+ y% puninstall:
      ; F& }* Q2 H! I

      : A# N! U- H" u7 j" l0 J# ]% f- s

    • & R0 e; o2 k6 l+ k5 V& h
      1 Z9 I# |/ `% ?
        @rm -fr $(DEST_DIR)/$(TARGET)
      , g, B  L- j+ `  X
      * ]& ]8 ?/ e" b( c5 k1 I

    • 3 [# K' L; E/ D7 K4 W, Y
      3 r* S$ X7 Y# l
      - e4 q9 }6 L5 c% G: G
      # m' i! @/ f* o, T! P( e

    •   G, X! _! J# u# Q5 \# \

      : b8 p8 p  C5 n# W8 d- n5 Ydistclean: uninstall
      1 u( Q7 e5 |' D  n
      + W4 _2 V8 ]0 e1 l) m! g$ x
    •   O5 G' O- N, m! d0 D
      8 i6 a( O1 H2 Y# e& E6 @: h
        @rm -fr $(TARGET)5 p  F( h; P" b5 }  t

      * g# [, {" t1 ^% i. }9 `. |+ w
    • 7 z( f, t& y+ B! w! n, S. R
      * q. e5 p( G$ z1 P+ F
        @rm -fr _install
      & B7 T3 F$ I* R
      0 I9 W, y! W" ^4 J
      * _3 D( g8 M* F2 [2 p$ j
    . ?1 Z0 n9 K7 X/ t7 ~2 G
    # U8 ^2 |' g5 [7 ^& Y

然后执行make:

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

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

$ j( w: @5 o4 u7 l( Y" I

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-9-8 10:10 , Processed in 0.140625 second(s), 23 queries , Gzip On.

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

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

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