基於TI Davinci架構的多核/雙核開發高速掃盲(以OMAP L138為例),dm8168多核開發參考以及達芬奇系列資料user guide整理


基於TI Davinci架構的雙核嵌入式應用處理器OMAPL138開發入門
原文轉自http://blog.csdn.net/wangpengqi/article/details/8115614
感謝wangpengqi的共享。

一、簡單介紹


TI的達芬奇架構嵌入式應用處理器使用DSP與ARM結合的非對稱多核結構,當然如今也有管腳全兼容的單核。本文要介紹的就是當中的一款低功耗處理器OMAP L138。

OMAP L138包含一個主頻300M的ARM9處理器內核和一個300M的C6748DSP內核(均是32位處理器)。此外還有大量外設在此不做說明,與通用的ARM與DSP內核相比有例如以下一些不同點:

1.內存映射,該處理器的外設與內存統一編址。DSP與ARM共享4G內存空間。但當中有一部分DSP僅可見(如DSP的數據指令緩存),一部分ARM僅可見(如ARM的內部RAM)。其余的兩者都能夠訪問,詳細的請參考其芯片資料。

2.中斷,與通用的DSP與ARM相比,達芬奇架構並沒有在這兩個核中添加用於雙核通信及相互控制的指令(或許是本人沒發現吧。假設你發現相關的說明,請發個email告訴我,謝謝!

),然而卻添加兩個核之間的中斷,共計7個。當雙核須要進行通信時。首先把數據放在兩方能夠訪問的內存上,然后給對方一個中斷,對方在中斷中接收傳遞過來的數據。以此實現兩方的通信,個人覺得這就是DSP Link實現的基本原理吧:)

3.能源與休眠配置模塊(PSC),這個模塊主要負責整個系統的能源管理。能夠使能或者休眠ARM核,DSP核以及大部分外設ARM核與DSP核的相互控制主要就依賴這個模塊。
對於OMAPL138,上電時默認的是ARM核被禁止,DSP核被使能。說以開機時是DSP核先啟動。然后是DSP的ROM Bootloader做一些初始化后使能ARM核后,ARM核才開始執行。不同的達芬奇處理器是不同的,比方OMAPL137就是反過來的,網上資料魚龍混雜,弄不清楚的話就去看PSC模塊中的ARM和DSP核的默認值就能夠了。


二、啟動過程


1.開機上電,用戶在BOOT 管腳上配置的啟動方式被鎖定採樣到SYSCFG模塊的BOOTCFG寄存器,從而確定可處理器的啟動方式。

2.PSC模塊中的啟動默認值是:ARM核休眠,DSP核使能。所以這時候DSP啟動。DSP從片內DSP L2 ROM處讀取指令運行。這里有TI已經固化的僅DSP核能夠訪問的ROM Bloader。簡稱DSP RBL。

3.DSP的RBL做一些簡單的初始化后,就通過PSC模塊使能ARM核,休眠自己。然后ARM就開從片內的RAM Local ROM處讀取指令並運行,這里面有TI已經固化好的ARM ROM Bootloader,簡稱ARM RBL。

4.ARM的RBL做一些初始化后。依據BOOTCFG寄存器的設定。從指定的地方讀取用於啟動U-Boot的Bootloader。即U-Boot BootLoader。簡稱UBL。UBL能夠放在Nandflash,或者通過串口下載等方式取得。

值得說明的是,這里的UBL是(AIS Application Image Script )格式,而不是通常的BIN格式。

5.當ARM RBL讀取到UBL后就依據AIS格式中的命令初始化、載入並執行UBL。

然后就是UBL載入執行U-Boot。U-Boot依據啟動參數啟動Linux。Linux依據啟動參數載入根文件系統。

6.這時ARM核上的Linux就執行起來了,但DSP還處於休眠狀態。在Linux經過一系列初始化后會執行跟文件系統中/etc/profile的指令。

我們在這里加入插入DSP Link內核模塊的命令,就會在/dev文件夾下產生一個叫dsplink的設備文件。這個DSP Link內核模塊就是通過前面所說的中斷和PSC設定就能夠完畢與DSP的通信與控制。

7. 然后再執行我們自己的ARM端程序,在ARM端程序中使用DSP Link的庫函數來訪問dsplink設備。從而在用戶空間實現對DSP核的控制與通信。

在我們寫的ARM端程序中使用DSP Link庫函數載入DSP端的應用程序到內存,使用DSP Link的PROC函數啟動DSP核。然后ARM核和DSP核就都各自獨立執行起來了,通過DSP Link來進行通信。



三、OMAPL138 相關軟件包及開發工具


開發環境說明:除了CCS3.3是在WindowsXP上外,其它的都是在Fedora14上。

1. OMAP_L138_1_00_00_11.bin - TI的OMAPL138 SDK,對於其它的達芬奇架構處理器有都有相應的DVSDK可供下載,內容大同小異。


  這里面包括的有例如以下內容:
    pspdrivers - DSP BIOS 平台驅動。包含csl等,編寫驅動程序須要參考當中內容。


    biosutils - DSP端OS工具集。如csl片級支持庫等。
    codec_engine - 基於DSP Link與CMEM之上的更高級的雙核間通信方式。
    dsplink -用於ARM與DSP間通信。
    REL_EDMA3_LDD_BIOS5 - DSP端的DMA驅動庫,方便DMA的管理及使用。


    fc(Framework Components) - DSP端軟件框架。包含資源管理等。
    linuxutils - Linux端工具集,cmem就在當中。
    xdais - TI DSP算法接口標准庫。


    ase(Audio SOC Example) -使用DSP Link 進行音頻編解碼的樣例。
    Davinci-PSP-SDK - TI 提供的Davinci平台軟件包,包含nandwriter,ubl,uboot和rootfs等。

