返回该小组首页 回复主题
yan211

yan211

小组等级:     E币:84  (E币换礼)

#1楼主:Cortex M3 上UCOSII移植存在严重错误

文章发表于:2008-06-23 11:53

从其官方网站下载下来的UCOSII针对Cortex M3的移植存在问题。
//NVIC_SYSPRI2    EQU     0xE000ED20                              ; System priority register ( 2 ).
NVIC_SYSPRI2    EQU     0xE000ED22                              ; System priority register (yan).
//NVIC_PENDSV_PRI EQU           0x00                              ; PendSV priority value (highest).
NVIC_PENDSV_PRI EQU           0xFF                              ; PendSV priority value (LOWEST yan).
  问题一:PSV异常地址错误,其二将任务调度的异常设置为最高优先级,这样存在问题。若一个 低优先级任务中要求任务调度,PSV异常会立马执行 ,执行完毕后不是回到原异常处理 ,而是执行用户任务。这在<definitive guide of cortex m3>中有详细的描述,很基本的问题。不详细是移植者的水平问题,而且从其注释和变量定义来看,估计是有意为之。
  我认为应将PSV的优先级设置为最低,当然现有代码还要做相应调整。若有异议,请拍砖。

bobi2005

   小组等级:    E币:803  (E币换礼)

#2

文章发表于:2008-06-23 17:30

不是把,偶还准备用了,看来得好好研究一下拉

chinashrich

   小组等级:    E币:275  (E币换礼)

#3

文章发表于:2008-06-26 15:32

没有免费的午餐,还得自己动动手~

bufflo

   小组等级:    E币:59  (E币换礼)

#4

文章发表于:2008-07-02 09:21

强烈支持,楼主还是很给面子,这家公司就是Micrium。我也下载调试了,问题好像不止这一点。这个移植代码本身的问题还没深究,但是它还是针对这家公司开发的开发板,可重入性非常差。

强烈鄙视这种行为!!!!!

like027

   小组等级:    E币:158  (E币换礼)

#5

文章发表于:2008-07-15 17:01

楼主正解。

NVIC_SYSPRI2 这个的地址非0xE000ED20而是0xE000ED22.

应该将PendSV 的优先级排到所有中断的最后.

总共 , 当前 /

快速回复主题--如果想加入编辑器功能,建议使用 [高级回复]

您目前还不是小组成员,请先加入

回复贴子区

用户名:    您没有注册?

密码:    忘记了密码?

内容:

  • DesignDesign
  • HTMLHTML

浏览该小组的用户还看过...

设计资源与分销