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.

[参考译文] LAUNCHXL-CC3235SF:存储器映射阻止读取0xFFFFFFAC26

Guru**** 2582405 points


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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/999287/launchxl-cc3235sf-memory-map-prevented-reading-0xffffac26

器件型号:LAUNCHXL-CC3235SF
Thread 中讨论的其他器件:SYSBIOS

我有以下代码可 从 POSIX 队列中检索消息。

在 MQ_Retrieve 函数之后、我尝试 访问消息值、它会永远运行到包含循环的 Hwi 中

相同类型的代码位于其他项目中、并且可以正常工作。

不确定这是否是错误编码 、我缺少什么、或者是否有任何需要修复的配置。  

提前感谢您的任何帮助

typedef uint16_t Signal; 

enum mySignals {
    START_SIG,
    STOP_SIG,
};

typedef struct {
    Signal sig; 
} Message;

然后、我在 一个函数中包含此代码、该函数将从队列中重新接收消息

int32_t ret;
Message *m;

ret = mq_receive(queue, (char*)&m, sizeof(Message), NULL);

switch (m->sig) { // Here breaks
    case START_SIG: 
    {
        //do something
        break;
    }
    
    case STOP_SIG: {
        //do something
        break;
    }
    default: {
        break
    }

这里是它最终的位置: 无限旋转这里

ti_sysbios_family_arm_m3_Hwi_excHandlerAsm__I:
        .asmfunc
        tst     lr, #4          ; context on PSP?
        ite     NE
        mrsne   r0, psp         ; if yes, then use PSP
        moveq   r0, sp          ; else use MSP

        mov     sp, r0          ; use this stack
        stmfd   sp!, {r4-r11}   ; save r4-r11 while we're at it
        mov     r0, sp          ; pass sp to exception handler
        mov     r1, lr          ; pass lr too
        mov     r4, lr          ; preserve LR in r4

        ldr     r2, excHandlerAddr
        blx     r2

        mov     r0, sp          ; for ROV
        mov     r1, r4          ; for ROV
$1
        b       $1              ; spin here indefinitely

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

    您好!

    如果您使用的是 TIRTOS、我建议您在错误发生时查看运行 RTOS 的状态。 您可能已经溢出了缓冲区、或者以其他方式破坏了 RTOS 并触发了硬故障。 请看我在这里的说明、了解如何启动 RTOS 对象查看器工具并检查您的 RTOS:

    https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/733294/cc3220-aws-shadow_sample-example/2707429#2707429

    如果你在 Hwi_excHandlerAsm 中使用该工具、你是否注意到任何错误或堆栈/堆损坏?

    此致、

    Michael

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

    谢谢 Michael

    我找到了问题。 这与 线程间的通信有关。 从主线程中、我尝试向  另一个线程的队列中的结构发送一个指针。   

    正如我所理解的、线程之间无法共享指针、因此出现了错误。  

    -巴勃罗