久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > 利用keil c51生成hex如何設置ROM

利用keil c51生成hex如何設置ROM

作者: 時間:2016-11-10 來源:網絡 收藏
我使用at89s52(256RAM,8K的ROM),程序編譯后顯示program Size: data=56.0 xdata=0 code=3529。我的電路中無外部ROM,為了使生成的hex代碼只存儲在該片at89s52,我怎么設置呢?選small肯定不行,因為我的代碼大于2K;若選compact,代碼能放在64K的程序空間,而我s52只有8K的ROM,代碼不會放在我的8K之外吧,那樣肯定會出錯的。若我選擇“Use on-chip ROM(0x0-0xFFF)”,有什么影響? 求高手幫忙了。。。。
附帖:為了說明問題,提供一下Small、Compact及Large的說明(盡管知道有此三種設置,但還是不會運用,不知在什么情況下做何設置),在keil C51編譯環境中,能提供:設置ROM空間的使用,有3個選擇項,Small、Compact及Large。1.Small:只用低于2K的程序空間,適用于AT89C2051這些芯片,2051只有2K的代碼空間,所以跳轉地址只有2KB,編譯的時候會使用ACALL  AJMP這些短跳轉指令,而不會使用LCALL  LJMP指令。如果代碼地址跳轉超過2K,那么會出錯。2.Compact:單個函數的代碼量不能超過2K,整個程序可以使用64K程序空間。3.Large:可用全部64K空間,表示程序或子函數代碼都可以大到64KB,使用code bank還可以更大。通常都選用該方式。選擇Large方式速度不會比Small慢很多,所以一般沒有必要選擇Compact和Small方式。Use on-chip ROM(0x0-0xFFF)選擇項,表示使用片上的ROM (選中該項并不會影響最終生成的目標代碼量),該選項取決于單片機應用系統,如果單片機的EA接高電平,則選中這個選項,表示使用內部ROM,如果單片機的EA接低電平,表示使用外部ROM,則不選中該選項。
問題補充:
我使用at89s52(256RAM,8K的ROM),程序編譯后顯示program Size: data=56.0 xdata=0 code=3529。我的電路中無外部ROM,為了使生成的hex代碼只存儲在該片at89s52,我怎么設置呢?選small肯定不行,因為我的代碼大于2K;若選compact,代碼能放在64K的程序空間,而我s52只有8K的ROM,代碼不會放在我的8K之外吧,那樣肯定會出錯的。若我選擇“Use on-chip ROM(0x0-0xFFF)”后,那Small、Compact及Large 三檔選哪一檔?



關鍵詞: keilc51hex設置RO

評論


技術專區

關閉