HI-TECH C編譯器的PICC18命令行驅動

2020-12-11 電子產品世界

PICl8F系列產品是美國微芯科技公司的高檔產品,用戶多採用C語言進行編程設計,HI-TECH SoftwarePty.Ltd.公司的PICC18編譯器得到了廣泛應用。大部分應用者使用MPLAB集成環境進行編程(見參考文獻),在一些重要或大型應用的開發中有一些問題。例如,如何編寫C語言的庫文件,如何對有代碼限制的程序進行編譯等,若只是採用傳統方式編程,則達不到應有的效果。本文所闡述的HI-TECH C編譯器PICC18命令驅動,正是要解決這些問題。

1 HI-TECH C編譯器

HI-TECH C編譯器提供了C語言的標準特性,同時還加上許多為了適應PIC系列單片機的特定硬體特性而設計的擴展功能,並與彙編器集成在一起提供共享連結器和庫管理工具,因而應用較為廣泛。

當編譯一個程序時,就有許多操作既可由命令驅動程序CLD(command-line driver),也可由HPD集成環境驅動程序(覡在為HI-TIDE)獨立完成。在任一情況下,HPD或CLD(HPD下的菜單選項,或CLD的命令行)採用編程者指定的選項來決定哪一個內部應用需要執行,以
及什麼選項需要發送給每個應用。

用戶提供的適合於目標系統的C語言源程序、彙編語言程序,都可以用CLD或HPD進行操作。當用CLD時,用命令行的任何命令來選擇操作方式;當使用HPD時,在源文件列表對話框中鍵入需要的文件。

通常使用的源程序可以被編譯到一個庫文件中,這樣文件可被編譯器更方便地處理、更快速地訪問。編譯器可以像其他源文件一樣直接接收庫文件,並用.lib擴展名指定文件的類型,因而庫文件必須按這種方式命名。庫文件在使用CLD時,用命令行的任何命令來選擇操作方式;或使用HPD時,在「源文件列表…」對話框中鍵入需要的庫文件。

實際上,在使用MPLAB IDE集成環境進行開發時,是使用了CLD的,只是在平常的應用中沒有注意到而已。下面是在MPLAB IDE中對C源文件進行編譯的結果:



從上面的結果可以看出,編譯器使用了CLD命令,二者是可以統一。只有了解了CLD後,才能對HI-TECHC編譯器有更深入的理解和掌握。

2 PICC18命令行驅動器

PICC18是調用DOS命令行的驅動器,用來編譯和/或連結C語言程序的。PICC18的基本命令格式為:

PICC18[選項]files[文件庫]

通常在文件名之前用破折號「——」來識別,實際上這不是必須的。文件可以是源文件(C或彙編程序)和目標文件的混合。文件庫是庫名字的一個列表,或一L選項源文件。目標文件和庫文件通過文件類型或擴展名被PICC18區分,類型如表1所列。



PICC18將檢查每個文件並完成適當的操作。C文件將被編譯,彙編文件將被彙編。最後,所有通過編譯或彙編得到的目標文件或者在命令行中明確列出的目標文件,都將與標準運行代碼庫和任何用戶指定庫連結,除非它們被某種選項禁止。僅當引用原始碼時,庫中函數才能被連結成結果輸出文件。僅用目標文件(如沒有源文件)作為凋用PICC18,意味著僅執行連結階段,這是一種典型的用法。用PICC18的C選項編譯幾個自己編寫的源文件作為目標文件,然後僅用生成的目標文件和適當的庫(及適當選項)調用PICC18來創建最終程序。


