【轉載】Keil中的USE MicroLib說明

在keil創建ARM的工程時 html

其中有一項是選 use MicroLIB 算法

 UseMicroLib

因爲對KEIL不是很熟悉,因而就查了查,獲得瞭如下信息: 編程

microlib 是缺省 C 庫的備選庫。 它旨在與須要裝入到極少許內存中的深層嵌入式應用程序配合使用。 這些應用程序不在操做系統中運行。 安全

microlib 進行了高度優化以使代碼變得很小。 它的功能比缺省 C 庫少,而且根本不具有某些 ISO C 特性。 某些庫函數的運行速度也比較慢,例如,memcpy()函數

與缺省 C 庫之間的差別 優化

microlib 與缺省 C 庫之間的主要差別是: 操作系統

  • microlib 不符合 ISO C 庫標準。 不支持某些 ISO 特性,而且其餘特性具備的功能也較少。命令行

  • microlib 不符合 IEEE 754 二進制浮點算法標準。線程

  • microlib 進行了高度優化以使代碼變得很小。code

  • 沒法對區域設置進行配置。 缺省 C 區域設置是惟一可用的區域設置。

  • 不能將 main() 聲明爲使用參數,而且不能返回內容。

  • 不支持 stdio,但未緩衝的 stdinstdoutstderr 除外。

  • microlib 對 C99 函數提供有限的支持。

  • microlib 不支持操做系統函數。

  • microlib 不支持與位置無關的代碼。

  • microlib 不提供互斥鎖來防止非線程安全的代碼。

  • microlib 不支持寬字符或多字節字符串。

  • 與 stdlib 不一樣,microlib 不支持可選擇的單或雙區內存模型。 microlib 只提供雙區內存模型,即單獨的堆棧和堆區。

  • 能夠合理地將 microlib 與 --fpmode=std--fpmode=fast 配合使用。

microlib 中的函數負責:

  • 建立一個可在其中執行 C 程序的環境。 這包括:

    • 建立一個堆棧

    • 建立一個堆(若是須要)

    • 初始化程序所用的庫的部分組成內容。

  • 調用 main() 以開始執行程序。

要使用 microlib 構建程序,必須使用命令行選項 :library_type=microlib。 根據須要,編譯器、彙編程序或連接器可以使用此選項處理不一樣的文件。 將此選項與連接器配合使用時,將覆蓋全部其餘選項。

轉自:http://blog.sina.com.cn/s/blog_7142d7da01013gub.html

相關文章
相關標籤/搜索