实例更改stm32起始执行地址为0x08010000,使用cubemx 生成工程,配置好串口1和时钟,
修改要点:
1,将icf文件中的__ICFEDIT_intvec_start__从默认的0x08000000改为0x08010000
2,VECT_TAB_OFFSET改为0x10000
全局查找VECT_TAB_OFFSET,或者从启动s文件中的Reset_Handler找到SystemInit,VECT_TAB_OFFSET就在SystemInit函数的末尾如图
找到定义,然后修改值,
如果是RO文件不可修改的话,在工程目录中选择该文件右键打开菜单选择file properties...,然后去掉只读的勾选。之后就可以修改了。
main函数如下,使用iar进行download and debug,
/* USER CODE BEGIN 2 */
printf("diy8 demo\r\n");
/* USER CODE END 2 */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
HAL_Delay(1000);
printf("uart test\r\n");
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
}
/* USER CODE END 3 */
串口的打印信息如图可以看到0x8010000处已经正常烧写了内容,而0x8000000处依旧是空的