打印
[应用相关]

使用其他M3内核MCU的库,AT32的pack文件,程序会进入hardfault?

[复制链接]
426|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Questions使用其他M3内核MCU的库,AT32的pack文件,程序会进入hardfault?
Answer
客户程序进hardfault,是由于客户使用其他M3内核MCU的库,pack却选择的AT32并开启FPU功能。而其他M3内核MCU的库并不支持FPU功能。以下两种方式任选其一可以解决问题。
解法1:关闭FPU功能,如下图(清晰图示见附件):
                              
解法2:在其他M3内核MCU的库文件“system_xxxxxxxxx.c”的库函数“SystemInit”里增加FPU相关宏定义,如下粗体部分所示:


  
void SystemInit  (void)
  
{
  
#if defined (__FPU_USED) &&  (__FPU_USED == 1U)
  
   SCB->CPACR |= ((3U  << 10U * 2U) |         /* set  CP10 Full Access */
  
                 (3U <<  11U * 2U)  );       /* set CP11 Full Access */
  
#endif
  
  
  /* Reset the RCC clock configuration to the  default reset state(for debug purpose) */
  
  /* Set HSION bit */
  
  RCC->CR |= (uint32_t)0x00000001;
  
  …
  
}
  


FAQ0107_使用M3内核MCU的库和AT pack造成hardfault_V1.0.0.pdf

696.69 KB

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

69

主题

119

帖子

5

粉丝