浓毛老太交欧美老妇热爱乱,蜜臀性色av免费,妺妺窝人体色www看美女,久久久久久久久久久大尺度免费视频,麻豆人妻无码性色av专区

位置:51電子網(wǎng) » 技術(shù)資料 » EDA/PLD

如何用C語言開發(fā)DSP嵌入式系統(tǒng)

發(fā)布時間:2008/8/22 0:00:00 訪問次數(shù):638

  摘要:目前很多嵌入式系統(tǒng)以dsp為核心構(gòu)建,但是,采用匯編語言開發(fā)dsp系統(tǒng)存在開發(fā)難度大、開發(fā)周期長、維護性差等缺點,應用c語言開發(fā)dsp系統(tǒng)是廣大嵌入式開發(fā)者的迫切要求。有關(guān)單片機的c語言開發(fā)有相當多的資料可以參考,而dsp系統(tǒng)的c語言開發(fā)卻很少見。本文以ti公司的dsp器件tms320f24x系列為例,講述怎樣用c語言開發(fā)一個完整的dsp嵌入式系統(tǒng)。

引言

  大家在開發(fā)嵌入式產(chǎn)品時首先會想到用控制器的匯編語言編寫監(jiān)控程序,主要原因是:①匯編語言生成的程序?qū)亩M制代碼少,程序執(zhí)行要比高級語言生成的程序快;②控制器剛問世時,沒有相應的高級語言可供使用;③存儲器的價格問題和尋址空間的限制。

  以上所述問題目前已基本解決,在這就不闡述了。實際情況是:在單片機的應用領域,開發(fā)者已開始使用c語言進行開發(fā)。大家發(fā)現(xiàn)用高級語言開發(fā)嵌入式產(chǎn)品是如此輕松,并且c語言程序編譯后的二進制代碼也非常短小精練。

  目前使用最多的數(shù)字信號處理器(dsp)是美國ti公司的tms320家族,而工業(yè)控制上用得最多的又是tms320f2xx系列。ti公司為每一個dsp芯片提供了匯編語言和c語言供開發(fā)者選用。本人一直使用c語言進行產(chǎn)品開發(fā),而目前很少見到這方面的介紹、所以特撰此文,以tms320f240為例,向各位同行推薦用c語言開發(fā)dsp嵌入式系統(tǒng)。

1 dsp的c語言的特殊性

  大家在使用51系列c語言時已經(jīng)注意到,控制器的c語言和pc機上使用的c有一個顯著的特點:經(jīng)常要對硬件操作,程序中有大量針對控制器內(nèi)部資源進行操作的語句。所以,開發(fā)者要明白怎樣用c語言來操縱控制器的內(nèi)部資源,即怎樣用c語句操作寄存器和內(nèi)部存儲器等。

  舉個例子:在51匯編中我們寫 mov a,#20h;匯編程序能夠識別a是指累加器;而在51的c程序中我們寫acc=32;,編譯器能夠識別acc是指累加器而不是一般的變量。即每一個寄存器都有一個專有名字供開發(fā)者使用,它們定義在一個頭文件reg51.h中,程序員只需在程序的開始部分用#include“reg51.h”語句將該文件包含進來即可。注意:這些寄存器的名字不能用作變量名。

  同樣,在tms320f240的c語言中也有一個頭文件c240.h定義各個寄存器的名稱,這里摘錄幾條語句進行介紹。
比如:
  #define imr((port)0x0004)
 。efine xinti_cr((port) 0x07070)
  imr、xint1_cr就對應兩個寄存器,實際是寄存器的地址,用高級語言的說法是指針。我們也在程序的開始部分用#include“c240.h”語句將該文件包含進來。這樣,在dsp的c語言中使用它們只需在前面加一個星號(*),例如,
  *imr=0x1010;/*將十六進制數(shù)1010h賦給imr寄存器*/
  *xint1_cr=0x0a0b0;/*將十六進制數(shù)a0b0h賦給xint1_cr寄存器*/

  開發(fā)者最好將c240.h這個文件打印出來,弄清楚各個寄存器的定義名稱。至于不涉及硬件的語法和ansi語法一樣。需要注意的是,有些ansi標準中的函數(shù)在dsp的編譯器中不提供,讀者可以參考dsp編譯器的c語言手冊。搞清楚了這些特殊性,由匯編語言轉(zhuǎn)到c語言開發(fā)是很容易的事。當然,沒有匯編語言編程基礎的人同樣可以用c語言開發(fā)dsp應用系統(tǒng)。

  有關(guān)嵌入式系統(tǒng)的c語言編程可參考《單片機與嵌入式系統(tǒng)應用》2001年1~6期《嵌入式c編程技術(shù)》,本文不作討論。下面只針對以tms320f240芯片為處理器的嵌入式c語言編程進行闡述,希望能夠指導讀者進行具體操作。

