完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
你好,我是新来论坛的,希望我为我的问题选择了正确的一个。如果主持人觉得这个问题最好在其他地方解决,请随时移动线程。我目前正在为PIC24FJ256GA106与MPLab X 3.26和XC16 1 1.21(旧版本fo.这个项目由3个子项目组成:1。主要应用;2。Bootloader使用SPI Flash和UART;3。包含硬件设置和低级驱动程序的库。在Bootloader项目中,我添加了Library作为“Library Project”,并调整了C Include dirs。在应用程序项目中,我添加了Bootloader作为“Loadable Project”,将Library作为“Library Project”,并调整了C Inc。在Bootloader和Application中,我对Linker脚本(.gld)做了一些更改,以防止它们重叠。程序部分已经更改为Bootloader的0x0200-0x4000和应用程序的0x4000-0x2A800。在部分中的函数和链接器设置中,我启用了“删除未使用的部分”。现在,当我编译所有内容时,整个部分占用的空间比我预期的要大得多。我在生成的映射文件中注意到,从C标准库和我自己的Library项目中运行的映射文件是一个分配在程序内存的两部分。鉴于我们过去在程序大小方面存在问题(同一系列的128KB版本),我想知道:建议采取什么措施来防止这种重复?不知何故,可以告诉应用程序项目访问Bootloader部分中已经定义的符号而不预先定义每个函数的地址吗?提前感谢。
|
|
相关推荐
1个回答
|
|
从main访问位于引导加载程序中的函数有点令人生畏。如果将来引导加载程序有可能发生更改,则必须在main中采取措施,以找出函数位于何处,这反过来又会给您留下额外的代码,甚至可能还会对库进行更改。现在如果你的工作正常,你写的Bootloader代码变化的可能性很小(不是0),但是…还有编译器和链接器版本,还有更多改进的CHANGED行为。这将导致引导加载程序执行代码的改变,或者至少可能改变函数。因此,在主代码中添加特性,可能会导致引导加载程序中代码的位置更改。
|
|
|
|
只有小组成员才能发言,加入小组>>
5238 浏览 9 评论
2028 浏览 8 评论
1950 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3204 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2253 浏览 5 评论
772浏览 1评论
663浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
590浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
672浏览 0评论
572浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 16:02 , Processed in 1.349642 second(s), Total 77, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号