打印
[开发资料]

Ubuntu+VSCODE CW32L083移植RT-Thread

[复制链接]
40245|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lulugl|  楼主 | 2023-7-3 17:16 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
#申请原创# #有奖活动#[url=home.php?mod=space&uid=760190]@21小跑堂 [/url]
准备cw32l083 printf的工程包一个。
准备RTthread nano工程源码。(可以复制一份mdk下的源码)也可以去官网下载一份:

用vscode打开cw32l083工程,确保编译通过:


在Libraries文件包下新建一个RTOS的文件夹,并把rtthread的源码下的src、include拷贝到RTOS文件夹下。

新建一个libcpu文件夹,把源码中的libcpu-arm-cortex-m0下的cpuport.c、context_gcc.S复制过来。同时把context_gcc.S重命名为contex_gcc.s。

从MDK移植过的工程中复制一份boar.c、rtconfig.h到app目录下。

修改Libraries.mk,把新加进来的文件加入

修改board.h,添加app_main.h头文件引用。

添加systick回函函数与初始化:

注释inrerrupts_cw32l083.c下的HardFault_Handler函数与void PendSV_Handler(void),避免函数的重复定义。
到此,我们的移植就告一断落,我们编后显示无警告,无错误:

在主函数中添加rtthread.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\r\n");
GPIO_TogglePin(CW_GPIOC, GPIO_PIN_3);
rt_thread_mdelay(1000);
}

}

void thread2_entry(void*param)
{

while (1)
{
GPIO_TogglePin(CW_GPIOC, GPIO_PIN_2);
rt_thread_mdelay(500);
}

}

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("thread2 init is fail \r\n");
}
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 \r\n");
}
rt_thread_startup(&thread2);
}

编译后下载,就可以看到两个LED闪灯同时以不同的速度闪烁,达到预期效果。附工程:
cw32l083_gcc.zip (2.08 MB)

使用特权

评论回复
沙发
LOVEEVER| | 2023-10-20 08:09 | 只看该作者
这个时实系统运行速率有多快

使用特权

评论回复
板凳
lulugl|  楼主 | 2023-10-20 08:47 | 只看该作者
LOVEEVER 发表于 2023-10-20 08:09
这个时实系统运行速率有多快

手册上可以查到的,应该是64M吧.

使用特权

评论回复
地板
小小蚂蚁举千斤| | 2023-10-23 14:06 | 只看该作者
lulugl 发表于 2023-10-20 08:47
手册上可以查到的,应该是64M吧.

对于时实部分确实64M非常快了

使用特权

评论回复
5
星辰大海不退缩| | 2023-10-25 13:31 | 只看该作者
LOVEEVER 发表于 2023-10-20 08:09
这个时实系统运行速率有多快

如果是时实系统的话一般1ms发送一次没有问题

使用特权

评论回复
6
中国龙芯CDX| | 2023-11-14 09:40 | 只看该作者
1ms的时间差可以决定着设备的性能和响应速度

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

145

主题

715

帖子

9

粉丝