因为工程的需要用到操作系统,这里可以选择freeRtos或者RT-Thread。我这里选用了RT-Thread。下面就如何用移植,分享如下:
1、打开一个cw32l083的blink工程。

2、打开manage Run-Time Environment工具,选择RT-Thread,我们这里只选择kenel。

3、打开RTOS目录下的board.c文件,添加main.h头文件的引用、添加系统心路中断函数、添加systick初始化。

4、打开rtthconfig.h中内存管理的选项:

5、注释掉interrupts_cw32l083.c中HardFault_Handler、PendSV_Handler两个函数,避免出现得新定义的错误

6、编译后零错误零警告:

8、在main.c中添加rtthreah.h的头文件引用,再添回两个任务函数,并在主程序中启动:
struct rt_thread thread1;
struct rt_thread thread2;
char thread1_stack[512];
char thread2_stack[512];
void thread1_entry(void*param)
{
while (1)
{
printf("thread1 is runningrn");
rt_thread_mdelay(200);
}
}
void thread2_entry(void*param)
{
while (1)
{
printf("thread2is runningrn");
rt_thread_mdelay(400);
}
}
void thread1_init(void)
{
rt_err_t fd=rt_thread_init(&thread1,"thread1",&thread1_entry,0,&thread1_stack[0],sizeof(thread1_stack),10,10);
if(fd < 0)
{
printf("thread1 init is fail rn");
}
else
{
printf("thread1init is success rn");
}
rt_thread_startup(&thread1);
}
void thread2_init(void)
{
rt_err_t fd=rt_thread_init(&thread2,"thread2",&thread2_entry,0,&thread2_stack[0],sizeof(thread2_stack),10,10);
if(fd < 0)
{
printf("thread2 init is fail rn");
}
else
{
printf("thread2init is success rn");
}
rt_thread_startup(&thread2);
}
int32_t main(void)
{
//配置RCC
RCC_Configuration();
//配置GPIO
GPIO_Configuration();
//配置UART
UART_Configuration();
printf("
CW32L083 UART Printf Example
");
thread1_init();
thread2_init();
while(1)
{
}
}
【实验效果】
编译后下载到开发板,打开串口综端,就可以看到两个任打印出相应的信息。

【总结】
移植RT-Threadg nano到cw32l083的主要的就是需要添加systick定时器的中断函数,以及systick的配置。
审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
操作系统
+关注
关注
37文章
7472浏览量
129875 -
移植
+关注
关注
1文章
418浏览量
29659 -
定时器
+关注
关注
23文章
3382浏览量
125440 -
FreeRTOS
+关注
关注
14文章
502浏览量
67583 -
RT-Thread
+关注
关注
33文章
1671浏览量
45670
发布评论请先 登录
相关推荐
热点推荐
i.MX RT1170:VGLite移植RT-Thread Nano过程讲解(上)
RT-Thread 是国人自主研发的开源实时操作系统(RTOS),RT-Thread Nano 是极简版的硬实时内核,内存占用小,移植简单。VGLite 是 NXP 提供的轻量级 2D
i.MX RT1170:VGLite移植RT-Thread Nano过程讲解(下)
上篇介绍了如何移植 RT-Thread Nano 内核与 Finsh 控制台到 RT1170。本篇继续介绍如何将 NXP 官方的 VGLit
【国产MCU移植】HC32F460基于Keil MDK 移植 RT-Thread Nano
【国产MCU移植】HC32F460基于Keil MDK 移植 RT-Thread Nano
发表于 11-18 18:51
•67次下载
【国产MCU系列】在 HK32F030 上移植 RT-Thread Nano
如需下载相关开源资料请点击阅读原文这是一个航顺 HK32F030 的 RT-Thread Nano 移植示例,记录了在 Keil 裸机工程的基础上进行 RT-Thread
发表于 11-21 18:51
•42次下载
STM32 RT-Thread Nano(1)基于 Keil MDK 移植
本文介绍如何基于 Keil MDK 移植 RT-Thread Nano ,并以一个 stm32f103 的基础工程作为示例进行讲解。开发平台:Keil MDK硬件平台:XNUCLEO-F103RB
发表于 12-02 16:06
•13次下载
【国产MCU系列】在 HK32F030 上移植 RT-Thread Nano
这是一个航顺 HK32F030 的 RT-Thread Nano 移植示例,记录了在 Keil 裸机工程的基础上进行 RT-Thread Nano
发表于 01-25 17:42
•4次下载
基于 Keil MDK 移植 RT-Thread Nano
本文介绍如何基于 Keil MDK 移植 RT-Thread Nano ,并以一个 stm32f103 的基础工程作为示例进行讲解。 RT-Thread
发表于 01-26 17:04
•17次下载
移植RT-Thread nano到CW32L083
评论