chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

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

電子設(shè)計(jì) ? 來(lái)源:電子設(shè)計(jì) ? 作者:電子設(shè)計(jì) ? 2022-01-12 16:32 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

Other Parts Discussed in Post:C2000WARE

作者:Aki Li

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

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”例程為例,說(shuō)明下如何在實(shí)際工程中使用定義的庫(kù)文件。

1)建立文件鏈接

首先將第一步生成的.lib文件以及.h文件所在文件夾一并拷貝至目標(biāo)工程,由于具體的庫(kù)函數(shù)代碼實(shí)現(xiàn)體現(xiàn)在.c文件,因此最終的工程無(wú)法索引至原始的.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模式下就無(wú)法進(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和工程的鏈接將被移除,因此無(wú)法進(jìn)行任何的調(diào)試操作以及查看源代碼。建議在工程開(kāi)發(fā)的最后階段再使用該模式。

審核編輯:金巧

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

    關(guān)注

    128

    文章

    9204

    瀏覽量

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

    關(guān)注

    0

    文章

    341

    瀏覽量

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

    關(guān)注

    3

    文章

    4413

    瀏覽量

    67201
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    請(qǐng)問(wèn)怎么封裝函數(shù)庫(kù)

    怎么封裝函數(shù)庫(kù),只留一些回調(diào)函數(shù)和引腳定義,完整程序不讓人看
    發(fā)表于 12-22 13:49

    vivado中,怎么e203內(nèi)核源代碼封裝成ip核,并添加總線?

    vivado中,怎么e203內(nèi)核源代碼封裝成ip核,并添加總線?
    發(fā)表于 11-10 07:22

    如何將某個(gè)函數(shù)或變量放在固定的地址 ?

    如題,如何將某個(gè)函數(shù)或者變量放在固定的地址?類(lèi)似于__attribute__( at(絕對(duì)地址) ),用的nucleistudio ide, __attribute__( at(絕對(duì)地址) )出現(xiàn)警告 at屬性被忽視,有類(lèi)似的屬性嗎?
    發(fā)表于 11-07 06:07

    如何將GCC項(xiàng)目導(dǎo)入NuEclipse?

    如何將GCC項(xiàng)目導(dǎo)入NuEclipse?
    發(fā)表于 09-01 07:04

    AD庫(kù)封裝庫(kù)安裝教程

    電子發(fā)燒友網(wǎng)站提供《AD庫(kù)封裝庫(kù)安裝教程.pdf》資料免費(fèi)下載
    發(fā)表于 06-19 15:35 ?3次下載

    自己寫(xiě)庫(kù):構(gòu)建庫(kù)函數(shù)雛形

    實(shí)際上,構(gòu)建固件庫(kù)是一件費(fèi)時(shí)費(fèi)力的事情,并且它對(duì)開(kāi)發(fā)者對(duì)芯片的熟悉程度有一定的要求。甚至,當(dāng)一個(gè)固件庫(kù)封裝程度很高時(shí),想要閱讀并理解該固件庫(kù)的底層代碼也會(huì)變成一件有較高難度的事情。瑞
    的頭像 發(fā)表于 06-19 11:19 ?1041次閱讀
    自己寫(xiě)<b class='flag-5'>庫(kù)</b>:構(gòu)建庫(kù)<b class='flag-5'>函數(shù)</b>雛形

    PCB標(biāo)準(zhǔn)封裝庫(kù)文件

    PCB標(biāo)準(zhǔn)封裝庫(kù)文件
    發(fā)表于 05-22 17:43 ?10次下載

    Allegro Skill封裝功能之導(dǎo)出單個(gè)封裝介紹

    在PCB設(shè)計(jì)中,若需提取特定封裝,傳統(tǒng)用Allegro自帶導(dǎo)出方法需通過(guò)"File→Export→Libraries"導(dǎo)出全部封裝庫(kù)文件。
    的頭像 發(fā)表于 04-16 17:33 ?3289次閱讀
    Allegro Skill<b class='flag-5'>封裝</b>功能之導(dǎo)出單個(gè)<b class='flag-5'>封裝</b><b class='flag-5'>介紹</b>

    解鎖TSMaster fifo函數(shù):報(bào)文讀取的高效方法

    前言:TSMaster目前有兩種讀取報(bào)文的模式:回調(diào)函數(shù)模式和fifo模式。fifo函數(shù)是TSMaster近期新增的函數(shù),本文重點(diǎn)介紹fi
    的頭像 發(fā)表于 03-14 20:04 ?1059次閱讀
    解鎖TSMaster fifo<b class='flag-5'>函數(shù)</b>:報(bào)文讀取的高效<b class='flag-5'>方法</b>

    GaNPX?和PDFN封裝器件的焊接專(zhuān)業(yè)經(jīng)驗(yàn)

    介紹如何將GaN Systems的GaNPX? 和PDFN封裝下的E-HEMT器件焊接到PCB。
    的頭像 發(fā)表于 03-13 17:38 ?1264次閱讀
    GaNPX?和PDFN<b class='flag-5'>封裝</b>器件的焊接專(zhuān)業(yè)經(jīng)驗(yàn)

    如何將Linux安裝包快速轉(zhuǎn)成玲瓏包

    本篇將以 motrix 為例為大家展示如何將 Linux 安裝包快速轉(zhuǎn)成玲瓏包。
    的頭像 發(fā)表于 03-12 16:01 ?1408次閱讀
    <b class='flag-5'>如何將</b>Linux安裝包快速轉(zhuǎn)成玲瓏包

    如何將HAL庫(kù)轉(zhuǎn)為L(zhǎng)L庫(kù)

    怎么HAL庫(kù)轉(zhuǎn)為L(zhǎng)L庫(kù)。
    發(fā)表于 03-10 06:08

    如何將項(xiàng)目從IAR遷移到Embedded Studio

    本文描述如何將IAR EWARM項(xiàng)目遷移到SEGGER Embedded Studio(簡(jiǎn)稱(chēng)SES)中。
    的頭像 發(fā)表于 02-25 17:11 ?1213次閱讀
    <b class='flag-5'>如何將</b>項(xiàng)目從IAR遷移到Embedded Studio

    如何將python文件導(dǎo)入到ROS系統(tǒng)中

    本文通過(guò)使用myCobot機(jī)械臂進(jìn)行QR碼視覺(jué)追蹤的實(shí)踐案例分析,介紹如何將 python 文件導(dǎo)入到 ROS 系統(tǒng)中。
    的頭像 發(fā)表于 02-11 11:08 ?1372次閱讀
    <b class='flag-5'>如何將</b>python文件導(dǎo)入到ROS系統(tǒng)中

    AD封裝庫(kù)之3D元件庫(kù)

    AD封裝庫(kù)分享
    發(fā)表于 02-10 15:37 ?34次下載