久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 4839|回復(fù): 4
打印 上一主題 下一主題
收起左側(cè)

DSP學(xué)習(xí)的三個(gè)階段

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:115191 發(fā)表于 2016-4-19 13:17 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
研究生期間斷斷續(xù)續(xù)做過(guò)TI  DSP研究,從一個(gè)對(duì)嵌入式一點(diǎn)也沒(méi)有了解的新手到快畢業(yè)時(shí)完成一個(gè)自認(rèn)為滿意的項(xiàng)目,其中走過(guò)很多彎路,現(xiàn)在把我對(duì)DSP學(xué)習(xí)的心得和一些參考文獻(xiàn)列出來(lái),可能對(duì)初學(xué)者具有幫助。
   實(shí)驗(yàn)室用的是一款聞亭的DM642開(kāi)發(fā)板,當(dāng)時(shí)這款開(kāi)發(fā)板還比較新,國(guó)內(nèi)中文資料很少,而且聞亭但是的例子程序均是采用TI的原程序,不像合眾達(dá)的例子程序容易上手,所以可能合眾達(dá)的板子比較適合初學(xué)者使用。
  DM642是一款針對(duì)圖像應(yīng)用的高端DSP,近幾年來(lái)國(guó)內(nèi)應(yīng)用的范圍很廣。對(duì)于DSP軟件學(xué)習(xí)而言個(gè)人認(rèn)為包含了3個(gè)方面的東西:1:芯片的外設(shè),對(duì)芯片的基本操作和簡(jiǎn)單程序運(yùn)行環(huán)境。2:嵌入失操作系統(tǒng)原理(DSP/BIOS)。3:DSP算法的移植和優(yōu)化工作。下面分別對(duì)這三個(gè)方面做論述。
   1:芯片的外設(shè),對(duì)芯片的基本操作和簡(jiǎn)單程序運(yùn)行。
   學(xué)習(xí)DSP 首先是要對(duì)芯片和你所用到的芯片外設(shè)的數(shù)據(jù)手冊(cè)說(shuō)明比較清楚,對(duì)于初學(xué)者可能在剛開(kāi)始看datasheet時(shí)感覺(jué)很頭暈,因?yàn)閐atasheet只是一些說(shuō)明性的東西,他沒(méi)有教你怎么去用,所以datasheet部分一定要結(jié)合相應(yīng)的例子程序去看。對(duì)于芯片的外設(shè)操作TI提供了一個(gè)CSL的函數(shù),幫你事先定義好了一些寄存器地址,這樣就不用你去查找每個(gè)寄存器的詳細(xì)地址。
   現(xiàn)在的C6000 程序開(kāi)發(fā)大部分采用C語(yǔ)言,極少數(shù)的關(guān)鍵代碼采用線性匯編或者匯編語(yǔ)言。對(duì)于一個(gè)C語(yǔ)言運(yùn)行工程需要的最少元素是:1:main函數(shù) 2:cmd文件3:runtime supportlib。這是讓一個(gè)基于C語(yǔ)言的工程跑起來(lái)的最少條件。換句話說(shuō)只要有了這三個(gè)東西我們就可以在DSP上做任何想做的事,但是考慮到做大型工程和復(fù)雜應(yīng)用的需要,通常又要用到操作系統(tǒng)DSP/BIOS和驅(qū)動(dòng)。
  在階段首先是讓一個(gè)最簡(jiǎn)單的hell world工程跑起來(lái),這個(gè)工程這包含三個(gè)文件,一個(gè)main.c 一個(gè)CMD文件,一個(gè) rts.lib。然后在查數(shù)據(jù)手冊(cè)DSP的外設(shè)資源調(diào)試一遍,這個(gè)過(guò)程完成后幾基本上手了:)。
  在這個(gè)過(guò)程中需要搞明白的是一個(gè)過(guò)程,三個(gè)文件,和簡(jiǎn)單的調(diào)試方法。一個(gè)過(guò)程是C語(yǔ)言怎么生成.out可執(zhí)行文件的過(guò)程,通常包含編譯,匯編,連接三個(gè)過(guò)程。幾個(gè)文件是obj, cmd, map,文件Obj,Cmd和Map文件的格式在TI的CCS 文擋幫助中都有詳細(xì)論述。調(diào)試方面我們可可以利用防真器可以讓程序在任何地方停下來(lái),然后利用CCS的Memory View功能可以查看想要知道的CPU地址映射的區(qū)域。
