我正在尝试从STM32_USB-FS-Device_Lib_V4.0.0运行Virtual_COM_Port。我正在使用IAR 7.3。一切都好,但没有运行usb。我开始使用调试器。在函数
中void USB_Init(void)
{
pInformation = &Device_Info;
pInformation->ControlState = 2;
pProperty = &Device_Property;
pUser_Standard_Requests = &User_Standard_Requests;
/* Initialize devices one by one */
pProperty->Init();
}
在线pProperty =& Device_Property;调试器跳转到异常处理程序HardFault_Handler。可能是什么问题呢?问题是IAR还是某些设置?
答案 0 :(得分:0)
你正在访问memmory你不应该。默认情况下,Hardfault_handler捕获所有异常,禁用可配置的故障异常。尝试打开MemManage_fault:
SCB->CHCSR |= SCB_SHCSR_MEMFAULTENA_Msk;
//Set the priority of the MemManage fault (using CMSIS):
NVIC_SetPriority(MemoryManagement_IRQn, *priority*);
//Default name for MemManage fault function is:
void MemManage_Handler(void);
在此之后你的硬错误可能会变成MemManage_fault。不多,但它可以让你更好地了解你正在处理什么。
另请参阅此link以了解在iar上调试硬故障。
我无法确定没有看到你设置Device_Property变量的位置,但仔细检查是否可以将其内存地址提供给其他内容。