在項目開發過程中,開發者出于保護核心算法的目的,希望將部分核心代碼封裝起來,使得其他使用者無法查看具體的代碼實現細節,而不影響正常的調用。常見的思路是將核心的函數封裝成庫,下面將結合例程說明具體實現方法。
1.庫的建立
1).新建庫工程
在CCS中,選擇Project -> New CCS Project,在工程配置窗口中,選擇相應的“Target” device,以及輸入自定義的工程名字;然后需要注意在“Project type and tool-chain -> output type”中選擇“Static Library”,而不是“Executable”,“Executable”對應的是我們一般用到的可生成.out 可執行文件的工程。
圖 1 在CCS中新建庫工程
2).定義相關的庫函數
新建完工程后,即可將所需封裝的函數放入工程文件中,在此以簡單的一個功能函數為例進行說明。
圖 2 .C文件中添加目標庫函數
3).添加頭文件.h
先在工程目錄新建一個“include”文件夾,然后在該文件夾新建
圖 3 新建.h文件
在.h文件中進行庫函數的函數聲明。
圖 4 函數名聲明
至此,編譯該工程,即可生成所需的.lib文件,在默認的Debug文件路徑中。
圖 5 編譯生成對應的.lib文件
2.在工程項目中使用該庫文件
以C2000WARE中的“led_ex1_blink”例程為例,說明下如何在實際工程中使用定義的庫文件。
1)建立文件鏈接
首先將第一步生成的.lib文件以及.h文件所在文件夾一并拷貝至目標工程,由于具體的庫函數代碼實現體現在.c文件,因此最終的工程無法索引至原始的.c文件。
圖 6 復制相應的.h和.lib文件
下一步需要在該工程中建立對庫文件的鏈接關系。首先在工程屬性 C2000 Compiler->Include Option中添加.h文件所在的文件路徑,注意此處使用的是相對路徑,以確保工程路徑發生變更時的一致性。
圖 7 添加.h所在的文件路徑
然后,在C2000 Linker->File Search Path中分別添加對應的.lib文件名以及所在文件路徑。
圖 8 添加.lib 文件名及路徑
2)添加函數頭文件及調用
在目標工程中添加.h文件的聲明,以及測試變量,并在主函數中進行調用。
圖 9 .h文件聲明以及調用示例
此外,除了上述方法,可以采用以下方式把工程的調試功能禁止,這樣在debug模式下就無法進行任何的調試操作以及查看代碼,具體步驟:
選擇“option --symdebug:none”,即在工程屬性Build->C2000 Complier->Advanced Options->Advanced Debug Options中選擇--symdebug:none作為Debugging model。
圖 10 使能option --symdebug:none
選擇一個例程,進行以上配置后,在調試模式下的效果如圖 11所示。在該模式下,所有symbols和工程的鏈接將被移除,因此無法進行任何的調試操作以及查看源代碼。建議在工程開發的最后階段再使用該模式。
圖 11 工程示例
審核編輯:郭婷
-
封裝
+關注
關注
126文章
7873瀏覽量
142894 -
代碼
+關注
關注
30文章
4779瀏覽量
68525
發布評論請先 登錄
相關推薦
評論