2. bios_setuplinux_5_41_02_14.bin - DSP BIOS 5 DSP端的實時操作系統。

3. ti_cgt_c6000_6.1.9_setup_linux_x86.bin - TI DSP C6000交叉編譯器。

4. xdctools_setuplinux_3_16_01_27 - RTSC(實時軟件組件)工具集。這是Eclipse基金會的一個開源項目。

用於project管理,類似於Make。但比Make更強大。



5. cs1omapl138_1_00_00-v2_setup_linux.bin -基於OMAP L138的Codec Engineserver樣例,當中有jpeg等編解碼算法的樣例程序。



6. sourcery g++ - ARM9交叉編譯器,能夠自己去sourcery的官方去下載。

7.CCS - 這里使用的是CCS3.3,主要用於編譯nandwritter,ubl,燒寫ubl和uboot。





四、        BootLoader


相關說明:
1.OMAPL138中的nandwritter是執行在ARM上的,用於把AIS格式UBL和U-Boot燒到Nandflash上的一個程序,使用CCS編譯。然后用仿真器載入在ARM核上執行,通過交互式對話框就能夠把UBL和U-Boot燒到指定設備上。

2.UBL也是使用CCS創建的ARM端裸機程序,首先編譯成bin格式的目標程序。然后使用AIS生成工具轉換成AIS格式,最后使用nandwritter燒到nandflash中。

編譯燒寫步驟:
1. 用CCS打開Davinci-PSP-SDK 中提供的ubl,編譯生成bin目標文件。
2.使用AIS生成工具,再依據開發板進行配置,把bin文件轉換成AIS文件。
3.用CCS打開Davinci-PSP-SDK 中提供的nandwritter。編譯並使用仿真器載入執行。
4.在出現的交互式對話框中依次填入要燒寫ubl核uboot.bin路徑就可以。



五、DSP Link


DSP Link是TI為達芬奇架構處理器提供的一種雙核通信架構。在DSP端,DSP Link作為DSP BIOS的一個驅動而存在。

在ARM端,DSP Link最為一個Linux的外設而存在。並通過應用層的函數庫訪問這個設備的形式進行操作。

進行DSP Link的軟件開發須要下面的軟件包:
  sourcery - ARM交叉編譯器。


  linux - Linux 內核,編譯DSP Link內核模塊須要。
  cgt600 - DSP交叉編譯器。


  DSP BIOS - DSP實時操作系統,DSP端使用DSP Link就必須這個。
  xdctools - RTSC工具集,DSP BIOS以及非常多TI的軟件包都使用這個進行project管理。


  dsplink - DSP Link軟件包。


編譯步驟:
  1.解壓或安裝以上軟件包到同一個文件夾。如/opt/OMAPL138_SDK。


  2.然后改動dsplink頂層文件夾中Makefile中的軟件包路徑到正確的為僅僅可。
  3.在命令行中輸入make編譯就可以。


額外說明:
  使用我改動過的軟件包能夠大大簡化編譯過程,詳細說明參考軟件包頂層Makefile中的說明就可以。





六、CMem


因為DSP Link中的共享內存分配功能比較弱,無法分配太大的連續內存。所以TI又推出了CMem。用於分配大片連續共享內存。





七、Codec Engine


因為DSP Link比較底層,使用起來也不方便,所以TI又在此基礎上設計了Codec Engine。Codec Engine的底層實現依舊是依賴於DSP Link和CMem的,在上層對TI的xDAIS算法接口標准進行擴展xDAIS-DM,簡稱xDM。

xDM使用面向對象的編程方法,把算法抽象成4類對象:視頻,圖像。語音和音頻,即VISA。

Codec Engieproject管理使用XDC工具,所以全部模塊間的訪問,模塊定義或模塊實現等等都要遵循RTSC標准。RTSC軟件包的配置使用xdcscript腳本語言。模塊接口定義使用xdcspec腳本語言。這兩種腳本語言都是JavaScript腳本語言的擴展。包含用來進行DSP BIOS配置的TextConf語言也是JavaScript的擴展。JavaScript實際上是ECMA-262標准中的ECMAScript腳本語言,參考當中內容將有利於理解這幾種腳本語言。




八、雙核技術展望


眼下TI的DSP BIOS 6 已經改名為SYS BIOS 6,不只能夠在DSP上執行,也能夠在ARM等其它處理器上執行,支持多個不同的處理期間的通信。在DSP端把原本的任務間通信和如今的處理器間通信合並在一起並進行了增強,叫IPC。

在非DSP BIOS操作系統上叫SYS Link。代替原來的DSP Link。相同也對其進行了增強,不再須要CMem了。並且這些模塊的配置都能夠動態進行,API的功能也越來越強大。使用非常靈活。但可惜的是Codec Engine只能支持舊版的DSP Link。



今年,雙核的處理器已經進入手機領域,不久的將來雙核講無處不在。在達芬奇的多核架構中,DSP多用於處理計算任務,而ARM處理,存儲核顯示網絡等任務。這不過功能的划分。但試想一下:假設兩個核都是ARM,一個執行RTOS,一個執行Linux呢?
在RTOS上處理實時任務。在Linux處理非實時任務,或許能夠解決當前Linux不時實。RTOS軟件資源匱乏的現狀呢?這不過一種臆想,不過拋磚引而已。



