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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > MDK下怎樣才能讓變量在復(fù)位時(shí)不被初始化

          MDK下怎樣才能讓變量在復(fù)位時(shí)不被初始化

          作者: 時(shí)間:2016-11-10 來(lái)源:網(wǎng)絡(luò) 收藏
          最近一個(gè)項(xiàng)目需要保存一下臨時(shí)數(shù)據(jù),而產(chǎn)品容易受干擾而復(fù)位。所以需要保存一下數(shù)據(jù),那么只有在系統(tǒng)復(fù)位時(shí)候不再初始化變量即可。對(duì)應(yīng)MDK(keil)來(lái)說(shuō)是一個(gè)比較麻煩的問(wèn)題。通過(guò)網(wǎng)絡(luò)上找了大量資料和測(cè)試發(fā)現(xiàn)終于可以了。

          如果要實(shí)現(xiàn)以上要求,必須設(shè)置兩點(diǎn),缺一不可:

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

          1. 在MDK的選項(xiàng)中設(shè)置如下:

          2. 必須在程序代碼中如下編寫(xiě):

          #define__noinit____attribute__((zero_init))// 變量不初始化為0
          __noinit__ int tmp; // 變量前加上宏__noinit__

          當(dāng)然也可以直接:

          __attribute__((zero_init))int tmp;

          說(shuō)明:__noinit__不是mdk的關(guān)鍵字

          當(dāng)然也可以直接把啟動(dòng)代碼中的__main()改成main(),也可以達(dá)到相同的目的,但是不知道有沒(méi)有什么不好的影響。



          關(guān)鍵詞: MDK變量復(fù)位初始

          評(píng)論


          技術(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); })();