2015-04-24 26 views
0

我用MegaWin 8051 MPC82G516A編寫了一個使用Keil C的程序。當我檢查英特爾生成的十六進制文件的文件大小時,它的大小爲8kb(我在二進制代碼窗口中看到了代碼),但是當我使用Megawin的工具編程設備時,它將代碼大小增加到大約29kb! ?任何人都可以提供它爲什麼會這樣做的原因嗎?使用Megawin處理器的Keil-C filesize問題的8051

另外,奇怪的事情是它似乎是將代碼寫入處理器內存的頂部,而不是在開始時。代碼的起始處有4個字節,但完整的剩餘部分位於內存的末尾。

請幫忙

卡梅隆。

+0

也許你應該問這裏http://electronics.stackexchange.com/ – 1010

+0

謝謝。我也是這樣做的 – Cameron

回答

0

我錯過了閱讀編輯器上的文件大小。另外,Keil的免費版本從2000Kb開始。這是評估版本侷限性的一部分。

0

您寫下代碼中intel hex文件的文件大小約爲8k。部分程序寫入地址空間的底部。 另一部分寫入地址空間的底部。

intel十六進制文件不僅包含程序代碼,還包含該代碼應寫入的地址。 您可以檢查自己的文件是否包含地址空間底部和頂部的代碼。 有關intel十六進制格式的一些信息:http://www.keil.com/support/man/docs/oh166/oh166_ih_record.htm

如果是這種情況,您可以檢查鏈接程序在生成過程中生成的.m51文件。 此文件包含有關程序中包含的模塊以及它們鏈接到的地址的信息。 也許在你的項目中有一些鏈接器設置可以告訴鏈接器的行爲。