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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

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


$ o; e0 H3 J' s5 H

【1】建立编译环境

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

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

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

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

1 X! G+ l( U: P

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


& R# C+ P" U3 b3 O8 w: k0 l& Y

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

& S$ T4 d: u0 ^4 r. I  _/ h0 y

解压后进入lichee目录下面:

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

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

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

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

然后编译内核:

  • * t) R7 W! Y0 L) S* z
forlinx@ubuntu:~/work/lichee$ sudo ./build.sh -m kernel

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

生成rootfs.ext4、镜像打包:

打包:

打包结束。

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

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


& D' o9 e# ]0 j3 }: E# k

【2】镜像烧写

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

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

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

% w0 L9 e9 ^& a# Q: Q) n7 X

【3】编译自己的程序

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

  • 1 I% ~, ?" }* m" D3 |

    8 Y' ?  B# h/ ?7 w4 K% G#include <stdio.h>  ! \" ^; R- U& k  S# ?  k: }

    ' g+ g: W% ]9 y" }$ _. v2 J& A

  • 5 e% f7 Z" ]* {5 u9 e
    2 j$ I7 w- B& ], R, I
    int main(void)- v% T& C& y( _. n

    . E4 [9 j5 V# M& S% M) |+ r
  • $ I& l1 O- p( U( _" ~, H$ r

      ^/ _* Q, h: M  P" j{   
    * b- N* Q# X9 z1 j$ G

    % S, i* `& v  g, _# f4 M* X4 R
  • 6 h$ Q8 @8 x) ?8 D+ P* F) w

    2 S7 h+ {; B: D  V    printf("helloworld!\r\n");  
    & R! {+ Z* ^. E) q8 F- ?

    3 }, G( d' K! |- E" ^

  • , k* o1 x8 Q% |# y

    ) ]: s" }  M9 ?1 g5 A; K5 E    printf("hello OKA40i-C\r\n");  
    ; G0 D  E3 i8 C1 |! }6 N
    1 y5 |. `( K1 z" ~1 L  }/ {
  • 2 D8 c* p: j: a$ s% \3 T$ ?

    ' @2 g* F' F+ D  U  }  `& y    return 0;4 \" ^1 k1 M- J( {5 E

    ' Z3 G: u4 U1 i  c% i
  • 3 B' L* i; x) {! p* e
    7 j1 \# m& ?  f" M9 R" q- o
    }% _  J; P$ c; u8 g- Z; \

    5 F. i( }6 L' M9 m; R6 [: X) N1 D% Z5 J) d8 G4 c1 ?/ Y

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

    • $ _2 b$ c( n6 Y# s+ Z! V
      1 M0 T3 |% `, [
      DEST_DIR      ?=_install
      , z& [5 i0 l3 ]* l- U: Y; J

      : k: v, V, n5 z8 K- ~; o( w" w

    • $ P8 h: e: \8 X2 [) A

      3 n3 w4 A5 _( n+ }' V#CC            ?=ARM-linux-gcc
      1 |9 V2 I1 O) N' y' i5 K" O

      % w" V/ c1 h0 `( S# ~
    • 1 s  g+ ~0 V, H: U8 T
      8 R1 ~# _) Q8 M4 ]( d; E7 y% g
      CC              =arm-linux-gnueabihf-gcc-5.3.1 ) D1 |' B+ Y$ X6 J8 B( h+ g

      , u1 w2 V6 B! r4 p8 ^

    • 8 ], r/ ?  w5 `+ k4 B5 G& L

      8 ~% F  x$ J( a8 gbuild:
      3 X9 n3 q. D/ C0 |) O
      * X" w7 M1 x3 u. Q6 f" Z1 V
    • * T( {7 o' s$ O$ S+ p/ H7 A' s

      . E  d+ Q  ^( T) z, }6 `$ _  @$(CC) -o $(TARGET) helloworld.c
      $ S& w  A& S9 g- c( a

      . Z2 k, w* v; F0 j" q

    •   |$ F" ]* d9 @( N9 e" N2 L

      + X" V* Y0 u' }/ X: K3 P3 i7 r3 K* Y5 C1 _: }5 e

      . J+ ?% {+ W: ~/ \* s

    • : x6 j% W2 I2 Y; f
      3 W6 e. J7 [1 |- G; S
      hold:
      , C$ u" f  Q4 ?# U3 p. Z0 }3 t, U, v( d
      ! `; }4 l& `! X9 R. @# Y0 K

    • $ w) b9 S5 O) T! r
      7 i3 C* Z; `9 L& y3 ?
        [url=home.php?mod=space&uid=70594]@echo[/url] "helloworld hold[skip]"
      * k, [8 h7 k# g9 p* u
      ! z  O8 _$ d6 t3 P; E

    • 3 ~9 r/ {0 n% k. t

      * A- a) [% u% k4 Y: g; I3 Q7 w/ J. c1 M- g! V/ @* p# F" K
      % I1 x" U4 _4 p6 ?( ^" v$ I
    • % C5 m" t4 d: ^. v8 s/ Q4 C
      8 F0 p4 g  `$ x1 q. ?# }- g
      install:
      2 X" H- H0 {6 E6 G0 O2 |
        e$ y+ K9 r' j7 g, l
    • / Y3 u0 S4 y0 H; N# M

      ) ]# _: S4 D* V  [url=home.php?mod=space&uid=2293869]@MKDIR[/url] -p $(DEST_DIR)
      6 R. o2 X! R8 c
      1 C9 \4 V: G3 n4 q: n

    • " m3 ?* |( F$ Y) j0 Q

      & |; [2 T0 G0 z6 o+ K# ]- Q7 T( q; b  @cp $(TARGET) $(DEST_DIR)
      6 ^. ]% y% g0 z7 Y  ]9 d: e; j
      4 p- E) {' D4 N2 Q2 I0 S! ]
    • 2 a4 Q% {; S& y& Y& e9 G
      2 R1 Z$ A% {+ ]

      % {" V/ {% C; t) Z) L1 R  d
      ! \0 ^9 S/ S' t( f

    • 7 p  }, k7 c+ w1 U8 e$ F

      ; f7 h" X& v5 }2 |/ Y' xuninstall:
      0 |: z0 W# T$ b7 D

      8 ]% _7 ]" i  J

    • $ ^6 c; @* O. D! X  E1 q
      2 c, b9 B/ k0 E4 E2 n
        @rm -fr $(DEST_DIR)/$(TARGET)
      ! W4 t  l. H) ~2 j' v/ V

      ( L" c# w7 W, Z# j( t
    • : x! }: }3 k/ g
      1 Y& e. u$ c" s) ^6 ~

      3 }; v$ P/ ~1 q# \( A0 K- W
      ! P, o, l4 a) O) H4 j1 _# C

    • 1 H2 n5 Y2 `0 q# L' ?4 w- B& [0 g1 K# y

      ( x# y8 T8 @& \& F: m4 }" z/ n( @distclean: uninstall
      % Z( I. ?4 e( m9 o% l" {8 b

      . j, y) u; M' d2 L* `1 N. v% q9 F
    • 2 g& b2 y8 e  b
      4 X; Y& a; y% L# A" A  ]2 Q
        @rm -fr $(TARGET)
      . ^4 C! Q- d6 S' c, }

      , H2 y; z( E$ I3 w

    • 2 L( E/ W& c5 W- ?0 `1 W2 q, E

      ' R1 l" O( x( S' O  @rm -fr _install* T: O( T$ ]$ o* B

      4 l! M4 n0 y5 s3 K  [  R+ y/ b6 K( t! q1 s3 Y$ _* C- R. ], J% P, y

    3 C. n8 C. h% t  f! Y# O- @& N+ J1 [  n9 a; a2 y4 F* q

然后执行make:

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

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

- `3 g1 I5 {5 ~6 M% d+ ]& @8 Z

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-9-11 07:37 , Processed in 0.109375 second(s), 23 queries , Gzip On.

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

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

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