




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、用C語言開發(fā)DSP嵌入式系統(tǒng)摘要:目前很多嵌入式系統(tǒng)以為核心構(gòu)建,但是,采用匯編語言開發(fā)系統(tǒng)存在開發(fā)難度大、開發(fā)周期長、維護(hù)性差等缺點,應(yīng)用語言開發(fā)系統(tǒng)是廣大嵌入式開發(fā)者的迫切要求。有關(guān)單片機(jī)的語言開發(fā)有相當(dāng)多的資料可以參考,而系統(tǒng)的語言開發(fā)卻很少見。本文以公司的器件系列為例,講述怎樣用語言開發(fā)一個完整的嵌入式系統(tǒng)。大家在開發(fā)嵌入式產(chǎn)品時首先會想到用控制器的匯編語言編寫監(jiān)控程序,主要原因是:一、匯編語言生成的程序?qū)?yīng)的二進(jìn)制代碼少,程序執(zhí)行要比高級語言生成的程序快。二、控制器剛問世時,沒有相應(yīng)的高級語言可供使用。三、存儲器的價格問題和尋址空間的限制。以上所述問題目前都基本上解決了,在這就不闡述
2、了。實際情況是:在單片機(jī)的應(yīng)用領(lǐng)域,開發(fā)者開始使用語言進(jìn)行開發(fā)了。大家發(fā)現(xiàn)用高級語言開發(fā)嵌入式產(chǎn)品是如此輕松,并且語言程序編譯后的二進(jìn)制代碼也非常短小精練。目前使用最多的數(shù)字信號處理器()是美國公司的家族,而工業(yè)控制上用的最多的又是系列,公司為每一個芯片提供了匯編語言和語言供開發(fā)者選用,本人一直使用語言進(jìn)行產(chǎn)品開發(fā),而目前很少見到這方面的介紹,所以特撰此文以為例,向各位同行推薦用語言開發(fā)嵌入式系統(tǒng)。、的語言的特殊性大家在使用系列語言時已經(jīng)注意到,控制器的語言和機(jī)上使用的有一個顯著的特點:經(jīng)常要對硬件操作,程序中有大量針對控制器內(nèi)部資源進(jìn)行操作的語句。所以,開發(fā)者要明白怎樣用語言來操縱控制器的內(nèi)
3、部資源,既怎樣用語句操作寄存器和內(nèi)部存儲器等。舉個例子,在匯編中我們寫,匯編程序能夠識別是指累加器,而在程序中我們寫;,編譯器能夠識別是指累加器而不是一般的變量。即每一個寄存器都有一個專有名字供開發(fā)者使用,它們定義在一個頭文件中,程序員只需在程序的開始部分用“”語句將該文件包含進(jìn)來即可。注意:這些寄存器的名字不能用做變量名。同樣,在的語言中也有一個頭文件定義各個寄存器的名稱,這里摘錄幾條語句進(jìn)行介紹。比如:()()、就對應(yīng)兩個寄存器,實際是寄存器的地址,用高級語言的說法是指針。我們也在程序的開始部分用“”語句將該文件包含進(jìn)來。這樣,在的語言中使用它們只需在前面加一個星號(),例如,;將進(jìn)制數(shù)賦
4、給寄存器;將進(jìn)制數(shù)賦給寄存器開發(fā)者最好將這個文件打印出來,弄清楚各個寄存器的定義名稱。至于不涉及硬件的語法和語法一樣,需要注意的是,有些標(biāo)準(zhǔn)中的函數(shù)在的編譯器中不提供,讀者可以參考編譯器的語言手冊。搞清楚了這些特殊性,由匯編語言轉(zhuǎn)到語言開發(fā)是很容易的事,當(dāng)然,沒有匯編語言編程基礎(chǔ)的人同樣可以用語言開發(fā)應(yīng)用系統(tǒng)。有關(guān)嵌入式系統(tǒng)的語言編程可參考單片機(jī)與嵌入式系統(tǒng)應(yīng)用年到期上馬忠梅的“嵌入式編程技術(shù)”,本文不做討論。下面只針對以芯片為處理器的嵌入式語言編程進(jìn)行闡述,希望能夠指導(dǎo)讀者進(jìn)行具體操作。、芯片的語言開發(fā)過程簡單地說,整個過程包括以下五個步驟:編輯語言源程序編譯源程序(注意編譯參數(shù))鏈接目標(biāo)文
5、件(注意用文件)在線仿真固化程序下面分別進(jìn)行闡述。一源程序的編輯可以用任何一個編輯器書寫源程序,如、等,最后以為后綴存盤。源代碼可以寫在一個文件中,也可寫在多個文件中,有些預(yù)定義變量和函數(shù)原型聲明可以集中放在一個頭文件中。注意事項:不要忘記在程序的前面用“”將寄存器定義文件包括進(jìn)來。二源程序的編譯源程序編輯好后可以用編譯程序進(jìn)行編譯,生成文件。使用格式:源文件名參數(shù)例如:常用參數(shù)的意義:表示編譯器選擇處理器系列:保留編譯生成的匯編文件(文件):進(jìn)行正常優(yōu)化其他參數(shù)請參考編譯器的手冊。如果有多個源文件,分別編譯。每一個源文件經(jīng)編譯后產(chǎn)生一個文件和文件。三目標(biāo)文件的鏈接(一)公司的文件格式公司新的
6、匯編器和編譯器創(chuàng)建的目標(biāo)文件采用的目標(biāo)文件格式()采用格式有利于模塊化編程,為管理代碼段和目標(biāo)系統(tǒng)存儲器提供更加強(qiáng)有力和靈活的方法。基于格式編寫匯編程序或語言程序時,不必為程序代碼和變量指定目標(biāo)地址,為程序編寫和程序移植提供了極大的方便。格式的基本思想是:鼓勵程序員在用匯編語言或語言編程時運(yùn)用代碼塊和數(shù)據(jù)塊的概念。這種塊稱為,是目標(biāo)文件中的最小單位。所有的塊分為兩大類:已初始化塊和未初始化塊,已初始化塊包含程序代碼和數(shù)據(jù),未初始化塊是為未初始化的數(shù)據(jù)在存儲器中的保留塊。編譯器對程序編譯后產(chǎn)生已初始化塊和未初始化塊,已初始化塊如塊、塊、塊;未初始化塊如塊。舉個例子,當(dāng)程序員用語句;定義一個數(shù)組時
7、不需要指定這個數(shù)組元素的具體位置,編譯器會在數(shù)據(jù)區(qū)預(yù)留所需空間,到鏈接時鏈接器會具體定位。(二)鏈接器對塊的處理鏈接器對塊的處理有兩個功能:其一,將目標(biāo)文件中的塊用來建立程序塊和數(shù)據(jù)塊,并將這些塊組合成可以被芯片執(zhí)行的輸出模塊;其二,鏈接器為輸出塊指定存儲位置。鏈接器提供兩個命令實現(xiàn)上述功能:和。命令定義目標(biāo)系統(tǒng)的存儲器,程序員可以定義每一塊存儲器并指定起始地址和長度;命令用來定義輸入塊的組合和輸出塊在存儲器中的存放位置。若不用和命令,鏈接器采用缺省的分配算法;推薦使用這兩個命令,但要注意這兩個命令在文件(鏈接器命令文件)中使用。下面分析一個芯片的典型文件。(假設(shè)文件名)、文件的構(gòu)成及其詳細(xì)解
8、釋的中斷矢量表,參見后面的說明源程序編譯后對應(yīng)的目標(biāo)文件若程序有多個目標(biāo)文件,一塊寫在這里設(shè)定系統(tǒng)堆棧初始化輸出的文件名輸出映像文件名鏈入庫命令規(guī)定系統(tǒng)的存儲器配置:,:,:,:,內(nèi)部:,內(nèi)部:,內(nèi)部:,外部擴(kuò)展命令規(guī)定了程序中塊的具體分配方法:規(guī)定矢量表的存放位置:初始化表的存放位置:系統(tǒng)程序的存放位置未初始化數(shù)據(jù)的存放位置已初始化數(shù)據(jù)的存放位置、鏈接時所需的中斷矢量表文件的目標(biāo)文件在鏈接時要用到中斷矢量表,中斷矢量表用匯編語言編寫,和具體的芯片有關(guān),假設(shè)的中斷矢量表對應(yīng)的匯編程序為,匯編后的文件名為。下面是一個典型的矢量表文件(假設(shè)程序名為)。定義中斷函數(shù)的名字中斷對應(yīng)的函數(shù)名中斷對應(yīng)的函
9、數(shù)名,以下語句的意義相同可以將中斷函數(shù)名看作中斷入口地址矢量表的存放不需程序員干預(yù)“”用命令自定義一個塊,用于存放中斷矢量表中斷發(fā)生后,程序的跳轉(zhuǎn)目的地址中斷發(fā)生后,則跳到()函數(shù)處意義同上,下同用匯編器匯編該程序,命令形式:生成文件供鏈接器使用。這樣,我們就可以按如下形式在源程序中編寫中斷函數(shù):()為中之一中斷程序的語句系列;注意事項:()是系統(tǒng)入口函數(shù),用戶不能編寫。經(jīng)過上面對命令文件(文件)和中斷矢量表的介紹,接下來可以鏈接命令文件來生成所需要的文件供芯片執(zhí)行或進(jìn)行軟仿真。命令形式:文件名例如:另一種情況是,不使用文件,使用缺省配置,簡單介紹如下:命令形式:文件名參數(shù)例如以上三步可以用下
10、圖描述:四程序的仿真仿真器復(fù)位命令載入格式的二進(jìn)制代碼仿真運(yùn)行,有關(guān)調(diào)試器的使用限于篇幅在此就不做討論了。五程序的固化程序仿真運(yùn)行正確后,需要固化到中,內(nèi)部有字的可以用來固化程序,而不需要外擴(kuò)(程序不大于字的情況下)。公司提供有固化程序的軟件,可以通過仿真器經(jīng)口將程序?qū)懭胄酒瑑?nèi)。目前發(fā)展了一種新的固化技術(shù),可以通過串口寫入芯片,特別適合于現(xiàn)場調(diào)試。下面介紹通過口的固化方法。首先用命令復(fù)位調(diào)試器,然后執(zhí)行下面三個批處理文件。第一步,執(zhí)行批處理文件,將清除(),使全為。第二步,執(zhí)行批處理文件,將擦除(),使全為。以上兩步不需要修改軟件包中自帶的這兩個文件。第三步,執(zhí)行批處理文件,將自己的文件寫入到內(nèi)部的中。執(zhí)行這一步之前,要先修改,將待寫入的文件替換成自己的文件,下面看一下這個批處理文件。假設(shè)軟件包的安裝目錄為:,該目錄下有一個子目錄。要寫入的文件如果要將。寫入到的中,則執(zhí)行下面的命令:經(jīng)過以上步驟既完成了程序固化,可以將系統(tǒng)放到現(xiàn)場實驗了。注意:固化程序時,的一定要工作在的頻率下。在子目錄下有
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國無線煙霧傳感器數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國斑馬線指示燈市場分析及競爭策略研究報告001
- 2025至2030年中國數(shù)顯水位控制儀行業(yè)投資前景及策略咨詢報告
- 進(jìn)件規(guī)范培訓(xùn)
- 美容師對未來工作總結(jié)
- 模具備品備件管理
- 怎樣培養(yǎng)孩子科學(xué)思維
- 管理會計小案例分析
- 孩子自律養(yǎng)成步驟
- 輥道窯基礎(chǔ)知識點
- 班組級安全教育培訓(xùn)內(nèi)容
- 《無人機(jī)操控培訓(xùn)材料》課件
- 電氣控制技術(shù)基礎(chǔ)應(yīng)用知到智慧樹章節(jié)測試課后答案2024年秋蘭州石化職業(yè)技術(shù)大學(xué)
- 2025版科技創(chuàng)新合伙人股權(quán)期權(quán)激勵與業(yè)績考核協(xié)議3篇
- 骨灰寄存架合同模板
- Z20名校聯(lián)盟(浙江省名校新高考研究聯(lián)盟)2025屆高三第二次聯(lián)考 歷史試卷(含答案)
- 古代數(shù)學(xué)家故事--祖沖之(二年紀(jì))
- 護(hù)理倫理學(xué)護(hù)理人際關(guān)系倫理
- 自來水公司安全生產(chǎn)
- 2024年《檔案工作實務(wù)》考試復(fù)習(xí)題庫400題(含答案)
- 2024年產(chǎn)前篩查技術(shù)服務(wù)臨床醫(yī)師考核題
評論
0/150
提交評論