Microchip
直播中

赵军

7年用户 174经验值
私信 关注
[问答]

关于MPLABX IDE和XC8编译器编的问题怎么解决

你好,我有一些关于这些设置的问题,因为我发现不一致的结果。首先:PIC 16F18857有56k闪存,地址是14位字。闪存的寻址空间是从0x0000到0x7FFF。我想在地址0x0000(从0x0000到0x0FFF)上实现一个引导加载器应用程序。我想将主应用程序设置为0x1000,范围是0x3FFF。主应用程序应该具有0x3000(在十二月12288日寻址wor)。我想生成一个*.bin文件,用于用编译器命令“--output=bin”更新主应用程序的程序代码。从MPLAB的emory视图中,我看到了我所期望的——起始地址是0x1000。当我生成一个bin文件时,文件大小只有12288字节,但我希望大小加倍->24576字节,因为eache地址的数据宽度是十六进制文件的14位,代码偏移和程序大小不是预期的。“设置ROM范围”和“代码偏移”的UTPUT地址设置

回帖(4)

罗茵

2020-4-24 09:58:20
嗨,中档设备有字寻址的程序存储器,但是输出文件是字节寻址的,所以每个设备存储器字有两个字节。我不会担心文件大小。对于二进制文件,它只包含从0到最高地址的内存,而不是最高的设备地址。你所描述的听起来很正常。
举报

王焕树

2020-4-24 10:17:56
简而言之,十六进制文件中的所有地址都是设备中实际物理地址的两倍,因为它们计算字节,而不是单词。
举报

李颜

2020-4-24 10:24:15
如果您打算使用Uni.Bootloader 0.1.3,请注意(我没有...)您必须使用实际物理地址的“加倍”值,在您的情况下,应该使用Bootloader Offset:0x2000和程序内存大小0x10000。
举报

林芳

2020-4-24 10:34:32
谢谢!我对文件大小感到困惑。现在它正在工作。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分