XC8的链接器选项非常棘手。如果要将引导加载程序放在flash的下半部分,我实际上建议与主应用程序分开编译和链接,因为引导加载程序和应用程序都需要它们自己的部分来初始化全局变量,通常您不希望这样做hem不能太紧密地耦合到一起。如果您没有在引导加载程序上工作,我不确定您为什么需要在ROM的特定部分中使用一些函数。但是首先您应该指定一个“--rom”参数,该参数具有排除特殊区域的范围列表。这防止全知代码生成器试图把东西放在那里。然后可以尝试添加这样的参数:-L-ABC=200h-2000h-L-pbc=BC第二个选项定义了名为“bc”的“psect”,这就是放置变量时实际要引用的内容。所以您的代码应该是这样的:void_.(“bc”)Bootload(void);实际上我没有用函数尝试过,但是我用RAM变量做了类似的事情,并且它工作了。
XC8的链接器选项非常棘手。如果要将引导加载程序放在flash的下半部分,我实际上建议与主应用程序分开编译和链接,因为引导加载程序和应用程序都需要它们自己的部分来初始化全局变量,通常您不希望这样做hem不能太紧密地耦合到一起。如果您没有在引导加载程序上工作,我不确定您为什么需要在ROM的特定部分中使用一些函数。但是首先您应该指定一个“--rom”参数,该参数具有排除特殊区域的范围列表。这防止全知代码生成器试图把东西放在那里。然后可以尝试添加这样的参数:-L-ABC=200h-2000h-L-pbc=BC第二个选项定义了名为“bc”的“psect”,这就是放置变量时实际要引用的内容。所以您的代码应该是这样的:void_.(“bc”)Bootload(void);实际上我没有用函数尝试过,但是我用RAM变量做了类似的事情,并且它工作了。
举报