使用Megawin处理器的8051与Keil-C文件大小问题

时间:2015-04-24 15:35:25

标签: 8051

我使用Keil C为MegaWin 8051 MPC82G516A编写了一个程序。当我检查英特尔生成的hex文件的文件大小时,它的大小为8kb(我在二进制代码窗口中看到代码),但是当我使用Megawin工具对设备进行编程时,它增加了代码大小到29kb左右!?任何人都可以说明为什么会这样做吗?

此外,其他一些奇怪的事实是,它似乎是在处理器内存的顶部而不是在开始时编写代码。代码开头有4个字节,但完整的剩余部分位于内存的末尾。

请帮忙

卡梅伦。

2 个答案:

答案 0 :(得分:0)

你写的是你的代码的intel hex文件的文件大小约为8k。程序的一部分写入地址空间的底部。 另一部分写在地址空间的底部。

intel hex文件不仅包含程序代码,还包含应该写入代码的地址。 您可以检查自己的文件是否包含地址空间底部和顶部的代码。 有关英特尔十六进制格式的一些信息:http://www.keil.com/support/man/docs/oh166/oh166_ih_record.htm

如果是这种情况,您可以检查链接器在构建过程中生成的.m51文件。 此文件包含有关程序中包含的模块以及它们链接到的地址的信息。 也许在您的项目中有一些链接器设置,告诉链接器按照您的说法运行。

答案 1 :(得分:0)

我错过了在编辑器上阅读文件大小。此外,Keil的免费版本从2000Kb开始。这是评估版本的局限性。