2 tms320f240芯片的c語言開發(fā)過程

  簡單地說,整個過程包括以下5個步驟:
 、倬庉媍語言源程序;
 、诰幾g源程序(注意編譯參數(shù));
  ③鏈接目標文件(注意用cmd文件);
  ④在線仿真;
 、莨袒绦颉

  2.1源程序的編輯

  可以用任何一個編輯器書寫源程序,如edit。notepad等,最后以.c為后綴存盤。源代碼可以寫在一個c文件中,也可寫在多個c文件中;有些預定義變量和函數(shù)原型聲明可以集中放在一個頭文件中。

  注意事項:不要忘記在c程序的前面用 #in-clude “c240.h”將寄存器定義文件包括進來。

  2.2源程序的編譯

  源程序編輯好后可以用dspcl編譯程序進行編譯,生成obj文件。

  使用格式:dspcl源文件名 參數(shù)

  例如: dspcl ex1.c-v2xx-gk-mn
 
  常用參數(shù)的意義:
  v2xx——表示c編譯器選擇處理器2xx系列;
  gk——保留編譯生成的匯編文件(.a(chǎn)sm文件);
  mn——進行正常優(yōu)化。

  其它參數(shù)請參考dsp編譯器的手冊。如果有多個源文件分別編譯,每一個源文件經(jīng)編譯后產(chǎn)生一個obj文件和asm文件。

  2.3 目標文件的鏈接

  2.3.1 ti公司的coff文件格式

  ti公司新的匯編器和編譯器創(chuàng)建的目標文件采用coff(common object file format)的目標文件格式。采用coff格式有利于模塊化編程,為管理代碼段

  摘要:目前很多嵌入式系統(tǒng)以dsp為核心構(gòu)建,但是,采用匯編語言開發(fā)dsp系統(tǒng)存在開發(fā)難度大、開發(fā)周期長、維護性差等缺點,應用c語言開發(fā)dsp系統(tǒng)是廣大嵌入式開發(fā)者的迫切要求。有關(guān)單片機的c語言開發(fā)有相當多的資料可以參考,而dsp系統(tǒng)的c語言開發(fā)卻很少見。本文以ti公司的dsp器件tms320f24x系列為例,講述怎樣用c語言開發(fā)一個完整的dsp嵌入式系統(tǒng)。

引言

  大家在開發(fā)嵌入式產(chǎn)品時首先會想到用控制器的匯編語言編寫監(jiān)控程序,主要原因是:①匯編語言生成的程序?qū)亩M制代碼少,程序執(zhí)行要比高級語言生成的程序快;②控制器剛問世時,沒有相應的高級語言可供使用;③存儲器的價格問題和尋址空間的限制。

  以上所述問題目前已基本解決,在這就不闡述了。實際情況是:在單片機的應用領域,開發(fā)者已開始使用c語言進行開發(fā)。大家發(fā)現(xiàn)用高級語言開發(fā)嵌入式產(chǎn)品是如此輕松,并且c語言程序編譯后的二進制代碼也非常短小精練。

  目前使用最多的數(shù)字信號處理器(dsp)是美國ti公司的tms320家族,而工業(yè)控制上用得最多的又是tms320f2xx系列。ti公司為每一個dsp芯片提供了匯編語言和c語言供開發(fā)者選用。本人一直使用c語言進行產(chǎn)品開發(fā),而目前很少見到這方面的介紹、所以特撰此文,以tms320f240為例,向各位同行推薦用c語言開發(fā)dsp嵌入式系統(tǒng)。

