色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

電子發燒友App

硬聲App

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示
電子發燒友網>電子資料下載>DSP>淺談DSP中DMA操作的無阻塞請求實現

淺談DSP中DMA操作的無阻塞請求實現

2017-11-03 | rar | 0.5 MB | 次下載 | 1積分

資料介紹

 DMADSP應用中至關重要,本文給出了DMA操作非阻塞的請求方法,針對TMS320C620x,實現了與CSL中DAT接口一致的驅動模塊QDAT,并指出了EDMA相關的高級特征。
  在DSP中,DMA控制器實際是一個外設,與其他集成的串口、主機接口、片外內存接口等都在系統外設總線上,也與其他外設一樣有一組相關的控制/狀態/數據寄存器CPU可以訪問。
  非常重要的一點是,DMA通道能夠用于內存之間的數據傳送。這里內存都是統一編址的,包括:片上內存,程序和數據分立;接在EMIF上的片外內存,如SDRAM;外設的寄存器也都是內存映射的(memory-mapped),所以DMA通道也可以用于外設和內存之間,進行外設數據接收與發送。
  在DSP的處理模型中,所有數據應位于片上供CPU處理,不鼓勵CPU直接訪問片外數據,因為CPU訪問片外資源的時間較長,周期數也不確定,對于實時性和確定性不利。片上內存有時也能夠配置成為緩存(cache),緩存控制器會根據一定策略、使用DMA方式切換片外的數據進出緩存,最終使得用戶能夠在片上訪問數據,這個過程對用戶是透明的。正因為緩存的機制是透明的,所以也是很難控制的。比如,一段調用頻率很高的代碼很可能被不常用的部分清出緩存,因為它們映射相同,但隨后又很快被調入,這樣會造成局部的效率降低。
  所以,如果能夠明確掌握程序流或數據流的運轉特征,不使用緩存模式,用戶通過DMA進行自定義的調度,可能提高效率。有的處理器不具備緩存控制器,不支持片上內存作為緩存,如C6205的片上數據內存就不能夠配置為緩存,所以主動使用DMA移動數據不可避免。
  DSP的DMA功能一般也都較為強大,TI C6000系列的DMA通道支持1D-1D、1D-2D、2D-1D以及常用的2D-2D數據傳送,對DMA的合理使用可能替代相當的編程效果,如排序、采樣或裁剪。
  TI的CSL(Chip Support Library,芯片支持庫)對于使用DMA給出了很好的支持,有專門的DMA模塊,便于對DMA的各個寄存器進行控制。還有一個DAT模塊,使用DMA進行內存數據傳送,函數DAT_copy()和DAT_fill()就像常用的內存操作memcpy()、memset()一樣,只需要在API接口指出源地址、目的地址和長度,或者其他的維數屬性等即可,不需要再去管具體的寄存器,非常方便。
  視頻處理實例分析
  DAT模塊易用,但因為是在CSL中,所以只能將DMA控制器直接的功能表達出來。對于灰度圖像處理(先不考慮將算法處理后的結果傳回片外的情況),在下面的處理框架中,每次DMA執行操作時,CPU在前臺還可以做算法處理任務。
  。..
  task=DAT_copy(。..);//啟動頭一個DAT任務
  。..
  while(not_finished){
  DAT_wait(task); //本次task完成
  task=DAT_copy(。..); //啟動下一次的DMA
  pingpong_alg_process(。..); //對本次傳送的數據處理
  }
  當視頻為4:2:0 YUV圖像(planar模式)序列,需要處理某一區域時,實際上是在相同時機處理Y、U、V三塊數據,通常它們并不連續,也就是說,將會同時使用三個DMA操作。
  這里可能可以同時啟動多條DMA通道,但有一些限制:
  1. 有的處理器支持同時啟動的DMA通道數有限,有些DSP有4條通道,但寄存器集只能完整地支持兩條;
  2. 由于共享總線和某些接口,同時工作的DMA通道數過多將可能增加訪問沖突,降低系統性能;
  3. 有時多條通道又必須同時使用,比如系統視頻、音頻采集進入的數據必須占用獨立的通道。
  所以,上面的任務能夠盡量使用一個DMA通道完成,不失一般性,DAT模塊的所有操作實際上是在一條打開的通道上完成的。
  那么,對于YUV圖像,處理程序框架類似上面,可能如下,
  。..
  taskY = DAT_copy(。..);
  taskU = DAT_copy(。..);
  taskV = DAT_copy(。..);
  。..
  while(not_finished){
  DAT_wait(taskY);
  DAT_wait(taskU);
  DAT_wait(taskV);
  taskY = DAT_copy(。..);
  taskU = DAT_copy(。..);
  taskV = DAT_copy(。..);
  YUV_pingpong_process(。..);
  這時問題出現了:C620x的DMA通道一次只能接受一個傳送請求,也就是說,每次請求必須等到該通道空閑時才可能真正提交上去,這樣taskY和taskU在后臺操作時,前臺無法進行taskU和taskV的啟動,即實際上前臺沒有什么處理任務可做,浪費了效率。而這三個dat任務綁定在一起,啟動時機很難拆開。顯然,如果能夠允許DMA請求連續地提交,將提高效率。
  DMA通道請求非阻塞提交的方法
  把DMA通道看作一個單處理單元,每個DMA操作作為一個任務,這就形成了一個單處理多任務的模型,任務調度就是FIFO。不妨定義:
  1. DMA通道請求上下文是一個數據結構,它包含啟動一次DMA傳送所需要設定的寄存器參數集合,如源、目的、長度、index寄存器(維數)等等;
  2. DMA通道請求上下文隊列,一個DMA請求上下文的隊列用以緩存DMA請求;
  DMA通道的使用和請求非阻塞的提交應有以下兩條原則:
  a. 應用程序的使用DMA通道的方法:
  提交DMA通道請求(無阻塞),獲得此次任務的id;在需要使用某任務的目標內存時,應檢查該id任務狀態直到完成;如果完成,即可進行相應的處理。
  b. 無阻塞提交DMA通道請求的實現:標志此次DMA傳送任務正在進行;如果DMA通道空閑,設置寄存器啟動DMA操作,標志DMA通道正在工作;如果DMA通道正在工作,則將此次DMA請求插入上下文隊列。
  3. DMA中斷服務程序(注:DAT模塊不使用ISR,只是查詢對應標志,確定DMA傳送是否完成):標志此次DMA傳送任務完成;如果DMA請求上下文隊列為空,標志DMA通道空閑;如果DMA請求上下文隊列非空,則從隊列中取出頭一個DMA請求上下文,用以設置相應的寄存器啟動DMA操作。
下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1電子電路原理第七版PDF電子教材免費下載
  2. 0.00 MB  |  1489次下載  |  免費
  3. 2單片機典型實例介紹
  4. 18.19 MB  |  91次下載  |  1 積分
  5. 3S7-200PLC編程實例詳細資料
  6. 1.17 MB  |  27次下載  |  1 積分
  7. 4筆記本電腦主板的元件識別和講解說明
  8. 4.28 MB  |  18次下載  |  4 積分
  9. 5開關電源原理及各功能電路詳解
  10. 0.38 MB  |  9次下載  |  免費
  11. 6基于AT89C2051/4051單片機編程器的實驗
  12. 0.11 MB  |  4次下載  |  免費
  13. 7基于單片機和 SG3525的程控開關電源設計
  14. 0.23 MB  |  3次下載  |  免費
  15. 8基于單片機的紅外風扇遙控
  16. 0.23 MB  |  3次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234313次下載  |  免費
  3. 2PADS 9.0 2009最新版 -下載
  4. 0.00 MB  |  66304次下載  |  免費
  5. 3protel99下載protel99軟件下載(中文版)
  6. 0.00 MB  |  51209次下載  |  免費
  7. 4LabView 8.0 專業版下載 (3CD完整版)
  8. 0.00 MB  |  51043次下載  |  免費
  9. 5555集成電路應用800例(新編版)
  10. 0.00 MB  |  33562次下載  |  免費
  11. 6接口電路圖大全
  12. 未知  |  30319次下載  |  免費
  13. 7Multisim 10下載Multisim 10 中文版
  14. 0.00 MB  |  28588次下載  |  免費
  15. 8開關電源設計實例指南
  16. 未知  |  21539次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935053次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉中文版)
  4. 78.1 MB  |  537791次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420026次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234313次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233045次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191183次下載  |  免費
  13. 7十天學會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183277次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138039次下載  |  免費
