STM32 IAP与APP配置详解:向量表映射与内存分配

需积分: 14 13 下载量 67 浏览量 更新于2024-08-28 收藏 367KB DOC 举报
"本文档详细介绍了在STM32上实现IAP(In-Application Programming)时,关于应用程序(APP)的向量表映射配置。主要针对MDK(Keil uVision)环境下,STM32F103RE芯片进行配置讲解。IAP程序起始于0x08000000,而APP起始于0x08005400,因此在APP部分必须正确映射向量表以避免程序跑飞。" 在STM32的IAP过程中,应用程序的正确配置至关重要。首先,IAP程序的选项配置中,IROM1的设置应确保不与APP的存储空间重叠。在配置芯片选项时,编程算法的大小可以设置为最大容量(例如0x00080000,对应512KB),这不会影响程序运行。 对于APP的配置,其IROM1的起始地址和大小是关键。它必须从0x08005400开始,且大小不能超过芯片的总闪存大小。同时,确保APP的配置中,IROM1的结束地址与IAP的结束地址之和等于芯片的总闪存大小,防止空间重叠。此外,RAM和编程算法的空间大小可以根据需要调整,但文档中的默认设置已经能够满足需求。 中断向量表的映射是避免程序跑飞的关键。在APP中,通过NVIC_SetVectorTable函数将向量表映射到实际的起始地址0x08005400,即NVIC_VectTab_FLASH加上偏移量0x5400。这样,当IAP程序跳转到APP执行时,中断处理能够正确找到相应的中断服务函数,保证程序的正常运行。 在配置过程中,还要注意MDK的其他相关设置,如芯片选择、RAM和Flash的分配等,但这些通常不会直接影响IAP和APP的运行,可以根据项目具体需求进行调整。 总结来说,STM32的IAP应用程序配置涉及到的主要知识点包括: 1. 向量表的映射:根据APP的起始地址正确设置NVIC_SetVectorTable。 2. IAP和APP的存储空间划分:确保IAP和APP的IROM1区域无重叠,并不超过芯片的总闪存。 3. MDK环境下的工程配置:正确设置IAP和APP的optionbyte、芯片选项、编程算法大小等。 4. 中断处理:确保中断服务函数在APP启动后能够正常工作。 理解并正确实施这些配置步骤,是成功实现STM32 IAP应用程序的关键。