在項目開發(fā)過程中,開發(fā)者出于保護核心算法的目的,希望將部分核心代碼封裝起來,使得其他使用者無法查看具體的代碼實現(xiàn)細節(jié),而不影響正常的調(diào)用。常見的思路是將核心的函數(shù)封裝成庫,下面將結(jié)合例程說明具體實現(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ù)放入工程文件中,在此以簡單的一個功能函數(shù)為例進行說明。
圖 2 .C文件中添加目標庫函數(shù)
3).添加頭文件.h
先在工程目錄新建一個“include”文件夾,然后在該文件夾新建
圖 3 新建.h文件
在.h文件中進行庫函數(shù)的函數(shù)聲明。
圖 4 函數(shù)名聲明
至此,編譯該工程,即可生成所需的.lib文件,在默認的Debug文件路徑中。
圖 5 編譯生成對應(yīng)的.lib文件
2.在工程項目中使用該庫文件
以C2000WARE中的“led_ex1_blink”例程為例,說明下如何在實際工程中使用定義的庫文件。
1)建立文件鏈接
首先將第一步生成的.lib文件以及.h文件所在文件夾一并拷貝至目標工程,由于具體的庫函數(shù)代碼實現(xiàn)體現(xiàn)在.c文件,因此最終的工程無法索引至原始的.c文件。
圖 6 復(fù)制相應(yīng)的.h和.lib文件
下一步需要在該工程中建立對庫文件的鏈接關(guān)系。首先在工程屬性 C2000 Compiler->Include Option中添加.h文件所在的文件路徑,注意此處使用的是相對路徑,以確保工程路徑發(fā)生變更時的一致性。
圖 7 添加.h所在的文件路徑
然后,在C2000 Linker->File Search Path中分別添加對應(yīng)的.lib文件名以及所在文件路徑。
圖 8 添加.lib 文件名及路徑
2)添加函數(shù)頭文件及調(diào)用
在目標工程中添加.h文件的聲明,以及測試變量,并在主函數(shù)中進行調(diào)用。
圖 9 .h文件聲明以及調(diào)用示例
燒錄該工程到芯片,運行后驗證“test”結(jié)果符合預(yù)期。
此外,除了上述方法,可以采用以下方式把工程的調(diào)試功能禁止,這樣在debug模式下就無法進行任何的調(diào)試操作以及查看代碼,具體步驟:
選擇“option --symdebug:none”,即在工程屬性Build->C2000 Complier->Advanced Options->Advanced Debug Options中選擇--symdebug:none作為Debugging model。
圖 10 使能option --symdebug:none
選擇一個例程,進行以上配置后,在調(diào)試模式下的效果如圖 11所示。在該模式下,所有symbols和工程的鏈接將被移除,因此無法進行任何的調(diào)試操作以及查看源代碼。建議在工程開發(fā)的最后階段再使用該模式。
圖 11 工程示例
審核編輯:郭婷
-
封裝
+關(guān)注
關(guān)注
128文章
8446瀏覽量
144689 -
代碼
+關(guān)注
關(guān)注
30文章
4886瀏覽量
70204
發(fā)布評論請先 登錄
動態(tài)庫封裝成python模塊的方法
怎么把寄存器編程封裝成固件庫編程
GPIO構(gòu)件封裝方法與規(guī)范
STM32固件庫介紹及庫函數(shù)模板創(chuàng)建相關(guān)資料分享
將函數(shù)封裝成庫使用的方法
如何將AD庫轉(zhuǎn)換導(dǎo)入到PADS中使用
如何將完成特定任務(wù)的程序代碼封裝成函數(shù)

將函數(shù)封裝成庫使用的實現(xiàn)方法
如何將函數(shù)封裝成庫使用的方法介紹

評論