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

          新聞中心

          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)中運行。
          microlib 進(jìn)行了高度優(yōu)化以使代碼變得很小。 它的功能比缺省 C 庫少,并且根本不具備某些 ISO C 特性。某些庫函數(shù)的運行速度也比較慢,例如,memcpy()。
          與缺省 C 庫之間的差異

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

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

          • microlib 不符合 IEEE 754 二進(jì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)存模型,即單獨的堆棧和堆區(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)閉
          看屁屁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); })();