打印
[ZLG-MCU]

ucos-ii 任务间通信问题

[复制链接]
4193|9
手机看帖
扫描二维码
随时随地手机跟帖
楼主
zlgarm| | 2008-4-23 09:32 | 显示全部楼层 回帖奖励 |倒序浏览

可能的原因

可能的原因:
1)中断里面有没有按ucos-ii规范"OSIntNesting++",最后“OSIntExit()”?
2)主堆栈和任务堆栈设得够不够大?
3)有没有使用较大的局部变量数组?如果局部变量较多会使堆栈溢出。
4)“OS_CRITICAL_INT_PRIO”是否为0 ?
5)建议首先把统计任务、任务A去掉,看看结果。

(zlgarm_zsg)

使用特权

评论回复
沙发
zlgarm| | 2008-4-23 17:07 | 显示全部楼层

回答

    官方的移植模板有多处BUG,如使用不同优先级的中断可能死机,优化编译可能死机等。OS_CRITICAL_INT_PRIO的详细说明请看《ARM Cortex-M3开发指南》一书,关于os_cpu_a.asm的说明。

(zlgarm_zsg)

使用特权

评论回复
板凳
zlgarm| | 2008-7-2 08:36 | 显示全部楼层

关于OS_CRITICAL_INT_PRIO

    如果“OS_CRITICAL_INT_PRIO EQU(1<<5)”,则1和低于1的中断优先级被UCOS-II开关管理;如果“OS_CRITICAL_INT_PRIO EQU(0<<5)”,则所有中断被UCOS-II开关管理。这样做的原因是要留一些中断给电机、变频器等苛刻的中断使用。
    IAR的1.0E版本,由于大意把默认的“OS_CRITICAL_INT_PRIO EQU(0<<5)”,错写成了“OS_CRITICAL_INT_PRIO EQU(1<<5)”。敬请原谅。

(zlgarm_zsg)

使用特权

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

本版积分规则