[开发资料]

Ubuntu+VSCODE CW32L083移植RT-Thread

[复制链接]
40520|5
手机看帖
扫描二维码
随时随地手机跟帖
lulugl|  楼主 | 2023-7-3 17:16 | 显示全部楼层 |阅读模式
#申请原创# #有奖活动#[url=home.php?mod=space&uid=760190]@21小跑堂 [/url]
准备cw32l083 printf的工程包一个。
准备RTthread nano工程源码。(可以复制一份mdk下的源码)也可以去官网下载一份:
54f7d1472838886eb0787094ec0374cc
用vscode打开cw32l083工程,确保编译通过:
6cb158bab1ce5183c5e653405c73a737
6bac677ab33ad743b69981317bea3fd4
在Libraries文件包下新建一个RTOS的文件夹,并把rtthread的源码下的src、include拷贝到RTOS文件夹下。
5b758d2fda1b310e83e44caacd534e61
新建一个libcpu文件夹,把源码中的libcpu-arm-cortex-m0下的cpuport.c、context_gcc.S复制过来。同时把context_gcc.S重命名为contex_gcc.s。
405969d6bba1d400a18fb3e5e3fafc74
从MDK移植过的工程中复制一份boar.c、rtconfig.h到app目录下。
41e0e46fa73308386c87e0dde716628c
修改Libraries.mk,把新加进来的文件加入
ce52626a59b9773f7fa980bbc29d1d79
修改board.h,添加app_main.h头文件引用。
09593b2a0fce43b68cbceee26d26997c
添加systick回函函数与初始化:
21be993b3235c6c37a0727318557ea91
注释inrerrupts_cw32l083.c下的HardFault_Handler函数与void PendSV_Handler(void),避免函数的重复定义。
到此,我们的移植就告一断落,我们编后显示无警告,无错误:
2f0c5b29d5b22923c23abf41b4484742
在主函数中添加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吧.

使用特权

评论回复
lulugl 发表于 2023-10-20 08:47
手册上可以查到的,应该是64M吧.

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

使用特权

评论回复
LOVEEVER 发表于 2023-10-20 08:09
这个时实系统运行速率有多快

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

使用特权

评论回复
中国龙芯CDX| | 2023-11-14 09:40 | 显示全部楼层
1ms的时间差可以决定着设备的性能和响应速度

使用特权

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

本版积分规则

160

主题

765

帖子

10

粉丝