找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 2909|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

KEIL編譯模式區(qū)別

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:90084 發(fā)表于 2015-9-15 01:28 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
“Keil Cx51編譯器提供三條編譯模式控制命令:SMALL,COMPACT,LARGE,它們對(duì)變量存儲(chǔ)器空間的影響如下。
SMALL:所有變量都被定義在8051單片機(jī)的片內(nèi)RAM中,對(duì)這種變量的訪問(wèn)速度最快。另外,堆棧也必須位于片內(nèi)RAM中,而堆棧的長(zhǎng)度是很重要的,實(shí)際棧長(zhǎng)取決與不同函數(shù)的嵌套深度。采用SMALL編譯模式與定義變量時(shí)指定data存儲(chǔ)器類(lèi)型具有相同效果。

COMPACT:所有變量被定義在分頁(yè)尋址的片外XRAM中,每一頁(yè)片外XRAM的長(zhǎng)度為256字節(jié)。這時(shí)對(duì)變量的訪問(wèn)是通過(guò)寄存器間接尋址(MOVX @R0,MOVX @R1)進(jìn)行的,變量的低8位地址由R0和R1確定,變量的高8位地址由P2口確定。采用這種模式時(shí),必須適當(dāng)改變配置文件STARTUP.A51中的參數(shù):PDATASTART和PDATALEN;同時(shí)還必須對(duì)uVision2的“Options選項(xiàng)/BL51 Locator 標(biāo)簽頁(yè)/Pdata框”中鍵入合適的地址參數(shù),以確保P2口能輸出所需要的高8位地址。采用COMPACT編譯模式與定義變量時(shí)指定pdata存儲(chǔ)器類(lèi)型具有相同效果。

LARGE:所有變量被定義在片外XRAM中(最大可達(dá)64KB),使用數(shù)據(jù)指針DPTR來(lái)間接訪問(wèn)變量(MOVX @DPTR),這種編譯模式對(duì)數(shù)據(jù)訪問(wèn)的效率最低,而且將增加程序的代碼長(zhǎng)度。采用LARGE編譯模式與定義變量時(shí)指定xdata存儲(chǔ)器類(lèi)型具有相同效果!
摘自《Keil Cx51 V7.0單片機(jī)高級(jí)語(yǔ)言編程與uVision2應(yīng)用實(shí)踐》

如何設(shè)置編譯模式,我剪了一個(gè)圖如下,右鍵單擊Target選擇“Options for Target'Target1'”就會(huì)出來(lái)一個(gè)框,在memory model中選擇好像就可以了
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表