搜索
bottom↓
回复: 5

MQX-lite进入find_noempty_que出不来(已解决)

[复制链接]

出0入0汤圆

发表于 2014-3-14 07:25:27 | 显示全部楼层 |阅读模式
本帖最后由 FSL_TICS_ZP 于 2014-4-1 09:31 编辑

最近在使用MQX-lite的过程中遇到一个问题:
几个task在运行一段时间后会进入find_noempty_que出不来
任务堆栈也试了改大点,但是没有效果。




堆栈定义大小
/* MQX Lite task IDs */
#define INIT_TASK_TASK          1U
#define ES201_TASK              2U
#define ES201_SEND_TASK         3U
#define MMA8415_TASK            4U
#define RGB_LED_TASK            5U


/* MQX Lite task stack sizes */
#define INIT_TASK_TASK_STACK_SIZE       (sizeof(TD_STRUCT) + 768 + PSP_STACK_ALIGNMENT + 1)
#define ES201_TASK_STACK_SIZE           (sizeof(TD_STRUCT) + 768 + PSP_STACK_ALIGNMENT + 1)
#define ES201_SEND_TASK_STACK_SIZE      (sizeof(TD_STRUCT) + 768 + PSP_STACK_ALIGNMENT + 1)
#define MMA8451_TASK_STACK_SIZE         (sizeof(TD_STRUCT) + 768 + PSP_STACK_ALIGNMENT + 1)
#define RGB_LED_TASK_STACK_SIZE         (sizeof(TD_STRUCT) + 512 + PSP_STACK_ALIGNMENT + 1)

本帖子中包含更多资源

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

x

出0入0汤圆

发表于 2014-3-14 10:37:14 | 显示全部楼层
你好,楼主。
已经此问题转告给MQX工程师啊,他给的建议是:
由于问题较为复杂,为了让你快速的得到支持,推荐你提交SR,而且他希望你在SR中,能
提供更详细的的信息包括源码。
SR提交相关细节,可参考以下链接:
http://www.amobbs.com/thread-5570020-1-1.html

出0入0汤圆

发表于 2014-3-14 22:04:22 | 显示全部楼层
应该是系统的中断的栈大小设置小了,中断后,回不来 了

出0入0汤圆

 楼主| 发表于 2014-3-15 07:18:45 | 显示全部楼层
shen2008jie 发表于 2014-3-14 22:04
应该是系统的中断的栈大小设置小了,中断后,回不来 了

改大点,效果好像好点,我再多测测。另外帮我这个也看看呢
http://www.amobbs.com/thread-5572743-1-1.html

出0入0汤圆

 楼主| 发表于 2014-3-15 09:03:52 | 显示全部楼层
本帖最后由 bruce_helen 于 2014-3-15 09:06 编辑

问题解决了,由于我使用的是PE直接生成的系统,直接在上面更改代码,没有使用PE工具,因此他的一些配置项都是默认的。
我对MQX-lite不熟悉(第一次使用)

现调试发现了问题所在:
在MQX1.h中定义,红色为我自己改的,PE系列自动生成的代码不适合我的应用。

/* The first interrupt allocated by Processor Expert */
#define FIRST_INTERRUPT_VECTOR_USED    (INT_SysTick)
/* The last interrupt allocated by Processor Expert */
#define LAST_INTERRUPT_VECTOR_USED     (INT_PORTD)

#define MQX_INTERRUPT_TABLE_ITEMS      (LAST_INTERRUPT_VECTOR_USED - FIRST_INTERRUPT_VECTOR_USED + 1)
extern INTERRUPT_TABLE_STRUCT          mqx_static_isr_table[MQX_INTERRUPT_TABLE_ITEMS];

/* MQX system stack */
extern uint8_t mqx_system_stack[];

#define MQX_IDLE_TASK_PRIORITY         (64)
#define MQX_READY_QUEUE_ITEMS          (MQX_IDLE_TASK_PRIORITY + 1)
extern READY_Q_STRUCT                  mqx_static_ready_queue[MQX_READY_QUEUE_ITEMS];

出0入0汤圆

发表于 2014-3-17 10:10:09 | 显示全部楼层
bruce_helen 发表于 2014-3-15 09:03
问题解决了,由于我使用的是PE直接生成的系统,直接在上面更改代码,没有使用PE工具,因此他的一些配置项都 ...

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

本版积分规则

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

GMT+8, 2024-5-4 01:27

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

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