完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我在PIC24EP引导装载器上工作。我的Bootloader有自己的包格式来与Python脚本通信来更新微控制器的固件。引导加载程序驻留在中断向量表(0x000 0800)之后的第一个空闲页面中。在PIC24EP中没有替代的IVT,并且我在Bootloader中都没有使用任何中断。为了给应用程序腾出空间,我已经编辑了我的应用固件的链接器脚本,以便应用程序的HEX文件不会在0x200和0x00 5bf0之间使用任何空间。应用程序的链接器脚本在下面给出:/**内存区域*/内存{数据(A)!XOR=0x1000,长度=0x800 0Read:原点=0x0,长度=0x4IVT:原点=0x1fcPalm(XR):原点=0x6000,长度=0x23 FFEFICD:原点=0x2FAF0,长度=0x2FPOR:原点=0x2FAF2,长度=0x2FWDT:原点=0x2AFF4,长度=0x2FoC:Orth= 0x2AFF6,长度=0x2fOSCL:Orth= 0x2FGS:Orth= 0x2FAFA,长度=0x2FUID0:长度=0x2FuID1:Orth= 0x2FuFa,长度=0x2FuID2:Orth= 0x2Fui3:长度=0x2FuFe,长度=0x2},FICD= 0x2AFF0;γ-fPOR=0x2AFF2;γ-fWdt= 0x2AFF4;FSCOSEL=0x2AFF8;γ-Fui0= 0x800 FF8;γ-FuID1= 0x800 FFA;γ-FuID3= 0x800 FFE;γ-CydObase= 0x6000;γ-CODEL长度=0x2FFE;γ-IVTBASBASE=0x4;γ-DATAOBASE=0x1000;γ-DATAAL长度=0x8000;它看起来像我的Bootloader在某个点拒绝固件(HEX文件)。Af6在0x200和0x00 5bf0之间有地址,但是我已经编辑了应用程序链接器脚本,只修改了变量0x6000的地址:修改代码,代码长度和程序。Flash的大小是256KB,页面大小是1024个指令(1024×4字节)。HEX文件已经结束(http://PaistBi.com /xHuSjxKu)。链接器脚本已经结束(http://PaistBi.com /Gb2YimWC)。
以上来自于百度翻译 以下为原文 I am working on pic24EP bootloader. My bootloader has it's own packet format to communicate with a python script to update the firmware of the microcontroller. The bootloader resides at the first free page after Interrupt Vector Table (0x000800). There is no alternative IVT in PIC24EP and neither i am using any interrupts in my bootloader. To make space for application, i have edited linker script of my application firmware so that application hex file wouldn't use any space in between 0x200 and 0x005BF0. The linker script of application project is given below: /* It looks like my bootloader rejects firmware (hex file) at some point as it has address in between 0x200 and 0x005BF0 but i have edited the application linker script to only use addresses above 0x6000 by modifying variables: __CODE_LENGTH and program. The size of flash is 256kB and page size is 1024 instructions (1024*4 Bytes). The Hex File is over (https://pastebin.com/XHUsjxku). And the linker script is over (https://pastebin.com/gB2YimWC). |
|
相关推荐
1个回答
|
|
对于一个回复,有点迟了,但是其他人可以发现:在更新的XC16版本中,你需要通过“-ISR——没有IVT”来避免XC16LD在默认偏移下插入IVT,即使你的链接器脚本指定了其他东西。够了,但在我的测试中,我发现它也需要——ISR。
以上来自于百度翻译 以下为原文 Bit late for a reply, but so other people can find this: On newer XC16 versions, you'll need to pass "--isr --no-ivt" to xc16-ld to avoid it inserting an IVT at the default offset, even though your linker script specifies something else. From reading the docs I would have thought just --no-ivt would be enough, but in my testing I found it also needs --isr. |
|
|
|
只有小组成员才能发言,加入小组>>
5250 浏览 9 评论
2037 浏览 8 评论
1958 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3218 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2266 浏览 5 评论
788浏览 1评论
680浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
609浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
685浏览 0评论
582浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-28 20:28 , Processed in 1.070592 second(s), Total 45, Slave 39 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号