1. 程式人生 > >DSP C語言基礎要點

DSP C語言基礎要點

 年初到現在,接觸DSP已經半年了,由於公司沒有人指導,做了這麼久都沒出什麼大的成果,也走了不少的彎路。以前做微控制器用C編過一些程式,個人覺得還可以。現在看來也只是在吃以前在學校裡面一些C語言皮毛的老本,加上一些網上說的所謂的技巧什麼的結合以前彙編的經驗做了一些針對處理器的優化而已,實在“雞肋”得很。很多東西都沒有接觸應用到。
   直到接觸到DSP,由於使用TI的庫檔案例程的緣故,對結構體,聯合體等有了進一步的瞭解,也對一個工程變數的使用有了更深的認識。下面對談談對DSP C剛入門者的一些建議:
  1. DSP程式的定位配置——CMD檔案,要求熟悉DSP的儲存器結構。這一部分對接觸硬體多一些的新手很容易,其實也就是配置一般的C語言編譯器的一部分,比如AVR微控制器的標頭檔案,cpu選擇等在DSP中就是這一部分完成。另外還要注意TI例程中對加密位,看門狗的處理。
  2. 當然是C語言的一些基礎了:運算子,優先順序,幾個基本流程控制語句。這些無論是什麼C平臺執行都一樣的,基礎中的基礎。但是也很容易因為這些基礎的簡單的問題,導致一些很鬱悶的結果。也是因為對這些基礎的概念的理解深入程度影響你的軟體思想。
  3. 結構體,聯合體,位域的運用,最好能有一個對比,瞭解運用的場合及優缺點。有了這些基礎,就很容易明白TI例程的一些基本結構。
  4. 變數的作用域以及生存期,這樣才能從最初的單個的C檔案過渡到C工程,才能更好地瞭解模組化程式設計地基本要素,實現基礎。
  5. Q格式等的應用,因為大多數DSP都是定點的,而做運算處理的很多時候都不可避免要用到浮點數。使用Q格式才能更好的發揮dsp高速的特性。所以有人說“不會使用Q格式的DSP程式設計師不是優秀的程式設計師”!
  6. 另外我覺得如果用DSP參與控制的話,最好能熟悉一些面向物件的程式語言,比如C++。要能瞭解用C實現面向物件的方法。為什麼呢?一是面向物件我個人覺得在寫程式方面模組化等要好一些,特別是控制領域,我看過一些高手的PLC程式也是採用的面向物件的思想構件模組的,從那以後我的微控制器程式才開始這樣靠攏,也確實發現了一些好處。比如對那些c流程中多次要操作的資源,有時候會出現一些共用操作的位置錯誤。二是TI的例程中有好多地方用到了這些思想,要明白這些東西,你才能更容易理解那些例程。這一部分我推薦一本書《DSP C2000程式設計師高手進階》。
  7. 資料結構知識,DSP要做運算,肯定要涉及到一些好的資料結構。才能更好的優化演算法。
  8. matlab的運用。matlab提供了強大的數學運算能力,還能對DSP結合CCS進行模擬。可以把程式設計師從繁瑣的底層程式設計中解放出來。個人感覺matlab給程式設計思想和底層程式提供了一個連線,一個平臺。

感覺不錯的幾本DSP書
TMS320C6000系列DSP程式設計工具與指南
【作  者】 (美)Texas Instruments Incorporated
【譯  者】  田黎育 何佩琨 朱夢宇
【叢 書 名】  TI DSP系列中文手冊
【出 版 社】  清華大學出版社
【書 號】 7302136157
【開 本】 185×260
【頁 碼】 676
【出版日期】 2006年9月

TI DSP/BIOS使用者手冊與驅動開發
【作  者】 (美)Texas Instruments Incorporated
【譯  者】  王軍寧;何迪;馬娟;胡啟龍
【叢 書 名】  TI DSP系列中文手冊
【出 版 社】  清華大學出版社
【書 號】 9787302141242
【開 本】 16開
【頁 碼】 255
【出版日期】 2007年4月

TMS320 DSP演算法標準
【作  者】 (美)Texas Instruments Incorporated
【譯  者】  徐盛;胡劍凌
【叢 書 名】  TI DSP系列中文手冊
【出 版 社】  清華大學出版社
【書 號】 9787302148722
【開 本】 16開
【頁 碼】 130
【出版日期】 2007年4月

TMS320C28x系列DSP指令和程式設計指南
【作  者】 (美)Texas Instruments Incorporated
【譯  者】  劉和平 張衛寧 劉林等
【叢 書 名】  TI DSP系列中文手冊
【出 版 社】  清華大學出版社
【書 號】 7302104387
【開 本】 185×260
【頁 碼】 483
【出版日期】 2005年3月

TMS320C54x系列DSP的CPU與外
【作  者】 (美)Texas Instruments Incorporated
【譯  者】  樑曉雯 裴小平 李玉虎
【叢 書 名】  TI DSP系列中文手冊
【出 版 社】  清華大學出版社
【書 號】 7302132216
【開 本】 185×260
【頁 碼】 440
【出版日期】 2006年9月

DSP系統的VLSI設計
【作  者】 李哲英
【出 版 社】  機械工業出版社
【書 號】 9787111204787
【開 本】 16開
【頁 碼】 296
【出版日期】 2007年2月

DSP C2000程式設計師高手進階
【作  者】 王潞鋼 陳林康 曾嶽南 許賢昶
【出 版 社】  機械工業出版社
【書 號】 7111152697
【開 本】 16開
【頁 碼】 206
【出版日期】 2005年1月

相關推薦

