查看: 1761|回复: 2

[MQX] 分享一点KDS+PE+MQX工程调试的小经验

[复制链接]
  • TA的每日心情
    开心
    2020-4-30 08:32
  • 签到天数: 1 天

    [LV.1]初来乍到

    79

    主题

    239

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1093
    最后登录
    2024-2-14
    发表于 2016-8-11 14:02:40 | 显示全部楼层 |阅读模式
    先前KDS+PE+MQX创建一个工程,MQX选择MQXStandard模式,用到了一个轻量级事件组,程序能正常运行,
    现在又创建了一个KDS+PE+MQX,开始选择MQX Standard模式,后又改用MQX Lite模式,用到了一个轻量级事件组,结果调用了  
    _lwevent_wait_for(&lwevent_group, event_timer, FALSE, NULL)函数的任务不能执行,
    查看调试器任务列表状态如下:
    State:            Unhandled Interrupt
    TaskError Code: MQX_UNHANDLED_INTERRUPT(0X0041)
    反复核对代码,调试,折腾了差不多两天,终于找到了问题所在:
    1、 MQX选择MQXStandard模式,会在建立rtos_main_task.c文件,并创建main_task()任务,该任务只在启动时运行一次即被阻塞,
    2、 MQX选择MQXLite模式时,不建立rtos_main_task.c文件,也不创建main_task()任务
    3、 在PE中,将MQX由MQX Standard模式改为MQX Lite模式时,并不将rtos_main_task.c文件删除,该文件还残留在工程中,main_task()函数也不被调用,
    4、 我一般喜欢将初始化函数方在main_task()中,
    _lwevent_create(&lwevent_group,kEventManualClear)
    5、 因为_lwevent_create()没有执行,致使调用_lwevent_wait_for()的任务不被执行
    总结
    1、 KDS+PE+MQX确实能快速创建工程,免去许多初始化代码的编写工作,
    2、 KDS+PE还存在很多不足,又没有好的教程和参考资料,使用的群体不多,遇到问题主要靠自己慢慢摸索,比较费时间。
    我知道答案 目前已有2人回答
    回复

    使用道具 举报

  • TA的每日心情
    无聊
    2018-9-20 10:55
  • 签到天数: 13 天

    [LV.3]偶尔看看II

    24

    主题

    1189

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1642
    最后登录
    2022-3-21
    发表于 2016-8-11 17:09:50 | 显示全部楼层
    很好 感谢啊
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2020-12-31 08:09
  • 签到天数: 438 天

    [LV.9]以坛为家II

    9

    主题

    510

    帖子

    1

    金牌会员

    Rank: 6Rank: 6

    积分
    1673
    最后登录
    2020-12-31
    发表于 2018-11-26 19:20:45 | 显示全部楼层
    感谢分享!
    该会员没有填写今日想说内容.
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2024-5-5 13:18 , Processed in 0.112398 second(s), 22 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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