在項(xiàng)目開發(fā)過程中,開發(fā)者出于保護(hù)核心算法的目的,希望將部分核心代碼封裝起來,使得其他使用者無法查看具體的代碼實(shí)現(xiàn)細(xì)節(jié),而不影響正常的調(diào)用。常見的思路是將核心的函數(shù)封裝成庫,下面將結(jié)合例程說明具體實(shí)現(xiàn)方法。
1.庫的建立
1)新建庫工程
在CCS中,選擇Project -》 New CCS Project,在工程配置窗口中,選擇相應(yīng)的“Target” device,以及輸入自定義的工程名字;然后需要注意在“Project type and tool-chain -》 output type”中選擇“Static Library”,而不是“Executable”,“Executable”對應(yīng)的是我們一般用到的可生成.out 可執(zhí)行文件的工程。
圖 1 在CCS中新建庫工程
2)定義相關(guān)的庫函數(shù)
新建完工程后,即可將所需封裝的函數(shù)放入工程文件中,在此以簡單的一個(gè)功能函數(shù)為例進(jìn)行說明。
圖 2 .C文件中添加目標(biāo)庫函數(shù)
3)添加頭文件.h
先在工程目錄新建一個(gè)“include”文件夾,然后在該文件夾新建
圖 3 新建.h文件
在.h文件中進(jìn)行庫函數(shù)的函數(shù)聲明。
圖 4 函數(shù)名聲明
至此,編譯該工程,即可生成所需的.lib文件,在默認(rèn)的Debug文件路徑中。
圖 5 編譯生成對應(yīng)的.lib文件
2.在工程項(xiàng)目中使用該庫文件
以C2000WARE中的“led_ex1_blink”例程為例,說明下如何在實(shí)際工程中使用定義的庫文件。
1)建立文件鏈接
首先將第一步生成的.lib文件以及.h文件所在文件夾一并拷貝至目標(biāo)工程,由于具體的庫函數(shù)代碼實(shí)現(xiàn)體現(xiàn)在.c文件,因此最終的工程無法索引至原始的.c文件
圖 6 復(fù)制相應(yīng)的.h和.lib文件
下一步需要在該工程中建立對庫文件的鏈接關(guān)系。首先在工程屬性 C2000 Compiler-》Include Option中添加.h文件所在的文件路徑,注意此處使用的是相對路徑,以確保工程路徑發(fā)生變更時(shí)的一致性。
圖 7 添加.h所在的文件路徑
然后,在C2000 Linker-》File Search Path中分別添加對應(yīng)的.lib文件名以及所在文件路徑。
圖 8 添加.lib 文件名及路徑
2)添加函數(shù)頭文件及調(diào)用
在目標(biāo)工程中添加.h文件的聲明,以及測試變量,并在主函數(shù)中進(jìn)行調(diào)用。
圖 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。
圖 10 使能option --symdebug:none
選擇一個(gè)例程,進(jìn)行以上配置后,在調(diào)試模式下的效果如圖 11所示。在該模式下,所有symbols和工程的鏈接將被移除,因此無法進(jìn)行任何的調(diào)試操作以及查看源代碼。建議在工程開發(fā)的最后階段再使用該模式。
圖 11 工程示例
責(zé)任編輯人:CC
-
封裝
+關(guān)注
關(guān)注
128文章
8625瀏覽量
145172 -
函數(shù)
+關(guān)注
關(guān)注
3文章
4378瀏覽量
64582
發(fā)布評(píng)論請先 登錄
靜態(tài)庫封裝成python模塊的方法
動(dòng)態(tài)庫封裝成python模塊的方法
有沒有人知道怎么將c#中的回調(diào)函數(shù)二次封裝成DLL,以便labview調(diào)用
怎么把寄存器編程封裝成固件庫編程
GPIO構(gòu)件封裝方法與規(guī)范
STM32 Printf函數(shù)利用標(biāo)準(zhǔn)庫實(shí)現(xiàn)方法是什么?
將單片機(jī)數(shù)碼管顯示驅(qū)動(dòng)封裝成一個(gè)函數(shù)
FPGA子函數(shù)封裝問題
將函數(shù)封裝成庫使用的方法
如何將函數(shù)封裝成庫使用的方法介紹

關(guān)于如何將函數(shù)封裝成庫使用的方法介紹

評(píng)論