[RISC-V MCU 应用开发] MRS的RTOS工程,能不能提供两三个任务的模板

[复制链接]
801|4
手机看帖
扫描二维码
随时随地手机跟帖
gaobq|  楼主 | 2022-3-29 16:31 | 显示全部楼层 |阅读模式
MRS, RS, os
MRS是各非常快捷的IDE,并且移植了多种流行的RTOS,我想使用CH32V307+RT-Thread,生成工程后可以编译运行,如果不使用RTOST,自己建个文件,添加进工程就可以干活了。要使用RTT,不知道新建任务函数,变量等放在哪个文件中合适,或者需要自己新建个文件,总觉打乱工程模板设计者的初心。目前的工程只有一个任务,位于components.c中,如下:
void rt_application_init(void)
{
    rt_thread_t tid;

#ifdef RT_USING_HEAP
    tid = rt_thread_create("main", main_thread_entry, RT_NULL,
                           RT_MAIN_THREAD_STACK_SIZE, RT_MAIN_THREAD_PRIORITY, 20);
    RT_ASSERT(tid != RT_NULL);
#else
    rt_err_t result;

    tid = &main_thread;
    result = rt_thread_init(tid, "main", main_thread_entry, RT_NULL,
                            main_stack, sizeof(main_stack), RT_MAIN_THREAD_PRIORITY, 20);
    RT_ASSERT(result == RT_EOK);
        
    /* if not define RT_USING_HEAP, using to eliminate the warning */
    (void)result;
#endif

    rt_thread_startup(tid);
}

个人感觉,这个是系统文件,最好将自己添加的任务、函数、变量、定义单独拿出来放在新建的文件中。
希望wch能提供一个两三个任务的模板,用户可以快速模仿、修改、开发,谢谢!

使用特权

评论回复

相关帖子

WCHTech2| | 2022-3-29 17:27 | 显示全部楼层
您好,在rtt中主函数可以是被调度的任务之一,这里的创建主函数任务格式也是rtt源文件中的方式,如果主函数是个不需要的常驻的任务,会在return后被回收。用户自己的任务可以在主函数初始化中动态或者静态的创建,类似于其他实时操作系统,定义一个任务栈和一个任务线程指针后调用静态或者动态的创建任务函数,创建好的任务调用rt_thread_startup加入就绪队列即可。MRS例程中除了主函数任务,还有shell、idle等,在其他位置创建,可以参考新建任务的过程,后期我们可以在主函数中多新建几个任务供参考。

使用特权

评论回复
gaobq|  楼主 | 2022-3-29 17:38 | 显示全部楼层
@WCHTech2,谢谢,我有想法了,单独建一个Task.c,所有干活的任务都放在Task.c中,所有任务的建立和加入就绪,均放在main函数中,main建立完多任务,就回收。

使用特权

评论回复
asmine| | 2022-4-1 15:29 | 显示全部楼层
这就是习惯问题

使用特权

评论回复
foxsbig| | 2022-4-6 13:53 | 显示全部楼层
这不算作是问题吧

使用特权

评论回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则