MSP432 内存地址 0x40004c04

问题描述

我正在使用 msp432 创建 RTOS 内核。这可能是一个负载问题,但我的 PendSV 处理程序没有被调用。我使用内存地址 0xE000ED04 并且第一次大约 0xE000ED04 的值是“E000 1000”,这正确地调用了 PendSV 处理程序。第二次围绕内存地址 0xE000ED04 具有值“E80E 1000”。我读到这不正确,但我不知道如何解决这个问题。

if(OS_next != OS_curr){
     // Pend a PendSV exception using by writing 1 to PENDSVSET at bit 28
    *(uint32_t volatile *) 0xE000ED04 |= (0x1U << 28); //0x10000000; //
    //asm("isb");

这是我用来触发 PendSV 的代码。我已经解决这个问题一个星期左右了。如果需要,我会提供额外的代码,我只是不想让问题变得混乱。我也在使用优先级为 0U 的 Systick Timer,并且我使用设置了 PendSV 优先级 NVIC_SetPriority(PendSV_IRQn,0xFF);.

一个问题是当我单步执行代码时,我得到了这个 “在没有调试信息或程序代码之外的地址“0x40004c04”处中断。”

现在地址“0x40004c04”是 P1_P1DIR、PA_PADIR 的地址,值为 FF41。我尝试搜索这个,但我找不到它,我不确定这是否可能是一个问题。我认为这不是问题,因为关于输出引脚。

我被卡住了,我需要帮助,这应该是我的高级项目,我无法弄清楚。 谢谢你们。我可以提供额外的代码

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)