<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > MDK(KEIL)中設(shè)定變量或數(shù)組到指定的位置

          MDK(KEIL)中設(shè)定變量或數(shù)組到指定的位置

          作者: 時間:2013-03-25 來源:網(wǎng)絡(luò) 收藏

          定位

          本文引用地址:http://www.ex-cimer.com/article/148071.htm

          使用定義在頭文件 absacc.h中的 __at宏,可以將以如下方式定位到絕對地址處:

          C 例子:

          #include

          const char MyText[] __at (0x1F00) = TEXT AT ADDRESS 0x1F00;

          int x __at (0x40003000); // variable at address 0x40003000

          unsigned char xArray[128] __at (0x68000000); // Array start at address 0x68000000

          匯編例子:

          在匯編文件中可以使用段名,由|.ARM.__AT_|組成來定義。下面的例子是將一個段定義到地址0xFFE0處:

          AREA |.ARM.__AT_0xFFE0|, CODE, READONLY

          u8 a[10] __attribute__ ((at(0x2000002c)));

          編譯說

          ..ListALL.axf: Error: L6971E: Section .data from object usart.o with type RW incompatible with

          Section .ARM.__AT_0x2000002C from object hal.o with type ZI in er RW_IRAM1.

          似乎是定位了這個絕對地址后,其他不會為它讓位~

          NONO,這個方法不行的,因為編譯器并沒有真正開辟一個變量,你僅僅是強行操作某個地址而已,但這個地址是否被其他數(shù)據(jù)利用了,你管不到也不知道~(0字)電子白菜[8次]2009-9-5 2:08:47

          編譯器里面應(yīng)該有設(shè)置,比如系統(tǒng)總共有多少內(nèi)存,你可以故意設(shè)置的少一些,這樣在編譯的時候他就會避開你沒有的了

          通過*.map文件可以查看空間分配



          關(guān)鍵詞: 指定 位置 變量 設(shè)定 KEIL MDK

          評論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();