打印

Cortex M3 上UCOSII移植存在严重错误

[复制链接]
2550|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yan211|  楼主 | 2008-6-21 09:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
   从其官方网站下载下来的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的优先级设置为最低,当然现有代码还要做相应调整。若有异议,请拍砖。

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

14

帖子

0

粉丝