⑴ TMS320F2812原理及其C語言程序開發的二、內容簡介
《TMS320F2812原理及其C語言程序開發》共分12章。第1章為處理器的功能以及開發環境CCS的介紹,用簡單易懂的實例引領讀者入門。第2章為結合工程開發的C語言基礎介紹,重點是培養讀者C語言開發的基本能力。第3章為TMS320F2812外設的C語言程序開發,重點介紹外設的C語言構成,使讀者對TMS320F2812的外設編程有一個清楚的認識。第4~10章為TMS320F2812的外設介紹,重點介紹外設工作原理、寄存器位信息及功能,並且根據不同的外設提供詳細的C語言程序開發,可以使讀者對外設充分理解。第12章為以TMS320F2812為處理器的電氣平台開發介紹,重點介紹以處理器為核心的各模塊硬體設計、軟體開發,更好地提升讀者的開發能力。附錄中還介紹μC/OS-Ⅱ操作系統在TMS320F2812上移植及實時多任務管理。
《TMS320F2812原理及其C語言程序開發》適合學習DSP TMS320F2812的初級、中級用戶及有一定基礎的DSP設計開發人員,是DSP方面軟體和硬體工程師必備的工具書,也可以作為TMS320F2812 DSP愛好者的自學教材。此外,《TMS320F2812原理及其C語言程序開發》還可以作為高等院校相關專業的參考教材。
-------------------------------------------------------------------------------- 以F2812為核心的電氣平台的開發與設計
豐富的C語言程序開發實例
C語言的編程基礎和編程規范
詳細介紹F2812的外設原理和編程技巧
F2812的Boot ROM相關內容及多種啟動方式介紹
ADC外部校正原理
嵌入式項目流程管理知識介紹
μC/OS-Ⅱ系統在F2812上的移植,以及實時多任務管理 第1章 晶元功能概述、軟體介紹、項目流程管理研究
1.1 TMS320F2812性能概述
1.2 TMS320F2812結構概述
1.2.1 引腳分布
1.2.2 TMS320F2812引腳信號捕述
1.3 TMS320F2812功能概覽
1.3.1 存儲空間示意圖
1.3.2 簡要描述
1.4 DSP集成環境CCS介紹
1.4.1 CCS安裝
1.4.2 CCS配置軟體設置
1.4.3 CCS軟體慨述
1.4.4 File(文件)菜單介紹
1.4.5 Edit(編輯)菜單介紹
1.4.6 View(視圖)菜單介紹
1.4.7 Project(工程)菜單介紹
1.4.8 Debug(調試)菜單介紹
1.5 CCS工程管理
1.5.1 創建新的工程文件
1.5.2 編譯並運行程序
1.6 一個簡單的例子程序介紹
1.6.1 基本的程序代碼生成
1.6.2 具體的程序開發介紹
1.7 嵌入式項目開發流程管理
1.7.1 概述
1.7.2 項目啟動
1.7,3 項目計劃
1.7.4 項目研發
1.7.5 項目結束
第2章 C語言程序設計基礎
2.1 C語言數據結構及語法
2.1.1 C語言數據結構
2.1.2 C語言運算符與表達式
2.2 程序控制結構
2.2.1 if語句
2.2.2 switch語句
2.2.3 while語句
2.2.4 for語句
2.2.5 程序控制中的特殊運算符
2.3 數組
2.4 指引
2.5 函數
2.6 C語言編程規范
2.6.1 環境
2.6.2 語言規范
2.6.3 字元類
2.6.4 變情類型
2.6.5 函數聲明和定義
2.6.6 變數初始化
2.6.7 演算法類型轉換
2.6.8 編程風格
第3章 TMS320F2812外設的C語言程序設計
3.1 導言
3.2 傳統的#define方法
3.3 位定義和寄存器結構體定義方式
3.3.1 定義寄存器結構體
3.3.2 使用DATA_SECTION將寄存器結構體映射到地址空間
3.3.3 添加位定義
3.3.4 共同體定義
3.4 位操作和寄存器結構體定義方式的優點
3.5 對位或寄存器整體進行操作
3.6 一個特殊的例子(eCAN控制寄存器)
第4章 TMS320F2812系統控制及中斷
4.1 存儲空間
4.1.1 Flash存儲器
4.1.2 OTP存儲器
4.1.3 Flash和()TP寄存器
4.2 時鍾及系統控制
4.2.1 時鍾及系統控制概述
4.2.2 外設時鍾控制寄存器(PCLKCR)
4.2.3 系統控制和狀態寄存器(SCSR)
4.2.4 高/低速外設時鍾預定標寄存器(HISPCP/L()SPCP)
4.3 振盪器及鎖相環模塊
4.4 低功耗模式
4.5 F2812外設結構
4.5.1 外設結構寄存器
4.5.2 受EALLOW保護的寄存器
4.6 F2812外設中斷擴展模塊
4.6.1 PIE控制器概述
4.6.2 中斷操作步驟
4.6.3 向量表的映射
4.6.4 中斷源
4.6.5 復用中斷操作過程
4.6.6 使能/禁止復用外設中斷的程序步驟
4.6.7 外設向CPU發出的復州中斷請求流程
4.6.8 PIE向量表
4.6.9 P1E配置寄存器
4.6.10 中斷程序設計
4.7 看門狗模塊
4.7.1 看門狗模塊介紹
4.7.2 看門狗計數寄存器(WDCNTR)
4.7.3 看門狗復位寄存器(WDKEY)
4.7.4 看門狗控制寄存器(WDCR)
4.7.5 看門狗模塊程序設計
4.8 32位CPU定時器
4.8.1 TIMERxTIM寄存器
4.8.2 TIMERxPRD寄存器
4.8.3 TIMERxTCR寄存器
4.8.4 TIMERxTPR寄存器
4.8.5 定時器程序設計
4.9 通用輸入輸出口(GPI())
4.9.1 GPI()介紹
4.9.2 輸入限制
4.9.3 GPxMUX寄存器(功能選擇寄存器)
4.9.4 GPxDIR寄存器(方向控制寄存器)
4.9.5 GPxDAT衡存器(數據寄存器)
4.9.6 GPxSET寄存器(置位寄存器)
4.9.7 GPxCLEAR寄存器(清除寄存器)
4.9.8 GPxTOGGLE寄存器(取反觸發寄器)
4.9.9 寄存器位I/O引腳的映射
4.9.10 GPIO程序設計
第5章 TMS320F2812外部介面(XINTF)
5.1 外部接U功能概述
5.2 X1NTF配褂概述
5.2.1 政變XINTF配置和時序寄器的程序
5.2.2 XINTF時鍾
5.2.3 寫緩沖器
5.2.4 XINTF每個區域訪問的引導、激活、跟蹤的時序
5.2.5 XREADY信號采樣
5.2.6 區域切換
5.2.7 XMP/MC信號對XINTF的影響
5.3 引導、激活、跟蹤等待狀態的配置
5.4 XINTF寄存器
5.4.1 XINTF時序寄存器(XTIMINGx)
5.4.2 XINTF配性寄仔器(XINCNFx)
5.4.3 XBANK寄存器
5.5 信號描述
5.6 XINTF操作時序圖
5.7 XINTF應用開發及C語言程序設計
5.7.1 XINTF應用開發概述
5.7.2 XINTF模塊的C語言程序設計
第6章 TMS320F2812串列通信介面(SCI)
第7章 TMS3211F2812的串列外圍設備介面(SPI)
第8章 TMS320F2812增強型區域控制網路(eCAN)模塊
第9章 TMS320F2812模/數轉換(ADC)模 塊
第10章 TMS320F2812事件管理器(EV)模塊
第11章 Boot ROM介紹和F2812程序模擬與下載
第12章 基於TMS320F2812的電氣平台開發設計
附錄 μC/OS-Ⅱ操作系統在F2812上移植及實時多任務管理
參考文獻
……
⑵ 對DSP而言,CCS用C語言編程和匯編編程,二者的效率相差多少
我用的是28XX系列的,不知道經驗對你有沒有用,因為不同系列的晶元多少有些差別。
TI提供的庫已經相當可以了,兼顧易用與效率。我當時做過這樣的測試
1. 用IQMATH實現
2. 直接C語言實現
3. C語言優化實現
4. 原生匯編實現
IQMATH的運行周期在1000左右,比方案3快幾十個周期,比方案4慢幾個周期,方案2是10000多個周期。
另外,因為只是單獨測的演算法,匯編之所以快是快在寄存器的使用上,操作數可以直接入寄存器,但是考慮到程序其他部分是用C語言編寫的話,把操作棧的時間也加上,並不比方案1快。畢竟我對TI的匯編吃的也不透。
在編寫上,無疑是方案1提供了最接近C語言風格的實現,幾乎不用考慮ISA方面的問題。
另外對於執行效率,我覺得主要考慮三點:
1.分支的使用
CCS對C語言的優化我沒做過太多比對。其實單從反匯編的結果看,我接觸過的嵌入式開發環境的編譯器都能做出很好的優化。但是幾乎每個編譯器都會在邏輯的優化上有欠缺——它只能對一些顯而易見的判斷條件進行優化,而在寫程序的過程中,我們經常出於易讀性的考慮,或者穩定性的考慮,或者其他的考慮加入幾乎不會發生的分支,這樣的分支判斷會消耗一定比率的代碼段執行效率,視乎代碼段內有用功能的長度而定,越長這個比率越小,越短這個比率越高。
2.一般操作,就是各種賦值操作
在一般的操作上,編譯器的優化已經很令人滿意了,基本上可以作為編寫匯編的範本。我覺得所謂效率能達到90%就是針對這個部分說的。
3.特殊操作,比如對整塊內存的操作,或者是浮點運算上。
在一些特殊的操作上,就要看是否有現成的庫,或者看硬體是否支持。比如對整塊內存操作就別用循環一個位元組一個位元組的搬了。
以上三點都能考慮到的話,相信執行效率方面已經沒有太大的提升空間了。
另外如果你的代碼發生在初始化部分,也就是只在系統運行開始的時候運行一次,那麼優化不優化其實沒有太大的必要,除非你對系統初始化的時間有嚴格的要求。但是如果你的代碼是作為任務要被反復運行的,那就有優化的必要了。
在CCS里有代碼消耗時鍾周期的統計,如果你覺得某段代碼效率低下的話,可以先分段進行消耗時鍾周期的計算,這樣優化比較有針對性。
⑶ DSP怎樣用C語言寫程序啊
TI有C語言的常式的,是一個安裝文件,安裝之後才會出現那個文件夾。文件夾裡面是晶元上外設的使用方法的程序,很簡單,學過ANCIC的人能夠看懂。