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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

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

7 F; _* r0 O) }$ v- ?

【1】建立编译环境

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

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

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

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


) V* Q0 H$ D9 A1 V% k+ G- O

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


- t+ ]" F# x- q6 T6 z) K& b

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

- Q# e$ i3 P$ M/ I& Y- @6 X. J& Z

解压后进入lichee目录下面:

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

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

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

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

然后编译内核:


  • ) [  M+ k& y& C! N: y
forlinx@ubuntu:~/work/lichee$ sudo ./build.sh -m kernel

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

生成rootfs.ext4、镜像打包:

打包:

打包结束。

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

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


" H8 m; ?: n/ V' k

【2】镜像烧写

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

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

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

# @, V& H; I6 K' _

【3】编译自己的程序

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


  • 5 k( q6 Z0 H  m

    ! l. l0 C# I" w7 C: K0 O#include <stdio.h>  % |- c' ]3 b9 T& A; |- P
    3 x8 H0 \: ?$ s3 K; l8 S$ f% k

  • : }& h) n9 ^0 c! Z% V* s+ m

      z: f$ i) P7 K+ z; U3 Q; ?9 [2 E3 [! cint main(void)8 J7 k: J2 f4 ~$ T2 s# W
    ' w7 S. M+ Y% Z& ^
  • : O# }& L5 A8 B9 z! ]+ r- w8 C

    + A1 F% j. O/ Q% C8 M6 r{   
      @2 S7 I6 j7 {
    4 k; f$ \, R  c# C  I; K/ d
  • + N  Z  M7 D) h0 D" I- p9 t1 `
    8 J3 R5 b3 X" c9 y- Q8 ?9 @
        printf("helloworld!\r\n");  
    * s  F6 S) o  T( r. U  ^
    / h( z# M9 d9 K. j5 n4 B
  • 9 }* T% K% R, h9 S9 I
    / m1 u8 m8 {8 _& G+ T
        printf("hello OKA40i-C\r\n");  
    / p; F- r( Z+ l3 V
    / B, Z  @4 X  q; A- w: R" v

  • ! s: D2 V! U6 _2 I. Y

    / x7 a% h% l0 H- P# m    return 0;
    & y  q( K- P7 A* S0 l3 p* y
    2 m% d9 j# }  U% l8 }2 j
  • 8 V# T( g" r; o) }& D+ V( b
    * c* a; j6 p8 n$ u( {+ j3 X& I
    }
    6 L  S( O! M3 o1 Q: ?0 x" k

    " j1 f( `% A5 Y" r% O# E, M5 K- Q' d* e, S$ n

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


    • . ?2 H% O9 a6 B2 \5 U

      2 s  }8 t9 m4 TDEST_DIR      ?=_install- [' L4 X) r) o. Z  k

        y" l) Z. |0 I- V) v' t1 F% x
    • ; B3 r0 V8 ]- E: x
      ( W& H9 T- ?$ c! T& L
      #CC            ?=ARM-linux-gcc5 W1 J1 d% \2 M0 N2 L+ o9 A

      % \2 U( o8 O5 r# b

    • + C' v4 q1 P% j% R  G

      - {* N2 d! Z; t* XCC              =arm-linux-gnueabihf-gcc-5.3.1 - _6 X5 K( e3 ?. O) w3 ?( N
      ' `3 y2 \/ {. Z8 L: s3 e

    • 0 Y! Z7 q: j: J' o( H4 O* E+ y
      ; ^) D, V) E: @5 h; h
      build:5 z! Q1 A& {7 T: P% S) w. i7 \5 ~

      # [' v! P0 f6 \6 J3 j  \9 N. k

    • 8 n9 L, w0 l" y! D

      8 E. J, I% p, y1 o, L  U  _  @$(CC) -o $(TARGET) helloworld.c
      7 Y8 U/ X7 T% I7 V
      . C# [/ s" Y) V' F  V9 F9 Z2 `* J5 j: O
    • & a  |; O* N* p3 [# p; z3 v

      8 A7 K' M  }$ Z& [# B3 D1 K9 i: d! @8 F- A' }, Q( a& `

      ; z5 `# B) J& @# q( x- @: f* l
    • 3 B) e: l. n, U

      8 u. r2 [* h& @: |" s+ ghold:
      1 I5 @7 e" M. S. t+ e- h: S

        L1 w/ X. ]7 H' h

    • ( e6 j0 o8 T8 t% y* e8 V& V& D0 |
      ; K% v2 S1 J% G% f5 _* P
        [url=home.php?mod=space&uid=70594]@echo[/url] "helloworld hold[skip]"
      5 Z4 I* Q* p# D! `; t# T1 R; y

      5 \4 i2 B- G% f' j" i( h" b

    • , I" {  w0 T2 h. ?

      5 y, Q  Y. ?2 O' h2 p8 z
      0 T: Z3 u- n( q

      . B* e% b# y3 ~, I8 h, P

    • 5 O$ b4 z) h2 r' c% C# p" v7 ~7 }

      ; o: y: f$ m6 ~5 K8 a# ninstall:, k3 U' ?5 s/ J9 V+ b; `- g
      * O& y5 i0 Y; M' Y. j" `8 @+ l
    • ; d3 s$ {6 X6 e2 U7 y1 `
      $ S1 a' G9 D" E% J+ x. P- i
        [url=home.php?mod=space&uid=2293869]@MKDIR[/url] -p $(DEST_DIR)8 |3 i, r' b; |1 H
        M# ]" e# e! {' l! x
    • * L" M! G" x6 v" U( Z
      ) ]4 }: J3 |* ^% d% a
        @cp $(TARGET) $(DEST_DIR)
      ' D! B  T3 p4 V1 o( E, v% i

      % k' Z) |4 @7 {8 ?9 N% A2 \8 x

    • + f- P) ?8 e( K. _) n( c
      3 y$ c# a% D# S$ C" @/ T

      ' E: I. X; e  e  q6 h
      # e$ `, ~$ n, [% o6 r2 l9 s

    • 3 o* w# e% v1 J* {
      2 L8 r+ c0 j  O2 ]( O/ j
      uninstall:2 \' {5 _' c' s7 l

      & k$ t0 G; m! i2 G

    • 6 N9 E% [1 D2 O3 p$ Y
      & D( t3 A2 Q, c" _: y
        @rm -fr $(DEST_DIR)/$(TARGET)- f& n! M; T; z. C& c0 o* C1 |8 X% y
      + I- i' x* a; r
    • : q" y' M5 ^7 c- n4 {: w6 H
      ( L' m, }3 Q' d2 K1 i, o
        M1 \3 W0 E: x# b2 K
      . E  B6 p5 k3 p5 K' [3 b% Q; L5 j

    • 1 n9 f/ Y8 Q7 ?& S) z8 q) T4 f( _" F0 G) f

      , ^* z% h1 [% ]" odistclean: uninstall
      % B3 `8 c2 R( W

      - G! O% W6 N+ L- h* C* `& m
    • / S2 G5 Y( c* l

      9 ~2 T- y# R) p- R+ `7 ]$ F  @rm -fr $(TARGET)/ i0 P& @  o+ p) }

      9 I) ~: X7 m# {- L2 Y! M

    • % Y- J1 `, v% t! Z' Q& ~
      1 q) H3 i4 p! H4 b* F
        @rm -fr _install3 V  V9 N3 s' F. c: q2 ^9 j

      % y+ K5 ]' H: i# T8 ?8 I; H, X: N4 h8 V$ A: y( G0 m" u4 B

    ) K, o- h6 }& t, Z: g  u; o. U5 }' I) f: s4 ?0 O, K

然后执行make:

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

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


% J7 L  D3 Q3 @  P5 W

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

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

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

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

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