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í)行文件的工程。
圖 1 在CCS中新建庫(kù)工程
2).定義相關(guān)的庫(kù)函數(shù)
新建完工程后,即可將所需封裝的函數(shù)放入工程文件中,在此以簡(jiǎn)單的一個(gè)功能函數(shù)為例進(jìn)行說明。
圖 2 .C文件中添加目標(biāo)庫(kù)函數(shù)
3).添加頭文件.h
先在工程目錄新建一個(gè)“include”文件夾,然后在該文件夾新建
圖 3 新建.h文件
在.h文件中進(jìn)行庫(kù)函數(shù)的函數(shù)聲明。
圖 4 函數(shù)名聲明
至此,編譯該工程,即可生成所需的.lib文件,在默認(rèn)的Debug文件路徑中。
圖 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文件。
圖 6 復(fù)制相應(yīng)的.h和.lib文件
下一步需要在該工程中建立對(duì)庫(kù)文件的鏈接關(guān)系。首先在工程屬性 C2000 Compiler->Include Option中添加.h文件所在的文件路徑,注意此處使用的是相對(duì)路徑,以確保工程路徑發(fā)生變更時(shí)的一致性。
圖 7 添加.h所在的文件路徑
然后,在C2000 Linker->File Search Path中分別添加對(duì)應(yīng)的.lib文件名以及所在文件路徑。
圖 8 添加.lib 文件名及路徑
2)添加函數(shù)頭文件及調(diào)用
在目標(biāo)工程中添加.h文件的聲明,以及測(cè)試變量,并在主函數(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ā)的最后階段再使用該模式。
審核編輯:金巧
-
封裝
+關(guān)注
關(guān)注
127文章
7992瀏覽量
143400 -
嵌入式處理
+關(guān)注
關(guān)注
0文章
341瀏覽量
10069 -
函數(shù)
+關(guān)注
關(guān)注
3文章
4346瀏覽量
62968
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論