<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 小技巧之IAR生成和調用Kinetis函數庫

小技巧之IAR生成和調用Kinetis函數庫

作者: 時(shí)間:2016-09-12 來(lái)源:網(wǎng)絡(luò ) 收藏

前段時(shí)間有博友問(wèn)到在環(huán)境下隱藏原始代碼開(kāi)放功能性接口的方法,其實(shí)就是庫(Library)的概念了,算是一種半開(kāi)源的方式吧,估計應該是公司里常用到一種開(kāi)發(fā)模式吧,不同分工團隊部門(mén)之間最后的整合都是通過(guò)標準的接口來(lái)實(shí)現(當然限于大公司了,不是那種一個(gè)人負責一個(gè)完整項目的小公司),也就是一個(gè)分工團隊接觸不到另一個(gè)團隊的核心代碼,這種模式一定程度上避免了完整產(chǎn)品設計技術(shù)的外泄,不過(guò)每個(gè)團隊的人掌握的技術(shù)也就有所局限了,于個(gè)人水平的提升不利,當然如果你做的足夠專(zhuān)就另當別論了,呵呵,總之自己馬上要找工作了,也在大公司和小公司之間矛盾的徘徊,哎~

本文引用地址:http://dyxdggzs.com/article/201609/304614.htm

前奏嗦了一些東西,明天就帶隊去參加智能車(chē)比賽了,今天臨走前更新一篇也算是對那位博友有個(gè)交代,希望有所幫助,哈哈,不多廢話(huà)了,下面進(jìn)入正題(分為生成庫文件和調用庫文件兩部分):

生成庫文件:

1.首先建立好自己的庫工程,注意庫里不用加main函數,因為庫不是線(xiàn)程(不用來(lái)執行),而是要被調用的,所以在庫工程里寫(xiě)好自己的底層驅動(dòng)代碼封裝到C文件里(可以多個(gè)C)就OK了,這里我就自己隨便添加了個(gè)底層驅動(dòng)(ADC)的C文件建立了BSP_Lib工程作為例子說(shuō)說(shuō)生成和調用Kinetis庫,如下圖:

2.如上圖,把自己想要添加的驅動(dòng)文件都添加到工程里面,不過(guò)要保證編譯需要的相關(guān)頭文件和相關(guān)C文件(如上圖的CPU文件組和Header文件組),另外需要添加BSP_Lib.h文件,在里面把庫里的函數聲明成外部函數和添加上調用時(shí)需要的一些參數,本例子的BSP_Lib.h文件內容如下圖(目前只針對ADC):

3.準備工作完畢,然后下面需要對改工程做相應的設置,右鍵工程名設置如下:

4.如上設置好之后,編譯連接成功(中間如果編譯錯誤,需要根據自己的情況看下是否是頭文件缺失造成的),在$PROJ_DIR$DebugExe文件夾下就可以找到BSP_Lib.a庫文件了,這樣我們前一階段的生成庫文件就成功了,下面就趁熱打鐵說(shuō)說(shuō)怎么調用上面生成的庫文件。

調用庫文件:

1.在應用工程文件夾下建立一個(gè)文件夾命名為BSP_Library,把生成的庫文件BSP_Lib.a和BSP_Lib.h拷貝到該文件夾下,然后在工程里建立工作組BSP_Library,把這兩個(gè)文件添加進(jìn)去,如下圖:

2.在該工程設置里的頭文件包含路徑里添加BSP_Lib.h路徑,然后在test.c里添加頭文件BSP_Lib.h,在main里調用庫的函數,然后編譯連接通過(guò)即可,調用庫成功,如下:

/*******************************************************************************

**File Name: test.c

**Description: project test file, used to test some modules function of k60

**Editor: jicheng at Shandong University, all copyrights are reserved.

**Date: 2012.1.8

**History: V1.0

*******************************************************************************/

#include system.h

#include common.h

#include BSP_Lib.h //庫的頭文件

void main(void)

{

//---------------insert your code in the following-----------------

ADC_Init(ADC0, 0, 0, SEARCH_MODE); //庫函數

EnableInterrupts;

while(1)

{

}

}

喝口水,咳咳... ...這樣子基于的生成和調用Kinetis庫就成功了,看起來(lái)so easy 有木有,呵呵,其實(shí)我看飛思卡爾的MQX操作系統就是基于庫模式調用的,有興趣的不妨看看MQX的demo就可以看到了。

明天就準備揮師威海了,希望我們能取得不錯的成績(jì)吧,看小弟們這么辛苦,希望這些付出能有所回報,另外威??墒莻€(gè)不錯的地兒呢,順便去看看海,哈哈,未完待續~



關(guān)鍵詞: IAR 使用技巧

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>