主站蜘蛛池模板: 欧美日韩亚洲一区视频二区 | 欧美人与动交zOZ0| 久久偷拍人| 久久精品99热超碰| 精品爽爽久久久久久蜜臀| 好大快用力深一点h视频| 国产色婷亚洲99精品AV在| 国产精品久久久久无码AV色戒| 国产AV麻豆出品在线播放| 国产精品久久久久久久久久免费| 国产 亚洲 中文在线 字幕 | 6 10young俄罗斯| 970女主播电台歌曲| 91久久精品一区二区三区| 607080老太太AW| qvod电影网站| 光棍天堂在线a| 国产午夜福利片| 黄色片软件大全| 久久受www免费人成_看片中文| 久久久久综合网| 男人叼女人| 色 花 堂 永久 网站| 亚洲 日韩 自拍 视频一区| 亚洲另类中文字幕| 最近韩国HD免费观看国语| 99精彩视频在线观看| 吃奶摸下的激烈免费视频| 国产精品免费大片一区二区| 国产亚洲色婷婷久久精品99| 久久久97丨国产人妻熟女| 男女全黄h全肉细节文| 日日啪在线影院百度| 亚洲国产精品99久久久久久| 亚洲中文在线精品国产| 97午夜精品| 国产精品ⅴ视频免费观看| 娇妻归来在线观看免费完整版电影| 久久伦理影院| 青柠在线观看视频在线| 亚洲 欧美 制服 校园 动漫|