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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

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

3 B# ?; C5 z6 N- P1 F6 D4 b

【1】建立编译环境

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

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

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

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


, z. M! B* E9 o' i1 b

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


" @5 f' p+ H2 f2 [1 `( w$ b

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

4 s2 ~8 {. P" k

解压后进入lichee目录下面:

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

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

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

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

然后编译内核:


  • - `5 e* V4 h3 k' Z  J+ K
forlinx@ubuntu:~/work/lichee$ sudo ./build.sh -m kernel

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

生成rootfs.ext4、镜像打包:

打包:

打包结束。

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

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

* @, l, V) H$ G7 g  U

【2】镜像烧写

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

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

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

5 z1 H3 T2 ^8 l( f+ Z+ H. D

【3】编译自己的程序

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

  • ! F# }* V* l  X

    # v% |8 O- ]3 A. F' ?: D, `#include <stdio.h>  
    ( _( b! N7 ]: j' w

    ' k7 x2 s( |4 S- w
  • / n; O& X7 K6 F( F% g8 f

    8 z4 y5 W. y; u4 }int main(void)1 i% t- q6 C5 p: a( |- T9 E

    " u' P; r3 u- s% n5 H

  • " P7 U0 D4 Z1 D! Y

    - v  Z* ]& _" p; x{   
    - O" X4 w8 n/ t- [8 a

    " R. ~6 L# i8 ~1 P0 ]

  • , T( Q4 |% W, j- r" L
    1 f5 v2 P) z1 l
        printf("helloworld!\r\n");  ! w: e8 j- E$ _

    3 G: X: f/ @( [8 l% y8 J" y
  •   X' _9 C" R% w6 \' h* \

    , t8 {) x( F6 |. t+ y" M6 H    printf("hello OKA40i-C\r\n");  7 b) f  _2 ?$ ]1 P

      B3 X1 b7 _- Y8 Y# C
  • & X" ^" x8 X# D7 U! w
    + C+ B" G$ a$ }# T- Q
        return 0;
    7 ]; J" p( r9 B3 ~% N/ b6 B

    - k4 ~* v; {! v! f

  • * M3 c, S' y$ d3 Q( q9 ^
    % _  \4 q& [# `& t" R
    }
    $ T" H. o* T+ t* ^" j8 d
    + {$ V1 |4 ]9 G

    . b3 ?8 m+ n) h" u3 Z

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

    • 4 |4 q/ c2 r$ @8 u4 O) _

      ( i/ E8 w  ?- K3 xDEST_DIR      ?=_install
      - I5 O  a. t" @7 b* @

      - {/ m! C+ z7 d# `6 q0 i- D9 |

    •   ?9 q$ z' n. T9 _
      ( @$ u) ^: V% a/ d1 p
      #CC            ?=ARM-linux-gcc2 I3 S+ c1 h5 u# x# S* `4 g
      " q% `. o  }+ [& ^' o5 Z, a9 Y+ S

    • 0 r/ [. L7 p! t, ]
      0 y$ d, d5 ?# l
      CC              =arm-linux-gnueabihf-gcc-5.3.1 ; {! f% Y" x- L6 q) K  b2 x
      ( c! i& r) J" B+ j7 k4 ~7 ]

    • ' Q$ L9 B, Z  _: \1 a4 e

      0 R: t4 _. D* f% W. I' y2 lbuild:
      6 F! X; J0 K  L' {" W7 @9 u

      ' s* _4 B! R$ U" ?: O

    • 6 A3 c/ M5 a( Q

      ! F2 w' N+ F) L/ O& F  @$(CC) -o $(TARGET) helloworld.c
      / y4 v, ?4 v+ H- b; ^5 j7 Y" }
      , C( O! k1 z; J! g
    • 4 {3 `1 w  `) x+ }+ z0 I
      , w+ T* Y3 v- n/ P- |$ E

      3 p7 n% B. J, p' p; f' E/ w

      3 \( W1 ~+ c% C+ `1 g- i

    • + @7 q5 F) {! y

      1 O. @: b5 \( ahold:" C- }- I- K& z% J& ?3 E8 R
      - y3 @) j+ o+ z) o6 c2 l" M

    • 7 Q% O' E+ y# Z3 S' A
      ( I' p* B6 q' Q7 P5 j
        [url=home.php?mod=space&uid=70594]@echo[/url] "helloworld hold[skip]"
      3 b1 y. n4 `! i& Q8 t

      ; n5 U" ?6 Q4 n# x8 M' v
    • 7 N- G! T; D4 s+ R8 P: U
      4 k1 n. d+ H4 K; F- f8 s# h

      3 Q$ o! t6 R; [% A0 t" |6 b
      ; w1 t6 b5 h+ H5 N; l; }6 ~0 G; P

    • * b* J* `# B0 Z5 ?6 D& E

        R6 o/ M  q, Q& minstall:
      $ B% ~: @( v$ p% l' B: c0 Q' v

      1 L" l+ I; T4 v7 L. P$ v
    • " q3 N9 }; B; M! ?( m) h( E3 ~
      0 R% E: ?8 ~8 k' g2 a# j! ~
        [url=home.php?mod=space&uid=2293869]@MKDIR[/url] -p $(DEST_DIR), a# a: T) N/ ~$ y9 e: Q. S% u
        a( a9 t' B! O( m
    • * o. Y+ ~- n0 A1 g+ v% `# D! n2 |

      2 i6 L8 B. a' W9 I% m/ C' r  @cp $(TARGET) $(DEST_DIR)9 R6 w" ]. e0 D( c; y$ n3 B3 d

      0 Z1 J+ Z9 x( }

    • $ N) }% {" @7 ~- G3 B

      5 {: B& k1 u9 v2 r( m& g7 M; C6 W8 b6 b  b) l  O0 [
      1 A7 d/ c  j; |% Y$ J# Q

    • + n0 c" w$ t  U" i/ A5 N
      ' @3 w8 a* W: z6 g& G
      uninstall:
      7 B( g2 y: d$ O; J6 r+ r/ M$ l) ~! C

      : \1 M, i% z6 L5 H5 H1 [
    • " j' T" p) ~( z. V. r5 [6 D+ g
      4 C& z! s. M; x: W) l
        @rm -fr $(DEST_DIR)/$(TARGET)
      9 \% U( o( {4 p9 f4 {. V. H$ w1 U

      9 m3 x& ^2 ^+ [. r" \" A
    • 5 J3 A( b2 u. G% L/ D  U

      % g3 I  H: i. b" N9 Y3 F# ^0 E; M4 o. Y" V5 j7 m: P) [1 |% s& I, {
      6 N7 I: S$ Z5 A8 }0 W, _
    • 5 {' i4 s1 `/ d- o+ N

      4 S$ R: p2 [3 E$ s, t6 m$ ~* Hdistclean: uninstall
      % S7 _4 G  V$ ^. ^+ k- x

      " P  v3 x6 ]% ^9 [/ A1 r
    • # H" R1 A/ ^0 ^, ^) r. c$ P8 U
      4 v' M3 u+ f7 s% e$ b1 o
        @rm -fr $(TARGET)* s5 Q; j- d3 j
      % q5 o3 q; L4 r6 x/ ~5 I

    • ; Z, B0 _8 Z1 W+ Z6 d4 _6 K; ]  v
      ; ^- z1 F" a. X5 O+ Q* M+ m
        @rm -fr _install$ T' L" o: i+ V

      0 D( K9 \0 w! ]! V% \1 R
      . n" R: r0 k; T1 v# V7 Z* m

    ' ~# _8 [  |# s* c# }
    + }. n5 b7 e, ^! x1 `4 |0 y' H

然后执行make:

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

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


. ?0 x4 O" m- y' p

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

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

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

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

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