RTOS移植到一款单片机,怎样才算移植完成?
本帖最后由 prince2010 于 2016-10-22 09:51 编辑如题~~~~~~~
特别是片内外设的驱动,以及中断处理方面,算不算在移植工作范围之内?
{:handshake:}
附:话说移植一款RTOS到一款新单片机,需要哪些资料(知识结构),需要哪些工具....... 有移植经验的兄弟,进来聊聊{:handshake:} 有同芯片的模板的话就省事,是全新的移植估计有难度
建议用rtthread OS,完全开源,支持的arm芯片也多 duxingkei 发表于 2016-10-21 18:12
有同芯片的模板的话就省事,是全新的移植估计有难度
建议用rtthread OS,完全开源,支持的arm芯片也多 ...
用的是飞思卡尔的片子。 复制粘贴就算完事~~ 负西弱 发表于 2016-10-21 22:56
复制粘贴就算完事~~
太easy了吧?
能不能稍微介绍一下? 本帖最后由 security 于 2016-10-22 10:02 编辑
prince2010 发表于 2016-10-21 20:37
用的是飞思卡尔的片子。
FSL 的,RT-Thread 也有现成的参考 BSP。
推荐用 RT-Thread 吧,去下载看看,要想了解移植内幕的话,手册里面有较为直观详细的移植说明。
至于怎么才算移植完成,最小系统能跑起来就 OK,
要想最小系统跑起来,就需要 定时器中断,只要这个就好了。
这时候,可以再点个灯,或者串口输出。
其他的外设,是后面的开发工作。 另外,多数情况,不需要我们去自己移植,
我们的工作,严格来讲,叫克隆,
移植到新的 MCU,交给 RTOS 开发人员来完成就好了,
你只需克隆 类似的 BSP。 security 发表于 2016-10-22 09:58
FSL 的,RT-Thread 也有现成的参考 BSP。
推荐用 RT-Thread 吧,去下载看看,要想了解移植内幕的话,手册 ...
我用的是MPC5604,power架构的,去RTT官网找了一下,貌似没有...... prince2010 发表于 2016-10-22 10:39
我用的是MPC5604,power架构的,去RTT官网找了一下,貌似没有......
那你可以去官网论坛发帖求助一下,
或者你想用 ucos 的话,去它的官网,看看有没有现成的类似的 BSP。
一般都是参考 BSP,而自己移植全新的 MCU,
你需要去细看 RTOS 的手册,以及深谙 MCU 的架构,
这些,RTOS 开发人员会比我们来得专业,换句话说,就是做得快。 用到的部分能正常跑起来就算移植完成了。
主要看RTOS是否支持该架构,如果不支持的话需要修改内核代码,这是“核心移植”,一般人搞不定。
如果RTOS支持该架构但没有该型号CPU的移植历史,需要修改硬件接口层(HIL),这是“深度移植”,很多人可以搞定。
如果RTOS已经有该型号CPU的移植模板,这是“普通移植”,基本上就复制粘贴,没有人搞不定的。
中断是必须的,其它外设看情况了 zchong 发表于 2016-10-22 11:04
中断是必须的,其它外设看情况了
你所说的“中断”,是包含外设中断(比如串口中断),还是单单指系统时钟SysTick中断? prince2010 发表于 2016-10-22 15:11
你所说的“中断”,是包含外设中断(比如串口中断),还是单单指系统时钟SysTick中断? ...
你换个角度想想,RTOS 跟串口有什么关系吗?
没有的。
任务的运行是靠 tick 定时器来驱动的。
所以,除非 RTOS 的组件用到了串口,那就要准备好串口,例如 printf、shell,但这可以后面再完善的。 security 发表于 2016-10-22 15:19
你换个角度想想,RTOS 跟串口有什么关系吗?
没有的。
任务的运行是靠 tick 定时器来驱动的。
{:handshake:}
已有潭里兄弟帮忙下了个MPC5604的ucos例程,目前自己开了四个任务,点亮LED秒闪没有问题,现在准备把串口中断挂接到ucos上,就不会搞了.....
裸机下的串口中断例程也有,就是和ucos例程搞不到一起{:sad:}
prince2010 发表于 2016-10-22 15:11
你所说的“中断”,是包含外设中断(比如串口中断),还是单单指系统时钟SysTick中断? ...
一般的系统,中断是统一处理的,底层的中断挂接,中断使能与屏蔽等函数要实现,给用户一个统一的接口 如果使用STM32的话,下个CubeMX,建立个工程,选择FreeRTOS,生成代码,就移植成功了,就是这么简单。 prince2010 发表于 2016-10-22 15:31
已有潭里兄弟帮忙下了个MPC5604的ucos例程,目前自己开了四个任务,点亮LED秒闪没有问 ...
串口可以这么写,建立个消息队列,串口中断,将寄存器的输据发送到消息队列中,建立个任务,任务每多少tick接收一次消息队列,解析数据。
页:
[1]