` 本帖最后由 renshengrumeng 于 2020-10-7 21:57 编辑
简介 像韦东山老师说的 buildroot 是个轻量级的构建 嵌入式linux 系统的一个工具,网上资料比较多,而且结构类似于Linux内核,编译轻、快。另外一个工作中推荐的也是imx 和st 官方应用的嵌入式linux 构建工具yocto, 功能强大,不过实在是太大了,编译时间也很长,通常yocto 是运行在服务器上的。所以自己玩还是 buildroot 比较好,其他的构建工具我没用过哈。 如果不用构建工具有些时候需要一些库自己得一点点编译实在是太麻烦。还是工具比较方便。例如交叉工具链里没有我们想要的 arm板上lib,自己需要在外面找源码一点点交叉编译,配置环境太费劲,如果有了构建工具,可以自己自己配置库,让需要的库出现在自己做的工具链中。一切就轻松多了。
正文: 添加一个自己的app 用buildroot 很简单网上很多资料。
首先进入buildroot目录package目录下找到Config.in 添加指向新增APP目录语句 如:
- menu "test"
- source "package/helloworld/Config.in"
- endmenu
复制代码
其次,在package目录下创建helloworld文件夹,并在helloworld目录下添加Config.in和helloworld.mk 两个文件。 Config.in 填入如下信息:
- config BR2_PACKAGE_HELLOWORLD
- bool "helloworld"
- help
- This is a demo to add local app.
复制代码
这样make menuconfig 就可以在 target package->test 下有个helloworld 选项。选上就可以编译此app。 helloworld.mk 填入如下信息,开始部分的注释helloworld是需要的:
- ################################################################################
- #
- # helloworld
- #
- ################################################################################
- HELLOWORLD_VERSION:= 1.0.0
- HELLOWORLD_SITE:= $(CURDIR)/work/helloworld
- HELLOWORLD_SITE_METHOD:=local
- HELLOWORLD_INSTALL_TARGET:=YES
复制代码
最后增加最核心的我们的app 根据上面设置 helloworld 目录位置在buildroot 根目录下创建work 目录,这个目录可以根据自己需求更改上面代码。再在work目录下创建helloworld目录,目录里面就是源码和Makefile,在执行编译的过程,会被复制到output->build 目录下,如果发现编译错误修改源码,使用make helloworld-rebuild 编译app 或者 先make helloworld-dirclean 再 make helloworld
Makefile 信息如下:
- CPPFLAGS +=
- LDLIBS +=
- all: helloworld
- analyzestack: helloworld.o
- $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LDLIBS)
- clean:
- rm -f *.o helloworld
- .PHONY: all clean
复制代码
注意:Makefile 缩进用tab 至此 app 添加OK
接下里需要配置包添加进编译里。
最后执行make helloworld build目录如下,此时文件系统压缩包中也包含了可执行文件helloworld。
题外话:
之前试用第一帖都是介绍板子,现在感觉没啥用就没有写开箱贴。
在此对板子做个总结
1.板子丝印比较用心,各个模块都有丝印标识,丝印做的真不错,品控做的很好。
2.资料写的很丰富,不过还有很多内容没有丰富完。
最后还是来两种照片吧
`
|