里飞网
标题:
STM32F0XX中断向量跳转的办法
[打印本页]
作者:
阿里兄
时间:
2020-6-12 09:45
标题:
STM32F0XX中断向量跳转的办法
因STM32F0XX系统的SCB没有VTOR寄存器即SCB->VTOR,所以中断向量跳转要换一种方法。
即把中断向量复制到SRAM最前面,方法如下:
/* USER CODE BEGIN 0 */
__IO uint32_t VectorTable[48] __attribute__((at(0x20000000)));
// 重映射中断向量
static void iRemapIrqVector(void)
{
// 中断向量重映射
unsigned char i = 0;
for(i = 0; i < 48; i++)
{
VectorTable[i] = *(__IO uint32_t*)(APP_START_ADDRESS + (i<<2)); //中断向量是一个指针,每个占4个字节
}
/* Remap SRAM at 0x00000000 */
__HAL_SYSCFG_REMAPMEMORY_SRAM(); //设置为RAM启动模式
}
/* USER CODE END 0 */
复制代码
然后在main函数最前面进行调用。
int main(void)
{
/* USER CODE BEGIN 1 */
iRemapIrqVector();
/* USER CODE END 1 */
/* MCU Configuration--------------------------------------------------------*/
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init();
复制代码
另MDK上也要进行SRAM的设置。
(, 下载次数: 1146)
上传
点击文件名下载附件
以上即可以加bootloader进行固件升级了。
欢迎光临 里飞网 (http://dz.lfly.xyz/)
Powered by Discuz! X3.3