新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > keil應(yīng)用小貼士:Use MicroLIB是干什么的

keil應(yīng)用小貼士:Use MicroLIB是干什么的

作者: 時間:2016-11-25 來源:網(wǎng)絡(luò) 收藏
keil (我用的是realview mdk3.11)建立ARM的工程時
其中有一項是選 use MicroLIB

由于對KEIL不是很熟悉,于是就查了查,得到了以下信息:
microlib 是缺省 C 庫的備選庫。它旨在與需要裝入到極少量內(nèi)存中的深層嵌入式應(yīng)用程序配合使用。 這些應(yīng)用程序不在操作系統(tǒng)中運(yùn)行。
microlib 進(jìn)行了高度優(yōu)化以使代碼變得很小。 它的功能比缺省 C 庫少,并且根本不具備某些 ISO C 特性。某些庫函數(shù)的運(yùn)行速度也比較慢,例如,memcpy()。
與缺省 C 庫之間的差異

microlib 與缺省 C 庫之間的主要差異是:

本文引用地址:http://butianyuan.cn/article/201611/321172.htm
  • microlib 不符合 ISO C 庫標(biāo)準(zhǔn)。 不支持某些 ISO 特性,并且其他特性具有的功能也較少。

  • microlib 不符合 IEEE 754 二進(jìn)制浮點(diǎn)算法標(biāo)準(zhǔn)。

  • microlib 進(jìn)行了高度優(yōu)化以使代碼變得很小。

  • 無法對區(qū)域設(shè)置進(jìn)行配置。 缺省 C 區(qū)域設(shè)置是唯一可用的區(qū)域設(shè)置。

  • 不能將main()聲明為使用參數(shù),并且不能返回內(nèi)容。

  • 不支持stdio,但未緩沖的stdin、stdoutstderr除外。

  • microlib 對 C99 函數(shù)提供有限的支持。

  • microlib 不支持操作系統(tǒng)函數(shù)。

  • microlib 不支持與位置無關(guān)的代碼。

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

  • microlib 不支持寬字符或多字節(jié)字符串。

  • 與 stdlib 不同,microlib 不支持可選擇的單或雙區(qū)內(nèi)存模型。 microlib 只提供雙區(qū)內(nèi)存模型,即單獨(dú)的堆棧和堆區(qū)。

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

microlib 中的函數(shù)負(fù)責(zé):

  • 創(chuàng)建一個可在其中執(zhí)行 C 程序的環(huán)境。 這包括:

    • 創(chuàng)建一個堆棧

    • 創(chuàng)建一個堆(如果需要)

    • 初始化程序所用的庫的部分組成內(nèi)容。

  • 調(diào)用main()以開始執(zhí)行程序。

要使用 microlib 構(gòu)建程序,必須使用命令行選項??library_type=microlib。根據(jù)需要,編譯器、匯編程序或鏈接器可使用此選項處理不同的文件。 將此選項與鏈接器配合使用時,將覆蓋所有其他選項。


關(guān)鍵詞: keilUseMicroLI

評論


技術(shù)專區(qū)

關(guān)閉