電子產(chǎn)業(yè)一站式賦能平臺

PCB聯(lián)盟網(wǎng)

搜索
查看: 3088|回復: 0
收起左側(cè)

嵌入式開發(fā)工程師培訓_用C語言開發(fā)DSP嵌入式系統(tǒng)

[復制鏈接]

2607

主題

2607

帖子

7472

積分

高級會員

Rank: 5Rank: 5

積分
7472
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2020-8-11 10:35:11 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
嵌入式開發(fā)工程師培訓_用C語言開發(fā)DSP嵌入式系統(tǒng),   

摘要:目前很多嵌入式系統(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í)行要比高級語言生成的程序快! 《⒖刂破鲃倖柺罆r,沒有相應的高級語言可供使用! ∪、存儲器的價格問題和尋址空間的限制。  以上所述問題目前都基本上解決了,在這就不闡述了。實際情況是:在單片機的應用領(lǐng)域,開發(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)! 。、dsp的c語言的特殊性  大家在使用51系列c語言時已經(jīng)注意到,控制器的c語言和pc機上使用的c有一個顯著的特點:經(jīng)常要對硬件操作,程序中有大量針對控制器內(nèi)部資源進行操作的語句。所以,開發(fā)者要明白怎樣用c語言來操縱控制器的內(nèi)部資源,既怎樣用c語句操作寄存器和內(nèi)部存儲器等! ∨e個例子,在51匯編中我們寫。恚铮觥。,#20h,匯編程序能夠識別a是指累加器,嵌入式測試好做嗎, 嵌入式安卓開發(fā)教程, 北京嵌入式人機界面, 鐵通嵌入式管理, 嵌入式測試定義, 基于嵌入式的畢設, 嵌入式技術(shù)有哪些, 歐派嵌入式631, 嵌入式專業(yè)就業(yè), 嵌入式三種模式, if嵌入式公式, ps4屬于嵌入式嗎, 嵌入式智能硬件, Arm嵌入式第二版, 嵌入式端蓋主視圖, 吉林大學嵌入式專業(yè), 嵌入式程序編譯出錯, 什么是嵌入式導航, 嵌入式和年齡有關(guān)嗎, 嵌入式ADD指令, 嵌入式屬于哪個行業(yè),而在51。愠绦蛑形覀儗憽。幔悖悖剑常;,編譯器能夠識別acc是指累加器而不是一般的變量。即每一個寄存器都有一個專有名字供開發(fā)者使用,它們定義在一個頭文件reg51.h 中,程序員只需在程序的開始部分用#include“reg51.h”語句將該文件包含進來即可。注意:這些寄存器的名字不能用做變量名! ⊥瑯,在tms320f240的c語言中也有一個頭文件c240.h定義各個寄存器的名稱,這里摘錄幾條語句進行介紹! ”热纾海#洌澹妫椋睿濉。椋恚颉。ǎǎ穑铮颍簦埃埃埃埃矗 。#洌澹妫椋睿濉。椋睿簦保撸悖颉。ǎǎ穑铮颍簦埃埃罚埃罚埃 。椋恚颉、xint1_cr就對應兩個寄存器,實際是寄存器的地址,用高級語言的說法是指針。我們也在程序的開始部分用#include“c240.h”語句將該文件包含進來。這樣,在dsp的c語言中使用它們只需在前面加一個星號(*),例如,  *imr=0x1010;/* 將16進制數(shù)1010h賦給imr寄存器 */ 。椋睿簦保撸悖颍剑埃埃幔埃猓;/*將16進制數(shù)a0b0h賦給xint1_cr寄存器。 ¢_發(fā)者最好將c240.h這個文件打印出來,弄清楚各個寄存器的定義名稱。至于不涉及硬件的語法和ansi 語法一樣,需要注意的是,有些ansi標準中的函數(shù)在dsp的編譯器中不提供,讀者可以參考dsp編譯器的c語言手冊。搞清楚了這些特殊性,由匯編語言轉(zhuǎn)到c語言開發(fā)是很容易的事,當然,沒有匯編語言編程基礎(chǔ)的人同樣可以用c語言開發(fā)dsp應用系統(tǒng)。  有關(guān)嵌入式系統(tǒng)的c語言編程可參考《單片機與嵌入式系統(tǒng)應用》2001年1到6期上馬忠梅的“嵌入式c編程技術(shù)”,本文不做討論。下面只針對以tms320f240芯片為處理器的嵌入式c語言編程進行闡述,希望能夠指導讀者進行具體操作! 。、tms320f240芯片的c語言開發(fā)過程  簡單地說,整個過程包括以下五個步驟:  編輯c語言源程序  編譯源程序(注意編譯參數(shù))  鏈接目標文件(注意用cmd文件)  在線仿真  固化程序  下面分別進行闡述! ∫弧≡闯绦虻木庉嫛 】梢杂萌魏我粋編輯器書寫源程序,如edit、notepad等,最后以.c為后綴存盤。源代碼可以寫在一個c文件中,也可寫在多個c文件中,有些預定義變量和函數(shù)原型聲明可以集中放在一個頭文件中! ∽⒁馐马棧翰灰浽冢愠绦虻那懊嬗谩。#椋睿悖欤酰洌濉 埃悖玻矗埃琛睂⒓拇嫫鞫x文件包括進來! 《≡闯绦虻木幾g  源程序編輯好后可以用dspcl編譯程序進行編譯,生成obj文件! ∈褂酶袷
回復

使用道具 舉報

發(fā)表回復

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則


聯(lián)系客服 關(guān)注微信 下載APP 返回頂部 返回列表