九、參考文檔


DataSheet:
OMAP-L138 Low-Power Applications Processor
TMS320C6745C6747 DSP System Reference Guide
TMS320C674x DSP Megamodule Reference Guide
OMAP-L138 Applications Processor System Reference Guide
TMS320C674x OMAP-L1x Processor Peripherals Reference Guide

BootLoader:
Using the OMAP-L1x8 Bootloader

SDK:
Building The OMAP-L1 SDK

RTSC&XDCTools:
Real Time Software Components for Embedded Platforms

DSP BIOS:
DSP BIOS TextConf User's Guide
TMS320C6000 DSPBIOS 5.x Application Programming Interface (API) Reference Guide

xDAIS:
TMS320 DSP Algorithm Standard Rules and Guidelines User's Guide
TMS320 DSP Algorithm Standard API Reference User's Guide

xDM:
xDAIS-DM (Digital Media) User Guide

DSP Link & CMem:
Mastering the Art of Memory Map Configuration for Systems
Multicore Programming Guide
DSP BIOS Link-Based GPP-DSP System

Codec Engine:
A Technical Overview of eXpressDSP-Compliant Algorithms for DSP Software Producers 
Codec Engine Application Developer User's Guide
Codec Engine Server Integrator User's Guide
Codec Engine Algorithm Creator User’s Guide



十、文檔說明


人在網絡。不能總是予取予求。



特此把自己在TI雙核開發上的點點膚淺經驗貢獻出來。

願對同行有所幫助。共同勉勵前行。

個人理解難免存在錯誤。歡迎批評指正。

歡迎隨意轉載,但請保留出處。


本文最初公布在www.ourdev.com的ARM分壇上,相關軟件包,工具和版本號更新,如無特說明,均在此處。






十一、更新日志


2011-04-04 V1.0 創建

OMAPL138 芯片資料:

點擊此處下載  ourdev_628168XW647Y.pdf(文件大小:2.24M)   (原文件名稱:OMAP-L138 Low-Power Applications Processor.pdf)

點擊此處下載  ourdev_628169VMHHJT.pdf(文件大小:966K)   (原文件名稱:spru890a-OMAP59105912 Multimedia Processor DSP Subsystem Reference Guide.pdf)

點擊此處下載  ourdev_628170WESIFV.pdf(文件大小:958K)   (原文件名稱:sprugj7d-TMS320C6748 DSP System Reference Guide.pdf)  

點擊此處下載  ourdev_628171RHQWTM.pdf(文件大小:1.15M)   (原文件名稱:sprugm7d-OMAP-L138 Applications Processor System Reference Guide.pdf)  

點擊此處下載  ourdev_628172JICY1X.pdf(文件大小:951K)   (原文件名稱:sprufk5a_TMS320C674x DSP Megamodule Reference Guide.pdf)  

點擊此處下載  ourdev_628173DTV84W.pdf(文件大小:844K)   (原文件名稱:sprufk4d-TMS320C6745C6747 DSP System Reference Guide.pdf)  

點擊此處下載  ourdev_628203N3V6L3.pdf(文件大小:169K)   (原文件名稱:spra036-Setting Up TMS320 DSP Interrupts in C.pdf)

外設芯片資料:

點擊此處下載 ourdev_628175HKQKVZ.pdf(文件大小:195K) (原文件名稱:sprufk9b-TMS320C674xOMAP-L1x Processor Peripherals Overview Reference Guide.pdf) 

