NUTTX的学习记录(如何在nuttx建立自己的板子的支持)

在嵌入式开发的过程中,我们不可能只依靠例程,厂家提供的标准板子进行开发,这时建立一个自己的板级配置尤为重要,那么我们应该如何在nuttx内部加入我们自己的板子呢?经过查看nuttx官方的文档可以发现这几段话

这个大概意思好像是,需要修改broads下面的Kconfig文件同时还需要自己的broad里面有一份Kconfig,以及其它的基础配置文件。

同时我还找到了另一份配置方法

这一份跟上面一份的说法好像不太一样,仔细翻译一下好像确实不太一样,前一张图片说的是依托在nuttx的目录结构下配置,下面那一份好像是脱离原始目录进行配置。

看完这一部分的文档我们就可以尝试去新建自己的板子了,首先是修改最内层的文件夹/home/sun/nuttxspace/nuttx/boards/arm/stm32/nucleo-g431rb(在第一篇文章里面我使用的是g431所以这边就直接基于nucleo-g431rb来修改)

首先复制一份然后重命名为my-g431rb作为自己的板级配置

然后删除多余的配置,比如说config里面我只剩下了nsh文件夹和pwm文件夹,一个用来检测移植是否成功,另一个用来方便之后文章里修改驱动(因为他的配置项比较少)

如下图

之后把my-g431rb里面所有关于nucleo-g431rb的内容修改为my-g431rb

这些都很简单,大概修改如下列图像

基本上就把所有的NUCLEO改成MY就行了

然后src里面的.c文件理论上建自己的板子需要删除,但是由于我想使用nuttx原来的结构,和已有的驱动所以就只将其内部对应定义修改了一下修改的图像我贴上一个pwm的图吧(图有点多,全贴的话有点多,就贴一个举下例子)。

在修改完文件夹内文件后就到了,比较重要的一点,一定要记住修改broads文件夹下的Kconfig文件路径是/home/sun/nuttxspace/nuttx/boards/Kconfig具体修改如下(有三个修改的地方),如果不修改可能会导致你的make distclean等等命令失效,这样的话你就需要手动删除一些文件了,因为好多指令都会失效。

添加对应的定义,意思大概是如果定义了XXX就默认是“xxx”

这个意思应该是如果有定义 XXX 那么就加入xxx路径的Kconfig

这一部分的作用大概是把自己的板子加入一个选项,用来选择自己的板子,同时加入一些slect选项选择一些常用的默认配置,也可以删掉select 以及当行的内容

这样基本上就算是移植结束了,让我们选择对应配置,并且编译一下

cd nuttxspace/nuttx
./tools/configure.sh my-g431rb:nsh
make

编译成功了,没什么问题下面烧录

openocd -f interface/stlink.cfg -f target/stm32g4x.cfg -c init -c "reset halt" -c "program nuttx.bin exit 0x08000000

烧录成功

最后测试,再次打开一个终端,开启minicom

sudo minicom -D /dev/ttyACM0

测试效果如下图

基本上没啥问题,注意这个是打开minicom以后会出现的nsh的调试窗口,如果不知道可以去看我上一篇文章或者官方文档我把链接贴到下面,我的步骤有点跳跃,如果有什么问题,也可以查看一下官方文档或者我之前文章。

NUTTX的学习记录(nuttx例程运行,环境部署)_nuttx学习-CSDN博客

Running — NuttX latest documentation (apache.org)

好了建立板子这部分就以及结束了,下一篇文章就要开始点灯了,电灯大师准备启动 !  !   !

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值