请教香主或是站内高手!!!

jgalz   2009-3-22 15:50 楼主
大家好,我目前正准备将UCOS 移植到 STM32F103 ,我不太会移植,我参考了网上很多资料,也包括Micrium 官方的针对STM32的UCOS2.86例程,本人想在Micrium 的例程上修改下。

问题是有人说官方的程序有死机及OSCtxSw 函数里 R4,R5的使用破坏数据,还有周公的网站上也提到了死机的问题等,想问问有没有人用过官方的移植例程,用起来怎么样有没有上面提到的问题,要是真有死机或的什么问题,该如何解决?

希望不吝赐教!! 谢谢



以下引用一个大侠的说的话:

最明显的BUG是 IAR PORT os_cpu_a.asm中
OSCtxSw
        LDR     R4, =NVIC_INT_CTRL      ; trigger the PendSV exception (causes context switch)
        LDR     R5, =NVIC_PENDSVSET
        STR     R5, [R4]
        BX      LR
用R4 R5会破坏数据, 我相信Micrum不会犯这样的错误

回复评论 (11)

怎么没人知道么?

                                 自己顶下!!!
点赞  2009-3-23 11:36

我不会uCOS,但看到论坛中已经有很多讨论,也有很多成功的

                                 你先自己搜索一下吧。
点赞  2009-3-23 11:41

如果你想自己做`

就少问多做,觉得麻烦找现成的就ok~
hehe 
点赞  2009-3-23 11:45

问题就在这里

论坛里这方面的东西太多了,有说有错误有说没有的。
我都糊涂了,再有我是不太会移植,就是找的现成的,但是都说有死机现象,也不知道有没有稳定的。
点赞  2009-3-23 13:24

那可以考虑freertos

                                 简单也够稳定,,当你熟悉的差不多了,再回头看看,ucos
点赞  2009-3-23 14:57

感谢

谢谢 open_free 的回复,可是我还是希望能有人回答我关于UCOS的问题
感激不尽!
点赞  2009-3-23 15:24

不说

                                 新版的代码里面已经改正了么。上官网下载最新版的移值代码看看。
点赞  2009-3-23 16:14

不清楚改没改啊。

wlq_9 清楚么
我就是下的Micrium 最新的代码,
OSCtxSw
        LDR     R4, =NVIC_INT_CTRL      ; trigger the PendSV exception (causes context switch)
        LDR     R5, =NVIC_PENDSVSET
        STR     R5, [R4]
        BX      LR
这里还是没有改过啊
点赞  2009-3-23 16:48

刚刚下了官方的2.86的源代码

刚刚下了官方的2.86的源代码
R4,R5的问题已经改过了:

OSCtxSw
    LDR     R0, =NVIC_INT_CTRL                                  ; 
    LDR     R1, =NVIC_PENDSVSET
    STR     R1, [R0]
    BX      LR

不知道更改优先级会死机的问题 该了没有
我还需要测试下,嘿嘿

哎..发现自己原来越懒了,也越来越不相信自己了,决定自己动手移植了

谢谢大家的答复,结贴!
点赞  2009-3-24 22:42

呵呵,我移植成功了,但是是在开发板上实现的。

                                 方便的话,我们可以共同探讨一下,呵呵
点赞  2009-3-24 23:40

你是 用官方的例子改的?

你是 用官方的例子改的?
测试过么 跑起来怎么样?
点赞  2009-3-25 21:38
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复