0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

由庫引生出來的話題

黃工的嵌入式技術(shù)圈 ? 來源:黃工的嵌入式技術(shù)圈 ? 2020-03-14 14:36 ? 次閱讀

寫在前面 Ⅰ

庫,對于編程的人來說,都應(yīng)該知道。但有很多初學(xué)者,及已經(jīng)工作的朋友對庫的理解還處于書本概念階段,也就是自己沒有生成及使用過庫。

其實,還有很多朋友不知道printf打印函數(shù)是怎么回事,我們在代碼中調(diào)用printf函數(shù)打印數(shù)據(jù)時,已經(jīng)調(diào)用了標準的“微庫”,這里可以參看我的文章:關(guān)于printf和scanf在開發(fā)STM32中的配置和應(yīng)用

什么情況下要生成庫?

1.代碼模塊化定型。也就是說模塊代碼的功能在經(jīng)過無數(shù)次驗證,并無誤后,方便團隊的協(xié)同開發(fā),這個時候可以將模塊代碼生成庫。

2.提供SDK給客戶開發(fā)。這里一般是指源代碼對客戶不具有公開性的原因,包括某些特有算法、實現(xiàn)特有功能的具體過程等。

生成庫的原則?

簡單來說就是使代碼結(jié)構(gòu)化、模塊化、源碼不具公開性等。要求代碼高內(nèi)聚、低耦合。

Keil、IAR如何生成庫? Ⅱ

代碼工程生成庫的過程只需要對工程進行配置即可,這里再簡單講一下過程,其實在我“系列教程”中有相關(guān)內(nèi)容。

Keil:Project -> Options for Target -> Output 勾選上“Create Library”即可。

IAR:Project -> Options -> General Options -> Output 勾選上“Library”即可。

庫在工程的使用方法 Ⅲ

“.Lib”、“.a”這種庫大家可以理解為“.c”,只是它已經(jīng)經(jīng)過處理而已。我們只需要像添加“.c”文件,將其添加到工程即可。如下圖,我們將STM32F10x_StdPeriph_Driver標準外設(shè)庫生成“STM32F10x_StdPeriph_Driver.a”庫,添加到工程中:

靜態(tài)庫和動態(tài)庫的區(qū)別? Ⅳ

上面Keil生成的庫是以“.Lib”為后綴的文件,IAR是以“.a”為后綴的文件,你們知道他們是靜態(tài)庫還是動態(tài)庫嗎?

答案是:二者都是靜態(tài)庫。

為什么都是靜態(tài)庫呢? 先看一下靜態(tài)庫和動態(tài)庫的區(qū)別就會知道。

簡單的來說二者的區(qū)別:

靜態(tài)庫:就是在編譯的時候直接將需要的代碼連接進可執(zhí)行程序中去;

動態(tài)庫:就是在需要調(diào)用其中的函數(shù)時,根據(jù)函數(shù)映射表找到該函數(shù)然后調(diào)入堆棧執(zhí)行。

從上面的描述可以知道,靜態(tài)庫是我們MCU開發(fā)者常用的一種,而動態(tài)庫常用于Linux、Windows等開發(fā)場合。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    146

    文章

    17229

    瀏覽量

    351967
  • IAR
    IAR
    +關(guān)注

    關(guān)注

    5

    文章

    354

    瀏覽量

    36729
  • 模塊化
    +關(guān)注

    關(guān)注

    0

    文章

    332

    瀏覽量

    21394
  • keil
    +關(guān)注

    關(guān)注

    68

    文章

    1214

    瀏覽量

    167068
