程序小白
认证:优质创作者
作者动态
小小调度器——开局default,优雅总藏于细节之中
3星期前
小小调度器——调度器核心的纯C实现
3星期前
小小调度器——原来C代码还能这么写,原作者没少挨打吧!
3星期前
解析由系统库引发的hardfault血案(RT-Thread+ESP32)
2023-07-17 16:04
TINA瞬时现象仿真分析——运放缓冲器振铃
2023-02-28 11:38

基于RT-Thread的STM32专属bsp定制:代码移植与修改

      这是关于bsp定制工程模板配置篇的姊妹篇,先说下分开聊的原因,这一篇的内容可能并不多,但是可能有点难,因为涉及到 Kconfig、SconsCript、Menuconfig等等有关工程构建以及脚本链接的知识,这些对于单片机开发者来讲还是比较陌生的,但是对于搞嵌入式linux驱动的小伙伴来讲,就轻车熟路了。我会尽量避开这些讲这么些渔,你只要知道它是条鱼就可以了,感兴趣的可以参考官方文档,讲的也不是特别细,但是够用!

      废话少说,接上篇,CubeMx配置完成后,点击生成代码,并进行以下的代码搬运工作:

在 board.c 文件中存放了函数 SystemClock_Config() ,该函数负责初始化系统时钟。当使用 CubeMX 工具对系统时钟重新配置的时候,需要更新这个函数。

该函数由 CubeMX 工具生成,默认存放在board/CubeMX_Config/Src/main.c 文件中。但是该文件并没有被包含到我们的工程中,因此需要将这个函数从 main.c 中拷贝到 board.c 文件中:

在 board.h 文件中配置了 FLASH 和 RAM 的相关参数,这个文件中需要修改的是 STM32_FLASH_SIZE 和 STM32_SRAM_SIZE 这两个宏控制的参数:

修改工程脚本文件:

修改工程模板文件:

执行menuconfig配置功能:

用scons --target=mdk5 命令编译工程:

    至此,关于bsp定制的相关工作也就全部完成了,后面一个很重要的自然是,接上我的实际的开发板,来测试下,系统是否运行起来了,首先连接仿真器将编译后的烧录程序下载到我们的开发板中:

    要测试系统是否运转正常,主要是关注finsh后台打印的信息以及cmd命令是否能正常执行,这里要接finsh需要将串口uart1接到电脑,finsh串口功能默认的波特率配置如下:

    BAUD_RATE_115200, /* 115200 bits/s */

    DATA_BITS_8,      /* 8 databits */    

    STOP_BITS_1,      /* 1 stopbit */      

    PARITY_NONE,      /* No parity  */    

这里需要用到usb转串口的功能,将我们串口连接到电脑的终端输出软件上:

接下来,我们要通过rtthread提供的msh命令,来测试一下,系统是否运行起来了:

声明:本内容为作者独立观点,不代表电子星球立场。未经允许不得转载。授权事宜与稿件投诉,请联系:editor@netbroad.com
觉得内容不错的朋友,别忘了一键三连哦!
赞 4
收藏 3
关注 114
成为作者 赚取收益
全部留言
0/200
成为第一个和作者交流的人吧