This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CC1350:CC1350的硬件异常

Guru**** 2390735 points
Other Parts Discussed in Thread: SYSBIOS
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/923389/cc1350-hw-exception-of-cc1350

器件型号:CC1350

您好!

客户遇到硬件异常问题。 他的项目基于 rfEasylinkRx、有四个任务:

1. RF 任务--将接收到的数据存储到全局数组中。

2.数据打包任务---检查 每秒全局数组中是否有任何数据。如果有,则打包数据并将其放入队列中,然后发布事件以指示数据已就绪。

3.UART 任务--此任务等待任何就绪事件,从队列中获取该事件,并通过 UART 发送。

4.闪存写入/读取任务--存储一些系统参数。

问题:项目可以正常运行10个多小时、然后卡在 ti_sysbios_family_arm_m3/hwi_excHandler__I 上为了解决问题、他已经屏蔽 了 UART_Read、只有 UART 发送部分。 内部闪存存储也被屏蔽。

根据"解密 CPU 异常"文档: http://dev.ti.com/tirex/explore/node?node=ANZCArgej9xdL8J3Ef1vyg__eCfARaV__LATEST 他发现异常地址不同。 问题可能是由于在某个地方修改了 RAM、我们是否有快速定位的方法?

以下是其中一个例外情况的图:

ROV:

例外句:

根据异常信息、他最初跟踪到操作系统代码。  将任务放入队列时出错。 这似乎涉及低级代码。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Viki:

    我建议客户在内核中启用并重新构建应用程序。 这将要求应用程序使用闪存中的内核而不是 ROM (因为它们位于 CC13xx 上)。 下面是启用断言的示例。

    BIOS.sertsEnabled = true;
    //BIOS.sertsEnabled = false;
    
    

    此外、注释掉引入 ROM 内核的任何代码。 例如、我要注释以下所有行。

    VAR ROM = xdc.useModule('ti.sysbios.rom.ROM');
    if (Program.cpu.deviceName.match(/CC2640R2F/)){
    ROM.romName = ROM.CC2640R2F;
    }
    否则(Program.cpu.deviceName.match(/CC26.2/)){
    ROM.romName = ROM.CC26X2V2;
    }
    否则(Program.cpu.deviceName.match(/CC13.2/)){
    ROM.romName = ROM.CC13X2V2;
    }
    否则(Program.cpu.deviceName.match(/CC26/)){
    rom.romName = rom.CC2650;
    }
    否则(Program.cpu.deviceName.match(/CC13/)){
    rom.romName = ROM.CC1350;
    }
    

    Todd