如何解决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 举报,一经查实,本站将立刻删除。