完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我使用的XC8与PIC18F26K80的一部分。我有几个功能,我想定位在ROM步调的一部分。在“项目属性>>XC8链接器>>附加选项>>额外链接器选项”中,我放置了以下字符串(减去括号)[-L-A_BC=200h-2000h,-L-P_bc=_BC]。在我的函数中,我使用了像这样的“Section”声明[void_.("_bc")Bootload(void)]。当我试图编译代码时,这是我得到的错误消息[0:(442)缺少-A规范中的地址]。我在这里哪里做错了?
|
|
相关推荐
3个回答
|
|
XC8的链接器选项非常棘手。如果要将引导加载程序放在flash的下半部分,我实际上建议与主应用程序分开编译和链接,因为引导加载程序和应用程序都需要它们自己的部分来初始化全局变量,通常您不希望这样做hem不能太紧密地耦合到一起。如果您没有在引导加载程序上工作,我不确定您为什么需要在ROM的特定部分中使用一些函数。但是首先您应该指定一个“--rom”参数,该参数具有排除特殊区域的范围列表。这防止全知代码生成器试图把东西放在那里。然后可以尝试添加这样的参数:-L-ABC=200h-2000h-L-pbc=BC第二个选项定义了名为“bc”的“psect”,这就是放置变量时实际要引用的内容。所以您的代码应该是这样的:void_.(“bc”)Bootload(void);实际上我没有用函数尝试过,但是我用RAM变量做了类似的事情,并且它工作了。
|
|
|
|
嗯,我以为我已经回答了这个问题。不管是谁,在-L-选项之后删除逗号。逗号说,除了没有一个地址,还有更多的地址范围。而且我也不会在任何部分名称或链接器类中使用下划线。我忽略了一个事实,也许有更好的方法来做你以后。杰夫。
|
|
|
|
谢谢你的回复。我终于让我的引导加载程序代码工作。在XC8编译器手册中找到必要的信息是非常困难的,在某些情况下是不可能的。只有通过反复试验,我才知道如何输入多个链接器指令,需要空白空间来区分指令。
|
|
|
|
只有小组成员才能发言,加入小组>>
5178 浏览 9 评论
2003 浏览 8 评论
1931 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3177 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2228 浏览 5 评论
738浏览 1评论
622浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
509浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
636浏览 0评论
533浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-27 06:26 , Processed in 1.049893 second(s), Total 49, Slave 43 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号