相關焦點

  • c編譯器so easy,gcc c編譯器生成、使用動靜態庫
    第一章程序開發人員大多接觸過c編譯器,請注意,不要將c編譯器和編輯器弄混淆哦。本文對c編譯器的講解,同樣基於gcc c編譯器,本文主要目的在於對linux環境下gcc c編譯器生成和使用靜態庫和動態庫予以介紹。此外,本文為系列教程第一篇——基本概念篇,之後將帶來另外兩篇。
  • C編譯器小家族之C編譯器各顯神通
    C/C++編譯器有哪些?CygwinCygwin是一個Windows下Unix-like模擬環境,具體說就是Unix-like接口(OS API,命令行)重定向層,其目的是不修改軟體源碼僅重新編譯就可以將Unix-like系統上的軟體移植到Windows上(這個移植也許還算不上嚴格意義上的無縫移植)。
  • 高科技作弊 hi-tech cheating
    請看新華社的報導:China targets hi-tech cheating before Gaokao exam: As millions of Chinese students are doing some last-minute cramming for the upcoming national college
  • Emphasizing Hi-tech Results Trading, Expecting Greater Success
    transaction with venture capital investment, on-the-spot trade with on-line trade, hi-tech achievements trade with hi-tech products exhibition」, the   2nd China Hi-tech Fair will be
  • 如果你想學C語言,下載哪個編譯器好?
    C語言這個東西現在用的人很少,一般都是用java的多,不過對於我來講,我一看C語言就親切,就想寫,工作上不一定能用得到,但是C語言作為作為所有高級語言的爸爸,多學一點有助於理解一些底層的東西,下面我就跟大家說一下想學C語言下載哪個編譯器好。
  • (宇宙最強C/C++編譯器)樂創DIY C語言講義​——2.6 GCC的使用
    後來微軟真正獨領作業系統風騷的,是其推出了Windows,其實Windows界面和最早只是DOS裡面的一個程序而已,用過Windows95的就知道,開完機電腦呈現給你的是一個命令行,要輸入一長串命令才可以進入作業系統,這種機制直到Windows XP才被取消,Windows成為真正的Windows。理所當然,由於某些用戶的習慣「DOS界面」下來了。DOS和Shell的區別大致如下。
  • 編譯器 | 五款好用的C/C++編譯器(IDE利器)
    應一些看官老爺的後臺留言需要說一些編譯器和應對的環境,這篇文章屬於編譯器專題,這次我們討論的是的語言: C 和 C++,它們有著許多卓越的特性。後面會帶來不同種類語言的不同使用環境中所使用的編譯器 or IDE。前三個集成 IDE +個 VS 是一些工作中常使用的,後面兩個是一些使用到 C/C++語言的比賽中經常使用的。
  • C/C+編程筆記:C語言預處理命令是什麼?不要以為你直接寫#就行!
    很多小夥伴在自己寫代碼的時候,已經多次使用過#include命令。使用庫函數之前,應該用#include引入對應的頭文件。其實這種以#號開頭的命令稱為預處理命令。
  • 高效的C編程之:C編譯器及其優化
    本章主要講解C編譯器在代碼優化時遇到的一些問題。要編寫高效的C語言原始碼,必須了解C編譯器對什麼形式的代碼有所改動,編譯器涉及的處理器結構的限制,以及一些特殊的C編譯器的限制。14.1.1為編譯器選擇處理器結構在編譯C源文件時,必須為編譯器指定正確的處理器類型。
  • 在Stata中編寫估計命令:編寫C語言插件
    第8行聲明並為C字符串msg分配空間。第10行將「Hello from C」中的新行添加到msg中。第11行有Stata顯示msg包含的內容。12行將0作為返回碼。請注意,我將文字0轉換為預期類型ST_retcode。 現在討論如何從hello.c創建插件hello.plugin。在包含myhello.ado和hello.c的目錄中,我也有stplugin.c。
  • 推薦一款強大的在線編譯器
    demo又不想安裝新的編譯環境的需求,提供其他在線編譯器無法提供的功能。它與其他在線編譯器到底有什麼不一樣,看完本文你就知道了。地址:https://www.onlinegdb.com/支持控制臺輸入這一點很多在線編譯器都無法做到。
  • C語言編譯器哪個好_6款好用的C語言編譯器推薦
    C語言編譯器哪個好其實win tc是款很不錯的軟體。去用一下你就知道了,因為我自學c時就是用的那個軟體,真的向你推薦它!
  • 15 款最好的 C/C++ 編譯器和集成開發環境
    今天我們圍繞的主角是一些超級棒的 C 和 C++ 的集成開發環境(IDE)和編譯器。IDE 主要是在程式設計師開發時提供各種軟體應用組件,最受程式設計師受歡迎的 IDE 都有一個共同點,那就是非常有吸引力的用戶界面。這裡我們收集了一些最好的 C 和 C++ 的 IDEs 和編譯器。
  • 方舟編譯器 Toy Runtime 可以運行 Hello World 了
    方舟編譯器 runtime 參考實現 pacific 發布了 0.1 版本,支持運行基於方舟編譯器的 Hello World 程序。發布公告介紹,pacific 開發團隊使用 QEMU 提供 AArch64 架構支持,將方舟編譯器的 Java 環境巧妙地用 GNU/Linux 的方式仿製了這套可以跑 Hello World 程序的 Toy Runtime。據了解,pacific 是目前業內首個方舟編譯器 runtime 實現,「實現了從 0 到 1 的一個跨越」。
  • 大佬專用的十大在線編譯器
    鍵盤的工作方式類似於編譯器或解釋器,不像交互式解釋器提示符的read-eval-print循環。如果要列印表達式的值,則需要使用語言的列印命令。如果你的語言需要一個「主」功能,你的程序將無法在沒有一個的鍵盤上工作。www.codepad.org3.)Hackerearth在線編譯器在每次擊鍵之後在後臺編譯。
  • PIC單片機CCS之C語言(#IF,#ENDIF的用法)
    目的: 預處理器求出常數表達式的值,如果這個值是非0值,就處理可選項#ELSE或#ENDIF的上面的所有行.注意:你不可在#IF裡使用C變量,只有預處理器通過#define創造的才可使用.若id被定義了,則預處理器表達式DEFINED(id)可用來返回1,若沒有定義id,則DEFINED(id)返回的值為0.
  • 什麼是C語言的編譯器?從計算機原理的角度談編譯器
    早期的機器語言沒有編譯器的概念,因為機器語言不過是很多的0和1,CPU(處理器)能夠直接識別機器語言,C語言本身是為了提高開發效率而開發出的新語言,語義上幾乎和現實世界表達意思一致,但是這樣高級的語義可就難倒了計算機,它不認識像if-else、while等單詞,那麼計算機怎麼識別C程序的呢,這就引出編譯器的概念了。
  • 用25行JavaScript語句實現一個簡單的編譯器
    我們將用25行JavaScript代碼開發一個非常簡單的編譯器!我們的編譯器將會包含:詞法分析模塊語法分析模塊 解析器將基於EBNF語法 我們將使用遞歸下行解析算法來開發解析器代碼生成器我們將要探討的語言對於開發有實際意義的軟體程序並不是特別有用,但是它可以很容易地擴展成一個。
  • Win10 學院:Setup.exe 命令行參數詳解
    通過在其後面添加各種各樣的命令行參數,我們可以在某種程度上自定義Windows10的安裝行為。下面,Win10之家也為大家帶來了部分命令行參數詳解。 ▼Win10系統安裝程序Setup.exe命令行參數詳解:
  • 【C語言】02.第一個C語言程序
    在後來,蘋果公司自己開發了一款叫做clang的編譯器,目標就是要超越gcc。我們這裡就採用clang編譯器來編譯程序。要想在Mac中使用clang編譯器,首先要安裝一個命令行工具(Command Line Tools)1.下載安裝命令行工具安裝命令行工具的方式有2種。