这篇来学习下CW32L052开发板移植rt-thread nano系统。
一、创建rt-thread nano项目工程
项目工程在上篇https://bbs.eeworld.com.cn/thread-1250118-1-1.html项目基础上增加rt-thread nano文件
1.1、添加源文件
增加源文件有两种方式,一种是rt-thead 官网下载源文件手动添加,一种是IDE安装,MDK软件pack安装,这里使用pack安装的方式。
下载rt-thread软件包
添加内核源文件到项目
添加后的项目文件
1.2、修改文件
1.2.1、将PendSV_Handler函数屏蔽
1.2.2、将HardFault_Handler函数屏蔽
1.2.3、将SysTick_Handler函数屏蔽
1.2.4、修改内存堆栈空间 RT_HEAP_SIZE
CW32L050内部的ram有8K,修改修改这里。
1.2.5、添加硬件初始化和SysTick_Handler函数
1.3、测试程序
修改main.c主程序
#include "main.h"
#include "rtthread.h"
void rcc_config(void)
{
uint8_t res = 0U;
RCC_AHBPeriphClk_Enable(RCC_AHB_PERIPH_FLASH, ENABLE);
RCC_LSI_Enable( ); //开启外部高速时钟LSI
res = RCC_SysClk_Switch( RCC_SYSCLKSRC_LSI ); //切换系统时钟到LSI
if( res == 0x00 ) //系统时钟切换成功
{
RCC_HSI_Disable(); //切换时钟到PLL后关闭源时钟HSI
FirmwareDelay( 400 ); //about 100mS
}
RCC_HSI_Enable( RCC_HSIOSC_DIV1 ); //开启内部高速时钟HSI = HSIOSC / 2
FLASH_SetLatency(FLASH_Latency_3);
res = RCC_SysClk_Switch( RCC_SYSCLKSRC_HSI ); //切换系统时钟到HSI
if( res == 0x00 ) //系统时钟切换成功
{
RCC_LSI_Disable(); //切换时钟到HSI后关闭LSI时钟
FirmwareDelay( 275000 ); //about 100mS
}
RCC_HCLKPRS_Config(RCC_HCLK_DIV1);
RCC_HCLK_OUT(); //通过PA04观察HCLK频率
}
int32_t main(void)
{
while (1)
{
led2_tog();
rt_thread_mdelay(100);
}
}
二、程序运行
修改完成后,编译、下载,开发板上电复位。运行视频如下:
三、附件
引用: 火辣西米秀 发表于 2023-7-19 22:56 MDK软件pack安装到不复杂, 修改文件为什么先将PendSV_Handler函数屏蔽?
rt-thread nano 系统自带这个函数,需要屏蔽创建工程时默认的这个函数