完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我单独建一个 Funtion_InRAM.c 把USART2_IRQHandler()放到这个文件里。
通过修改.sct文件,把中断函数放到RAM里 sct文件: LR_IROM1 0x08000000 0x00020000 { ; load region size_region ER_IROM1 0x08000000 0x00020000 { ; load address = execution address *.o (RESET, +First) *(InRoot$$Sections) .ANY (+RO) } RW_IRAM1 0x20000000 0x00005000 { ; RW data Funtion_InRAM.o(+RO +RW) .ANY (+RW +ZI) } } 在MAP文件里可以看到: USART2_IRQHandler 0x2000002d Thumb Code 284 funtion_inram.o(i.USART2_IRQHandler) 然后在main()的开始中设置中断向量表到RAM中: NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x00); 但是程序没跑起来,改成 NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x00); 才可以。 谁知道把中断向量表放到RAM中,还需要什么步骤才能正常运行? 芯片是:STM32F103CB |
|
相关推荐
1个回答
|
|
STM32F103CB将中断向量表放到RAM后不正常的原因可能有以下几点:
1. 中断向量表地址未正确设置:将中断向量表放到RAM后,需要确保在启动代码中正确设置中断向量表的基地址。这通常涉及到修改SCB->VTOR寄存器的值。如果未正确设置,处理器可能无法找到中断处理函数,导致异常。 2. 中断向量表未正确初始化:将中断向量表放到RAM后,需要确保在启动代码中正确初始化中断向量表。这包括将每个中断处理函数的地址设置为相应的函数。如果中断向量表未正确初始化,处理器可能调用错误的中断处理函数,导致异常。 3. 中断优先级问题:在STM32中,中断优先级是通过NVIC(嵌套向量中断控制器)管理的。如果将中断向量表放到RAM后,中断优先级设置不当,可能导致某些中断被错误地优先处理,从而影响系统的正常运行。 4. 内存分配问题:将中断向量表放到RAM后,需要确保RAM中有足够的空间来存储中断向量表。如果RAM空间不足,可能导致内存溢出,从而影响系统的正常运行。 5. 编译器/链接器设置问题:在修改.sct文件后,需要确保编译器和链接器的设置正确。这包括确保中断函数被正确地放置在RAM中,以及确保其他相关代码和数据也被正确地放置。 为了解决这个问题,你可以尝试以下步骤: 1. 确保在启动代码中正确设置SCB->VTOR寄存器的值,以指向新的中断向量表地址。 2. 确保在启动代码中正确初始化中断向量表,将每个中断处理函数的地址设置为相应的函数。 3. 检查中断优先级设置,确保它们正确地管理中断处理。 4. 确保RAM中有足够的空间来存储中断向量表,并检查内存分配是否正确。 5. 检查编译器和链接器的设置,确保中断函数被正确地放置在RAM中,以及其他相关代码和数据也被正确地放置。 6. 如果问题仍然存在,尝试将中断向量表放回Flash,以确定问题是否与将中断向量表放在RAM中有关。 通过以上步骤,你应该能够找到并解决将中断向量表放到RAM后导致的问题。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1810 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1631 浏览 1 评论
1098 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
737 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1687 浏览 2 评论
1944浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
748浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
583浏览 3评论
604浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
565浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-29 05:34 , Processed in 0.798693 second(s), Total 80, Slave 63 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号