點擊此處下載 ourdev_628176S2IGJP.pdf(文件大小:798K) (原文件名稱:sprufl1c-Enhanced Direct Memory Access (EDMA3) Controller User's Guide.pdf) 

點擊此處下載 ourdev_628177JQSU2Y.pdf(文件大小:359K) (原文件名稱:sprufl2a-Enhanced Capture (eCAP) Module User's Guide.pdf) 

點擊此處下載 ourdev_628178J8M4CJ.pdf(文件大小:827K) (原文件名稱:sprufl3b-Enhanced High-Resolution Pulse-Width Modulator (eHRPWM) User's Guide.pdf) 

點擊此處下載 ourdev_628179VML22U.pdf(文件大小:394K) (原文件名稱:sprufl4a-Enhanced Quadrature Encoder Pulse (eQEP) Module User's Guide.pdf) 

點擊此處下載 ourdev_628180C9M3OD.pdf(文件大小:619K) (原文件名稱:sprufl5a-Ethernet Media Access Controller (EMAC)Management Data InputOutput (MDIO) Module User's Guide.pdf) 

點擊此處下載 ourdev_628181CUDHZX.pdf(文件大小:446K) (原文件名稱:sprufl6e-External Memory Interface A (EMIFA) User's Guide.pdf) 

點擊此處下載 ourdev_628182MP0MIH.pdf(文件大小:465K) (原文件名稱:sprufl7a-External Memory Interface B (EMIFB) User's Guide.pdf) 

點擊此處下載 ourdev_628183ESMPLE.pdf(文件大小:206K) (原文件名稱:sprufl8b-General-Purpose InputOutput (GPIO) User's Guide.pdf) 

點擊此處下載 ourdev_628184OL3GRG.pdf(文件大小:384K) (原文件名稱:sprufl9a-Inter-Integrated Circuit (I2C) Module User's Guide.pdf) 

點擊此處下載 ourdev_628185S4HJD0.pdf(文件大小:972K) (原文件名稱:sprufm0a-Liquid Crystal Display Controller (LCDC) User's Guide.pdf) 

點擊此處下載 ourdev_628186R9LWCA.pdf(文件大小:982K) (原文件名稱:sprufm1-Multichannel Audio Serial Port (McASP) User's Guide.pdf) 

點擊此處下載 ourdev_628187O43SK0.pdf(文件大小:315K) (原文件名稱:sprufm2a-Multimedia Card (MMC)Secure Digital (SD) Card Controller User's Guide.pdf)

點擊此處下載 ourdev_628188IUHKKG.pdf(文件大小:175K) (原文件名稱:sprufm3c-Real-Time Clock (RTC) User's Guide.pdf) 

點擊此處下載 ourdev_628189TJN5ZI.pdf(文件大小:372K) (原文件名稱:sprufm4h-Serial Peripheral Interface (SPI) User's Guide.pdf) 

點擊此處下載 ourdev_628190AVZKPP.pdf(文件大小:349K) (原文件名稱:sprufm5a-64-Bit Timer Plus User's Guide.pdf) 

點擊此處下載 ourdev_628191AR9R6D.pdf(文件大小:204K) (原文件名稱:sprufm6b-Universal Asynchronous ReceiverTransmitter (UART) User's Guide.pdf) 

點擊此處下載 ourdev_628192MWV455.pdf(文件大小:207K) (原文件名稱:sprufm7d-Host Port Interface (HPI)  User's Guide.pdf) 

點擊此處下載 ourdev_628193CXVVMN.pdf(文件大小:299K) (原文件名稱:sprufm8-Universal Serial Bus (USB1.1) OHCI Host Controller User's Guide.pdf) 

點擊此處下載 ourdev_628194Z4RA9B.pdf(文件大小:806K) (原文件名稱:sprufm9h-Universal Serial Bus 2.0 (USB2.0) Controller User's Guide.pdf) 

點擊此處下載 ourdev_628195CIL077.pdf(文件大小:668K) (原文件名稱:sprugj4-DDR2mDDR Memory Controller User's Guide.pdf) 

點擊此處下載 ourdev_628196N7DP2D.pdf(文件大小:285K) (原文件名稱:sprugj5b-Universal Parallel Port (uPP) User's Guide.pdf) 

點擊此處下載 ourdev_628197E8KVGS.pdf(文件大小:507K) (原文件名稱:sprugj6c-Multichannel Buffered Serial Port (McBSP) Interface User's Guide.pdf)

點擊此處下載 ourdev_628198DCWDQV.pdf(文件大小:312K) (原文件名稱:sprugj8b-Serial ATA (SATA) Controller User's Guide.pdf) 

點擊此處下載 ourdev_628199RH3BLV.pdf(文件大小:455K) (原文件名稱:sprugj9a-Video Port Interface (VPIF) User's Guide.pdf)

點擊此處下載 ourdev_628200R9RKNX.pdf(文件大小:806K) (原文件名稱:sprugp9b-Enhanced Direct Memory Access (EDMA3) Controller User's Guide.pdf)

Bootloader:

點擊此處下載 ourdev_628201O2B4KX.pdf(文件大小:1.51M) (原文件名稱:sprab41b-Using the OMAP-L1x8 Bootloader.pdf) 

這篇文章主要講怎樣生成OMAPL138的AIS格式的UBL(U-Boot Blltloader)。

點擊此處下載 ourdev_628327O0M8P6.rar(文件大小:142K) (原文件名稱:AISgen_d800k006_Install_v1.6.rar) 

這個是AIS生成工具。




XDC 工具集相關資料:

點擊此處下載 ourdev_628207ZB8PVS.pdf(文件大小:2.11M) (原文件名稱:eXpress Dsp Components (XDC) toolset User's Guide.pdf) 

點擊此處下載 ourdev_628210I1D6OL.pdf(文件大小:57K) (原文件名稱:xdc.pdf) 

點擊此處下載 ourdev_628211VH0SO3.pdf(文件大小:87K) (原文件名稱:xdcScript.pdf) 

點擊此處下載 ourdev_628212K3TL4A.pdf(文件大小:117K) (原文件名稱:xdcSpec.pdf) 


如今TI的軟件包都是使用Eclipse的RTSC標准進行軟件包管理,類似於Make,但比Make更強大。只是有比這個更好的資料就是xdctools根文件夾的那個十幾兆的chm說明文檔。里面有個教程向導,依照那個做非常快就會知道真么用了。xdctools是進行RTSC軟件包管理的工具集。


DSP BIOS:

點擊此處下載 ourdev_628205DW0BUI.pdf(文件大小:76K) (原文件名稱:Bios_Tconf_Language_coding_Standards.pdf) 

點擊此處下載 ourdev_628206K73UA6.pdf(文件大小:1.16M) (原文件名稱:Bios_Tconf_User_Guide.pdf) 

點擊此處下載 ourdev_628208CUR9WF.pdf(文件大小:76K) (原文件名稱:spraa67-DSP BIOS Tconf Language Coding Standards.pdf) 

點擊此處下載 ourdev_628209QZVE8U.pdf(文件大小:1.31M) (原文件名稱:spru007g-DSP BIOS 5.20 Textual Configuration (Tconf) Userís Guide.pdf) 

點擊此處下載 ourdev_628214MLCXK0.pdf(文件大小:1.77M) (原文件名稱:spru423-TMS320 DSP BIOS User's Guide.pdf) 

點擊此處下載 ourdev_628215PTIP0B.pdf(文件大小:851K) (原文件名稱:nps77F6-TI DSP BIOS Real-time Operating System v6.x User’s Guide.pdf) 

點擊此處下載 ourdev_628216L4E1HK.pdf(文件大小:2.53M) (原文件名稱:nps1FC7-TMS320C55x DSP BIOS 5.x Application Programming Interface (API) Reference Guide.pdf)

點擊此處下載 ourdev_628217P6AGK7.pdf(文件大小:851K) (原文件名稱:nps77F6-TI DSP BIOS Real-time Operating System v6.x User’s Guide.pdf) 

點擊此處下載 ourdev_628218VFCTNC.pdf(文件大小:1.22M) (原文件名稱:npsDD8E-TMS320C6000 DSP BIOS User's Guide.pdf) 


這是TI設計的基於C6000系列DSP芯片的RTOS,最新版為第5版。假設要使用DSP Link或Codec Engine就必須使用這個。

從第6版開始改名為SYS Linux了,已經變成一個跨平台的RTOS了。

xDAIS:

點擊此處下載 ourdev_628219D5GPPS.pdf(文件大小:510K) (原文件名稱:nps2BA0-TMS320 DSP Algorithm Standard Rules and Guidelines.pdf) 

點擊此處下載 ourdev_628220U11YXP.pdf(文件大小:330K) (原文件名稱:nps4C89-TMS320 DSP Algorithm Standard Developer’s Guide.pdf) 

點擊此處下載 ourdev_628221EUGJ0M.pdf(文件大小:76K) (原文件名稱:nps6E8C-Using the TMS320 DSP Algorithm Standard in a Dynamic DSP System.pdf) 

點擊此處下載 ourdev_628222EDAQTO.pdf(文件大小:66K) (原文件名稱:nps8CB7-Using the TMS320 DSP Algorithm Standard in a Static DSP System.pdf) 

點擊此處下載 ourdev_628223KJ7VZH.pdf(文件大小:120K) (原文件名稱:nps9FEA-Techniques for Implementing Shared Relocatable Buffers Using the TMS320 DSP Algorithm Standard.pdf) 

點擊此處下載 ourdev_628224QXAZE6.pdf(文件大小:453K) (原文件名稱:nps299C-TMS320 DSP Algorithm Standard DSP Algorithm StaAPI Reference.pdf) 

點擊此處下載 ourdev_628225YVQCXP.pdf(文件大小:368K) (原文件名稱:nps373-Design and Implementation of an eXpressDSP?Compliant DMA Manager for C6X1X.pdf) 

點擊此處下載 ourdev_628226BFXQH6.pdf(文件大小:124K) (原文件名稱:nps1272-A Technical Overview of eXpressDSP-Compliant Algorithms for DSP Software Producers.pdf) 

點擊此處下載 ourdev_628227BIULLQ.pdf(文件大小:93K) (原文件名稱:nps2180-The TMS320 DSP Algorithm Standard.pdf) 

點擊此處下載 ourdev_628228D2F82U.pdf(文件大小:443K) (原文件名稱:nps5495-TMS320 DSP Algorithm Standard Demonstration Application.pdf) 

點擊此處下載 ourdev_628229M66SA0.pdf(文件大小:603K) (原文件名稱:spru352g - TMS320 DSP Algorithm Standard Rules and Guidelines User's Guide.pdf)

點擊此處下載 ourdev_628230FIIPF8.pdf(文件大小:550K) (原文件名稱:spru360e - TMS320 DSP Algorithm Standard API Reference User's Guide.pdf) 


這是TI的DSP算法標准。全部的通用的算法必須根據這個標准進行編寫。這個標准主要規定算法的接口。



同一時候這個標准把DSPproject師分為算法project師和應用project師。算法project師依照這個標准些算法,應用project師依照這個算法接口進行調用。而不用關心算法實現。

xDAIS標准算法使用RTSC進行軟件包管理。所以使用這個軟件包須要xdctools。

使用Codec Engine 須要xDAIS以及他的擴展xDIAS-DM。



xDM:

點擊此處下載 ourdev_628231E00RUY.pdf(文件大小:92K) (原文件名稱:npsDC73-xDAIS-DM (Digital Media) User Guide .pdf) 


xDM是對xDAIS進行數字多媒體方向的功能進行擴展和增強,Codec Engine中的算法必須支持這個標准。



DSP Link:

點擊此處下載 ourdev_628202BWIWGQ.pdf(文件大小:1.66M) (原文件名稱:spra796a_RF6-A DSPBIOS Link-Based GPP-DSP System.pdf) 

點擊此處下載 ourdev_628232PPBYCX.mht(文件大小:254K) (原文件名稱:Adding a new DSPLink DSP Executable loader - Texas Instruments Embedded Processors Wiki.mht)

點擊此處下載 ourdev_628233KPEXHS.mht(文件大小:266K) (原文件名稱:Building DSPLink - Texas Instruments Embedded Processors Wiki.mht) 

點擊此處下載 ourdev_628234S6D0VN.mht(文件大小:261K) (原文件名稱:Changing DSPLink Memory Map - Texas Instruments Embedded Processors Wiki.mht) 

點擊此處下載 ourdev_628235SDZZOT.mht(文件大小:252K) (原文件名稱:Changing DSPLink POOL size - Texas Instruments Embedded Processors Wiki.mht) 

點擊此處下載 ourdev_628236ALO0M5.mht(文件大小:271K) (原文件名稱:Codec Engine Link Config - Texas Instruments Embedded Processors Wiki.mht) 

點擊此處下載 ourdev_628237TJ7AAI.mht(文件大小:256K) (原文件名稱:Codec Engine Roadmap - Texas Instruments Embedded Processors Wiki.mht) 

點擊此處下載 ourdev_628238HNNHNR.mht(文件大小:264K) (原文件名稱:Community Linux PSP for DA8x-OMAP-L1-AM1x - Texas Instruments Embedded Processors Wiki.mht)



點擊此處下載 ourdev_628239MCD26R.mht(文件大小:252K) (原文件名稱:Configuring DSPLink Dynamically - Texas Instruments Embedded Processors Wiki.mht)

點擊此處下載 ourdev_628240PNEY0J.mht(文件大小:268K) (原文件名稱:Determining DSPLink shared memory size requirements - Texas Instruments Embedded Processors Wiki.mht) 

點擊此處下載 ourdev_628241JAYNWB.mht(文件大小:257K) (原文件名稱:Getting Started Guide for OMAP-L1 - Texas Instruments Embedded Processors Wiki.mht) 

點擊此處下載 ourdev_628242FTKYX2.mht(文件大小:182K) (原文件名稱:Getting Started Guide for OMAP-L138 (old) - Texas Instruments eXpressDSP Software Wiki.mht) 

點擊此處下載 ourdev_628243P3VVG9.mht(文件大小:35K) (原文件名稱:TI DAVINCI開發原理(總共5部分)(頁 1) - DaVinci開源共享 - TI中文代碼工廠(國內最大的TI中文資源門戶站點) - Powered by Discuz! Archiver.mht) 

點擊此處下載 ourdev_628244BO9L3T.pdf(文件大小:776K) (原文件名稱:MigrationGuide.pdf) 

點擊此處下載 ourdev_628245OP1OMP.pdf(文件大小:583K) (原文件名稱:ProgrammersGuide.pdf) 

點擊此處下載 ourdev_628246HHJDL9.pdf(文件大小:804K) (原文件名稱:UserGuide.pdf) 

點擊此處下載 ourdev_628247S4DA2C.pdf(文件大小:342K) (原文件名稱:LNK_010_DES_Processor Manager design document.pdf) 

點擊此處下載 ourdev_628248YBBXC6.pdf(文件大小:474K) (原文件名稱:LNK_012_DES_Link Driver design document.pdf) 

點擊此處下載 ourdev_628249KZDKI1.pdf(文件大小:395K) (原文件名稱:LNK_024_DES_OS Adaptation Layer for Linux.pdf) 

點擊此處下載 ourdev_628250GS0IG2.pdf(文件大小:581K) (原文件名稱:LNK_031_DES_Messaging Component design document.pdf)

點擊此處下載 ourdev_628251SJMB95.pdf(文件大小:248K) (原文件名稱:LNK_040_DES_DSP Executable Loader design document.pdf) 

點擊此處下載 ourdev_628252FH8XEJ.pdf(文件大小:503K) (原文件名稱:LNK_041_DES_Zero Copy Link Driver design document .pdf) 

點擊此處下載 ourdev_628253RI9L5M.pdf(文件大小:192K) (原文件名稱:LNK_082_DES_Pool design document.pdf) 

點擊此處下載 ourdev_628254JRIB3X.pdf(文件大小:438K) (原文件名稱:LNK_128_DES_IPS & Notify.pdf) 

點擊此處下載 ourdev_628255SA2CIR.pdf(文件大小:350K) (原文件名稱:LNK_129_DES_RINGIO.pdf) 

點擊此處下載 ourdev_628256BM4IH2.pdf(文件大小:224K) (原文件名稱:LNK_131_DES_MPLIST design.pdf) 

點擊此處下載 ourdev_628257RDKITG.pdf(文件大小:142K) (原文件名稱:LNK_132_DES_PCI Link Driver Design.pdf) 

點擊此處下載 ourdev_628258W366A2.pdf(文件大小:172K) (原文件名稱:LNK_133_DES_MPCS design.pdf) 

點擊此處下載 ourdev_628259E2725L.PDF(文件大小:306K) (原文件名稱:LNK_137_DES_Dynamic Configuration design document.PDF) 

點擊此處下載 ourdev_628260SNJ7MQ.pdf(文件大小:155K) (原文件名稱:LNK_157_DES_Enhanced Multi-process support design.pdf) 

點擊此處下載 ourdev_628261U9LLSO.pdf(文件大小:137K) (原文件名稱:LNK_181_DES_MMU Dynamic entry support (OMAP).pdf) 

點擊此處下載 ourdev_628262PVPSRM.pdf(文件大小:318K) (原文件名稱:LNK_182_DES_Multi-DSP Design.pdf) 

點擊此處下載 ourdev_628263TDS5GY.pdf(文件大小:149K) (原文件名稱:LNK_207_DES_Configurable TSK and SWI approach.pdf) 
Davinci架構下雙核通信的最底層實現,支持DSP BIOS5和SYS BIOS6。
可是在下一代的DSP Link改名為SYS Link,同一時候在SYS BIOS 6中添加了IPC模塊,功能大為增強。不再須要CMem。

Davinic:

點擊此處下載 ourdev_628264HP0WTD.pdf(文件大小:2.51M) (原文件名稱:DaVinci技術概覽.pdf) 

點擊此處下載 ourdev_628281O73AKB.mht(文件大小:492K) (原文件名稱:crazyren的共享空間 Davinci學習.mht) 

點擊此處下載 ourdev_628282LGQTT2.mht(文件大小:553K) (原文件名稱:Davinci DM6446 Codec Engine雙核通信環境的搭建.mht) 

點擊此處下載 ourdev_628283KIMKRS.doc(文件大小:148K) (原文件名稱:DAVINCI開發原理具體說明.doc) 

點擊此處下載 ourdev_628291O4PZX0.mht(文件大小:161K) (原文件名稱:雙核處理器ARM+DSP怎樣實現協同工作.mht)

SYS Linux(新一代DSP Link):

點擊此處下載 ourdev_628265M79FCB.pdf(文件大小:234K) (原文件名稱:IPC_Install_Guide.pdf) 

點擊此處下載 ourdev_628266G7BKYD.pdf(文件大小:667K) (原文件名稱:IPC_Users_Guide.pdf) 

點擊此處下載 ourdev_628267GCIL3D.mht(文件大小:289K) (原文件名稱:SysLink MigrationGuide - Texas Instruments Embedded Processors Wiki.mht) 

點擊此處下載 ourdev_628268XPXWNJ.mht(文件大小:771K) (原文件名稱:Syslink Project - OMAPpedia.mht) 

點擊此處下載 ourdev_628269SA1WPR.mht(文件大小:767K) (原文件名稱:SysLink UserGuide - Texas Instruments Embedded Processors Wiki.mht) 

點擊此處下載 ourdev_628270VYIBMP.pdf(文件大小:77K) (原文件名稱:SysLink_02.00.00.56_alpha2_DataSheet.pdf) 

點擊此處下載 ourdev_628271N2DEGR.pdf(文件大小:200K) (原文件名稱:SysLink_02.00.00.56_alpha2_InstallGuide.pdf) 

點擊此處下載 ourdev_628272C3ZKWG.pdf(文件大小:727K) (原文件名稱:SysLink_UserGuide.pdf) 

點擊此處下載 ourdev_628273B2JHWL.mht(文件大小:254K) (原文件名稱:Troubleshooting SysLink Build Issues - Texas Instruments Embedded Processors Wiki.mht)

CMEM

點擊此處下載 ourdev_628275V1LH23.mht(文件大小:416K) (原文件名稱:A CMEM Error running DM6467 decode Demo.mht) 

點擊此處下載 ourdev_628276MH77YQ.mht(文件大小:355K) (原文件名稱:Access CMEM from the DSP on DM6446.mht) 

點擊此處下載 ourdev_628277OCLFPM.mht(文件大小:267K) (原文件名稱:CMEM Overview - Texas Instruments Embedded Processors Wiki.mht) 

點擊此處下載 ourdev_628278N1SF1M.mht(文件大小:377K) (原文件名稱:CMEM Error in my Codec Engine Application.mht) 

點擊此處下載 ourdev_628279Z79LRL.mht(文件大小:198K) (原文件名稱:CMEM Overview.mht) 

點擊此處下載 ourdev_628280CRHRY2.mht(文件大小:290K) (原文件名稱:CMEM usage - DM3x DaVinci Video Processor Forum.mht) 

點擊此處下載 ourdev_628284AYNMUY.mht(文件大小:1.14M) (原文件名稱:Davinci平台上memory map的設計步驟.mht) 

點擊此處下載 ourdev_628285KUOBEX.mht(文件大小:90K) (原文件名稱:Davinci上兩個驅動cmemk_ko和dsplink_ko的編譯過程.mht) 

點擊此處下載 ourdev_628286OLPBU5.mht(文件大小:314K) (原文件名稱:DM368 CMEM setting over 128MB area.mht) 

點擊此處下載 ourdev_628287IBLDB4.PDF(文件大小:1.19M) (原文件名稱:Mastering the Art of Memory Map Configuration for Systems.PDF) 

點擊此處下載 ourdev_628288LE1W9J.PDF(文件大小:395K) (原文件名稱:Multicore Programming Guide.PDF) 

點擊此處下載 ourdev_628289QZ7TOC.mht(文件大小:322K) (原文件名稱:Re CMEM usage - DM3x DaVinci Video Processor Forum.mht) 

點擊此處下載 ourdev_628290MXRKZ3.mht(文件大小:192K) (原文件名稱:TI DSP-BIOS的存儲管理具體解釋.mht) 



由於DSP Link的設計缺陷,無法分配大片的連續共享內存,由於DSP使用的是實地址,ARM使用的是虛地址,不連續的內存會使DSP訪問出錯。所以另外又弄了個CMem用於分配物理連續的共享內存。

CMem的源代碼是在linuxutils軟件包中,這里我提供一個抽離出來的版本號,這個軟件包非常easy了。
點擊此處下載 ourdev_628330CYE2RS.rar(文件大小:378K) (原文件名稱:cmem.rar) 

僅僅需改動該頂級文件夾中的Makefile中的交叉編譯器前綴核內核源代碼位置,就可以直接編譯。


在新一代的SYS Link中就不須要這個了。


Framework Components:

點擊此處下載 ourdev_628310ADVBFM.pdf(文件大小:298K) (原文件名稱:FrameworkComponents_DSKT2_UserGuide.pdf) 

點擊此處下載 ourdev_628311LU12JH.pdf(文件大小:576K) (原文件名稱:FrameworkComponents_IRES_RMAN_AppNote.pdf) 

點擊此處下載 ourdev_628312HX0EDI.pdf(文件大小:835K) (原文件名稱:FrameworkComponents_UsingDMA_AppNote.pdf) 


用於DSP端的硬件資源管理,內存分配等。

Codec Engine須要這個進行算法內存分配。


EDMA3:

點擊此處下載 ourdev_628313PP2S6R.pdf(文件大小:671K) (原文件名稱:EDMA3_Driver_User_Guide.pdf) 

點擊此處下載 ourdev_628314WG30LO.pdf(文件大小:160K) (原文件名稱:EDMA3_RM_Datasheet.pdf) 

點擊此處下載 ourdev_628315V86DO5.pdf(文件大小:488K) (原文件名稱:EDMA3_RM_User_Guide.pdf) 


DSP的EDMA函數庫,Codec Engine須要這個進行傳輸數據。


Codec Engine:

點擊此處下載 ourdev_628292SFWT5G.mht(文件大小:371K) (原文件名稱:Codec Engine - Texas Instruments Embedded Processors Wiki.mht) 

點擊此處下載 ourdev_628293F2YD1F.mht(文件大小:394K) (原文件名稱:Codec Engine Application Developers Guide - Texas Instruments Embedded Processors Wiki.mht)

點擊此處下載 ourdev_628294COL4G9.mht(文件大小:247K) (原文件名稱:Codec Engine Examples - Texas Instruments Embedded Processors Wiki.mht) 

點擊此處下載 ourdev_628295E01M0H.mht(文件大小:363K) (原文件名稱:Codec Engine FAQ - Texas Instruments Embedded Processors Wiki.mht) 

點擊此處下載 ourdev_628296VHZ5BX.mht(文件大小:248K) (原文件名稱:Codec Engine Known Issues - Texas Instruments Embedded Processors Wiki.mht) 

點擊此處下載 ourdev_628297F6KVX3.mht(文件大小:247K) (原文件名稱:Codec Engine Overview - Texas Instruments Embedded Processors Wiki.mht) 

點擊此處下載 ourdev_628298ABWTL6.mht(文件大小:254K) (原文件名稱:Codec Engine Roles - Texas Instruments Embedded Processors Wiki.mht) 

點擊此處下載 ourdev_628299I8KLGB.mht(文件大小:291K) (原文件名稱:Codec Engine Server Integrator User's Guide - Texas Instruments Embedded Processors Wiki.mht) 

點擊此處下載 ourdev_628300USYBME.mht(文件大小:308K) (原文件名稱:Codec Servers FAQ - Texas Instruments Embedded Processors Wiki.mht) 

點擊此處下載 ourdev_628302URP78R.mht(文件大小:467K) (原文件名稱:Quickly Getting Started on TI Codec Engine - Texas Instruments Embedded Processors Wiki.mht) 

點擊此處下載 ourdev_628303AU7091.mht(文件大小:283K) (原文件名稱:幫您高速入門 TI 的 Codec Engine - TI_com.mht) 

點擊此處下載 ourdev_628304HIJXPK.pdf(文件大小:323K) (原文件名稱:spraa96a - Encode Demo for the DVEVM DVSDK 1.2 .pdf) 

點擊此處下載 ourdev_628305XC1TS0.pdf(文件大小:336K) (原文件名稱:spraag9a - Decode Demo for the DVEVM DVSDK 1.2.pdf) 

點擊此處下載 ourdev_628306OBN1V6.pdf(文件大小:373K) (原文件名稱:sprue67d - Codec Engine Application Developer User's Guide.pdf) 

點擊此處下載 ourdev_628307OUWA0L.pdf(文件大小:202K) (原文件名稱:sprued5b - Codec Engine Server Integrator User's Guide.pdf) 

點擊此處下載 ourdev_628308LGEIE4.pdf(文件大小:260K) (原文件名稱:sprued6c - Codec Engine Algorithm Creator User’s Guide.pdf) 


Codec Engine事實上就是RPC遠程調用。底層實現依賴於DSP Link核CMem,DSP端還要EDMA3,FC。在上層,相應用提供xDM接口。

Codec Engine的開發人員主要分4類,算法開發project師,應用開發project師,server集成project師核系統集成project師。最后兩項一個人干就能夠了,看上面的文檔就知道。


Codec Engine不支持新一代的SYS Link。



點擊此處下載 ourdev_628319T1QCVN.rar(文件大小:4.77M) (原文件名稱:dsplink_1_65.part1.rar) 

點擊此處下載 ourdev_628320GBNW0O.rar(文件大小:4.77M) (原文件名稱:dsplink_1_65.part2.rar) 

點擊此處下載 ourdev_628321J1OKUN.rar(文件大小:4.77M) (原文件名稱:dsplink_1_65.part3.rar) 

點擊此處下載 ourdev_628322JMYXZL.rar(文件大小:4.77M) (原文件名稱:dsplink_1_65.part4.rar) 

點擊此處下載 ourdev_628323FFVBUC.rar(文件大小:4.07M) (原文件名稱:dsplink_1_65.part5.rar) 


這是我改動過的dsplink,僅僅是在1_65版基礎上改動了Makefile后打包而成的。方便編譯而已。編譯時僅僅須要改動頂層的Maefile中各種工具及軟件包路徑。還有就是依據自己須要改動軟件包的配置,即把DSPLINK_CONFIG變量改動為你須要的值。




這個是從dsplink的樣例中抽離出來的loop樣例程序。能夠脫離dsplink的編譯系統進行編譯。

ourdev_628325RJWVYG.rar(文件大小:390K) (原文件名稱:loop.rar) 


假設要自己搭建OMAP L138開發環境,優先推薦看這篇文章。


點擊此處下載 ourdev_628326R1SWV7.mht(文件大小:300K) (原文件名稱:Building The OMAP-L1 SDK.mht)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM