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

8051 with Keil-C filesize issue using a Megawin processor

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

此外,还有一点很奇怪,它似乎是在处理器内存的顶部而不是开始处编写代码。代码开头大约有 4 个字节,但完整的其余部分在内存的末尾。

请帮忙

卡梅伦。

你写你的代码的intel hex文件的文件大小大约是8k。你的部分程序写到地址space的底部。 另一部分写到地址底部space.

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

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

我在编辑器上看错了文件大小。此外,Keil 的免费版本从 2000Kb 位置开始。这是评估版的一部分限制。