版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、第2課 一個完整工程的構成(完整版)本帖最后由 likyo 于 2009-4-15 22:18 編輯 ( d; % q6 1 r0 n, b% _2 i z. i. g5 g ahellodsp版權所有,請勿傳播5 x7 9 f7 t2 l0 |& j/ a今天開始,我們就要真正開始2812的學習了。我們今天的內(nèi)容比較簡單,主要是讓沒有基礎的朋友來了解一下dsp開發(fā)需要哪些工具,一個完整的2812的工程(project)是由哪些文件組成的,各個文件的主要作用是什么,以及如何在ccs里創(chuàng)建一個新的工程。; k# y2 z$ p9 k% o. z/ c 9 cdsp交流網(wǎng)dsp學習第一論壇 dsp
2、技術應用與推廣平臺 dsp開發(fā)服務平臺 dsp交流網(wǎng)dsp學習第一論壇 dsp技術應用與推廣平臺 dsp開發(fā)服務平臺 / u* v+ h3 f9 c) _+ u3 q$ 9 n1.dsp開發(fā)所需要的工具+ w9 p/ e* v5 xv4 m& w咱要進行dsp的學習和開發(fā)了,可能從沒接觸過dsp的朋友就要問了,我們做dsp開發(fā)首先要哪些開發(fā)工具呢?dsp開發(fā)通常需要軟件開發(fā)環(huán)境和硬件平臺。軟件開發(fā)環(huán)境為ccs(code composer studio),是ti公司為方便開發(fā)人員而設計的軟件環(huán)境。硬件平臺由仿真器和目標板組成。仿真器的作用是將目標板和pc機連起來,使得您可以在ccs里對目標板上的
3、dsp進行編程,燒寫和調(diào)試等工作,而目標板是指具有dsp芯片,上電后能保證dsp獨立運行電路板,通常為各個公司設計的開發(fā)板或者您自己設計的電路板。1 m|5 n$ u/ q+ n3 ! dz$ z+ x2 c/ c0 s a7 g- i2.安裝并配置ccs; a; m* j6 : y( w首先,讓我們來了解一下ccs的版本。目前,ccs常用的版本有ccs2.2,ccs3.1以及ccs3.3,8 o( z, l# ?! w p: h, d% x) gccs2.2是一個分立版本,也就是每一個系列的dsp都有一個ccs2.2的開發(fā)軟件,分ccs2.2 for c2000,ccs2.2 for c50
4、00,ccs2.2 for c6000。而ccs3.1和ccs3.3是一個集成版本,支持全系列的dsp開發(fā)。我們推薦使用ccs2.2,因為這是目前最穩(wěn)定的版本。但是使用最多的是ccs3.3,因此我們這次學習也以ccs3.3為軟件開發(fā)環(huán)境,和大家一起探討2812的軟件開發(fā)。如果您還沒有安裝ccs,請訪問下面的地址進行下載。如果您購買了我們hellodsp的相關產(chǎn)品,我們會為您免費提供含有ccs開發(fā)環(huán)境的資料光盤。! o7 ! ?) g& w- mccs下載地址: . &extra=page%3d1# x) a6 x$ v8 v( l- v+ ndsp交流網(wǎng)dsp學習第一論壇 dsp技術應用與推廣
5、平臺 dsp開發(fā)服務平臺 & p! t2 e+ qk% c. yccs的安裝和普通應用軟件的安裝沒有多大區(qū)別,在這里就不贅述了。建議大家默認安裝路徑就行了,如果需要修改安裝路徑,請確保將ccs安裝到不含中文字符的路徑。% o) v z% a6 z) t, h1 + / _( h. g( g* g5 k) sccs安裝完成之后,桌面上會出現(xiàn)兩個圖標,一個是ccs,另外一個是ccs setup。在使用ccs之前,需要對ccs進行一些配置操作,以保證ccs支持我們所要開發(fā)的dsp,在這里就是2812了。# |c# c- v0 z. u+ u: y* x) v# v y; l% t- 雙擊,打開ccs
6、 setup。如果您具有硬件開發(fā)平臺,即具有仿真器,那么請您根據(jù)仿真器的生產(chǎn)廠家提供的配置說明進行相應的操作。如果您不具有硬件開發(fā)的條件,目前只能軟件仿真,那么請您通過中間的篩選框,找到“f2812 device simulator”,將其拖入左邊的“system configuration”欄,然后點擊“save and quit”退出ccs setup的設置,可以進入ccs啦。+ k! k7 x0 m/ bc8 h+ h下載 (10.78 kb)2009-4-15 15:522 u0 n0 q8 _# 9 k& k9 f! v( o6 o) l, 3.一個完整的工程由哪些文件構成 a. j
7、2 v% k8 4 u* q: w c請下載附件中的例程gpio,我們將以這個程序為例為您講解一個完整的工程是由哪些文件構成的,以即這些文件大致的作用。% p. l$ d( p* ndsp交流網(wǎng)dsp學習第一論壇 dsp技術應用與推廣平臺 dsp開發(fā)服務平臺 q( q5 c, p: z9 5 t/ c下載完程序后,請解壓縮,然后將其拷貝到ccs安裝路徑下面的myprojects文件夾,如果您剛才是默認安裝的,那就是c:ccstudio_v3.3myprojects。可能又會有朋友要問了,我只能放到myprojects文件夾嗎?當然不是的,您可以將工程文件夾放在您喜歡的位置,但是和安裝路徑一樣,
8、請確保訪問到這個文件夾的路徑里不要出現(xiàn)中文字符。. ( z 2 a! a# u2 j9 a0 o1 . 9 p6 / g- gok,將gpio文件夾放好了嗎?放好之后,我們打開ccs,添加工程。添加工程的方法有兩種,一種是點擊菜單欄的projectopen,另一種方法是左側files窗口內(nèi),點擊“projects”然后右鍵,點擊“open project”。dsp交流網(wǎng)dsp學習第一論壇 dsp技術應用與推廣平臺 dsp開發(fā)服務平臺 - q# i g1 y, f# h; s9 f! - wt2 u# 2 ! u下載 (17.47 kb)2009-4-15 15:52 下載 (9.55 kb)2
9、009-4-15 15:52( wb. d4 h0 k- w8 r2 q+ : s6 s2 r打開gpio工程之后,gpio.pjt工程會顯示在左側files窗口內(nèi)。5 h+ o|8 m! y* v. t6 z( g: c, r6 i9 o 下載 (5.47 kb)2009-4-15 15:524 cv8 r+ r. x8 g: n; y1 t2 f r0 l4 8 . t# d: p2 點擊gpio.pjt左邊的加號,工程內(nèi)部的文件就展現(xiàn)在我們面前了,下面我們來分析一下構成該工程的文件。/ n1 h1 p3 l- 首先我們看到的是include文件夾下面有很多后綴是.h的文件,這就是2812
10、的頭文件了,頭文件的作用是定義了2812內(nèi)部寄存器的數(shù)據(jù)結構。頭文件一般情況下不需要修改,如果你需要定義一些在整個工程內(nèi)都具有作用域的全局變量的時候,可以在頭文件中定義這些變量,具體的方法我們以后在例程或項目實踐中應該會有介紹。) 9 w$ v4 y; f( x8 i t* x7 edsp交流網(wǎng)dsp學習第一論壇 dsp技術應用與推廣平臺 dsp開發(fā)服務平臺 dsp交流網(wǎng)dsp學習第一論壇 dsp技術應用與推廣平臺 dsp開發(fā)服務平臺 1 ) i- y& t. q; ?下載 (29.11 kb)2009-4-15 15:52+ o# sr5 f* o0 d d) o/ o) m$ t; 9 b
11、; i3 g! e0 x. q6 n然后是libraries下面擴展名為.lib的庫文件,它是c語言系統(tǒng)的庫文件。9 ?. r( v/ |$ d; x1 d: a# c; . m) + ?& s+ a- r( f下載 (2.31 kb)2009-4-15 15:52dsp交流網(wǎng)dsp學習第一論壇 dsp技術應用與推廣平臺 dsp開發(fā)服務平臺 % , w4 7 o/ o4 j p& & & s) & t庫文件下面是source文件夾,里面的文件都是以.c為擴展名的,顧名思義,就是源文件,也就是我們開發(fā)時編寫的軟件代碼都是保存在這些文件中的。/ m4 k& pr5 gb4 j3 _/ # i% j
12、# 0 o |dsp交流網(wǎng)dsp學習第一論壇 dsp技術應用與推廣平臺 dsp開發(fā)服務平臺 下載 (22.11 kb)2009-4-15 15:52! ?- g$ ; z9 i3 h i p/ v/ w% d7 c最后是以.cmd為擴展名的文件,這個文件的作用是用來分配存儲空間的。由于dsp編譯器的編譯結果是未定位的,dsp也沒有操作系統(tǒng)來定位執(zhí)行代碼,dsp系統(tǒng)的配置需求也不盡相同,因此我們根據(jù)實際的需求,自己定義代碼的存儲位置。打個通俗的比喻,就是我們有一個倉庫,現(xiàn)在需要把貨物存放到倉庫里面去,為了便于日后取用貨物,我們將貨物分門別類,然后把它們存放到指定的位置去。把哪些貨物放到哪個位置的
13、規(guī)則,就是我們的cmd文件的內(nèi)容。6 t 9 q/ h& s4 z* h/ 5 g9 o+ t# f) q! f( m下載 (1.57 kb)2009-4-15 15:52& . c# d! y. q- |7 $ |# f! t- m7 o: b/ n; p0 l7 qcmd文件又分成兩種。一種是分配ram空間的,用來將程序load到ram內(nèi)進行調(diào)試,因為我們大部分時間都是在調(diào)試程序,所以多用這類cmd,gpio工程中的sram.cmd就是用于分配ram空間的,另一種是分配flash空間的,當程序調(diào)試完畢后,需要將其燒寫到flash內(nèi)部進行固化,這個時侯我們就需要使用這類cmd文件了。6 h:
14、 oo2 c6 m& v( g , 7 c( a9 v8 n- m% gdsp交流網(wǎng)dsp學習第一論壇 dsp技術應用與推廣平臺 dsp開發(fā)服務平臺 從上面的分析我們可以看出,一個完整的工程需要由庫文件(.lib),頭文件(.h),源文件(.c)和cmd文件組成,缺一不可。 o* _. p- m9 q6 m m5 zm0 n $ 7 c0 z% ; e8 / m. u5 g4.如何創(chuàng)建新的工程4 r9 l/ f& d% o * r5 下面,跟著我一起來建立個簡單的工程吧,主要通過這些步驟來了解一下如何創(chuàng)建新工程,方法有多種多樣,我介紹自己常用的,需要用到的文件請下載附件中的newproject
15、s文件夾,此文件夾內(nèi)的文件推薦為建立新工程的素材,請妥善保存。+ n& |+ m8 s: t% g1.打開ccs,點擊菜單欄里的projects,點擊new,會跳出新工程設置的對話框,如下圖所示。: r2 4 g, _3 v b 下載 (11.72 kb)2009-4-15 22:054 * g. n1 l % b6 f* p% |5 a) l o下載 (17.2 kb)2009-4-15 22:05$ s# f9 a( 8 z6 x2 w9 d8 b+ i( |?. t在projects欄內(nèi)我們填寫工程的名字:hellodsp。檢查location,如果您都是按照默認路徑來的,那沒有問題,如
16、果不是默認路徑,您得手工指定一下文件路徑,確認沒有問題后點擊finish。我們發(fā)現(xiàn)在myprojects文件夾下多了hellodsp文件夾,hellodsp文件夾下生成了hellodsp.pjt文件,而且在ccs左側的files欄內(nèi),出現(xiàn)了我們剛剛創(chuàng)建的hellodsp.pjt。dsp交流網(wǎng)dsp學習第一論壇 dsp技術應用與推廣平臺 dsp開發(fā)服務平臺 ; t5 s: o: s0 t- |/ d1 w o o2 e5 m( s/ c+ b/ w( $ t _ _ 下載 (5.35 kb)2009-4-15 22:05# z+ 1 r v& m; y; % : _/ h, l2. 根據(jù)前面一個
17、完整工程的組成情況的分析,我們首先來準備頭文件。由于頭文件多數(shù)情況下是不需改動的,也就是說大家用的頭文件都是一樣的,因為是定義2812的內(nèi)部資源,所以可以將newproject文件夾內(nèi)的頭文件全部復制到hellodsp文件夾。, hq0 q: z5 z. adsp交流網(wǎng)dsp學習第一論壇 dsp技術應用與推廣平臺 dsp開發(fā)服務平臺 3. 將newproject文件夾內(nèi)的.lib文件和.cmd文件同樣復制到hellodsp文件夾。0 x, v) . m! ( u e4. 下面就剩下源文件了。我比較喜歡例程中的文件結構,所以建議還沒有形成編程風格的朋友也采用這種文件結構。我們先來分析一下newp
18、roject文件夾下各個源文件的內(nèi)容,以便于我們更好的理解和采用這種文件結構。: a. a9 c6 q3 m% k- 5 q: d. x1 kdsp28_adc.c 外設ad的初始化函數(shù),與外設ad相關/ t6 s& ed8 i. d$ ldsp28_cputimers.ccpu定時器的初始化和配置函數(shù),與cpu的定時器相關, s( w/ e& q9 t6 c3 fdsp28_defaultisr.c這個文件很重要,包含了2812所有的中斷函數(shù),寫中斷時,只要將程序寫在對應的函數(shù)內(nèi)就可以,大大保證了中斷的成功率。; h_. s: vxdsp28_ecan.c外設can的初始化函數(shù),與外設can
19、相關。; t& j4 w& e v1 p2 t5 wdsp28_ev.c外設ev的初始化函數(shù),與外設ev相關。0 i m- x# w; p1 z3 ?dsp28_globalvariabledefs.c全局變量的定義,這個文件也很重要,定義了2812的寄存器,中斷向量表等內(nèi)容。2 * w) l. ?4 _8 |; y: u& ldsp交流網(wǎng)dsp學習第一論壇 dsp技術應用與推廣平臺 dsp開發(fā)服務平臺 dsp28_gpio.cgpio的初始化函數(shù),只和gpio相關。/ h; u7 v& s( adsp交流網(wǎng)dsp學習第一論壇 dsp技術應用與推廣平臺 dsp開發(fā)服務平臺 dsp28_init
20、peripherals.c所有外設的初始化函數(shù),函數(shù)的內(nèi)容是調(diào)用了2812各個外設的初始化函數(shù)。9 3 z0 ! a& e9 y, kdsp28_mcbsp.cmcbsp的初始化函數(shù),只和mcbsp相關。( m; t4 # h. f# a4 t7 r?dsp28_piectrl.cpie初始化函數(shù),和中斷相關,很重要。1 a$ f c$ n- n?: _mdsp28_pievect.cpie中斷向量表定義以及初始化,很重要。: f) $ _/ b2 ddsp28_sci.c外設sci的初始化函數(shù),只和外設sci相關。7 q n2 o- w0 j; h bdsp28_spi.c外設spi的初始化
21、函數(shù),只和外設spi相關。$ u2 o4 a6 g4 m; l3 u ipdsp28_sysctrl.c系統(tǒng)初始化,主要對開門狗,時鐘等模塊進行初始化,以保證2812正常工作,非常重要。! xc4 m7 c) fdsp28_xintf.c外部接口的初始化函數(shù)。+ w0 p- b8 o! + zdsp28_xintrupt.c外部中斷的初始化函數(shù)。. r4 d1 o5 9 a) e! i, y# e6 m0 fexample_28xgpio.cmain函數(shù)所在的文件,但是各個工程的main函數(shù)一般都是不一樣的。! n0 |9 j/ f. a; 5 k, a( p+ b7 l$ k- f- ! _
22、! w; w- pdsp交流網(wǎng)dsp學習第一論壇 dsp技術應用與推廣平臺 dsp開發(fā)服務平臺 通過上面的分析我們可以看到幾個文件非常重要,dsp28_defaultisr.c,dsp28_globalvariabledefs.c,dsp28_piectrl.c,dsp28_pievect.c,dsp28_sysctrl.c,因此我建議大家每次新建工程的時候,就把這些未編輯過的文件復制過來。其他的外設相關的文件,您這個工程中涉及到哪個外設,您就把這個外設相關的源文件復制過來,一起加入工程。由于main函數(shù)所在的文件內(nèi)容各個工程都不一樣,所以建議大家自己創(chuàng)建,順便來學習一下如何在ccs里創(chuàng)建一個
23、.c的源文件。6 x5 f- 9 l9 o5 z) j7 / z, z& f5 p. f5 w6 _0 f+ t此時我們的新工程hellodsp.pjt還是空的,里面啥都沒有,接下來就是往工程內(nèi)添加文件了。首先我們來添加庫文件。點擊“hellodsp.pjt”,右鍵,點擊“add files to project”,跳出了添加文件的對話框。7 n! e3 x( l1 r i7 udsp交流網(wǎng)dsp學習第一論壇 dsp技術應用與推廣平臺 dsp開發(fā)服務平臺 $ y1 k- z* s- _6 h! q) z0 u, u下載 (16.23 kb)2009-4-15 22:05/ z8 t3 j. h
24、9 a! e# r+ q# c3 9 y; k在篩選框欄內(nèi)選擇“object and library files”,就會看到rts2800n.lib,點擊并打開,便將庫文件添加到工程中來了。- d- d. a$ e9 h( m( 7 1 z) y; v! |, 5 s* d) q1 tdsp交流網(wǎng)dsp學習第一論壇 dsp技術應用與推廣平臺 dsp開發(fā)服務平臺 下載 (23.63 kb)2009-4-15 22:05dsp交流網(wǎng)dsp學習第一論壇 dsp技術應用與推廣平臺 dsp開發(fā)服務平臺 1 k; j o5 y8 l- c% n h2 t- d7 v+ 2 l7 q* s3 k6 j: h
25、 下載 (2.65 kb)2009-4-15 22:05* m# f5 g% b5 h8 h9 u k1 v- , e# w( e. l( udsp交流網(wǎng)dsp學習第一論壇 dsp技術應用與推廣平臺 dsp開發(fā)服務平臺 接下來,用同樣的方法,來添加sources文件夾下的源文件和cmd文件。只是添加源文件時,篩選框的條件是“c+ source file(*.cpp;*.cc;*.cxx)”添加cmd文件時,篩選框的條件應當選擇”linkercommand file(*.cmd;*.lcf)”。) # v, y3 w1 g, z/ tk |% d8 n) i; f# g6 e! k文件添加完成了
26、,是否hellodsp這個工程就建好了呢?可能您想起來了,我們還沒有添加頭文件,也沒有主函數(shù)呢。對了,我們還缺少主函數(shù),頭文件這里先不管,到最后看看是怎么回事。, ( _ q n( q2 6 x1 b |5 q- g) g! ?6 a$ u- z 3 4 p我們點擊菜單欄中的file,”new”,”source file”,在編輯區(qū)域內(nèi)出現(xiàn)了一個新的untitled1文件。6 e4 w5 5 b: z; z1 x 下載 (16.09 kb)2009-4-15 22:05, k& f4 l# b7 3 z9 g% w- fdsp交流網(wǎng)dsp學習第一論壇 dsp技術應用與推廣平臺 dsp開發(fā)服務平
27、臺 6 g( a7 p; _ e: z/ d8 j8 p# p然后,點擊“file”,“save”,會出現(xiàn)保存文件的對話框。文件名填寫“hellodsp”,關鍵要注意的是保存類型,因為我們現(xiàn)在要建立的是源文件,所以選擇“c/c+ source flies(*.c*)”,點擊保存。8 b- - x* c$ l o; _7 y: t6 c* s! g下載 (44.66 kb)2009-4-15 22:057 a9 h. j2 i( x! ndsp交流網(wǎng)dsp學習第一論壇 dsp技術應用與推廣平臺 dsp開發(fā)服務平臺 5 k4 m6 c* z0 5 o這時,我們看到原來的“untitled1”變成了
28、“hellodsp”了。我們在hellodsp文件內(nèi)輸入以下內(nèi)容: 1. #include dsp28_device.h2.3. void main(void)4. 5.6. 復制代碼然后點擊保存,并關閉hellodsp.c文件。( b | fq; t下載 (9.25 kb)2009-4-15 22:05! ) g% 7 mt; ldsp交流網(wǎng)dsp學習第一論壇 dsp技術應用與推廣平臺 dsp開發(fā)服務平臺 # u. q- q- e, o$ y% e然后用我們剛才添加文件的方法將hellodsp.c添加到工程中來。+ x$ % f1 k* j2 a) $ x e( d6 r|; e% g# j
29、接下來,我們就要編譯啦,是不是有些激動?終于把一個新的工程搭建完成啦。點擊工具欄上的“rebuild all”,開始編譯咯。# q. j4 r( c7 a2 f* m1 o6 , c) e m( v7 p0 r. n% a0 dsp交流網(wǎng)dsp學習第一論壇 dsp技術應用與推廣平臺 dsp開發(fā)服務平臺 下載 (5.21 kb)2009-4-15 22:05# n2 % p5 m$ y! x9 s3 l) l0 o! a, r; z! |1 可惜的是,我編譯完成時,提示了一個”warning”,內(nèi)容如下: 1. hellodsp.c c:ccstudio_v3.3c2000cgtoolsbincl2000 -g -pdsw225 -frc:/ccstudio_v3.3/myprojects/hellodsp/debug -d_debug -dlarge_model -ml -v28 -debug.lkf hellodsp.c2.3. linking. c:ccstudio_v3.3c2000cgtoolsbincl2000 -debug.lkf4. 5. warning: creating .stack section
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 人工智能在法律行業(yè)的應用
- 2025年度民間融資合同范本:民間融資合同范本(2025)6篇
- 2024年版建筑風管保溫工程施工合同
- 數(shù)據(jù)要素協(xié)同對制造業(yè)企業(yè)價值的影響研究
- 測量管理體系認證申請書
- 輕質混凝土在裝配式廚房中的應用考核試卷
- 食品倉儲的庫房安保與監(jiān)控措施考核試卷
- 虛擬現(xiàn)實技術在旅游行業(yè)的變革-洞察分析
- 纖維加工過程中的環(huán)保助劑選用考核試卷
- 工程開工令(兩令)
- 會展旅游實務全套教學課件
- 非標設計最強自動計算-分割器計算
- 第五單元整體教學設計-統(tǒng)編版高中語文必修下冊
- 2025年蛇年春聯(lián)帶橫批-蛇年對聯(lián)大全新春對聯(lián)集錦
- 小班音樂教案:小瓢蟲飛教案及反思
- 生活中的代數(shù)智慧樹知到課后章節(jié)答案2023年下成都師范學院
- 監(jiān)獄物業(yè)投標方案 (技術方案)
- 盲眼鐘表匠:生命自然選擇的秘密
- 雷達的分類及雷達信號處理詳解
- 焊接檢驗作業(yè)指導書
評論
0/150
提交評論