完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
还有想请教一下如何将代码跳转到flash某个位置去执行,我只能跳转到0x00000000开始执行。
(1)APROM通常用来存储IDE(如:KEIL)开发的应用程序代码。 (2)LDROM用于存储一些特殊代码,如用于固件升级的ISP。 (3)Data Flash可以保存一些用户数据。 |
|
相关推荐
1个回答
|
|
为了调试LDROM代码,我们需要用到JTAG调试工具,例如J-Link。在KEIL或其他IDE中,可以选择使用JTAG调试器进行调试,同时选择使用LDROM的代码。需要在项目设置中设置正确的FLASH地址和大小。
要将代码跳转到FLASH某个位置去执行,可以使用函数指针来实现。首先需要定义一个函数指针,然后将FLASH位置的地址赋值给该指针,最后调用该函数指针即可。 示例代码: ``` typedef void (*func_ptr_t)(void); func_ptr_t app_entry = (func_ptr_t)0x08004000; // 将函数指针赋值为FLASH位置的地址 app_entry(); // 调用函数指针,跳转到FLASH位置0x08004000执行 ``` 需要注意的是,跳转到FLASH执行代码时,需要注意该位置是否可执行,即该位置是否已经被擦除并烧录了可执行代码。同时还需要注意函数调用的栈空间是否足够,以及该位置的代码是否和当前运行的代码存在冲突。 |
|
|
|
只有小组成员才能发言,加入小组>>
798 浏览 0 评论
1154 浏览 1 评论
2531 浏览 5 评论
2863 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2713 浏览 6 评论
keil5中manage run-time environment怎么是灰色,不可以操作吗?
1083浏览 3评论
195浏览 2评论
461浏览 2评论
374浏览 2评论
M0518 PWM的电压输出只有2V左右,没有3.3V是怎么回事?
455浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 19:31 , Processed in 1.011089 second(s), Total 80, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号