搜索
bottom↓
回复: 18

请教UCOSII在MPC5604B上移植的过程

[复制链接]

出0入0汤圆

发表于 2012-11-8 18:52:33 | 显示全部楼层 |阅读模式
MPC5604B是基于E200Z0内核 POWER-PC体系的单片机
由于0系列的内核没有部分异常中断源

所以UCOS官网上的MPC55XX系列的模版都不足以让本人成功移植好该OS

希望得到各位大侠的帮助

有移植好的例程最好,谢谢大家
PS:搞这种单片机的人好少啊。。。。。。。。
     

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

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2012-11-20 22:16:30 | 显示全部楼层
ucos的移植只需要一个时钟中断就可以,如果移植不成功,可以把代码发出来大家探讨

出0入0汤圆

发表于 2013-1-27 03:44:55 | 显示全部楼层
我有移植成功的例子,Freescale MPC5604BM27V

出0入0汤圆

发表于 2013-1-27 07:38:29 | 显示全部楼层
既然用powerpc了,为什么不用freescale自家的mqx?

出0入0汤圆

 楼主| 发表于 2013-1-27 13:53:24 | 显示全部楼层
myfHimem 发表于 2012-11-20 22:16
ucos的移植只需要一个时钟中断就可以,如果移植不成功,可以把代码发出来大家探讨 ...

我原来移植一半的代码~,调试的时候老是卡在硬件出错中断那了,可能是汇编的某些原因把,就没继续了

本帖子中包含更多资源

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

x

出0入0汤圆

 楼主| 发表于 2013-1-27 13:54:47 | 显示全部楼层
ggchao 发表于 2013-1-27 03:44
我有移植成功的例子,Freescale MPC5604BM27V

能提供出来学习一下吗?谢谢了,网上多是M3的移植,汇编那部分多有不同

出0入0汤圆

 楼主| 发表于 2013-1-27 13:55:35 | 显示全部楼层
i55x 发表于 2013-1-27 07:38
既然用powerpc了,为什么不用freescale自家的mqx?

正准备研究MQX,当时没时间看呐~不过听说MQX蛮不错的

出0入0汤圆

发表于 2013-1-27 20:46:13 | 显示全部楼层
k11254 发表于 2013-1-27 13:54
能提供出来学习一下吗?谢谢了,网上多是M3的移植,汇编那部分多有不同

这个,代码在公司的内网机,不是很方便贴上来,但是包括所有移植代码全部来自官网上的5534的移植范例,只需要修改极少的内容
有问题的话我还是很乐意交流的

出0入0汤圆

发表于 2013-1-28 23:01:26 | 显示全部楼层
本帖最后由 ggchao 于 2013-1-29 19:43 编辑
k11254 发表于 2013-1-27 13:53
我原来移植一半的代码~,调试的时候老是卡在硬件出错中断那了,可能是汇编的某些原因把,就没继续了 ...


代码我简单看了一下,说说我的一点意见吧
1.首先建议使用MPC5534的移植范例的代码,那个里面的指令是VLE兼容的,只需要修改极少的部分,原因在于5604B有些寄存器设置不支持(吐槽下,5604B是POWERPC里面最入门的芯片之一了),具体修改那些,可以稍后交流;
2.void INTC_INTCInterruptHandler(void),这个函数应该使用OSExtIntISR来替代,原因在于5604B的中断跳转需要保存所有的寄存器,包括Non-volatile类型的
3.干掉OS_SAVE_CONTEXT_WITH_FPRS,不解释了
4.os_cpu_a.inc里面的保存和恢复寄存器组的宏需要简单修改,是删去会引起“程序执行错误中断”的部分
5.OSTickISR函数中去掉下面这一部分:
    lis     r11,OSIntNesting@ha                     # load OSIntNesting
    lbz     r3, OSIntNesting@l(r11)
    addi    r0, r3, 1
    stb     r0, OSIntNesting@l(r11)                 # OSIntNesting++
    以及
    lis     r4, 0x0800                              # load r4 with TSR[DIS] bit (0x08000000)
    mtspr   TSR,r4                                  # clear TSR[DIS] bit
    将上面这两行代码替换为下面的内容
    li      r0, 0                                   # load r0 with 0x0000
    lis     r3, INTC_EOIR@ha                        # get the address of the INTC.EOIR Register ...
    stw     r0, INTC_EOIR@l(r3)                     # and clear the INTC.EOIR register
