嵌入式技术论坛
直播中

五斤麻辣油

8年用户 1243经验值
擅长:电源/新能源
私信 关注
[问答]

如何移植RT-thread官方的系统源码到STM32F10x特定的MCU平台中?

如何移植RT-thread官方的系统源码到STM32F10x特定的MCU平台中?

回帖(1)

fanB

2023-5-16 10:31:39
RT-thread官方源码1.0.1的bsp目录中已经包含了STM32F10x平台的移植好的源码,
但却是以STM32F103ZE为平台构建的。如果需要移植到其它STM的MCU上,需要做以下几步:
1.解压官网的1.0.1源码;
2.修改晶振(官网的默认使用8M的外部晶振,我的板子是12M的):
第一步,打开stm32f10x.h,将
#define HSE_VALUE ((uint32_t)8000000) /*!< Value of the External oscillator in Hz */
修改为:
#define HSE_VALUE ((uint32_t)12000000) /*!< Value of the External oscillator in Hz */
第二步,打开system_stm32f10x.c,修改PLL参数,将
/* PLL configuration: PLLCLK = HSE * 9 = 72 MHz */
RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE |
RCC_CFGR_PLLMULL));
RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLMULL9);
修改为:
/* PLL configuration: PLLCLK = HSE * 6 = 72 MHz */
RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE |
RCC_CFGR_PLLMULL));
RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLMULL6);
第三步,打开你已经建立的STM32工程,选择Projects-〉Options for target ***,
找到Target标签,外接的晶振默认还是8MHz,将外接的晶振参数修改为12MHz.
3.修改board.h里的SRAM大小(官方的默认是64K):
#define STM32_SRAM_SIZE 20
#define STM32_SRAM_END (0x20000000 + STM32_SRAM_SIZE * 1024)
4.修改led引脚;打开led.c文件:
#else
#define led1_rcc RCC_APB2Periph_GPIOE
#define led1_gpio GPIOE
#define led1_pin (GPIO_Pin_2)
#define led2_rcc RCC_APB2Periph_GPIOE
#define led2_gpio GPIOE
#define led2_pin (GPIO_Pin_3)
5.烧写运行,就能看到led闪烁了;
如果想进一步裁剪官方系统源码,可以参考rt-thread裁剪示例 位于wiki百科的->RT-Thread组件使用->其它。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分