1 dsp的c語言的特殊性

  大家在使用51系列c語言時已經(jīng)注意到,控制器的c語言和pc機上使用的c有一個顯著的特點:經(jīng)常要對硬件操作,程序中有大量針對控制器內(nèi)部資源進行操作的語句。所以,開發(fā)者要明白怎樣用c語言來操縱控制器的內(nèi)部資源,即怎樣用c語句操作寄存器和內(nèi)部存儲器等。

  舉個例子:在51匯編中我們寫 mov a,#20h;匯編程序能夠識別a是指累加器;而在51的c程序中我們寫acc=32;,編譯器能夠識別acc是指累加器而不是一般的變量。即每一個寄存器都有一個專有名字供開發(fā)者使用,它們定義在一個頭文件reg51.h中,程序員只需在程序的開始部分用#include“reg51.h”語句將該文件包含進來即可。注意:這些寄存器的名字不能用作變量名。

  同樣,在tms320f240的c語言中也有一個頭文件c240.h定義各個寄存器的名稱,這里摘錄幾條語句進行介紹。
比如:
 。efine imr((port)0x0004)
  #define xinti_cr((port) 0x07070)
  imr、xint1_cr就對應兩個寄存器,實際是寄存器的地址,用高級語言的說法是指針。我們也在程序的開始部分用#include“c240.h”語句將該文件包含進來。這樣,在dsp的c語言中使用它們只需在前面加一個星號(*),例如,
  *imr=0x1010;/*將十六進制數(shù)1010h賦給imr寄存器*/
  *xint1_cr=0x0a0b0;/*將十六進制數(shù)a0b0h賦給xint1_cr寄存器*/

  開發(fā)者最好將c240.h這個文件打印出來,弄清楚各個寄存器的定義名稱。至于不涉及硬件的語法和ansi語法一樣。需要注意的是,有些ansi標準中的函數(shù)在dsp的編譯器中不提供,讀者可以參考dsp編譯器的c語言手冊。搞清楚了這些特殊性,由匯編語言轉(zhuǎn)到c語言開發(fā)是很容易的事。當然,沒有匯編語言編程基礎的人同樣可以用c語言開發(fā)dsp應用系統(tǒng)。

  有關(guān)嵌入式系統(tǒng)的c語言編程可參考《單片機與嵌入式系統(tǒng)應用》2001年1~6期《嵌入式c編程技術(shù)》,本文不作討論。下面只針對以tms320f240芯片為處理器的嵌入式c語言編程進行闡述,希望能夠指導讀者進行具體操作。

2 tms320f240芯片的c語言開發(fā)過程

  簡單地說,整個過程包括以下5個步驟:
  ①編輯c語言源程序;
 、诰幾g源程序(注意編譯參數(shù));
 、坻溄幽繕宋募ㄗ⒁庥胏md文件);
  ④在線仿真;
 、莨袒绦颉

  2.1源程序的編輯

  可以用任何一個編輯器書寫源程序,如edit。notepad等,最后以.c為后綴存盤。源代碼可以寫在一個c文件中,也可寫在多個c文件中;有些預定義變量和函數(shù)原型聲明可以集中放在一個頭文件中。

  注意事項:不要忘記在c程序的前面用 #in-clude “c240.h”將寄存器定義文件包括進來。

  2.2源程序的編譯

  源程序編輯好后可以用dspcl編譯程序進行編譯,生成obj文件。

  使用格式:dspcl源文件名 參數(shù)

  例如: dspcl ex1.c-v2xx-gk-mn
 
  常用參數(shù)的意義:
  v2xx——表示c編譯器選擇處理器2xx系列;
  gk——保留編譯生成的匯編文件(.a(chǎn)sm文件);
  mn——進行正常優(yōu)化。

  其它參數(shù)請參考dsp編譯器的手冊。如果有多個源文件分別編譯,每一個源文件經(jīng)編譯后產(chǎn)生一個obj文件和asm文件。

  2.3 目標文件的鏈接

  2.3.1 ti公司的coff文件格式

  ti公司新的匯編器和編譯器創(chuàng)建的目標文件采用coff(common object file format)的目標文件格式。采用coff格式有利于模塊化編程,為管理代碼段
相關(guān)IC型號

熱門點擊

 

推薦技術(shù)資料

聲道前級設計特點
    與通常的Hi-Fi前級不同,EP9307-CRZ這臺分... [詳細]
版權(quán)所有:51dzw.COM
深圳服務熱線:13692101218  13751165337
粵ICP備09112631號-6(miitbeian.gov.cn)
公網(wǎng)安備44030402000607
深圳市碧威特網(wǎng)絡技術(shù)有限公司
付款方式


 復制成功!