新聞中心

keil中的存儲模式

作者: 時間:2016-11-10 來源:網(wǎng)絡(luò) 收藏
存儲模式

  存儲模式?jīng)Q定了默認(rèn)的存儲器類型此存儲器類型將應(yīng)用于函數(shù)參數(shù)局部變量和定義時未包含存儲器類型的變量你可以在命令行用SMALL COMPACT和LARGE參數(shù)定義存儲模式,定義變量時使用存儲器類型顯式定義將屏蔽默認(rèn)存儲器類型。

本文引用地址:http://m.butianyuan.cn/article/201611/317506.htm


小(SMALL)模式
  所有變量都默認(rèn)在8051的內(nèi)部數(shù)據(jù)存儲器中。這和用data顯式定義變量起到相同的作用。在此模式下,變量訪問是非??焖俚?,然而所有數(shù)據(jù)對象,包括堆棧都必須放在內(nèi)部RAM中。堆??臻g面臨溢出因為堆棧所占用多少空間依賴于各個子程序的調(diào)用嵌套深度。在典型應(yīng)用中如果具有代碼分段功能的BL51連接/定位器被配置成覆蓋內(nèi)部數(shù)據(jù)存儲器中的變量時,此SMALL模式是最好的選擇

緊湊 COMPACT 模式
  此模式中,所有變量都默認(rèn)在8051的外部數(shù)據(jù)存儲器的一頁中地址的高字節(jié)往往通過Port 2輸出 ,其值必須由你在啟動代碼中設(shè)置編譯器不會為你設(shè)置這和用pdata顯式定義變量起到相同的作用。此模式最多只能提供256字節(jié)的變量這種限制來自于間接尋址所使用的R0,R1 MOVX @R0/R1。 這種模式不如SMALL模式高效所以變量的訪問不夠快,不過它比LARGE模式要快。


大 LARGE 模式
  在大模式下,所有的變量都默認(rèn)在外部存儲器中(xdata )。這和用xdata顯式定義變量起到相同的作用。數(shù)據(jù)指針DPTR 用來尋址。通過DPTR進行存儲器的訪問的效率很低,特別是在對一個大于一個字節(jié)的變量進行操作時尤為明顯 ,此數(shù)據(jù)訪問類型比SMALL和COMPACT模式需要更多的代碼。



關(guān)鍵詞: keil存儲模

評論


技術(shù)專區(qū)

關(guān)閉