【方法齐全|原创】MDK使用CMSIS RTX5调试窗口提示 ‘os_Info‘: ‘osRtxInfo‘ not found 解决方法

一、前言

        使用之前创建的基础工程来移植CMSIS RTOS的RTX5操作系统时遇到的一个问题,程序移植完成后可以正常运行,但是使用Deubug模式查看RTX5的调试信息的时候一直提示如下错误,找不到osRtxInfo。

E300: Identifier not found - <read> 'os_Info': 'osRtxInfo' not found

二、 原因探究

        2.1 向大佬请教

        请教大佬后,大佬给了以下几个解决办法,但全部尝试后均无效果,还是提示这个错误。

1、MDK务必使用5.3X及其以上版本
2、务必是MDK RTE创建,不要做RTX5动态内存的重定向,有Cache的,关闭Cache。
3、最好你的工程就是这个版本的RTE创建的,不要跨版本。
4、MDK工程路径不可以有中文,路径越短越好,防止MDK检索不到对应的调试文件。
5、MDK优化等级设置为0,工程里面有些骚操作玩法很容易导致无法正常检索。

        最后重新用其它工程直接移植RTX5却发现调试组件了可以正常运行,说明是我的工程的问题,然后使用CubeMX的文件重新创建一个工程从头开始移植,最后发现也不报错,然后将之前的驱动全部添加完测试也可以正常使用调试组件。       

2.2 国外网站找寻答案

        本打算就不找错误原因的,上Bing用英语搜索了一下发现Arm社区也有任遇到这个问题,提出了一些解决办法如下,但全部尝试均无效果依旧报错。

         老外给的办法总结一下就是:

        1. 代码本身问题,程序未正常运行,用调试看程序停在什么地方,来找代码的原因。

        2. 使用的CMSIS组件不是最新的,在图1中的CMSIS和Device中会出现蓝色问号需要右键文件选择更新到新版,前提是在图2的Pack Installer中已经将CMSIS和CMSIS Driver已经更新到最新版本。

        3. 另外一个老外说删除项目里面的.uvoptx 文件,然后重新配置JLINK等调试器信息即可。这个方法我没有尝试过,按后面的原因来说理论上是可行的。

图2 版本问题
图2 Pack Installer

 三、解决办法

        最后我用不能使用调试器组件的文件和重新生成的项目文件来对比,经过测试发现.uvprojx不会对此问题造成影响,最终定位在.uvoptx文件上,经过全部不同位置的参数测试,最终发现在<DebugOpt>中的<tLdApp>0</tLdApp>选项里面,将这个选项的参数修改为1,调试组件错误即可消除。

         修改之后调试组件顺利调用。

         最后经过查找资料发现这个.uvoptx文件存储的是项目中设置选项(魔法棒图标)中的一些参数。

        而其中的<DebugOpt>对应Debug选项栏,<tLdApp>0</tLdApp>选项对应Load Application at Startup选项,最终将这个选项勾选即可消除错误。

 四、总结

         这个选项一般应该是勾选了的,可能是什么时候不小心点错了取消了这个选项,困扰了我一天,还到处找不到解决办法。如果帮助到你,希望可以点个赞,有问题可以及时留言沟通。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值