这是关于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命令,来测试一下,系统是否运行起来了: