立即注册
查看: 983|回复: 1

[经验分享] 全志A40i开发板编译环境的搭建

已绑定手机
发表于 2022-11-5 15:39:15 | 显示全部楼层 |阅读模式 来自 河北省保定市

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

d06a0ccf10e6f9da1e055049c63350b1.png


【1】建立编译环境

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

a012418a3271cf9e253b5a6f1a55791b.png

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

6439d0a67a76c3bb957ee2e5c9411e8b.png

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

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

60e8d33c3f6b74076a81df278063257a.png


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

e5713c824d561019b6ad3c9f15e19e69.png


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

ab70978423d8a8b07260662627f9a27e.png


解压后进入lichee目录下面:

4e408ce7dcdbe54266ee597a9b1b37e7.png

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

3d1c438de2e0ddf6083e7533436aea8f.png

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

f69da526ad024d4b73f57d94c7290fdb.png

bfce6ef837676fcb8b4a02e5b45b9232.png

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

984c6640413bab4a0a6f1a8482f83325.png

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

4fb35a084c28883eedda170feaae07b3.png

然后编译内核:


forlinx@ubuntu:~/work/lichee$ sudo ./build.sh -m kernel

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

1fec18646cce081b1493b413b7906653.png

生成rootfs.ext4、镜像打包:

5cecbf1c7bbc571fe9976c22f4b26761.png

15c9138337fcef0ff5e434fe7e576952.png

打包:

fde39ca9a83f0e96bd58fcc719a47f62.png

打包结束。

6fbfe25a2ff568a8c1b66352b2a5d156.png

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

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

db0731fb94fc18375d67e073ce3ec28b.png


【2】镜像烧写

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

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

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

4767feb7bc424215f480ba5f005d990f.png


【3】编译自己的程序

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



  • #include <stdio.h>  



  • int main(void)



  • {   



  •     printf("helloworld!\r\n");  



  •     printf("hello OKA40i-C\r\n");  



  •     return 0;



  • }


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



    • DEST_DIR      ?=_install



    • #CC            ?=arm-linux-gcc



    • CC              =arm-linux-gnueabihf-gcc-5.3.1



    • build:



    •   @$(CC) -o $(TARGET) helloworld.c







    • hold:



    •   [url=home.php?mod=space&uid=70594]@echo[/url] "helloworld hold[skip]"







    • install:



    •   [url=home.php?mod=space&uid=2293869]@MKDIR[/url] -p $(DEST_DIR)



    •   @cp $(TARGET) $(DEST_DIR)







    • uninstall:



    •   @rm -fr $(DEST_DIR)/$(TARGET)







    • distclean: uninstall



    •   @rm -fr $(TARGET)



    •   @rm -fr _install


    newCodeMoreWhite.png

然后执行make:

f13f5465c9af26ff2037ba39020e25e1.png

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

7eeaa5b23a8606b2a11bb6eba98e2358.png

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

83ee0caacee6969751047417954b733b.png


已绑定手机
发表于 2023-6-27 14:46:45 | 显示全部楼层 来自 江苏省无锡市
谢谢分析
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

合作/建议

TEL: 19168984579

工作时间:
周一到周五 9:00-11:30 13:30-19:30
  • 扫一扫关注公众号
  • 扫一扫打开小程序
Copyright © 2013-2024 一牛网 版权所有 All Rights Reserved. 帮助中心|隐私声明|联系我们|手机版|粤ICP备13053961号|营业执照|EDI证
在本版发帖搜索
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表