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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

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

. V. G" z% x' w

【1】建立编译环境

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

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

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

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


& C( c+ l( S' z7 v5 d# y9 [5 x7 _& c

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

+ k3 }' z$ i) i- B- J& b: d+ {

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


& q0 z% x& f- s7 }; t, |8 P8 c

解压后进入lichee目录下面:

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

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

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

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

然后编译内核:


  • & ^) ?4 x  j' ^
forlinx@ubuntu:~/work/lichee$ sudo ./build.sh -m kernel

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

生成rootfs.ext4、镜像打包:

打包:

打包结束。

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

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


8 |5 }4 v1 H* D- y) `/ v0 Q( n

【2】镜像烧写

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

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

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


8 s3 G0 n( ]" k; O* T0 p

【3】编译自己的程序

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

  •   g- B9 T5 W$ Q6 W% t) R4 D0 Z

    1 x# ^+ `/ _/ \/ W% H#include <stdio.h>  ( _/ t& X- A5 l

    3 h$ F: ^: N/ |8 X/ ?6 b# C

  • " l4 s9 h, E( }1 S' Q* N5 g
    : Z( }7 |9 ^3 m4 k: b% G8 r  T) F
    int main(void)
    % Y1 c6 H" g2 L) \4 o& Y- P

    , j5 Y4 g* a) y5 O- r* v

  • . h& k' b0 T& e* U4 A4 W

    - G2 i1 m6 z% u7 Y, n: z{    3 [( U( t9 |$ O6 a
    ! M, c' q) L9 L, a* P- C. s
  • # W$ x/ F7 i" D+ ^/ n' n* E" E

    4 X9 W+ G6 ~7 I# K    printf("helloworld!\r\n");  
    ! }: g0 E; `/ z7 d9 |
    6 V6 A- @# s* g+ a3 w+ R" P
  • ! ^, W& r; |8 U- ~9 {; i

    ; W; C# ~7 j) P8 b6 P$ S( X    printf("hello OKA40i-C\r\n");  
    4 h/ C& X1 l4 u  [+ R! j, Q

      h* L& m4 y$ ?7 t) X7 r; C: `: F

  • 7 |3 E! V: E3 q. Y2 z) o
    4 E  P3 D0 Z1 j3 V
        return 0;; Y* A* C, O0 F$ ]' L% M. g% L
    9 k+ G) H3 p2 j+ [; w
  • ; G+ Y" X1 P3 N  u; Z; O
    & X; u2 f6 k) b! m9 e9 I
    }. h* q$ {0 R& o4 a3 ^& h

    ! m9 T  {3 z$ W6 \( w4 E# ]" v* Y4 S8 v+ m  i/ p  P

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

    • $ A' l$ _/ R5 V, i: c

      6 b# ^4 U8 l. B' ~9 p  gDEST_DIR      ?=_install$ E7 t: G& ~& y9 Z( \8 k9 l
      ; s" X: B; f# v. C

    • ! u6 X2 _2 w+ X

      + V/ `* i! M5 d5 w; \/ E- n#CC            ?=ARM-linux-gcc
      . x9 Z1 R0 G; l5 U. p

      7 @$ p  e, g& C) f6 k/ w7 c7 w
    • 7 J0 I# N( d4 S% y9 q
      - x3 ]7 z5 V7 X" H* ~0 V
      CC              =arm-linux-gnueabihf-gcc-5.3.1 8 U) W  X' Q7 @! y
      * m/ A/ S$ c. X, C$ v6 Q
    • 8 U# s. Y/ c0 U, P; ^
      ' G% N8 |9 L5 y7 [9 g
      build:1 w& @  c) x5 Q7 w$ Q% N3 N7 t

      1 x6 D. G* N9 e& S
    • 5 J/ R0 V/ P  N% D# B

      - E' @3 |0 W( p. z4 s5 P# K. y  D  @$(CC) -o $(TARGET) helloworld.c6 ^3 J7 U4 ?8 R- U
      2 [4 n$ L( Q* s: K
    • * w3 x+ f- ^- s
      : R7 f/ T" d( O! B/ Y

      7 l. \7 k# [5 R0 o- v  C
      6 F! a$ s+ S& K: V# p
    • . g' k$ A0 S, r8 s0 z" l
      & W  g6 a& i; P5 w. Y7 K3 r  d
      hold:" o6 C3 g7 v/ g7 n
      . q2 C( ~4 ~# {: G: r) P
    •   z- Y/ g* F9 v
      5 B2 j4 J7 K7 \' T1 k
        [url=home.php?mod=space&uid=70594]@echo[/url] "helloworld hold[skip]"
      ) Z1 `' [- `' {2 G( c3 L

      ' f) r0 {& b3 y

    • 7 \/ A7 l# j$ P) t% l4 G

      0 A2 \& E( a8 H  X4 L, O6 ~- G% q% a5 Q! Z2 S3 u3 x
      . o% l. Z. `$ F% ?. ~; E1 L' w

    • 6 G: Z4 L+ c4 m6 b* M
      ) I" e8 V. J: \; t7 H, O6 f5 H
      install:
      - r, Q+ v2 x) X

      6 y/ L7 t: |9 s

    • # O, I+ |$ ^& w7 o0 o4 o4 t

      $ d7 v, ~. f; R* m+ q  [url=home.php?mod=space&uid=2293869]@MKDIR[/url] -p $(DEST_DIR). @; K( n/ p2 O; g- T0 w. L
      9 e! b$ Q- _" y  Z4 T" t

    • 0 S1 s0 H4 p% }2 r7 L
        B- f- V9 F5 ?: u- V
        @cp $(TARGET) $(DEST_DIR)7 @' M0 T1 p9 X* [/ a
      - j2 O2 R  _0 X

    • 6 N6 l. v; t% E& w
      1 I) x6 X& ~% m2 h. q: r7 m: E
      ' h* A/ S5 |/ X5 V; ]$ O' w- P9 s

      : s0 }, x! {/ M% ]5 Y# |

    • 1 H/ \4 C; G' j# ~

      + }* t/ X& |, A, q; b3 {2 P$ tuninstall:. X# p2 f' H0 L7 a' {( k9 I, i
      ; H' A( t. x5 K7 f
    • 6 h% \, v" y$ l7 e. d

      8 k: j4 i" U$ a, ~  @rm -fr $(DEST_DIR)/$(TARGET)
      + r; x& X( _/ K

      - [7 [3 N" d, {( m1 i

    • 9 v% |& ]0 z/ W4 d! g
      8 h5 Z$ G! H9 Z! j$ t

      , h- ]; H4 |- _5 I
      # T$ D* d6 L  j$ M+ M5 m

    • * K  p1 Y' x* W

      / C; u. l4 _$ q5 S- K- Q2 q% w! cdistclean: uninstall' C& M( p( X) z% _9 `, _

      / E3 N6 R5 o! n! |
    • 8 f2 K, ^* `* @( Q9 W: u6 H

      % |1 T/ z6 b: Z" P  @rm -fr $(TARGET)( d% z0 j7 h( F

      ! T! G4 T  ?$ Q) O. O

    • . z" j2 ?7 |* c( R1 O& K3 y

      9 a2 R1 W7 {# p1 h! E5 {0 m  @rm -fr _install
      5 F2 o6 T' ^0 ?7 l) S1 X

      # R7 l9 u8 u! `4 e7 G) @6 V' S( [0 ]8 t, H& p: Y
    5 U) y( k- a$ p  m

    / ]" C3 W3 q- l$ G

然后执行make:

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

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


6 g$ Q- ^: p5 f" J, X: @1 [

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-6-10 22:03 , Processed in 0.093750 second(s), 23 queries , Gzip On.

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

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

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