rtthread的一大特色就是有丰富免费的组件可以用,但是对于我这个初学者来说很难习惯它必须使用它的模板完成任务,而且在stm32也已经放弃了对标准库的支持,这让我这个一直使用标准库的菜鸟感到很是头大。但初学,还就得依葫芦画瓢,待练习的成熟了,再自己开发。本笔记参考参考的教程为bsp制作
第一步:是复制工程模板这 如果感觉这个比较慢可以 将这里面的仓库导入到gitee中,这样就很快了。复制的时候是要将整个工程都复制的。如图所示
标红框框的这几个是比较重要的,主要修改的文件夹是bsp文件夹,在bsp(板级支持包)中rt-thread已经给我么做了好多的例程,但是有时候需要自己建立一个属于自己的板级支持包,所以过程还是要掌握的。我使用的开发板为野火stm32f429挑战者v1。
第二步,在文件夹bsp->stm32->libraries下的templates文件夹中复制相关芯片的工程模板到stm32文件夹下,我使用的是stm32f429所以我就使用f4xx的模板。并且我将这个文件改名为stm32f429.如图所示
第三步就是修改工程模板了,先看一下stm32f429下的目录结构。
然后需要创建一个基于目标芯片的 cubemx 工程。默认的 cubemx 工程在 cubemx_config 文件夹中,双击打开 cubemx_config.ioc 工程,如下图所示:
打开这个文件,修改成自己的芯片。
接下来使能rcc和串口,时钟如图所示,串口保持默认设置就可以了。
之后配置时钟树,如图
设置好路径之后,点击生成就可以了。
然后就是修改相关文件
在 board.c 文件中存放了函数 systemclock_config() ,该函数负责初始化系统时钟。当使用 cubemx 工具对系统时钟重新配置的时候,需要更新这个函数。
该函数由 cubemx 工具生成,默认存放在board/cubemx_config/src/main.c 文件中。但是该文件并没有被包含到我们的工程中,因此需要将这个函数从 main.c 中拷贝到 board.c 文件中。在整个 bsp 的制作过程中,这个函数是唯一要要拷贝的函数,该函数内容如下所示:
在 board.h 文件中配置了 flash 和 ram 的相关参数,这个文件中需要修改的是 stm32_flash_size 和 stm32_sram_size 这两个宏控制的参数。本次制作的 bsp 所用的 stm32f429igtx芯片的 flash 大小为 1m,ram 的大小为 256k,但如果ram的大小为256k的话系统是不能跑起来的,估计有部分是芯片用的吧,所以改为192,因此对该文件作出如下的修改:
修改 board/kconfig 文件的内容
然后修改board/linker_scripts中的内容,我使用的是mdk就修改link.sct文件
然后修改构建脚本board/sconscript,如图
最后修改工程模板。
修改芯片和下载方式
然后保存关闭就行了
第四步。构建工程。
使用env工具
在 env 界面输入命令 menuconfig 对工程进行配置,并生成新的 rtconfig.h 文件。如下图所示:
最后生成mdk5工程
之后就是打开生成的工程编译下载
运行结果
智能断路器优点
光纤接口适配器有效解决高数据传输的研究与实现
捷杰传感分体式无线振动传感器成功解决风机振动监测难题
加紧研发加密货币的目的是什么
达世币正在为合法药品产业提供一个支付渠道
RTThread完整版学习之操作系统移植
十大热门散热器排行榜
钢琴手套的制作
中国银联正式推出二维码支付标准 包括安全与应用两个规范
年末开箱,看看小米13 Pro会不会是你春节购机最好的选择?
芯驰科技发布9系列高性能汽车芯片,赋能智慧出行
凌华发布提供四轴脉冲输出的控制卡
一文解析雷达回波信号检测技术
科炬生物以微流控芯片技术推出6分钟快速检测新冠疫苗中和抗体试剂盒
无人驾驶铁水运输车下线
模电试题解析(三)
GTX1660SUPER游戏性能怎么样
如何使用旧笔记本电脑制作数码相框
LED租赁显示屏产品应该怎样来选择
人工智能系统正越来越多地部署到我们生存的方方面面