那曲檬骨新材料有限公司

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

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

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

如何將函數(shù)封裝成庫(kù)使用的方法介紹

電子設(shè)計(jì) ? 來源:電子設(shè)計(jì) ? 作者:電子設(shè)計(jì) ? 2022-01-12 16:32 ? 次閱讀

Other Parts Discussed in Post:C2000WARE

作者:Aki Li

在項(xiàng)目開發(fā)過程中,開發(fā)者出于保護(hù)核心算法的目的,希望將部分核心代碼封裝起來,使得其他使用者無法查看具體的代碼實(shí)現(xiàn)細(xì)節(jié),而不影響正常的調(diào)用。常見的思路是將核心的函數(shù)封裝成庫(kù),下面將結(jié)合例程說明具體實(shí)現(xiàn)方法。

1.庫(kù)的建立

1).新建庫(kù)工程

在CCS中,選擇Project -> New CCS Project,在工程配置窗口中,選擇相應(yīng)的“Target” device,以及輸入自定義的工程名字;然后需要注意在“Project type and tool-chain -> output type”中選擇“Static Library”,而不是“Executable”,“Executable”對(duì)應(yīng)的是我們一般用到的可生成.out 可執(zhí)行文件的工程。

poYBAGGKR3qAM72lAAFC0LPIhVY692.png

圖 1 在CCS中新建庫(kù)工程

2).定義相關(guān)的庫(kù)函數(shù)

新建完工程后,即可將所需封裝的函數(shù)放入工程文件中,在此以簡(jiǎn)單的一個(gè)功能函數(shù)為例進(jìn)行說明。

poYBAGGKR32AZtgMAACadZE-Mgg276.png

圖 2 .C文件中添加目標(biāo)庫(kù)函數(shù)

3).添加頭文件.h

先在工程目錄新建一個(gè)“include”文件夾,然后在該文件夾新建

pYYBAGGKR3-Aep8HAABd7ZWffVY671.png

pYYBAGGKR4CAVvAWAABbY7V_t4M115.png

圖 3 新建.h文件

在.h文件中進(jìn)行庫(kù)函數(shù)的函數(shù)聲明。

poYBAGGKR4KAYeNmAADyvAC61k4983.png

圖 4 函數(shù)名聲明

至此,編譯該工程,即可生成所需的.lib文件,在默認(rèn)的Debug文件路徑中。

pYYBAGGKR4OAXH_bAADJIDOqYGM655.png

圖 5 編譯生成對(duì)應(yīng)的.lib文件

2.在工程項(xiàng)目中使用該庫(kù)文件

以C2000WARE中的“led_ex1_blink”例程為例,說明下如何在實(shí)際工程中使用定義的庫(kù)文件。

1)建立文件鏈接

首先將第一步生成的.lib文件以及.h文件所在文件夾一并拷貝至目標(biāo)工程,由于具體的庫(kù)函數(shù)代碼實(shí)現(xiàn)體現(xiàn)在.c文件,因此最終的工程無法索引至原始的.c文件。

poYBAGGKR4SAKUCqAAEmvmhS95w509.png

圖 6 復(fù)制相應(yīng)的.h和.lib文件

下一步需要在該工程中建立對(duì)庫(kù)文件的鏈接關(guān)系。首先在工程屬性 C2000 Compiler->Include Option中添加.h文件所在的文件路徑,注意此處使用的是相對(duì)路徑,以確保工程路徑發(fā)生變更時(shí)的一致性。

poYBAGGKR4aAbvxAAAFBgtoPfms580.png

圖 7 添加.h所在的文件路徑

然后,在C2000 Linker->File Search Path中分別添加對(duì)應(yīng)的.lib文件名以及所在文件路徑。

pYYBAGGKR4eAabEzAAEkPe0xnx4071.png

圖 8 添加.lib 文件名及路徑

2)添加函數(shù)頭文件及調(diào)用

在目標(biāo)工程中添加.h文件的聲明,以及測(cè)試變量,并在主函數(shù)中進(jìn)行調(diào)用。

pYYBAGGKR4mAWbM7AAC2iXNo4x4160.png

poYBAGGKR4uAfj1eAAA2Rvdn-so780.png

圖 9 .h文件聲明以及調(diào)用示例

燒錄該工程到芯片,運(yùn)行后驗(yàn)證“test”結(jié)果符合預(yù)期。

