完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
在 c 文件中添加 __asm("ldr pc, =0x10040020") 时,IAR 编译错误 "error in inline assembly" ,执行什么程序才能跳转、
smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/TRAVEO-T2G/traveo-ii-bootloader-jump-to-app/td-p/713461 |
|
相关推荐
1个回答
|
|
IAR编译器在处理内联汇编时遇到了错误,这可能是由于语法错误或不支持的指令导致的。在这种情况下,错误信息是 "error in inline assembly"。要解决这个问题,请尝试以下步骤:
1. 确保您的IAR编译器支持内联汇编。请查阅IAR编译器的文档以确认支持情况。 2. 检查您的内联汇编语法是否正确。在IAR中,内联汇编的正确语法是使用双下划线(__)而不是单下划线(_)。因此,您应该将代码更改为: ```c __asm("ldr pc, =0x10040020"); ``` 3. 确保您的指令是正确的。在ARM汇编中,ldr指令用于加载寄存器。请确保您的指令是正确的,并且适用于您的目标硬件。 4. 如果问题仍然存在,请尝试将汇编代码移动到单独的汇编文件中,而不是在C文件中使用内联汇编。这将使您能够更清楚地看到错误,并可能更容易地解决问题。 5. 如果您仍然遇到问题,请查阅IAR编译器的官方文档和支持论坛,以获取更多关于如何解决此错误的信息。 关于执行什么程序才能跳转,您可以尝试以下步骤: 1. 确保您的目标硬件支持从指定地址跳转。 2. 在汇编文件中,使用适当的跳转指令(如b、bl等)将程序跳转到指定地址。例如: ```assembly b 0x10040020 ``` 3. 如果您使用的是C语言,您可以使用内联汇编或外部汇编文件来实现跳转。 4. 确保您的程序已经正确地链接到目标硬件,并在适当的内存地址上运行。 5. 如果您仍然无法实现跳转,请查阅目标硬件的文档和支持论坛,以获取更多关于如何实现跳转的信息。 |
|
|
|
只有小组成员才能发言,加入小组>>
请教个XMC1404调试串口接收时为什么一直无法接收数据的问题
353 浏览 0 评论
TLE9879_BLDC电机启动需要用手拨一下才能转动,怎么解决?
6183 浏览 2 评论
4102 浏览 9 评论
请问TLE5012B_E1000 启动后为什么位置不能正确获取
3628 浏览 9 评论
1229 浏览 8 评论
453浏览 2评论
267浏览 2评论
374浏览 2评论
TLE9879_BLDC电机启动需要用手拨一下才能转动,怎么解决?
6185浏览 2评论
如果是打开已有的dave工程,怎么查看这个工程选择的mcu型号?
452浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-20 15:42 , Processed in 0.698026 second(s), Total 78, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号