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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于HI-TECH C編譯器的PICC18命令行驅(qū)動(dòng)

          基于HI-TECH C編譯器的PICC18命令行驅(qū)動(dòng)

          作者: 時(shí)間:2012-07-23 來源:網(wǎng)絡(luò) 收藏

          (1)編譯Izqmwyz.c

          輸入“-18f458 lzqmwyz.c”,含義是使用.exe對(duì)lzqmwyz.c源文件進(jìn)行編譯,單片機(jī)型號(hào)為
          18f458(即PIC18F458單片機(jī))。這時(shí)會(huì)輸出所需要的編譯結(jié)果,生成的文件中,以hex為擴(kuò)展名的lzqmwyz.hex較為重要。若源程序有語法錯(cuò)誤,還會(huì)顯示出錯(cuò)信息及所在的行。

          注意:在cmd.exe界面中進(jìn)行操作時(shí),所有的源文件均存放在.exe同一目錄下(PICC18.exe默認(rèn)安裝目錄是c:\HTSOFT\PIC18\Bin)。在本文中,PICC18均采用此默認(rèn)安裝目錄。這里lzqmwyz.c存放在c:\HTSOFT\PICl8\Bin下。

          (2)-noerrata選項(xiàng)

          “-noerrata”選項(xiàng)不使能輸出代碼的錯(cuò)誤修改,而缺省時(shí),會(huì)對(duì)的輸出代碼有所修改。有些芯片沒有正誤表,不會(huì)用對(duì)此修改。這個(gè)選項(xiàng)可以用編譯器來禁止任何正誤表方位。當(dāng)正誤表變化時(shí),會(huì)安全禁止。對(duì)有些芯片(如PIC18F458等),PICC18對(duì)程序的代碼長(zhǎng)度進(jìn)行了限制(一般限制在0x4000之內(nèi),即16KB之內(nèi))。這就是同上的PICl8應(yīng)用論壇中。有些網(wǎng)友提出代碼有限制的原因。有些編程者則在程序中編寫了下面的提示程序:




          若編譯的程序代碼超出了這個(gè)范圍,將會(huì)列出出錯(cuò)信息。

          圖3是對(duì)solar050408.c源文件編譯時(shí),代碼超過了Ox4000長(zhǎng)度時(shí)出現(xiàn)的提示信息。

          使用-noerrata選項(xiàng)時(shí),solar050408.c源文件編譯就會(huì)得到正確的編譯結(jié)果,為“PICC18-18f458solar050408.c-o-zgl-noerrata”。中“-o”表示調(diào)用PICC18的優(yōu)化器,“-zg1”表示調(diào)用優(yōu)化器時(shí)采用的優(yōu)先級(jí)為1級(jí)。



          3.2 庫(kù)文件生成及應(yīng)用

          3.2.1 C源文件

          (1)包含main函數(shù)的lzqmwyzl.c源文件




          (2)包含function_X3函數(shù)的funcx3.c源文件



          3.2.2 生成庫(kù)文件

          用3.2.1中的兩個(gè)文件直接創(chuàng)建一個(gè)應(yīng)用程序,這在平時(shí)的應(yīng)用中是經(jīng)常用到的。這里介紹將funcx3.c源文件生成庫(kù)文件,再由lzqmwyz.c調(diào)用的方法,也就是自己制作庫(kù)文件進(jìn)行使用。

          (1)生成obj文件

          將funcx3.c源文件存放在PICC18.exe同一目錄下,然后在cmd.exe中輸入“PICC18-18f458-C funcx3.c”。-C選項(xiàng)是將幾個(gè)源文件編譯成目標(biāo)文件(.obj文件)。這里是將funcx3.c的源文件編譯成funcx3.obj文件,然后就可以在c:\HTSOFT\PICl8\Bin目錄下找到funcx3.obj文件。

          (2)生成lib庫(kù)文件

          在cmd.exe中輸入“libr r fun.lib runcx3.obj”。其中r選項(xiàng)為替換模塊。fun.lib是由函數(shù)funcx3.c制作的庫(kù)文件的文件名,如圖4所示。



          3.2.3 庫(kù)文件應(yīng)用

          圖5是使用3.2.1的lzqmwyzl.c源文件和調(diào)用3.2.2制作的庫(kù)文件fun.1ib的工程。這時(shí)使用到的就只有l(wèi)zqmwyzl.c源文件和fun.1ib文件,而不必再應(yīng)用包含runetton_X3函數(shù)的funcx3.c源文件。



          結(jié)語

          PICC18編譯器在實(shí)踐中有許多應(yīng)用,只有了解了它,才能對(duì)C編譯器有更多、更深入的認(rèn)識(shí)。限于篇幅,本文只起拋磚引玉的作用,提供一種思路供廣大編程者參考;同時(shí),對(duì)于PICC也有相應(yīng)的參考價(jià)值。

          本文引用地址:http://www.ex-cimer.com/article/148730.htm
          上一頁(yè) 1 2 下一頁(yè)

          評(píng)論


          相關(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); })();