我想用抹布工作室为IHM03A1编写程序,使用原子核-L476RG板,使用官方库和1台电机的例子。据我所知,库只支持mbed os 2,同时Mbed Studio只能使用mbed os 5。
编译项目后,使用以下消息重新启动设备:
++ MbedOS Error Info ++
Error Status: 0x80010133 Code: 307 Module: 1 Error Message: Mutex: 0x20000578, Not allowed in ISR context
Location: 0x800E6DD
Error Value: 0x20000578
Current Thread: main Id: 0x20002018 Entry: 0x800B90D StackSize: 0x1000 StackMem: 0x200008E0 SP: 0x20001600
For more info, visit: https://mbed.com/s/error?error=0x80010133&tgt=NUCLEO_L476RG -- MbedOS Error Info -- = System will be rebooted due to a fatal error =
= Reboot count(=1) reached maximum, system will halt after rebooting所以,我想也许这就是解决办法:
1)以某种方式重写库,这样它就可以使用MBED OS 5(我不确定到底需要修改什么)。
2)在mbed Studio中使用Mbed os 2(不确定是否可行)
X_NUCLEO_IHM03A1库- IHM03A1/
如何解决在X_NUCLEO_IHM03A1的Mbed项目中编译的问题?
发布于 2020-06-29 09:07:18
注释行__disable_irq();解决了问题谢谢Nils4526
在我的例子中,函数位于PowerStep01.h文件中,如下所示:
void Powerstep01_Board_DisableIrq(void)
{
// __disable_irq();
}发布于 2020-04-17 06:20:25
我得到了与您相同的错误代码,但与扩展板IHM01A1和核心板F411RE相同。我不知道这对你的董事会是否有效,但我认为值得一试。名称是不同的,但除此之外,代码看起来很相似。
使用裸露的金属轮廓工作,没有任何修改,但这一变化也适用于OS5。
在文件组件/L 6474/L 6474.h中,注释如下行:
void L6474_DisableIrq(void)
{
// __disable_irq();
}当使用SPI读写时,将在主文件中调用此函数。
我不知道它为什么会工作,因为Mbed要求您在使用SPI写函数之前禁用中断,但不知何故,删除禁用中断的行使其工作。
https://stackoverflow.com/questions/61104593
复制相似问题