這是關(guān)于bsp定制工程模板配置篇的姊妹篇,先說下分開聊的原因,這一篇的內(nèi)容可能并不多,但是可能有點難,因為涉及到 Kconfig、SconsCript、Menuconfig等等有關(guān)工程構(gòu)建以及腳本鏈接的知識,這些對于單片機開發(fā)者來講還是比較陌生的,但是對于搞嵌入式linux驅(qū)動的小伙伴來講,就輕車熟路了。我會盡量避開這些講這么些漁,你只要知道它是條魚就可以了,感興趣的可以參考官方文檔,講的也不是特別細(xì),但是夠用!
廢話少說,接上篇,CubeMx配置完成后,點擊生成代碼,并進行以下的代碼搬運工作:
在 board.c 文件中存放了函數(shù) SystemClock_Config() ,該函數(shù)負(fù)責(zé)初始化系統(tǒng)時鐘。當(dāng)使用 CubeMX 工具對系統(tǒng)時鐘重新配置的時候,需要更新這個函數(shù)。
該函數(shù)由 CubeMX 工具生成,默認(rèn)存放在board/CubeMX_Config/Src/main.c 文件中。但是該文件并沒有被包含到我們的工程中,因此需要將這個函數(shù)從 main.c 中拷貝到 board.c 文件中:
在 board.h 文件中配置了 FLASH 和 RAM 的相關(guān)參數(shù),這個文件中需要修改的是 STM32_FLASH_SIZE 和 STM32_SRAM_SIZE 這兩個宏控制的參數(shù):
修改工程腳本文件:
修改工程模板文件:
執(zhí)行menuconfig配置功能:
用scons --target=mdk5 命令編譯工程:
至此,關(guān)于bsp定制的相關(guān)工作也就全部完成了,后面一個很重要的自然是,接上我的實際的開發(fā)板,來測試下,系統(tǒng)是否運行起來了,首先連接仿真器將編譯后的燒錄程序下載到我們的開發(fā)板中:
要測試系統(tǒng)是否運轉(zhuǎn)正常,主要是關(guān)注finsh后臺打印的信息以及cmd命令是否能正常執(zhí)行,這里要接finsh需要將串口uart1接到電腦,finsh串口功能默認(rèn)的波特率配置如下:
BAUD_RATE_115200, /* 115200 bits/s */
DATA_BITS_8, /* 8 databits */
STOP_BITS_1, /* 1 stopbit */
PARITY_NONE, /* No parity */
這里需要用到usb轉(zhuǎn)串口的功能,將我們串口連接到電腦的終端輸出軟件上:
接下來,我們要通過rtthread提供的msh命令,來測試一下,系統(tǒng)是否運行起來了: