prince2010 发表于 2016-10-21 15:47:00

RTOS移植到一款单片机,怎样才算移植完成?

本帖最后由 prince2010 于 2016-10-22 09:51 编辑

如题~~~~~~~

特别是片内外设的驱动,以及中断处理方面,算不算在移植工作范围之内?

{:handshake:}




附:话说移植一款RTOS到一款新单片机,需要哪些资料(知识结构),需要哪些工具.......

prince2010 发表于 2016-10-21 15:52:10

有移植经验的兄弟,进来聊聊{:handshake:}

duxingkei 发表于 2016-10-21 18:12:32

有同芯片的模板的话就省事,是全新的移植估计有难度

建议用rtthread OS,完全开源,支持的arm芯片也多

prince2010 发表于 2016-10-21 20:37:25

duxingkei 发表于 2016-10-21 18:12
有同芯片的模板的话就省事,是全新的移植估计有难度

建议用rtthread OS,完全开源,支持的arm芯片也多 ...

用的是飞思卡尔的片子。

负西弱 发表于 2016-10-21 22:56:20

复制粘贴就算完事~~

prince2010 发表于 2016-10-22 09:34:47

负西弱 发表于 2016-10-21 22:56
复制粘贴就算完事~~

太easy了吧?

能不能稍微介绍一下?

security 发表于 2016-10-22 09:58:06

本帖最后由 security 于 2016-10-22 10:02 编辑

prince2010 发表于 2016-10-21 20:37
用的是飞思卡尔的片子。

FSL 的,RT-Thread 也有现成的参考 BSP。
推荐用 RT-Thread 吧,去下载看看,要想了解移植内幕的话,手册里面有较为直观详细的移植说明。

至于怎么才算移植完成,最小系统能跑起来就 OK,
要想最小系统跑起来,就需要 定时器中断,只要这个就好了。
这时候,可以再点个灯,或者串口输出。

其他的外设,是后面的开发工作。

security 发表于 2016-10-22 10:00:05

另外,多数情况,不需要我们去自己移植,
我们的工作,严格来讲,叫克隆,
移植到新的 MCU,交给 RTOS 开发人员来完成就好了,
你只需克隆 类似的 BSP。

prince2010 发表于 2016-10-22 10:39:27

security 发表于 2016-10-22 09:58
FSL 的,RT-Thread 也有现成的参考 BSP。
推荐用 RT-Thread 吧,去下载看看,要想了解移植内幕的话,手册 ...

我用的是MPC5604,power架构的,去RTT官网找了一下,貌似没有......

security 发表于 2016-10-22 10:51:30

prince2010 发表于 2016-10-22 10:39
我用的是MPC5604,power架构的,去RTT官网找了一下,貌似没有......

那你可以去官网论坛发帖求助一下,
或者你想用 ucos 的话,去它的官网,看看有没有现成的类似的 BSP。

一般都是参考 BSP,而自己移植全新的 MCU,
你需要去细看 RTOS 的手册,以及深谙 MCU 的架构,
这些,RTOS 开发人员会比我们来得专业,换句话说,就是做得快。

laoshuhunya 发表于 2016-10-22 11:02:56

用到的部分能正常跑起来就算移植完成了。
主要看RTOS是否支持该架构,如果不支持的话需要修改内核代码,这是“核心移植”,一般人搞不定。
如果RTOS支持该架构但没有该型号CPU的移植历史,需要修改硬件接口层(HIL),这是“深度移植”,很多人可以搞定。
如果RTOS已经有该型号CPU的移植模板,这是“普通移植”,基本上就复制粘贴,没有人搞不定的。

zchong 发表于 2016-10-22 11:04:29

中断是必须的,其它外设看情况了

prince2010 发表于 2016-10-22 15:11:25

zchong 发表于 2016-10-22 11:04
中断是必须的,其它外设看情况了

你所说的“中断”,是包含外设中断(比如串口中断),还是单单指系统时钟SysTick中断?

security 发表于 2016-10-22 15:19:01

prince2010 发表于 2016-10-22 15:11
你所说的“中断”,是包含外设中断(比如串口中断),还是单单指系统时钟SysTick中断? ...

你换个角度想想,RTOS 跟串口有什么关系吗?
没有的。
任务的运行是靠 tick 定时器来驱动的。

所以,除非 RTOS 的组件用到了串口,那就要准备好串口,例如 printf、shell,但这可以后面再完善的。

prince2010 发表于 2016-10-22 15:31:31

security 发表于 2016-10-22 15:19
你换个角度想想,RTOS 跟串口有什么关系吗?
没有的。
任务的运行是靠 tick 定时器来驱动的。


{:handshake:}


已有潭里兄弟帮忙下了个MPC5604的ucos例程,目前自己开了四个任务,点亮LED秒闪没有问题,现在准备把串口中断挂接到ucos上,就不会搞了.....

裸机下的串口中断例程也有,就是和ucos例程搞不到一起{:sad:}




zchong 发表于 2016-10-22 16:41:07

prince2010 发表于 2016-10-22 15:11
你所说的“中断”,是包含外设中断(比如串口中断),还是单单指系统时钟SysTick中断? ...

一般的系统,中断是统一处理的,底层的中断挂接,中断使能与屏蔽等函数要实现,给用户一个统一的接口

匿名顽徒 发表于 2016-12-27 16:52:35

如果使用STM32的话,下个CubeMX,建立个工程,选择FreeRTOS,生成代码,就移植成功了,就是这么简单。

匿名顽徒 发表于 2016-12-27 16:55:19

prince2010 发表于 2016-10-22 15:31
已有潭里兄弟帮忙下了个MPC5604的ucos例程,目前自己开了四个任务,点亮LED秒闪没有问 ...

串口可以这么写,建立个消息队列,串口中断,将寄存器的输据发送到消息队列中,建立个任务,任务每多少tick接收一次消息队列,解析数据。
页: [1]
查看完整版本: RTOS移植到一款单片机,怎样才算移植完成?