70、【OS】【Nuttx】【构建】配置 stm32 工程
【声明】本博客所有内容均为个人业余时间创作,所述技术案例均来自公开开源项目(如Github,Apache基金会),不涉及任何企业机密或未公开技术,如有侵权请联系删除
背景
接之前的 blog
【OS】【Nuttx】【构建】防止代码被优化
分析了如何防止代码在构建时被优化,还有说要分析启动函数,这里先再搁置一下,先看下 stm32 工程的配置
配置 stm32 工程
之前 blog 【OS】【Nuttx】【构建】交叉编译构建 提到过,手上只有一块不知什么年代的野火开发板,找到芯片上面未被磨平的丝印(丝印就是表面印刷的标识信息,有些芯片出于保密或者封装工艺可能没有,但开发板这种学习型的辅助板一般都会有,而且这芯片的体积也是够大),可以看到上面模糊的 STM32F429I 的信息
在 nuttx 工程中,搜索并选择 stm32f429i-disco:nsh 的项目,搜索方法以及为什么选这个项目(只要芯片对得上就行,外围的东西都好说),在之前 blog 【OS】【Nuttx】【构建】交叉编译构建 已经介绍过,这里不再赘述
configure 配置脚本
tools/configure.sh 可以为 nuttx 系统配置目标开发板和构建环境,通过配置脚本可以选择不同的硬件平台,主机构建操作系统,是否清理旧项目,是否使用自定义配置等
下面来看下相关配置选项
- -E:强制执行 make distclean(清理之前的构建产物),即使已经配置过
- -e:如果配置有变化,执行 make distclean
- -l:选择 linux 作为主机构建环境
- -S:用不到,先不管
- -L:列出所有可用的单板配置,或者指定了某个 board 名称,就只列出匹配的配置项,支持部分名称模糊匹配
- -a:指定应用程序目录(nuttx-apps 目录)路径,相对于 nuttx 根目录的相对路径
创建个软链接
另外多提一嘴,咱们的构建目录是在 scripts 下的(构建目录参考之前 blog 【OS】【Nuttx】【Python】gdb调试优化,python实现构建脚本),配置工程的目录又是在 tools,每次配置都要多敲几个字母跳转到 tools 去执行很麻烦
那么可以创建个软链接(软链接是一个包含了路径信息的文本文件,这个路径指向另一个文件的位置,类似于 windows 系统中的快捷方式),指向 tools 下的配置文件 configure.sh,在 bash 中如下命令
ln -s ../tools/configure.sh configure
可以看到构建目录也出现了配置脚本 configure,后面可以少敲几个字母,提升效率
查看构建目录详细信息,可以看到该文件是个链接类型的文件,指向了 tools 目录下的 configure.sh
在 scripts/configure 中输入一行代码
在 tools/configure.sh 中也能同步看到改动,很方便,就像改源文件一样
项目配置
在 configure 文件中参数解析功能 131 行,添加如下内容,可在 scripts 目录下进行项目配置
在 bash 终端输入如下命令
./configure menuconfig
可打开 menuconfig 配置界面,这里是通用功能配置,不涉及板信息
通用模块功能配置完后,接着继续在 bash 中输入项目配置命令
./configure -l -e stm32f429i-disco:nsh
可生成出项目配置信息
nuttx 根目录下,可看到关键配置文件 defconfig,里面定义了 nuttx 代码中相关功能模块的宏
先分析到这里,下篇开始启动函数分析