2254|5

6105

帖子

4

TA的资源

版主

楼主
 

TinaLinux交叉编译应用程序基本篇之一(T113-S3) [复制链接]

 

  TinaLinux交叉编译应用程序基本篇之一(T113-S3)

 
一、搭建vmware虚拟机目前选的是15.5,应该后面版本也可以吧。
 
二、安装ubuntu18.04,其他版本没试。
 
三、安装依赖包(以下都是在用户权限下运行):
sudo apt-get install -y sed make binutils build-essential gcc
g++ bash patch gzip bzip2 perl tar cpio unzip rsync file bc wget
python cvs git mercurial rsync subversion android-tools mkbootimg
vim libssl-dev android-tools-fastboot
 
四、如果你发现你的ubuntu虚拟机第一次启动无法通过windows下复制命令粘贴到ubuntu.
需要先手敲 执行如下命令安装一个用于虚拟机和 windows共享剪切。
sudo apt install open-vm-tools-desktop 安装完成后重启linux
 
五、获取Tina-sdk V2.0源码包 安装sdk包上篇已经介绍。
 
六、Tina-LInux目录介绍
build
build目录存放Tina Linux的构建系统文件,此目录结构下主要是一系列基于Makefile
规格编 写的mk文件。主要的功能是:
  1. 检测当前的编译环境是否满足Tina Linux的构建需求。
  2. 生成host包编译规则。
  3. 生成工具链的编译规则。
  4. 生成target包的编译规则。
  5. 生成linux kernel的编译规则。
  6. 生成系统固件的生成规则
build
|--autotools.mk
|--aw-upgrade.mk
|--board.mk
|--cmake.mk
|--config.mk
|--debug.mk
|--depends.mk
|--device.mk
|--device_table.txt
|--download.mk
|--dumpvar.mk
|--envsetup.sh
config
Config.in
config目录主要存放Tina Linux中配置菜单的界面以及一些固定的配置项,该配置菜
单基于内核的mconf规格书写。
config/
|--Config-build.in
|--Config-devel.in
|--Config-images.in
|--Config-kernel.in
|--top_config.in
device
devices目录用于存放方案的配置文件,包括内核配置,env配置,分区表配置, sys_config.fex, board.dts等。这些配置在旧版本上是保存于target目录下,新版本挪到device目录.
注意defconfig仍保存在target目录。
device/
|--config
|--chips
|--common
|--rootfs_tar
dl
docs
docs目录主要存放用于开发的文档,以markdown格式书写。
本目录不再更新,请以全志客户服务平台系统文档为准。 这里系统里面没看到。
docs/
lichee
lichee目录主要存放bootloader,内核,arisc,dsp等代码。
Makefile
out
out目录用于保存编译相关的临时文件和最终镜像文件,编译后自动生成此目录,例
如编译方案 r328s2-perf1。
out/
├── t113-100ask
└── host
package
package目录存放target机器上的软件包源码和编译规则,目录按照目标软件包的功
能进行分 类。
package/
|--allwinner
|--base-files
|--delve
|--dragonst //?没看到
|--firmware
|--kernel
|--....
|--utils
prebuild
prebuild目录存放预编译交叉编译器,目录结构如下
rules.mk
scripts
scripts目录用于存放一些构建编译相关的脚本。
target
target目录用于存放目标板相关的配置以及sdk和toolchain生成的规格。
tmp
toolchain
toolchain目录包含交叉工具链构建配置、规则。
toolchain/
├── binutils
├── Config.in
├── fortify-headers
├── gcc
├── gdb
├── glibc
├── info.mk
├── insight
├── kernel-headers
├── Makefile
├── musl
└── wrapper
tools
tools目录用于存放host端工具的编译规则。
tools/
├── autoconf
├── automake
├── aw_tools
├── b43-tools
├── ......
目录结构的内容就到这里。
 
七、内核编译在另外一篇文章里面有介绍。这里介绍应用程序的编译。
prebuild目录存放预编译交叉编译器,所以为了在任意位置如果需要在任意位置或者终端都可以使用交叉编译工具链,则需要单独 增加 工具链bin的路径至 ubuntu PATH环境变量里,可以添加至 ~/.bashrc 也可以在每一个终端单独配置。
Export PATH=$PATH:home/ubuntu/tina-d1-h/prebuilt/gcc/linux-x86/arm/toolchain-sunxi-musl/toolchain/bin
配置完成后,执行 arm-openwrt-linux-muslgnueabi-gcc -v 验证是否配置
成功。
工具链增加到环境变量后,就可以用Makefile指点交叉工具链,编译应用程序了。
以hello.c举例
拷贝到共享文件夹后由window10里面用adb传送文件到t113-s3板子,记得修改文件的运行属性。然后运行查看结果。
这样,C应用程序编译环境的搭建和使用用Makefile的基础测试就基本完成了,后续是怎么样写应用了。
 
八、使用CMake构建语言
使用CMake构建语言就和Makefile存在了一定的区别,如下演示示例,提供同样的
hello.c 程序,通过CMake构建语言去指定交叉编译工具链头文件lib库等位置,编写
出 CMakeLists.txt 编译规则文件,最后使用 cmake 进行编译生成
首先在ubuntu18.04里面查看一下是否安装了cmake,没有就安装一下,如下图
sudo apt install cmake
拷贝hello.c到另外一个目录比如hello-cmake,编写CMakeLists.txt文件如下:
再在这个目录里面建立build目录,然后在这个目录里面志向cmake ..
执行编译前检查,再用make命令编译生成hello可执行程序。
同样传到window10共享用adb推送到板子运行。
 
好,先汇报到这里,谢谢大家。

最新回复

系统带的呢?我们现在都用apt直接装交叉   详情 回复 发表于 2024-3-26 09:54
点赞 关注
 
 

回复
举报

6960

帖子

11

TA的资源

版主

沙发
 
辛苦啦,我现在看到要编译的就头疼,花时间,占硬盘空间!

点评

没办法。想要整这方面的产品。  详情 回复 发表于 2024-3-14 10:09
 
 
 

回复

6105

帖子

4

TA的资源

版主

板凳
 
lugl4313820 发表于 2024-3-14 10:05 辛苦啦,我现在看到要编译的就头疼,花时间,占硬盘空间!

没办法。想要整这方面的产品。

 
 
 

回复

7608

帖子

18

TA的资源

五彩晶圆(高级)

4
 

还要自己编译工具链?

点评

prebuild目录里面有。  详情 回复 发表于 2024-3-21 22:08
个人签名

默认摸鱼,再摸鱼。2022、9、28

 
 
 

回复

6105

帖子

4

TA的资源

版主

5
 
freebsder 发表于 2024-3-21 17:27 还要自己编译工具链?

prebuild目录里面有。

点评

系统带的呢?我们现在都用apt直接装交叉  详情 回复 发表于 2024-3-26 09:54
 
 
 

回复

7608

帖子

18

TA的资源

五彩晶圆(高级)

6
 
damiaa 发表于 2024-3-21 22:08 prebuild目录里面有。

系统带的呢?我们现在都用apt直接装交叉

个人签名

默认摸鱼,再摸鱼。2022、9、28

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表