這部分的參考資料可以查看
(1)電子科技大學(xué) 出版的 C/C++語(yǔ)言硬件程序設(shè)計(jì)--基于TMS320C5000系列DSP
(2)幫助文檔

   2:嵌入失操作系統(tǒng)原理(DSP/BIOS)
   這部分就有嵌入式操作系統(tǒng)知識(shí)了,DSP/BIOS是不開(kāi)源的,如果想對(duì)操作系統(tǒng)的知識(shí)了解深入的話可以看看uc/os-II的原代碼。嵌入式操作系統(tǒng)的基本原理都一樣。這個(gè)完成后在把Ti關(guān)于DSP/BISO的列子程序跑一便熟悉操作系統(tǒng)中各個(gè)模塊,如TSK, TIMER…..。
   在熟悉完操作系統(tǒng)后,剩下的就是對(duì)DSP/BISO的驅(qū)動(dòng)模型了,TI 的驅(qū)動(dòng)模型采用的是class-mini driver模式,其中class driver就是一些函數(shù)接口,提供到mini driver的訪問(wèn)。其中mini driver實(shí)現(xiàn)方式根據(jù)不同的板子和芯片會(huì)不一樣,建議選取一個(gè)外設(shè)資源,看懂其源代碼,這些代碼一般都在幾個(gè)c 文件內(nèi),其中最主要是5-7個(gè)函數(shù)的實(shí)現(xiàn);
  mdBindDev()
  mdUnBindDev()
  mdControlChan();
………………….
DSP/BIOS的驅(qū)動(dòng)比較簡(jiǎn)單,總得來(lái)說(shuō)驅(qū)動(dòng)可以分為2個(gè)部分,一部分函數(shù)硬件的初始化和控制工作,這部分相對(duì)交簡(jiǎn)單;另外一部分函數(shù)負(fù)責(zé) I/O,buffer的同步工作,這部分通常要復(fù)雜的多,而且這部分函數(shù)常常和中斷牽涉在一起,所以在看驅(qū)動(dòng)源代碼時(shí)一定要時(shí)刻知道中斷什么時(shí)候發(fā)生,中斷服務(wù)函數(shù)里面做了些什么,對(duì)其他函數(shù)的影響是什么等。如果能把驅(qū)動(dòng)代碼看一遍對(duì)于C語(yǔ)言提高是很大的。
這部分的參考資料可以查看
  (1)      DSP/BIOS userguide
  (2)  How to write DSP device driver
