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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

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

' [: u( X8 C& a* X

【1】建立编译环境

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

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

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

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


3 {* \% ~$ s. H

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


: o0 |2 t" l  J8 Y, R) D" U

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


4 L. V) k+ J1 B+ ~3 K( l0 C

解压后进入lichee目录下面:

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

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

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

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

然后编译内核:


  • . M/ ]6 l! }$ _$ i8 s. k
forlinx@ubuntu:~/work/lichee$ sudo ./build.sh -m kernel

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

生成rootfs.ext4、镜像打包:

打包:

打包结束。

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

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


' `- x1 L7 A8 Q

【2】镜像烧写

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

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

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


, u" U7 ^; P6 _+ s

【3】编译自己的程序

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


  • " m+ z  V( n! d5 d. h  Z
    ' y+ d6 N/ x# t# d$ H" u* u
    #include <stdio.h>  ) _0 P% B9 D, q6 ?8 g/ t% m
    ) E! K! q6 N: ~* n  u

  • + _$ M7 x- t1 U5 U) \3 p
    - n2 g& n" o1 c- w: \# \  Y
    int main(void)
    9 F: N& K! `1 a% l

    2 L1 ], a! t( T  T$ m9 s

  • * f* K4 F% h- [  Q

    ( R+ U1 \  n0 v  Z, w, J{    3 ]; L: B& K; u. x
    & u7 H. z& q6 i& s. V0 _
  • & \1 c7 X: q. P
    * V- ^- B" C/ Q
        printf("helloworld!\r\n");  , |8 I7 m% s; K8 V  n+ V2 M

    + p, x$ Y  H2 U' n
  • 6 K) o- G) {9 A" X4 O( O% H& @
    8 C% o! o6 l( k9 S* }+ n# Z7 `
        printf("hello OKA40i-C\r\n");  
    % w6 g, C; J" `$ |- D8 ?2 s
    ) ~; F% h  u% W
  • 0 `1 ^4 G. [% B
    3 g. s# M- Q9 a" H1 [
        return 0;! P" u. ]6 S/ i3 P

      ?( i+ X0 L' ~% e
  • * f( q9 @) b4 N# Y7 K( C
    ) X) ?$ H4 q; B) |) }: h/ u
    }+ h# y. r- t! P) H3 f% T$ N1 O5 [
    6 `. n+ W  u5 f! i4 Q, r5 b+ f
    5 j( K, S6 b+ Q3 [3 v0 C! b- M

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


    • 8 T9 T1 a; v% u3 v$ g9 ~
      / f; W8 ]$ _; y0 H# u
      DEST_DIR      ?=_install7 t; U: r4 Y! G0 U' l# ^& _
      + D" c% F3 m5 t% C# M8 J. J
    • 7 ?4 b  I  \7 n7 m) n
      " |5 \6 x2 ^1 U+ n9 \& X' X
      #CC            ?=ARM-linux-gcc
      . B- _% ^( y' f# ^% g5 Q  ^0 q

      ! y  U! R4 d1 E3 Z
    • 5 G- H9 J9 l8 m
      ( l9 F- [' |* b7 e& ~
      CC              =arm-linux-gnueabihf-gcc-5.3.1
      4 ?. A1 d# D. \3 H

      , T" `) J. Y, |+ K/ {

    • ! P' J% G9 d6 z+ H
      / y- E" [. B4 w" e6 ?" r8 a1 `
      build:
      3 m9 ]0 G0 l: R6 O- l2 d4 w% e
      4 w0 {7 b! y  \: }0 m( F+ u7 K

    • 4 N3 V# P3 a: |+ H/ g

      0 F2 p& d& m: i  @$(CC) -o $(TARGET) helloworld.c
      + g5 E! _  d% R1 r4 P7 L) }1 d( K. X4 c
      ( A8 u) U# `8 y1 H  |; X, f

    • 9 z, i2 p/ C! x9 x/ E% C7 b

      : K+ h7 U) W8 W% `
      : b4 V8 e3 N3 [9 f
      2 ]! A+ v% c) G/ K, y" U6 H, a
    • ) t2 K3 ?0 y, L" a
      . Q1 {2 ?7 S% b2 |+ w. s
      hold:4 S  ?3 ?& s4 H8 t) V) t3 [7 _' U9 Z6 i
      ' n/ @/ U7 g, h+ V0 A( t
    • 4 m+ F/ V! w' W% G7 m! H
      7 n! }) L7 y1 O8 e+ s6 h
        [url=home.php?mod=space&uid=70594]@echo[/url] "helloworld hold[skip]"! o8 H! `/ {3 n. f! J

      1 s1 j. G, i1 v8 ^% i* T

    • , D+ k. @0 j3 C9 {

      ; V  v6 D% x) I6 K9 m  X! s' q' n
      # f$ w% p) g: K7 A' i8 W9 R7 Y0 N' b

    • : _* h, P6 r+ k9 E
      + G. ]! ?" v& G
      install:/ L, f! ], j6 f& N  j% u& ^; D& T
      ! Y' |0 d# W( N0 g4 x  R/ \0 I
    • ( G4 V4 n9 v; L- _9 r* j& S

      3 L* f: |: |: D. X  [url=home.php?mod=space&uid=2293869]@MKDIR[/url] -p $(DEST_DIR)
      4 q& `/ R) M9 n; D8 v

      7 [1 F3 ?, o/ d* \9 t& e

    • 4 q; J/ O, R% L( t6 b1 \' w- H

      * v" s$ ?: M8 v2 A. F  @cp $(TARGET) $(DEST_DIR)
      # z5 r/ r/ g* k7 T5 c
      6 l( k: g' e) N6 ^) J; y* z

    • 7 \: w2 q$ _5 x. @' N# u2 _

      8 X" s( }  k' m
      9 N+ u% ~  n3 r
      $ ^0 e" I0 v( j9 _& }* t

    • ( @$ B. g: g* |9 [! a6 V

      # F2 c1 d7 s5 p" M% ]% Yuninstall:
      7 `1 T2 J' ]4 Y) i/ ?8 Q6 I

      0 ^: x8 J0 }( A! ^7 H
    • ; |8 b" f" F7 b) m- J  q
      ' `: z& H% c- P6 v
        @rm -fr $(DEST_DIR)/$(TARGET)
      & n3 O1 X- H% F: b+ z

      * S0 U  Q1 k) e6 a/ }9 p+ P

    • 3 |0 A# K$ K  _6 z9 Y# ]! e( y( ^
      5 a8 o# A3 N! n4 K# J$ F! |" g
      , @; ?9 f( w5 d: L; s. w  _1 o8 H

      0 ~) S: t# f' q

    • - @9 d6 o  p0 z
      7 J3 N9 i1 y- i
      distclean: uninstall
      + P0 F9 I2 T1 n2 W9 D8 [  P5 h1 F

      ; b/ n2 w7 A) \6 I4 Z
    • 3 k+ {. O4 _/ ~1 y1 B
      9 {; R5 |7 C0 c) M0 b
        @rm -fr $(TARGET)# \7 u+ q5 [9 Q# c, S) O6 g
        E; o& a' U- ]

    • - C% x  o! g& a* o! e* C; F
      . f/ J! U1 }3 n4 C- V. |& L
        @rm -fr _install
      * S; ~+ t4 w1 a7 h" ]: U8 w( x  i
      3 @2 U% L, h1 z  d# @  B9 a/ \2 t

      3 Q3 z/ J4 t& z  L

    & W& ]* b( k6 {* b* O/ D$ }* b" ^5 _. a

然后执行make:

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

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


1 G' E0 G: D" u: p2 m' E% q

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

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

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

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

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