收藏 人收藏

    評論

    相關(guān)推薦

    MySQL數(shù)據(jù)的安裝

    MySQL是一個開源免費的關(guān)系型數(shù)據(jù)管理系統(tǒng),瑞典MySQL AB 公司開發(fā),目前屬于 Oracle 旗下公司。 MySQL 最流行的關(guān)系型數(shù)據(jù)管理系統(tǒng),在 WEB 應(yīng)用方面MySQL是最好
    的頭像 發(fā)表于 01-14 11:25 ?92次閱讀
    MySQL數(shù)據(jù)<b class='flag-5'>庫</b>的安裝

    數(shù)據(jù)加密辦法

    企業(yè)對于數(shù)據(jù)的重視程度不言而喻,也衍生出了數(shù)據(jù)=資產(chǎn)的概念。但是數(shù)據(jù)泄漏的事件頻繁發(fā)生,為了保護數(shù)據(jù)資產(chǎn),企業(yè)有必要對數(shù)據(jù)做一些針對性的措施,讓企業(yè)更安全。 ? 數(shù)據(jù)加密是保護數(shù)據(jù)安全的重要措施
    的頭像 發(fā)表于 12-24 09:47 ?128次閱讀

    ADS1278EVM-PDK不給SCLK信號的話,OUT1處沒有波形出來,怎么解決?

    ADS1278EVM-PDK上發(fā)現(xiàn),我不給SCLK信號的話(即把R40電阻拿掉)(此時CLK有信號),OUT1處沒有波形出來呢。。忘專家指點,謝謝。
    發(fā)表于 12-23 07:05

    寵物自動喂食器主控芯片DSH3186

    寵物在現(xiàn)代人的生活中占有極大的比重,甚至愿意將寵物當(dāng)做孩子精細地養(yǎng)活。也正因為如此,寵物而衍生出來的產(chǎn)業(yè)鏈涉及方方面面,不但解決了寵物主人的煩惱,也給寵物們帶來更為幸福的生活。其中,寵物自動喂食
    的頭像 發(fā)表于 11-01 16:26 ?385次閱讀

    星閃的崛起,會對定位市場產(chǎn)生什么影響?

    最近幾年,國內(nèi)的無線通信技術(shù)領(lǐng)域,一直有一個“靚仔”,吸引著流量的風(fēng)口,那就是星閃。在AIoT產(chǎn)業(yè)圈中,大家基本都聽過星閃,但星閃這個技術(shù)以及衍生出來產(chǎn)業(yè)到底是什么樣的,或許很多人就不是很清晰。星閃
    的頭像 發(fā)表于 11-01 08:05 ?619次閱讀
    星閃的崛起,會對定位市場產(chǎn)生什么影響?

    重新認識什么是防水透氣膜

    ?防水透氣膜是膜分離技術(shù)所衍生出來的一種高分子材料,是一種用特殊工藝制造的,具有選擇透過性的薄膜。防水透氣膜可以讓一些小于防水透氣膜孔徑的氣體透過,而不讓大于防水透
    的頭像 發(fā)表于 10-13 08:02 ?279次閱讀
    重新認識什么是防水透氣膜

    OPA548如果4腳(V-)接GND的話,電壓最低能輸出來多少?能到0V嗎?

    想確定一下OPA548如果4腳(V-)接GND的話,電壓最低能輸出來多少,能到0V嗎,看手冊寫的是軌對軌的
    發(fā)表于 08-28 08:27

    I2S MCLK沒有信號的原因?

    ,i2s_mclk_gpio_select()這個函數(shù)在官方的IDF和ADF的文檔里都找不到。上面這些都講的模糊不清,不一定能用,有沒有人明確用I2S實際產(chǎn)生出來MCLK,說明下如何用。就為來產(chǎn)生
    發(fā)表于 06-19 06:37

    寵物烘干機投放北美市場需不需要做FCC認證?

    寵物毛發(fā)衛(wèi)生問題。這時候就衍生出來一種特殊的寵物用電器產(chǎn)品寵物烘干機。寵物烘干機憑借其高效、便捷的特點,不僅是每家寵物店必備的設(shè)備,隨著啤機成都越來越受到寵物主人的
    的頭像 發(fā)表于 06-11 16:48 ?366次閱讀
    寵物烘干機投放北美市場需不需要做FCC認證?

    ADuC845來畫PCB的話,需要引出來哪幾個腳來燒錄?TXD和RXD嗎?

    我需要買什么下載器來下載嗎?如果我使用這個芯片來畫PCB的話,需要引出來哪幾個腳來燒錄?TXD和RXD嗎?
    發(fā)表于 05-31 06:09

    STM32L073VZT6 ADC VRefint讀出來的數(shù)據(jù)不對是怎么回事?

    );HAL_ADCEx_EnableVREFINT(); 2.當(dāng)使用掃描模式讀的話,讀出來的數(shù)據(jù)是遞增的. 3.當(dāng)使用sigle模式的話,讀出來數(shù)據(jù)是穩(wěn)定的,但是好像ADC輸入達到1.
    發(fā)表于 05-09 08:09

    華為申請注冊“望”商標

    華為技術(shù)有限公司近日申請注冊了多枚商標,其中包括“望”、“看”、“眾”、“INVISOL”、“INNOWARD”等,涵蓋了科學(xué)儀器、運輸工具等多個國際分類。這些商標的申請引發(fā)了市場對華為在智能汽車領(lǐng)域的布局和戰(zhàn)略的關(guān)注。
    的頭像 發(fā)表于 01-30 09:56 ?829次閱讀

    華為申請“望”等多枚運輸工具商標

    另據(jù)了解,深圳望智能技術(shù)有限公司已于今年1月16日正式成立,其注冊地為華為深圳總部大樓,華為技術(shù)有限公司全資持股。值得注意的是,這間新公司華為車BU部門負責(zé)運作。
    的頭像 發(fā)表于 01-29 13:52 ?682次閱讀

    單片機變量存儲大小什么決定?

    最近看到群友在討論【單片機變量存儲大小什么決定?】的話題。
    的頭像 發(fā)表于 01-26 10:11 ?699次閱讀
    單片機變量存儲大小<b class='flag-5'>由</b>什么決定?

    求助怎么減少labview仿真中生成信號的點數(shù)

    這個仿真控制生出來的信號數(shù)據(jù)點太多了,計算一秒都上萬個點了,求求怎么減少點
    發(fā)表于 01-19 19:55