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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

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


7 a. {8 _" r% Z" C

【1】建立编译环境

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

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

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

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


" @, I( C: L$ I( W$ k) T  ^  ^

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

2 S. x9 i& |0 B  |; [5 {

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

8 K& h( J  Y+ x6 |4 ^. c

解压后进入lichee目录下面:

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

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

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

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

然后编译内核:


  • # \4 d3 B$ u" W. R8 u, w
forlinx@ubuntu:~/work/lichee$ sudo ./build.sh -m kernel

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

生成rootfs.ext4、镜像打包:

打包:

打包结束。

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

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

; j5 |# @* M1 z% B) e

【2】镜像烧写

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

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

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


( i; o  L/ q* M4 v- S% ?

【3】编译自己的程序

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

  • - N) b& r6 h  C6 d% a; ^

    3 f5 V3 {8 y. w& n& J#include <stdio.h>  
    % y2 t" e2 P6 e1 w" X: ^* G
    5 u( Q! K! j3 M7 Q$ _5 M6 |

  • 9 ?6 m1 M) ^: {& i! m5 p1 f

    4 f6 E7 G$ U. Mint main(void)' ?! M+ c; C2 K% @% X* ~9 v2 x. b

    0 e( s: p3 E& z
  • $ G$ C5 o  D$ A& J

    7 }2 U- }7 ^6 b, l4 S{    3 }+ t8 w7 ^" r, N/ b
    ( ]! ?* I# k+ ]. [1 N$ N  q
  • 5 J. t% c, S1 ^  D
    ' \( `9 o* n. Q6 n9 Y: [
        printf("helloworld!\r\n");  
    6 G) ?0 C& D/ ?" ^' \

    ! H# v3 u4 s6 R$ ~" B- }1 o! l; L

  • 8 u; o8 ?9 `" R, r

    5 s# G" {  x2 W, A) A, K    printf("hello OKA40i-C\r\n");  * `' a# |7 w, ~* ]2 F6 ~" R8 C

    - B6 W0 e; K, |4 V1 T8 Z, X3 Z
  • . T  M7 w3 S2 }7 w9 n

    # o6 E4 ~$ k( U) c/ d7 l5 s8 n    return 0;4 O, N- ?6 I7 y4 U- X8 z
    ( c  X; O0 R* ~- d3 B( [3 c/ R; d

  • 6 p* _) E2 y- f" G* M

    8 w' H: R% l/ Z# X}
    : A4 ]" d. @( Q* _# a$ t

    * p# u* Q5 b" [
    9 V* T8 n/ @9 I; u

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


    • * W, U# n" P2 ^' i( E, f; s

      ' L3 v: i$ D" |4 H* x; o- ~8 p! NDEST_DIR      ?=_install( f6 j# i1 a' j6 _7 i2 c; J
      . X" W4 z9 C$ y% K( H1 L8 @: U

    • 3 S( c2 X- i( ^+ X. L( n8 W
      6 q0 U7 ?( q5 T& r* {0 Z4 Q9 S
      #CC            ?=ARM-linux-gcc, x, z' ^% a8 t* E" p5 {0 D$ q
      8 q8 b% j5 j2 Y3 A5 c" }
    • & k6 H+ x, p. G0 Y+ U" K! V

      % z- N; T6 I# q* m# E0 _' fCC              =arm-linux-gnueabihf-gcc-5.3.1 , c  |+ N1 K& F# W( K
      2 D6 L( @9 N& P7 ?1 a5 ^
    • * ?+ E0 K% Z, L. O1 W, |3 G
      * w+ R+ _/ P/ M' A7 v- J* g1 L
      build:' ]9 ?# ]2 s9 K, s. t
      + q* Y0 N' Z( n) s# r

    • . o6 X1 N! N% l& Y/ F

      4 x/ i' Q" J% f7 U% K  @$(CC) -o $(TARGET) helloworld.c- F. c( Q3 x3 s' h

      . h' h1 v- A3 u1 e
    • 2 X5 O( k" g) u, I* g

      . ?: y0 N& y5 }! ]& U* _" r# `/ b8 o# }0 O
      ( l5 g1 r0 K1 x0 z1 a" ]4 C
    • ( s9 {- a8 J* c" A( Q4 B' b/ Q- l
      % _# W& ?7 Z: @9 K7 P! o* q
      hold:* {1 \, w/ ?! c% y( r

      ) D$ j- }! a1 }

    • 9 P9 _/ B* a+ C2 f3 K, d& |
      # C% W' `  Q" }" ]4 A* u
        [url=home.php?mod=space&uid=70594]@echo[/url] "helloworld hold[skip]"- Q' w1 }5 h: m+ @+ \% V6 O$ q

      / c# l+ }7 s& ]) T9 j2 n

    •   E: r( F5 ~8 I5 _/ Y/ ~

      : V* I# m7 e5 @5 J' N, L
      4 P- h: x! j: v- ^0 \
      8 u9 S9 _0 V. J9 M- w: T& e/ @

    • " k5 }2 l% m! V; n# |' [
      ! q5 ?# a: n* [' k6 U% {
      install:
      & E7 ?6 F6 ]8 z+ y" W# z
      * h9 j  J) `/ r, ^% M8 N  l# x
    • 9 Y; x0 M$ Y* ]% G

      1 r" A% C3 P2 ^3 T  [url=home.php?mod=space&uid=2293869]@MKDIR[/url] -p $(DEST_DIR)+ G# V1 B0 S: [" ~# p
      4 K9 f3 ?; U' O7 f* K
    • 0 y5 V) h0 ^6 X8 G7 [
      & z& R% o7 X' J. M
        @cp $(TARGET) $(DEST_DIR)
      & u; j6 N7 D1 F# |8 O' q/ p- H) M

      ( {# k7 b. K3 J' ]6 G$ m  P
    • ; i! N+ }5 d1 `5 i

      . f" M0 V0 i+ {0 N; j6 N$ Z  [! x2 u( K5 ~
      7 A3 }3 r. q/ `6 \$ F

    • 6 L  y1 j6 O( p+ ?) x, Z
      5 @, r2 a# U& j
      uninstall:9 A0 h8 M) }. w
      5 ~0 L! V3 {6 }( o. Q& ?7 D

    • " e& S6 M4 {, A* ^; x9 e) I: q, W

      % J: g7 D! g9 M7 q6 M4 M( y  @rm -fr $(DEST_DIR)/$(TARGET)& g* ?1 m  f4 f6 Y. `$ ]& Z# n

      : V6 c4 D5 _$ M8 \& `
    • : _- o* ~( B9 J* W3 u

      ' f- G* x2 y# Z( i  [. d3 Z$ W5 k- B- b7 V

      6 ?1 G* `: Q3 D# P( z  |
    • 5 [1 @% n, d  h4 R! v
      ( l! w# B* B; B( F' v
      distclean: uninstall/ Q% n: o. f5 y

      & {4 M7 [. G/ j. n! F7 Y7 o
    • ' Y5 k6 k/ i3 u( Z$ ]1 w6 i
      / N' }! d0 f# Z
        @rm -fr $(TARGET)
      - D; a" S+ U0 A6 r+ j0 R# D
      * Q4 z6 F: s4 n, [5 k3 w( B

    • : E8 X  Q$ n  e! e
      . T) o: N2 r6 J/ Y
        @rm -fr _install' f. v5 P, w  d& ?8 F

      2 x1 |  X5 p# b6 B4 g, D% s! M, W5 A0 c5 ~; `% D

    ; V$ p& v& ?# A4 @; V9 u  i' z  }6 N- l3 t2 {/ R& I1 u3 V

然后执行make:

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

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

: E1 O( Z9 m. k& V0 Y; y5 o

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

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

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

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

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