搜索
bottom↓
回复: 17

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

[复制链接]

出0入0汤圆

发表于 2016-10-21 15:47:00 | 显示全部楼层 |阅读模式
本帖最后由 prince2010 于 2016-10-22 09:51 编辑

如题~~~~~~~

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






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

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

 楼主| 发表于 2016-10-21 15:52:10 | 显示全部楼层
有移植经验的兄弟,进来聊聊

出0入0汤圆

发表于 2016-10-21 18:12:32 | 显示全部楼层
有同芯片的模板的话就省事,是全新的移植估计有难度

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

出0入0汤圆

 楼主| 发表于 2016-10-21 20:37:25 | 显示全部楼层
duxingkei 发表于 2016-10-21 18:12
有同芯片的模板的话就省事,是全新的移植估计有难度

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

用的是飞思卡尔的片子。

出0入0汤圆

发表于 2016-10-21 22:56:20 | 显示全部楼层
复制粘贴就算完事~~

出0入0汤圆

 楼主| 发表于 2016-10-22 09:34:47 | 显示全部楼层
负西弱 发表于 2016-10-21 22:56
复制粘贴就算完事~~

太easy了吧?

能不能稍微介绍一下?

出0入8汤圆

发表于 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,
要想最小系统跑起来,就需要 定时器中断,只要这个就好了。
这时候,可以再点个灯,或者串口输出。

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

出0入8汤圆

发表于 2016-10-22 10:00:05 | 显示全部楼层
另外,多数情况,不需要我们去自己移植,
我们的工作,严格来讲,叫克隆,
移植到新的 MCU,交给 RTOS 开发人员来完成就好了,
你只需克隆 类似的 BSP。

出0入0汤圆

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

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

出0入8汤圆

发表于 2016-10-22 10:51:30 | 显示全部楼层
prince2010 发表于 2016-10-22 10:39
我用的是MPC5604,power架构的,去RTT官网找了一下,貌似没有......


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

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

出0入0汤圆

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

出0入31汤圆

发表于 2016-10-22 11:04:29 来自手机 | 显示全部楼层
中断是必须的,其它外设看情况了

出0入0汤圆

 楼主| 发表于 2016-10-22 15:11:25 | 显示全部楼层
zchong 发表于 2016-10-22 11:04
中断是必须的,其它外设看情况了

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

出0入8汤圆

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

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

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

出0入0汤圆

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




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

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




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入31汤圆

发表于 2016-10-22 16:41:07 来自手机 | 显示全部楼层
prince2010 发表于 2016-10-22 15:11
你所说的“中断”,是包含外设中断(比如串口中断),还是单单指系统时钟SysTick中断? ...

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

出0入0汤圆

发表于 2016-12-27 16:52:35 | 显示全部楼层
如果使用STM32的话,下个CubeMX,建立个工程,选择FreeRTOS,生成代码,就移植成功了,就是这么简单。

出0入0汤圆

发表于 2016-12-27 16:55:19 | 显示全部楼层
prince2010 发表于 2016-10-22 15:31
已有潭里兄弟帮忙下了个MPC5604的ucos例程,目前自己开了四个任务,点亮LED秒闪没有问 ...

串口可以这么写,建立个消息队列,串口中断,将寄存器的输据发送到消息队列中,建立个任务,任务每多少tick接收一次消息队列,解析数据。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-25 01:05

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表