此外,除了上述方法,可以采用以下方式把工程的調(diào)試功能禁止,這樣在debug模式下就無法進(jìn)行任何的調(diào)試操作以及查看代碼,具體步驟:

選擇“option --symdebug:none”,即在工程屬性Build->C2000 Complier->Advanced Options->Advanced Debug Options中選擇--symdebug:none作為Debugging model。

poYBAGGKR4yAGCfKAADnJ33tSNA900.png

圖 10 使能option --symdebug:none

選擇一個(gè)例程,進(jìn)行以上配置后,在調(diào)試模式下的效果如圖 11所示。在該模式下,所有symbols和工程的鏈接將被移除,因此無法進(jìn)行任何的調(diào)試操作以及查看源代碼。建議在工程開發(fā)的最后階段再使用該模式。

審核編輯:金巧

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

    關(guān)注

    127

    文章

    7992

    瀏覽量

    143400
  • 嵌入式處理
    +關(guān)注

    關(guān)注

    0

    文章

    341

    瀏覽量

    10069
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4346

    瀏覽量

    62968
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    功率器件晶圓測(cè)試及封裝成品測(cè)試介紹

    ???? 本文主要介紹功率器件晶圓測(cè)試及封裝成品測(cè)試。?????? ? 晶圓測(cè)試(CP)???? 如圖所示為典型的碳化硅晶圓和分立器件電學(xué)測(cè)試的系統(tǒng),主要由三部分組成,左邊為電學(xué)檢測(cè)探針臺(tái)阿波羅
    的頭像 發(fā)表于 01-14 09:29 ?277次閱讀
    功率器件晶圓測(cè)試及<b class='flag-5'>封裝成</b>品測(cè)試<b class='flag-5'>介紹</b>

    芯片極限能力、封裝成品及系統(tǒng)級(jí)測(cè)試

    本文介紹了芯片極限能力、封裝成品及系統(tǒng)級(jí)測(cè)試。 本文介紹芯片極限能力、封裝成品及系統(tǒng)級(jí)測(cè)試,分述如下: 極限能力測(cè)試
    的頭像 發(fā)表于 12-24 11:25 ?424次閱讀

    HAL庫(kù)函數(shù)調(diào)用示例

    HAL(Hardware Abstraction Layer,硬件抽象層)庫(kù)是STM32等微控制器中常用的庫(kù),它為開發(fā)者提供了訪問和控制硬件設(shè)備的接口。以下是一些常用的HAL庫(kù)函數(shù)及其調(diào)用示例: 一
    的頭像 發(fā)表于 12-02 14:01 ?667次閱讀

    在KiCad中使用AD的封裝庫(kù)(Pcblib)

    “?經(jīng)常有小伙伴在群里問,有沒有辦法可以批量把Altium Designer的封裝庫(kù)轉(zhuǎn)成KiCad的形式。目前階段暫時(shí)只能單個(gè)的導(dǎo)出,或者封裝全部放到AD的PCB上,然后通過導(dǎo)入PC
    的頭像 發(fā)表于 11-12 12:21 ?1310次閱讀
    在KiCad中使用AD的<b class='flag-5'>封裝</b><b class='flag-5'>庫(kù)</b>(Pcblib)

    labview調(diào)用bartender .NET封裝成EXE后加載報(bào)錯(cuò)

    labview調(diào)用bartender .NET在源代碼運(yùn)行沒有問題,但封裝成EXE后加載.net就報(bào)錯(cuò)這事什么問題。 (注:用ActiveX封裝成EXE也沒問題,可以運(yùn)行) 以下是bartender .net程序框圖
    發(fā)表于 10-19 10:14

    本期視頻介紹AD PCB封裝庫(kù)轉(zhuǎn)換為RedPCB庫(kù)。#PCB#pcb設(shè)計(jì) #Altium

    PCB封裝庫(kù)
    上海弘快科技有限公司
    發(fā)布于 :2024年10月18日 10:45:48

    如何將BQ35100配置為EOS模式

    電子發(fā)燒友網(wǎng)站提供《如何將BQ35100配置為EOS模式.pdf》資料免費(fèi)下載
    發(fā)表于 09-11 10:03 ?0次下載
    <b class='flag-5'>如何將</b>BQ35100配置為EOS模式

    請(qǐng)問如何將cURL庫(kù)添加到ESP8266_RTOS_SDK項(xiàng)目中?

    我想使用 curl api,但我不知道如何將庫(kù)添加到我的項(xiàng)目中,這樣當(dāng)我將該庫(kù)的頭文件包含在我的項(xiàng)目中時(shí)它就不會(huì)抱怨。 有誰知道如何正確地第三方庫(kù)
    發(fā)表于 07-09 07:52

    如何將stm32f207的以太網(wǎng)庫(kù)中l(wèi)wip1.3.2升級(jí)到1.4.1?

    如何將stm32f207的以太網(wǎng)庫(kù)中l(wèi)wip1.3.2升級(jí)到1.4.1
    發(fā)表于 05-17 08:04

    函數(shù)發(fā)生器的常見故障及解決方法

    函數(shù)發(fā)生器,作為電子測(cè)試和測(cè)量領(lǐng)域的重要工具,其穩(wěn)定性和可靠性對(duì)于實(shí)驗(yàn)和測(cè)試結(jié)果的準(zhǔn)確性至關(guān)重要。然而,由于各種原因,函數(shù)發(fā)生器在使用過程中可能會(huì)遇到各種故障。本文詳細(xì)介紹
    的頭像 發(fā)表于 05-15 11:45 ?1129次閱讀

    PADS2.7,如何將3D封裝與PCB封裝綁定,然后再PCB設(shè)計(jì)時(shí)可直接調(diào)用?

    PADS2.7,如何將3D封裝與PCB封裝綁定,然后再PCB設(shè)計(jì)時(shí)可直接調(diào)用?
    發(fā)表于 05-06 17:07

    STM32Cube_FW_G0_V1.4.0的封裝庫(kù)支持改動(dòng)嗎?

    在使用項(xiàng)目NUCLEO-G070RB 中的函數(shù)時(shí)發(fā)現(xiàn)只有主函數(shù)中能進(jìn)行改動(dòng),主函數(shù)調(diào)用的封裝庫(kù)都不支持進(jìn)行改動(dòng),如果我想要控制別的LED燈閃
    發(fā)表于 03-14 08:28

    請(qǐng)問hsm如何將整顆Tc389芯片重啟?

    關(guān)于 hsm 如何將整顆 tc389 芯片重啟,是否有什么資料介紹,或者說修改什么寄存器呢?
    發(fā)表于 03-06 08:05

    multisim14.0函數(shù)發(fā)生器怎么用

    Multisim 14.0是一款功能強(qiáng)大的電子電路仿真軟件,其中包含了函數(shù)發(fā)生器。函數(shù)發(fā)生器是用于產(chǎn)生各種波形信號(hào)的設(shè)備,可以在電子電路實(shí)驗(yàn)中非常有用。在本文中,我詳細(xì)介紹Multi
    的頭像 發(fā)表于 02-23 16:41 ?8052次閱讀

    在hightec中如何將源代封裝,并編譯鏈接成.a的庫(kù)函數(shù)

    在hightec中如何將源代封裝,并編譯鏈接成.a的庫(kù)函數(shù)
    發(fā)表于 02-18 08:10
    一直对百家乐很感兴趣.zibo太阳城娱乐城 | 大发888唯一官网| KK百家乐官网的玩法技巧和规则| 玉树县| 百家乐娱乐网备用网址| 百家乐官网那个娱乐城信誉好| 百家乐官网翻天片尾曲| 娱乐城送体验金| 洛克百家乐的玩法技巧和规则| 做生意风水| 百家乐官网投注网站是多少| 万博88真人娱乐城| 百家乐高手投注法| 百家乐官网园云顶娱乐主页| 古丈县| 博彩优惠| 威尼斯人娱乐老| 百家乐博赌场娱乐网规则| 百家乐投注办法| 单机百家乐官网的玩法技巧和规则 | 大发游戏| 百家乐真人百家乐皇冠开户| 百家乐官网稳赢秘笈| 泰来百家乐官网导航| 丰合国际网上娱乐| 大发888微信公众号2| 威尼斯人娱乐成| 百家乐有没有破解之法| 百家乐官网园鼎丰娱乐城| 现金百家乐官网代理| 百家乐官网平台出租家乐平台出租 | 百家乐博娱乐平台赌百家乐| 百家乐斗地主在哪玩| 百家乐官网桌子租| 真人百家乐官网游戏软件| 蓝盾百家乐官网洗码| 利都百家乐官网国际娱乐场| 线上百家乐官网赢钱| 百家乐官网赌博代理| 摩纳哥百家乐官网的玩法技巧和规则| 赢家百家乐官网的玩法技巧和规则|