DSP C語言基礎要點

 年初到現在,接觸DSP已經半年了,由於公司沒有人指導,做了這麼久都沒出什麼大的成果,也走了不少的彎路。以前做微控制器用C編過一些程式,個人覺得還可以。現在看來也只是在吃以前在學校裡面一些C語言皮毛的老本,加上一些網上說

起航,C語言基礎內容整理

scan 用戶交互 long 打印 起航 組成 數值 保存 .com 一、概念及基本格式 程序:為了解決某一個問題,而編寫的一系列有序指令的集合。 算法:解決問題的具體方法和步驟。 流程圖是算法的一種圖形化的表達方式。流程圖可以直觀、清晰,更有利於人們設計與理解算法。

C語言基礎:遞歸函數,全局(局)變量

否則 fib 語言 factorial 必須 不起作用 聲明 遞歸函數 tor #include <stdio.h>int factorial(int a); int Fibonacci(a);long Hanoi(a); void main(){ } 函

C語言基礎知識整理

除法 當前 www 做到 初步 編寫 main函數 配對 十進制數 用一個簡單的c程序例子,介紹C語言基礎知識的基本構成、格式、以及良好的書寫風格,使小夥伴對c語言有個初步認識。 例1:計算兩個整數之和的c程序: #includemain(){int a,b,sum;

C語言基礎知識

sig 指向 開始 extern strong font 寬度 main bsp printf函數向終端輸出若幹個任意類型的數據。 表示輸出類型的格式字符     格式字符意義 a 浮點數、十六進制數字和p-計數法(C99) A

C++語言基礎(4)-構造函數和析構函數

編譯 編譯器 函數傳參 變量 括號 調用 col space 概念 一.構造函數的定義 類似於java,C++中也有構造函數的概念,相關用法如下: 1.1 構造函數的定義 #include <iostream> using namespace

C++語言基礎(8)-引用

amp name 檢測 ++ 小問題 一次 cin 例子 pre 類似於Java,C++中也有引用類型,具體用法如下: 一.引用的基本用法 #include <iostream> using namespace std; int main(

C++語言基礎(14)-typeid

left 類型 span oat typeid logs div 語言 als typeid可用來判斷類型是否相等: 例如有下面的定義: char *str; int a = 2; int b = 10; float f; 類型比較結果類型比較結

C語言基礎

強制 計算機 操作 eight 沒有 oat color 基礎 pan 程序是為了讓計算機執行某些操作或解決某些問題而編寫的系列有序指令的集合. 算法是解決問題的方法和步驟. 流程圖: 常量是在程序中保持不變的量,在聲名時就要賦值. 變量是一個內存中的容器,其中的

C++語言基礎(18)-模板

ava col andro ted 獲取 聲明 精簡 androi int Java中的泛型編程可以極大的提升編程的效率,比如在android中查找一個控件的ID:標準寫法為: TextView tv_text = (TextView)findViewById(R.i

C語言基礎-第四課-數組與字符串

cat ant 隨機數 打印 第一個 長度 stdin 有效 borde 1 數組 1.1 一維數組定義與使用 int array[10];//定義一個一維數組,名字叫array,一共有10個元素,每個元素都是int類型的 array[0]

C語言基礎-第五課-函數

多少 main函數 聲明 width 編程 sig borde cnblogs 一個人 1 函數 1.1 函數的原型和調用 在使用函數前必須定義或者聲明函數 double circle(double r); int main() { double l

C語言基礎復習1

c語言基礎知識鞏固strlen() 和sizeof()的區別1. sizeof()是操作符,可以計算任意類型的大小(包括函數類型)。 2.strlen()是函數, 需要引入頭文件<string.h>,只能計算char* 類型以 ‘\0‘ 結束的字符串的大小。 3. 數

.NET之美 第一部分C#語言基礎

ogr 引用 約定 另一個 single 指向 不包含 判等 program 第一章 類型基礎 1 值類型與引用類型   CLR 支持兩種類型:值類型和引用類型,   C#的所有值類型均隱式派生自System.ValueType: 結構體:str

C語言基礎--數據類型的簡單補充

1.5 eight 基礎 c語言基礎 語法 聲明變量 nbsp tab double 補充的內容: 類型說明符:long, long long, short, unsigned和signed 類型說明符在語法上是放在聲明變量類型的前面。例如 long

C語言基礎--決策與判斷

出現 program 程序 c語言基礎 res else if express 基礎 裏的 需要掌握的內容: 一. 1.if語句 C語言提供一種稱為if語句的語法格式,通用的形式是: if(express) { programming statements; }

2、c語言基礎學習02

操作系統 一個 常用快捷鍵 risc u+ 可執行 上傳 二進制位 寫法 =============================================================================將windows的可執行文件上傳到linux,

c語言基礎學習06

cas clu 小知識 fputs 轉義字符 而已 參與 子串 翻譯 =============================================================================涉及到的知識點有:1、C語言庫函數、字符輸入函數:

C語言基礎及細節

最小 很多 格式 沒有初始化 負數 素數 邏輯運算符 ati %d 簡單來說什麽是C語言,就是用c寫的語言就是C語言。接下來言歸正傳。 1.沒有註意數據類型存儲範圍 int main(int argc, char **argv) {

20165231 預備作業二:學習基礎C語言基礎調查

oid clu 百度知道 保持 運行 建議 內聚 理解 加減乘除 微信文章感想 讀了婁老師微信公眾號中的文章,老師給我們的啟示首先就是要堅持,萬事開頭難,但是只要肯堅持就一定會有所成就,不管是學習還是生活方面。其中最有觸動的就是減肥了,是我三四年來一直難以完成的目標。如果可