转载请注明http://blog.csdn.net/huwanxin110?viewmode=contents
Nuttx的配置全在configs文件夹当中,里面预先提供了多种开发板的配置。
以stm32f746g-disco为例
Include文件夹中只包含一个文件board.h
Board.h中,采用宏定义的方式设置各参数
1.对时钟系统设置
2.对引脚配置
如:#defineGPIO_USART6_RX GPIO_USART6_RX_1
#define GPIO_USART6_TX GPIO_USART6_TX_1
就是对串口6输入输出引脚的配置,其中GPIO_USART6_RX_1为默认配置,定义在
Arch/arm/src/chip/chip/stm32f76xx77xx_pinmap.h中。
Kernel和nsh应该是2种不同的调试方式,我选用的nsh,里面包含2个文件
Make.defs定义了编译make中的一些规则和命令
Defconfig就很重要了,可叫做总体配置文件。
它配置了编译环境,芯片选择,系统内是否开启某通讯接口(如串口、i2c),以及通讯口配置,等等很多配置信息
这些配置可以修改,比如我需要用usart2来进行调试
CONFIG_USART2_SERIALDRIVER=y 使能串口驱动
CONFIG_STM32F7_USART2=y 使能串口
CONFIG_USART1_SERIAL_CONSOLE=y 使用usart2作为控制端口
CONFIG_USART1_RXBUFSIZE=256 接受buff
CONFIG_USART1_TXBUFSIZE=256
CONFIG_USART1_BAUD=115200 波特率
CONFIG_USART1_BITS=8 数据位
CONFIG_USART1_PARITY=0 奇偶校验
CONFIG_USART1_2STOP=0 停止位
还有别忘了
CONFIG_USBDEV=y 使能usb设备
Script估计是连接脚本
Src里面为自定义的一些配置,和deconfig中可能有重叠(可能它的初衷就是让我们在这里添加配置)
.h文件:宏定义了引脚配置和申明一些初始化函数
Stm32_boot.c是 stm32_boardinitialize()函数定义(该函数在最初的启动文件arch\arm\src\chip\start.c中执行)
其它.c文件都是stm32_boardinitialize()中的子函数
配置方式:(参考官网http://www.nuttx.org/doku.php?id=documentation:portingguide)
在根目录下进入tools
用配置脚本 如上进行配置,选择你使用的板卡/nsh
接下来需要链接一些文件
回到根目录
同样的方式链接其他文件夹
然后执行make
可能出现错误,反正都是一些链接的错误,会多一些连接,用rm –r 进行链接的删除即可,也可手动删除文件夹。
没问题了后就会编译一段时间最后
生成.hex .bin就大功告成了