(3)  嵌入式實(shí)時(shí)操作系統(tǒng)UC/OS-IIhttp://www.zg4o1577.cn/bbs/dpj-48666-1.html

    3:DSP算法的移植和優(yōu)化工作
     這部分是最后工作,一般也是比較耗時(shí)間的工作。現(xiàn)在如果實(shí)現(xiàn)比較復(fù)雜的系統(tǒng)不做DSP程序的優(yōu)化是肯定不行的。DSP程序的優(yōu)化方法有很多,網(wǎng)上也有很多資料,但是以我實(shí)際的經(jīng)驗(yàn)來(lái)看很多人都沒(méi)有把握關(guān)鍵的地方,如果是復(fù)雜算法的話DSP優(yōu)化的第一步應(yīng)該是存儲(chǔ)器優(yōu)化,也就是說(shuō)利用ping-pong buffer技術(shù)將待處理的數(shù)據(jù)分批的搬運(yùn)到片內(nèi)存儲(chǔ)器中,在這個(gè)工程中要結(jié)合片內(nèi)資源,設(shè)計(jì)好數(shù)據(jù)結(jié)構(gòu),并一定要考慮讓數(shù)據(jù)對(duì)齊。存儲(chǔ)器優(yōu)化是 program optimization 文檔中沒(méi)有提及,而是在一個(gè)叫Cache user guide 文檔中說(shuō)明,所以這樣就造成很多人不知道原因。在完成存儲(chǔ)器優(yōu)化之后就是program optimization 文檔中所講的方法,-o3,數(shù)據(jù)打包,inline,循環(huán)展開(kāi),匯編等等。
     做優(yōu)化的過(guò)程中一定要保證優(yōu)化之前和之后的處理結(jié)果正確性,也就是說(shuō)優(yōu)化不能導(dǎo)致錯(cuò)誤的發(fā)生,然后在盡量提高時(shí)間。
     關(guān)于優(yōu)化后函數(shù)運(yùn)行時(shí)間的測(cè)量TI的有個(gè)文檔里面有教你怎么測(cè),就是利用定時(shí)器來(lái)測(cè)量函數(shù)運(yùn)行的時(shí)間,另外對(duì)于運(yùn)行時(shí)間本來(lái)就只有幾百個(gè)cycle的短小匯編函數(shù)也可以利用CCS 的clock功能來(lái)測(cè)時(shí)間。
總之程序優(yōu)化就是一項(xiàng)耗時(shí)間的體力活,哈哈!
這部分的參考資料可以查看
(1)      program optimizationguide
(2)      cache user guide
http://blog.sina.com.cn/s/blog_4d32d0b401009ntg.html

評(píng)分

參與人數(shù) 3黑幣 +57 收起 理由
Hyman41 + 5 共享資料的黑幣獎(jiǎng)勵(lì)!
jzjcs + 2
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏4 分享淘帖 頂1 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:185650 發(fā)表于 2017-4-2 19:47 | 只看該作者
感謝樓主分享!
回復(fù)

使用道具 舉報(bào)

板凳
ID:109651 發(fā)表于 2017-5-11 16:19 | 只看該作者
感謝樓主的分享精神!!!
回復(fù)

使用道具 舉報(bào)

地板
ID:189987 發(fā)表于 2017-5-12 15:07 | 只看該作者
可以看看 正在學(xué)習(xí)
回復(fù)

使用道具 舉報(bào)

5#
ID:189987 發(fā)表于 2017-5-12 15:07 | 只看該作者
正在學(xué)習(xí) 感謝分享
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲精品日韩一区二区电影 | 成人永久免费 | 一起操网站 | 97久久精品午夜一区二区 | 日韩成人在线播放 | 亚洲一区视频在线 | 亚洲精品日本 | 婷婷久久综合 | 久久久国产一区 | 久久久99精品免费观看 | 欧洲免费毛片 | 欧美久久久久 | 国产亚洲欧美在线 | 欧美日韩在线免费 | 欧美在线观看一区二区 | 精品无码久久久久久久动漫 | 一级黄色片免费 | 99热国产在线播放 | 亚洲精品久久区二区三区蜜桃臀 | 欧美日韩久久精品 | 精品亚洲一区二区三区 | 国产一区不卡在线观看 | 久久99视频免费观看 | 男女污网站 | 久久av一区二区三区 | 一区二区三区四区在线视频 | 成人在线精品 | 亚洲成人在线网 | 黄色网一级片 | 久久精品黄色 | 日韩美香港a一级毛片免费 国产综合av | 国产乱码精品一区二区三区忘忧草 | 久久精品国产免费看久久精品 | 日韩成人精品在线 | 国产精品视频网站 | 日韩av成人在线 | 欧美高清视频在线观看 | 9191av| 久久精品亚洲精品 | 黑人巨大精品欧美一区二区一视频 | 久久久91 |