<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          新唐單片機(jī)代碼評(píng)審總結(jié)

          共 1142字,需瀏覽 3分鐘

           ·

          2020-12-23 08:13

          昨晚上,我們一個(gè)同事組織了一個(gè)小會(huì)議,大家一起討論了一個(gè)項(xiàng)目的單片機(jī)代碼,這個(gè)單片機(jī)用的是新唐單片機(jī),期間大家也討論了一些問題,總結(jié)一下,希望對(duì)寫單片機(jī)的同學(xué)們有幫助。


          我這個(gè)同事寫的代碼非常優(yōu)秀,具體代碼怎么寫,就不能秀出來了。


          單片機(jī)的一些存儲(chǔ)空間

          data?????--->?????可尋址片內(nèi)ram ?????

          bdata???--->?????可位尋址的片內(nèi)ram ?????

          idata????--->?????可尋址片內(nèi)ram,允許訪問全部?jī)?nèi)部ram ?????

          pdata???--->?????分頁(yè)尋址片外ram?(MOVX?@R0)?(256?BYTE/頁(yè)) ?????

          xdata???--->?????可尋址片外ram?(64k?地址范圍FFFFH) ?????

          code????--->?????程序存儲(chǔ)區(qū)?(64k?地址范圍),對(duì)應(yīng) MOVC?@DPTR


          Program?Size:?data=12.0?xdata=120?code=3349


          — —const 的使用

          我們一般定義一個(gè)全局變量,這個(gè)變量會(huì)占用RAM的空間大小,如果我們把這個(gè)變量定義為const,就可以把這個(gè)變量空間從RAM定義到code空間,以此來節(jié)省內(nèi)存空間大小。


          我們實(shí)測(cè)后發(fā)現(xiàn),const變量不僅占用RAM空間,也會(huì)增大code的大小,大家在使用的時(shí)候可以實(shí)測(cè)試試。


          沒有變到code空間的原因大概是ROM沒有運(yùn)行程序的能力


          經(jīng)常聽到程序代碼可在NOR Flash上運(yùn)行,而不能在NAND Flash上運(yùn)行的說法,關(guān)于這個(gè)說法容易給人造成誤解,因?yàn)镃PU執(zhí)行代碼分為取指、譯碼、執(zhí)行三個(gè)步驟,所以真正運(yùn)行代碼的還是CPU,對(duì)于NOR Flash可以直接運(yùn)行代碼的說法,指的是CPU可以直接通過地址總線從NOR Flash上完成取指的操作。



          — —盡量使用全局變量

          函數(shù)的局部變量對(duì)占用??臻g,如果局部變量很多的話,以后出現(xiàn)問題都不好排查,使用全局變量可以使用code空間,確保??臻g足夠讓程序運(yùn)行,確保不要在運(yùn)行的時(shí)候出現(xiàn)??臻g不夠。


          ——盡量開啟看門狗

          對(duì)于手機(jī)來說,看門狗不是很重要,但是對(duì)于單片機(jī)來說,看門狗非常重要,看門狗可以保證單片機(jī)死機(jī)后可以恢復(fù)運(yùn)行。


          ——聲明為char類型,實(shí)際上可能是unsigned char

          這個(gè)是編譯器的鍋,大家如果發(fā)現(xiàn)程序不按自己想法運(yùn)行,可以留意下這個(gè)。


          推薦閱讀:
          專輯|Linux文章匯總
          專輯|程序人生
          專輯|C語(yǔ)言
          我的知識(shí)小密圈

          瀏覽 37
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  亚洲中文视频在线观看 | 亚洲手机视频在线 | A片免费观看网站 | www.豆花视频无码 | 亚洲小视频在线观看 |