[MCU] 【CW32L052测评】 移植rt-thread nano

TL-LED   2023-7-19 13:07 楼主

这篇来学习下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软件包

001.png

添加内核源文件到项目

002.png

 

添加后的项目文件

003.png

 

1.2、修改文件

1.2.1、将PendSV_Handler函数屏蔽

004.png

1.2.2、将HardFault_Handler函数屏蔽

005.png

1.2.3、将SysTick_Handler函数屏蔽

006.png

1.2.4、修改内存堆栈空间 RT_HEAP_SIZE

CW32L050内部的ram有8K,修改修改这里。

007.png

1.2.5、添加硬件初始化和SysTick_Handler函数

009.png

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);
    }
}

 

二、程序运行

 

修改完成后,编译、下载,开发板上电复位。运行视频如下:

cw32

 

 

三、附件

源代码:
cw32l052_rt-thread_nano_20230719.rar (950.65 KB)
(下载次数: 3, 2023-7-19 11:27 上传)

回复评论 (2)

MDK软件pack安装到不复杂,

修改文件为什么先将PendSV_Handler函数屏蔽?

点赞  2023-7-19 22:56
引用: 火辣西米秀 发表于 2023-7-19 22:56 MDK软件pack安装到不复杂, 修改文件为什么先将PendSV_Handler函数屏蔽?

rt-thread nano 系统自带这个函数,需要屏蔽创建工程时默认的这个函数

点赞  2023-7-20 06:36
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复