完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
你好,我使用的是PIC24 uC,我需要使用汇编内联跳转到内存中的不同位置,但是似乎找不到用户指南。如果我想跳转到应用程序开始位置0x4000,谁能帮我?
|
|
相关推荐
5个回答
|
|
使用内联程序集的控制转移几乎肯定会导致编译器错误编译应用程序。实际上,这是使用内联程序集时的一个有文档记录的警告。希望您指的是在汇编中编写,而不是使用C编译器。在这种情况下,您可以在程序员的参考手册(DS70157)中找到汇编语言(我相信)。
|
|
|
|
使用ASM(“GOTO…”)从Bootloader传递到加载的应用程序是非常有效的。/ Ruben
|
|
|
|
我知道在C程序中使用ASM goto是有正当理由的。这个问题的措辞让我很吃惊,因为海报可能不理解风险,或者其它选项。比如,爆破帽的哪一端最先进入。
|
|
|
|
我不会仅仅因为编译器必须在执行指令之前将正确的内存地址放入正确的寄存器中,所以不能100%地得到您输入的内容而烦恼于内联。也许对于少数指令来说可以,但是它不会被优化或者时间不精确。
|
|
|
|
我也注意到这种构造是有风险的……但是将控制从引导加载程序转移到单独编译的应用程序肯定需要某种goto,就像每个C启动代码都包含“goto main”或“call main”指令一样。事实上,如果程序是0x4000 exECUTE是“返回”指令吗?为了便于移植和理解,我认为我会使用编译器来创建一个常量函数指针并调用它。#define APP_ENTRY_ADDRESS 0x4000;typedef int(*PFI)(void);//Function of no参数返回intconst PFI app=(void*)APP_ENTRY_ADDRESS;....int value;if(运行应用程序的时间)valuE=(APP)();//app返回,如果你到这里……做一些智能的事情
|
|
|
|
只有小组成员才能发言,加入小组>>
5128 浏览 9 评论
1984 浏览 8 评论
1914 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3148 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2212 浏览 5 评论
696浏览 1评论
585浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
465浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
602浏览 0评论
494浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-2 14:38 , Processed in 1.195950 second(s), Total 85, Slave 68 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号