6.一个中断做tick和SC指令产生软中断我就不多说了,大家都懂得
7.剩下就是调试了,完成上述的几步基本就差不多了,另外,BSP里面的东西能不用就不用了吧,自己写基本的系统初始化函数比较好,而且里面有些东西是不能使用的。
8.GL HF ON POWERPC

出0入0汤圆

发表于 2013-1-28 23:24:48 | 显示全部楼层
我是来听ggchao讲课的……

出0入0汤圆

发表于 2013-1-28 23:33:10 | 显示全部楼层
ustbzm 发表于 2013-1-28 23:24
我是来听ggchao讲课的……

M哥威武,一下就被你识破了

出0入0汤圆

发表于 2014-7-22 21:55:57 | 显示全部楼层
看看,学习一下!

出0入4汤圆

发表于 2014-7-23 11:44:30 | 显示全部楼层
gg威武。学习了

出0入0汤圆

发表于 2015-1-23 16:27:39 | 显示全部楼层
ggchao 发表于 2013-1-28 23:01
代码我简单看了一下,说说我的一点意见吧
1.首先建议使用MPC5534的移植范例的代码,那个里面的指令是VLE ...

你好!
我目前正在移植ucos到MPC5604B上面。
根据你的建议使用了MPC5534的移植范例,已经编译成功了。
简单说一下我的修改:删去了"os_cpu_a.inc"中读写寄存器“SPEFSCR”和“USPRG0”的8行代码;在"MPC5604B_FLASH.lcf"中重定位了".xcptn_vle";其他和你说的一样。
现在遇到的问题是:我是用PIT中断做系统的节拍中断,结果PIT总是进不去,运行后会自动在"OSExtIntISR_NotSaveSP:"处中断,在运行就进不去PIT了。
请问你是怎么处理系统节拍中断的?
感激不尽~

出0入0汤圆

发表于 2015-1-23 16:58:52 | 显示全部楼层
hawthorn 发表于 2015-1-23 16:27
你好!
我目前正在移植ucos到MPC5604B上面。
根据你的建议使用了MPC5534的移植范例,已经编译成功了。

建议你去看看这个帖子
[分享]MPC5604B移植UCOS系统
http://www.amobbs.com/thread-5607890-1-1.html
(出处: amoBBS 阿莫电子论坛)

如果还是不行的话,再进行讨论

出0入0汤圆

发表于 2015-1-23 17:46:39 | 显示全部楼层
ggchao 发表于 2015-1-23 16:58
建议你去看看这个帖子
[分享]MPC5604B移植UCOS系统
http://www.amobbs.com/thread-5607890-1-1.html

这个帖子我看到了,文件也看了。两个是MPC5604B的用户手册,一个实MPC5604B的内核手册,还有一个是移植的论文。我就是参照着这些才写到目前的程度的。
目前的问题就是PIT进不去,只要这个解决了就移植好了。
用"void INTC_INTCInterruptHandler(void)"时没问题,换成"OSExtIntISR"就进不去了。只是中断进不去,系统还在正常运行,运行这个"void  OS_TaskIdle (void *p_arg)"空闲任务。

出0入0汤圆

发表于 2015-1-23 18:01:42 | 显示全部楼层
k11254 发表于 2013-1-27 13:55
正准备研究MQX,当时没时间看呐~不过听说MQX蛮不错的

你好。我正在移植这个,你移植出来了吗?
我用PIT中断做系统节拍,一直进不去,想请教一下。

出0入0汤圆

发表于 2015-1-23 21:37:16 | 显示全部楼层
hawthorn 发表于 2015-1-23 17:46
这个帖子我看到了,文件也看了。两个是MPC5604B的用户手册,一个实MPC5604B的内核手册,还有一个是移植的 ...


你可以参考这个例程中的PIT1的设置。

本帖子中包含更多资源

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

x

出0入0汤圆

发表于 2015-7-13 21:55:49 | 显示全部楼层
还在用HS12的路过
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-3-29 23:06

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

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