完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
近期使用STM32MUX生成STM32IDE的代码(MCU是STM32H743),目前希望可以将部分代码定位到ITCM中运行,加快处理速度,关于代码中的.id链接文件,该部分资料比较少,目前我只摸索到了如何将变量定义到某个地址,但是不清楚如何让代码在指定RAM中运行。按照设定变量的方式设定代码,程序直接进入了异常中断。
|
|
相关推荐
1个回答
|
|
在STM32 IDE中将代码定位到ITCM中运行,可以按照以下步骤进行设置:
1. 首先,在STM32CubeMX中生成代码时,确保启用了ITCM(Instruction Tightly-Coupled Memory)。 2. 在生成的工程目录下,找到名为startup_stm32H743xx.s(或者startup_stm32H7xxxx.s)的启动文件。可以根据实际芯片型号稍有不同。 3. 打开启动文件后,在文件开头的区域定义部分,你可以找到如下片段: ```assembly /** * @addtogroup STM32H7xx_HAL_MSP_Private_Defines * @{ */ /* Uncomment the line corresponding to the target STM32H7 device used in your application */ #if !defined (STM32H753xx) && !defined (STM32H743xx) && !defined (STM32H750xx) && !defined (STM32H747_CM4) && !defined (STM32H757_CM4) // #define STM32H753xx /*!< STM32H753xx Devices */ // #define STM32H743xx /*!< STM32H743xx Devices */ // #define STM32H750xx /*!< STM32H750xx Devices */ // #define STM32H747_CM4 /*!< STM32H747_CM4 Devices */ // #define STM32H757_CM4 /*!< STM32H757_CM4 Devices */ ``` 4. 将以`#define STM32H743xx` 开头的行注释去掉,确保此行没有注释。 5. 接下来,找到如下片段: ```assembly /** * @brief This is the code that gets called when the processor first * starts execution following a reset event. * @param None * @retval None */ .section .text.Reset_Handler .weak Reset_Handler .type Reset_Handler, %function .globl Reset_Handler Reset_Handler: /* Copy the data segment initializers from flash to SRAM */ ``` 6. 在 Reset_Handler 之前加入一行代码如下: ```assembly .section .text.Reset_Handler,"ax",%progbits //加入此行 .weak Reset_Handler .type Reset_Handler, %function .globl Reset_Handler Reset_Handler: /* Copy the data segment initializers from flash to SRAM */ ``` 7. 最后,找到你希望执行的代码的函数,并使其位于 ITCM 中。一般来说,可以在用户代码段的前面加入一行代码,如下所示: ```c ..... .section .text.MyFunction,"ax",%progbits //加入此行 .type MyFunction, %function .globl MyFunction MyFunction: // Your code here ..... ``` 注意:确保你指定的函数没有跳转表或其他需要在 Flash 上运行的依赖项。 完成上述步骤后,重新编译、下载并运行你的程序,你的代码将被成功定位到 ITCM 中运行。 希望以上内容对你有所帮助! |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1771 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1619 浏览 1 评论
1070 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
724 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1673 浏览 2 评论
1935浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
728浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
568浏览 3评论
593浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
551浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 15:01 , Processed in 0.973574 second(s), Total 83, Slave 65 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号