TechVDM365開發(fā)板使用說明書_第1頁
TechVDM365開發(fā)板使用說明書_第2頁
TechVDM365開發(fā)板使用說明書_第3頁
TechVDM365開發(fā)板使用說明書_第4頁
TechVDM365開發(fā)板使用說明書_第5頁
已閱讀5頁,還剩113頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

TECHV|DM365使用說明書

目錄TOC\o"1-3"\h\u7692第一章硬件資源介紹 1298951.1DM365關鍵板 188871.1.1概述 1127191.1.2主處理器TMS320DM365 2278651.1.3關鍵板硬件說明 12112201.2TECHV擴展板 18254491.2.1概述 18197851.2.2接口說明 19213101.2.3Techv總線基本描述 22220981.2.4視頻專用信號擴展 2612077第二章CCS開發(fā)環(huán)境下硬件測試程序編寫 2923435第1節(jié)DDR2測試程序 2923057第2節(jié)NANDFLASH測試程序 316730第3節(jié)GPIO口測試程序 334655第4節(jié)I2C口測試程序 3531997第三章DM365BOOTLOADER 374240第1節(jié)UBOOT移植 3714228第2節(jié)UBOOT編譯 3817473第3節(jié)UBOOT命令介紹 3925664第4節(jié)UBOOT燒寫 404260第四章LINUX操作系統(tǒng)移植及其應用程序、驅動程序編寫 422818第1節(jié)LINUX操作系統(tǒng)移植 4228469第2節(jié)LINUX內核燒寫 444838第3節(jié)LINUX驅動程序編寫 456247DM365USB驅動編寫 5120955DM365SD卡驅動編寫 5413450第4節(jié)LINUX應用程序編寫 5722663第五章視頻音頻編解碼試驗 5923779第1節(jié)G711格式語音編碼試驗 5916779第2節(jié)G711格式語音解碼試驗 6213900第3節(jié)H264圖像編碼試驗 6418448第4節(jié)H264圖像解碼試驗 6631261第5節(jié)語音圖像同時編碼試驗 6818328第6節(jié)語音圖像同時解碼試驗 7010037第7節(jié)H264圖像編解碼試驗 725983附錄一TDS560USB仿真器配置 749298附錄二LINUX根文件系統(tǒng)燒寫 78第一章硬件資源介紹1.1DM365關鍵板1.1.1概述Techvdm365板卡硬件資源包含:TMS320DM365Davinci處理器,主頻率300MHz512MBytesNANDFlash存放器128MBytesDDR2-533MHz內存10M/100Mbps網(wǎng)卡USB2.0接口可配置為Host/Slave兩種模式可配置BOOT模式可配置JTAG模式經(jīng)過插接件引出全部IO接口Techvdm365功效結構圖功效概述TechvDM365達芬奇視頻開發(fā)板經(jīng)過專用DDR2存放控制器接口擴展了128MbytesDDR2SDRAM,為視頻應用帶來了高吞吐、高容量存放能力;512M(可擴展1G)bytesNandFlash為視頻應用程序脫機運行提供了有力確保,CPU還提供了視頻DAC,經(jīng)過內部集成TV信號產(chǎn)生功效即可把DDR2存放器內數(shù)據(jù)輸出為用戶可在電視屏幕上觀察到圖像信號,非常方便;除此之外,還包含很多其它資源,包含音頻輸入輸出、10M/100M自適應以太網(wǎng)接口、USB2.0接口、實時時鐘、EMAC、SD/MMC接口等一系列功效模塊;最主要是全部外部存放器接口信號都連接到擴展接口上,用戶能夠經(jīng)過設計外部子板擴展自己功效。板卡經(jīng)過標準接口提供電源輸入,采取單5V供電方式(注意供電電流需要大于2A),電源轉換模塊為微處理器及其余外設提供3.3V和1.8V/1.35V電壓。1.1.2主處理器TMS320DM365TMS320DM365內部集成了:ARM核子系統(tǒng)(ARMSS):ARM926RISCCPU核與相關存放器Video視頻處理子系統(tǒng)(VPSS):包含VideoProcessingFrontEnd(VPFE),ImageInput和ImageProcessingSubsystem圖像處理系統(tǒng),和VideoProcessingBackEnd(VPBE)DisplaySubsystem強勁DMA系統(tǒng)外圍設備控制器:DDR2EMIF控制器AEMIF控制器,包含NANDflash接口UART(DM355可支持2路UART串口)Timers定時器RealTimeOut(RTO)脈沖寬度調制(PWM)I2C總線通信(I2C)Multi-MediaCard/SecureDigital(MMC/SD卡)音頻串行端口AudioSerialPort(ASP)USB控制器SPI端口DM365細節(jié)框架以下列圖ARM核子系統(tǒng)(ARMSS):ARM926EJ-SARM926EJ-S處理器為ARM9系列中一個,主要面向大存放管理,高性能,低功耗多任務應用程序。ARM926EJ-S處理器支持32位ARM和16位THUMB指令集,方便客戶達成高性能與高密代碼密度統(tǒng)一。ARM926EJ-S處理器支持ARM調試架構。包含軟件與硬件聯(lián)合邏輯調試輔助功效.ARM926EJ-Sprocessor具備哈佛架構,提供完全高性能系統(tǒng):ARM926EJ-Sintegercore集成內核MemoryManagementUnit(MMU)存放器管理單元指令與數(shù)據(jù)分離AMBAAHB總線接口指令與數(shù)據(jù)分開TCM接口ARM926EJ-S處理器實現(xiàn)ARMVer.5TEJ架構。ARM926EJ-S新增擴展16位固定有號運算,經(jīng)過在一個指令周期內完成32x16乘累加MAC運算。經(jīng)過一個仲裁,I-TCM與D-TCM接口能夠訪問ARM子系統(tǒng)內16KB內部RAM和8KB內部ROM。該仲裁為DM355DMSoC其它部分提供了DMA從接口,另外,ARM有DMA和CFG總線主端口,掛在AHB總線接口上。運行狀態(tài)與模式ARM運行兩種狀態(tài):ARM(32-bit)模式Thumb(16-bit)模式.用BX指令來進行模式切換ARM工作幾個模式:·用戶模式:非特權模式,用來運行大量用戶程序·快速中止模式Fastinterruptmode(FIQ):快速中止處理·中止模式Interruptmode(IRQ):通常中止事務處理·監(jiān)管模式Supervisormode(SVC):用于操作系統(tǒng),實現(xiàn)現(xiàn)場等保護處理·異常模式Abortmode(ABT):數(shù)據(jù)異?;蝾A取異常進入異常模式·系統(tǒng)模式Systemmode(SYS):用于操作系統(tǒng)特權模式·未定義模式Undefinedmode(UND):執(zhí)行未定義指令等時,引發(fā)ARM進入未定義模式能夠從其余特權模式進入某一特權模式(系統(tǒng)模式與監(jiān)管模式)。經(jīng)過軟件中止SWI,從用戶模式進入監(jiān)管模式,另外IRQ中止請求,能夠使處理器進入中止模式,F(xiàn)IQ中止能夠引發(fā)處理器進入快速中止模式,不一樣模式有不一樣堆棧,當模式進行切換時,堆棧指針SP會自動改變到對應模式SP。處理器狀態(tài)存放器PSRPSR狀態(tài)存放器用來控制中止使能與禁止,以其處理器模式切換,PSR[7:0]為控制部分,PSR[27:8]用于保留兼容,PSR[31:28]為狀態(tài)位PSR[7:0]定義以下:·Bit7–I位:禁止IRQ(I=1)或使能IRQ(I=0)·Bit6-F位:禁止FIQ(F=1)或使能FIQ(F=0)·Bit5-T位:進入thumb模式(T=1)或者ARM模式(T=0)·Bits4:0模式:處理器模式控制位–PSR[4:0]=10000:用戶模式Usermode–PSR[4:0]=10001:快速中止模式FIQmode–PSR[4:0]=10010:外部中止IRQmode–PSR[4:0]=10011:監(jiān)管模式Supervisormode–PSR[4:0]=10111:異常模式Abortmode–PSR[4:0]=11011:未定義模式Undefinedmode–PSR[4:0]=11111:系統(tǒng)模式SystemmodePSR[31:28]狀態(tài)位反應最近ALU運算結果,其定義以下:·Bit31-Nbit:Negativeorlessthan運算結果為負數(shù)或小于·Bit30-Zbit:Zero運算結果全0·Bit29-Cbit:Carryorborrow進位或借位·Bit28-Vbit:Overfloworunderflow溢出或下溢異常與異常向量當正常執(zhí)行程序被中止,暫時掛起而引發(fā)異常發(fā)生。ARM系統(tǒng)引發(fā)異常類型包含以下幾個:·復位中止Resetexception:processorreset處理復位·快速中止FIQinterrupt:fastinterrupt快速中止處理·IRQ中止interrupt:normalinterrupt中止事件處理·異常Abort中止:當前存放空間無法訪問時,引發(fā)abort異常,或者訪問指令時預取中止Abort與數(shù)據(jù)運算時Abort?!WI軟件中止:在程序中經(jīng)過SWI指令進入監(jiān)管模式·未定義指令異常:當處理器運行未定義指令時而進入此異常模式異常處理按優(yōu)先級從高到低排列:復位,數(shù)據(jù)Abort,FIQ,IRQ,預取Abort,未定義指令異常,SWI軟件中止。SWI軟件中止與未定義指令異常優(yōu)先級相同。異常中止向量表起始地址,依照VINTH值或者協(xié)處理器CP15存放器設置來決定:0x00000000(VINTH=0)或者0xFFFF0000(VINTH=1)。注意:此為ARM926EJ-S核特征,因為DMSoC存放地址0xFFFF0000不存在,所以不能對VINTH設置。默認異常中止向量表參考ExceptionVectorTableforARMARM異常中止向量表16位/32位指令集BIS16位指令集基于高度精簡指令架構思想,ARM926EJ-S支持兩種指令集:·ARM模式或標準32位指令集·Thumb模式或者16指令集對比傳統(tǒng)16位處理器(使用16位存放器),16位長16BIS能實現(xiàn)32BIS大部分高性能,代碼密度提升靠近2倍。而且16BIS代碼在32BIS模式下看成32位指令運行。占32BIS代碼65%空間,性能卻達成同等32BIS處理器搭配16位存放器160%。16-BIS/32-BIS優(yōu)勢16位操作指令配置標準32位存放器配置,能夠在32位與16位達成最好性能,每一條16位指令都有對應32位指令。32位架構對比16位架構最大優(yōu)勢是一條指令完成32位整數(shù)運算,以及高效處理大地址空間。當處理32位數(shù)據(jù),16位架構最少需要兩條指令來執(zhí)行,而32位指令完成一樣任務一條即可。然而,并非全部代碼都是處理數(shù)據(jù)都為32位數(shù)據(jù)(比如,代碼,執(zhí)行字符串處理),以及一些指令(如分支跳轉指令)不處理任何數(shù)據(jù)。假如一個16位架構只有16位指示,和一個32位微控制器架構只有32位指令,那么總體而言16位架構具備愈加好代碼密度,而且優(yōu)勢超出32位架構二分之一。顯然,32位性能犧牲了代碼密度成本。Coprocessor15(CP15)系統(tǒng)控制協(xié)處理器(CP15)是用于配置和控制指令和數(shù)據(jù)高速緩存器,緊耦合存放器Tightly-CoupledMemories(TCMs),內存管理單元(MMUs),許多系統(tǒng)功效。CP15存放器是唯一被MRC和MCR指令可訪問,不過必需在ARMprivilegedmode下,如supervisormodeorsystemmode。ARM926EJ-S地址三種不一樣類型地址存在在ARM926EJ-S系統(tǒng)中。它們以下:DifferentAddressTypesinARMSystem內存管理單元ARM926EJ-SMMU提供虛擬內存功效,適應操作系統(tǒng)要求,如Symbian操作系統(tǒng),WindowsCE和Linux。在主內存中一套兩級頁存放表控制地址翻譯,許可檢驗,和數(shù)據(jù)和指令訪問內存區(qū)域屬性。MMU使用一個統(tǒng)一TranslationLookasideBuffer(TLB)來匹配頁表信息。MMU特點以下:·標準ARM架構,第4版和第5版MMU映射大小,domains網(wǎng)域,訪問保護方案?!び成涑叽纾?MB(sections),64KB(largepages),4KB(smallpages)and1KB(tinypages)·大型和小型頁頁面訪問權限,可分別為頁面每部分而不一樣?!ardwarepagetablewalks·無效入口TLB,使用CP15存放器8·無效TLB入口,MVA來選擇,使用CP15存放器8·鎖定TLB入口,使用CP15存放器10Caches和WriteBufferARM926EJ-Sprocessor支持:指令緩存cache(Icache)16KB數(shù)據(jù)緩存cache(Dcache)8KB寫緩沖區(qū)17字節(jié)緩存caches具備以下特點:Virtualindex,virtualtag,地址訪問,使用ModifiedVirtualAddress(MVA)。Four-waysetassociative4路集聯(lián)方式,cache緩存長度8個字,每行32字節(jié),和Dcache中有兩個dirty位。Dcache支持寫入write-through和回寫write-back(或復制備份)緩存操作,MMUtranslationtables表中C和B位。Performcritical-wordfirstcacherefilling執(zhí)行關鍵字緩存替換。Cachelockdownregisters緩存鎖定存放器使控制哪些緩存用于linefill上分配,提供一個機制,即鎖定和控制高速緩存pollution。依照存放在TAGRAM虛擬地址VirtualAddressTAG來使用cachelinewrite-backs,Dcache存放PhysicalAddressTAG(PATAG),對應TAGRAM中每個Dcache入口地址。這意味著MMU不參加Dcache回寫操作,消除了TLB回寫錯過漏寫可能性。Cache維護選項為以下資源提供高效操作。–整個DcacheorIcache–DcacheorIcacheRegions–整個Dcache–虛擬內存virtualmemoryRegions還提供了高效率去除無效數(shù)據(jù):–DcacheRegions–整個Dcache–虛擬內存virtualmemoryRegions緊耦合存放ARM926EJ-S具備緊密耦存放接口,為ARM提供了數(shù)據(jù)與指令分開TCM緊密耦存放接口。TCMs意味著存放實時和高性能關鍵代碼。DM355支持指令instructionTCM(I-TCM)and數(shù)據(jù)dataTCM(D-TCM)。instructionTCM為0x0000:0000to0x0000:7FFF,數(shù)據(jù)dataTCM為0x0001:0000to0x0001:9FFFITCM/DTCMMemoryMapTCM狀態(tài)能夠從TCMstatusregister存放器中讀取,即CP15register0。指令以下:MRCp15,#0,Rd,c0,c0,#2;readTCMstatusregisterRd為任何存放器,保持狀態(tài)數(shù)據(jù)。數(shù)據(jù)格式以下:假如DTCM位為0,DataTCM數(shù)據(jù)不存在,假如DTCM位是1,DataTCM數(shù)據(jù)存在。假如ITCM位為0,InstructionTCM不存在,假如ITCM位是1,InstructionTCM存在。使用ITCM/DTCM存放器使能ITCM和DTCM。ITCM和DTCM操作以下:MRCp15,#0,Rd,c9,c0,#0;readDTCMregionregisterMCRp15,#0,Rd,c9,c0,#0;writeDTCMregionregisterMRCp15,#0,Rd,c9,c0,#1;readITCMregionregisterMCRp15,#0,Rd,c9,c0,#1;writeITCMregionregisterRd為任何存放器,保持狀態(tài)數(shù)據(jù)。數(shù)據(jù)格式以下:寫ENBbit為0,使能ITCMandDTCM,寫1為相反。物理地址參看ADDRESS域。SIZE反應大小。大小解碼參見表ITCM/DTCMSizeEncodingEmbeddedTraceSupport為了支持實時追蹤,ARM926EJ-S處理器提供了一個接口,使用EmbeddedTraceMacrocell(ETM).DM355中ARM926ES-J包含EmbeddedTraceBuffer(ETB),ETM包含兩個部分:traceport和triggeringfacilities。這兩個部分顯示ETMPartDescriptionsETM用來壓縮跟蹤信息和經(jīng)過一個狹窄traceport導出這些數(shù)據(jù)。外部TracePortAnalyzer(TPA)用來捕捉這些跟蹤trace信息Video視頻處理子系統(tǒng)(VPSS)視頻處理前端(VPFE)視頻處理前端由CCD控制器(CCDC),預覽器(Previewer),圖像縮放裝置(Resizer),硬件自動白平衡、自動對焦、自動曝光裝置(H3A)和柱狀圖模塊(Histogramblock)組成。 CCD控制器從傳感器(CMOS或CCD)接收原始圖像/視頻數(shù)據(jù)或者從視頻解碼裝置接收YUV格式視頻數(shù)據(jù)。預覽器將從傳感器(CMOS或CCD)接收原始未處理圖像/視頻數(shù)據(jù)轉化成YCbCr422格式數(shù)據(jù)。預覽器輸出能夠用于視頻壓縮,或者外部顯示設備,如NTSC/PAL模擬編碼器或數(shù)字LCD。 圖像縮放裝置從硬件實現(xiàn)圖像大小縮放。能夠從預覽器或者DDR2接收輸入圖像/視頻數(shù)據(jù),輸出到DDR2。 H3A模塊是提供自動白平衡、自動對焦、自動曝光控制環(huán)路。包含兩個主要模塊: VENC模擬/DACs接口有以下特征: 自動對焦(AF)引擎裝置 自動曝光(AE)與自動白平衡(AWB)引擎裝置 柱狀圖模塊依靠輸入顏色像素和提供統(tǒng)計需求來執(zhí)行不一樣3A算法,最終調整最終圖像和視頻輸出。柱狀圖模塊數(shù)據(jù)源通常為CCD/CMOS傳感器(經(jīng)過CCDC模塊)或者DDR2.視頻圖像協(xié)處理器在內核中直接硬連接兩個視頻圖像協(xié)處理器HDVICP和MJCP,顯著增強DM365性能。它們能夠完成H.264,MPEG4,MPEG2,MJPEG,JPEGWMV9/VC1編碼解碼等運算。這些運算都是調用xDM(xDIAS數(shù)字媒體)API接口。視頻處理后端(VPBE)Dm365視頻處理后端(VPBE)支持SDTV和HDTV輸出。它由OSD模塊和視頻編碼器(VENC)組成。VENC包含數(shù)字LCD(DLCD)和模擬(DAC等)接口。視頻編碼器產(chǎn)生模擬視頻輸出。DLCD控制器產(chǎn)生數(shù)字RGB/YCbCr數(shù)據(jù)輸出和時鐘信號。 OSD模塊主要功效是在硬件上實現(xiàn)圖形、字符疊加。同時支持2個視頻窗和2個圖形、字符(OSD)窗口,支持8種視頻窗數(shù)據(jù)與OSD窗數(shù)據(jù)混合方法。圖形、字符數(shù)據(jù)從外部存放器讀入,通常為DDR2。OSD經(jīng)過控制和參數(shù)存放器編程實現(xiàn)其功效。地址空間映射注:在TECHV開發(fā)板上我們把CE1地址空間細分為E_NETCS(0x04000000-0x04000fff)TECHVCS0(0x04004000-0x04004FFF)TECHVCS1(0x04008000-0x04008FFF)TECHVCS2(0x0400C000-0X0400CFFF)CS1空間經(jīng)過一個74ALS138進行片選譯碼,經(jīng)過A13、A12譯碼選擇TechvCS0、TechvCS1或者TechvCS2,其中TechvCS2外接擴展槽2個相同引腳,詳細能夠參考原理圖;當DM365EMIF配置為8總線接口模式時,BA00和BA01被當成是最低兩位地址,即是說,總尋址空間為A13~A0+BA01、BA00,所以A13、A12實際上代表了總線A15、A14;而配置為16位時,BA00變?yōu)锳14,最低位自動無效,而BA01變?yōu)榈诙唬淮藭r尋址為BA0,A13~A0+BA1+(無效位)。比如,要訪問EMIFA16位地址最低位,能夠這么操作:*(int*)0x04000002=0x2;此時BA1=1,而最低位自動無效。1.1.3關鍵板硬件說明1、板卡元件布局正面視圖以下列圖所表示:元件、接口說明:J1、J2、J3:CPU擴展信號接口,請參看原理圖USB主從模式配置選擇:USB主從模式經(jīng)過cpu板上r102和r103配置,焊接r103選擇主模式,焊接r102選擇從模式。配置CPU開啟模式:DM365CPU開啟模式是由cpu特定管腳在RESET期間狀態(tài)決定,這些管腳包含:A10~A8(對應CFG[2:0])A13~A11(對應BOOTMODE[2:0])配置說明以下:CFG[2:0]——配置地址、數(shù)據(jù)總線寬度,能夠經(jīng)過電阻R17~R25焊接配置EM_A10EM_A9EM_8AEMIFMODE0008-BITAEMIF00116-BITAEMIF原理圖以下:BOOTMODE[2:0]——配置開啟位置,能夠經(jīng)過電阻R14~R22焊接來設置。EM_A13EM_A12EM_11AEMIFMODE000NAND010MMC/SD0011UART0100USB101SPI0110EMAC111HPI原理圖以下:10M/100M網(wǎng)卡接口說明:DM365專用網(wǎng)卡,接口采取MINIUSB插接件,以節(jié)約PCB空間(附帶MINIUSB轉網(wǎng)口轉接線)。網(wǎng)卡接口原理以下列圖所表示:

1.2TECHV擴展板1.2.1概述?1路TV視頻輸出,用戶可選PAL/NTSC制式?1個實時時鐘日歷,帶各種報警功效(包含一個備用電池)?1路模擬視頻輸入,包含一個視頻編碼器?數(shù)字視頻輸入接口,能夠方便與CMOS影像傳感器連接,支持YUV4:2:2、BT656等格式?1個10M/100Mbps自適應以太網(wǎng)接口?1路立體聲音頻輸入、1路麥克風輸入,1路立體聲音頻輸出?USB2.0-OTG高速接口,方便與PC、U盤連接?UART接口,可做主通信接口,?2個撥碼開關,5個用戶輸入按鍵?1個與IO口復用狀態(tài)指示LED?1個SD/MMC卡插座接口?JTAG仿真器接口?單電源+5V供電1.2.2接口說明J12是5V電源輸入接口,如圖8所表示:+5V插座極性J9是TIJTAG,用來調試CPU。注意:仿真器接頭切忌接反ARMJTAG接口TP5為地GND測試點 J8:USB-A接座,Slave/Host復用,經(jīng)過CPU關鍵板配置,以下列圖所表示:J6:RS232串口線接口,采取miniusb插座連接,用戶購置本版卡時會附送一根連接好MiniUSB轉串口線,接口定義以下: P1:復合信號輸入端子,用于電視信號、攝像頭信號輸入;結構方框圖和信號描述以下:引腳信號名稱1信號輸入2GND復合視頻端子結構圖 復合視頻輸入端子信號描述J7:TV信號輸出,結構和信號如上P1一樣;TechV總線P6、P7、P8含義以下:P6:地址、數(shù)據(jù)總線;P7:中止、串行接口等;P8:視頻專用信號及其余。SW1:復位開關,按下此按鈕將造成板卡上全部芯片、CPU復位。P5:10/100Mbps以太網(wǎng)RJ45接口,內帶變壓器和指示燈,其結構圖及網(wǎng)線接頭以下所表示:RJ45接口及接頭圖P3:AudioOut,音頻輸出接口;P2:音頻信號輸入;用戶需要采取3.5mm標準插頭。P4:MIC,麥克風輸入。麥克風直接焊接在板卡上,用戶不需要外接麥克風。J10:Mini視頻輸入接口,之所以稱之為Mini,是因為只需要8位Y、UV復用信號即可,此接口方便掛接各種CMOS攝像頭。1.2.3Techv總線基本描述總線采取EMIFA8位訪問模式(亦可配為16位)。達盛企業(yè)Techv總線,提供中止、定時器脈沖等輸入,及定時器、IO輸出。請參考原理圖來設計用戶擴展板卡。標準管腳信號圖 Techv總線一覽詳細連接請參考原理圖。P6插槽信號描述:引腳號信號描述引腳號信號描述1+5V41NC2+5V42NC3NC43NC4NC44NC5NC45NC6地址A14*46NC7A1347NC8A1248NC9A1149NC10A1050NC11GND51NC12GND52NC13A953數(shù)據(jù)D15引腳號信號描述引腳號信號描述14A854D1415A755D1316A656D1217A557D1118A458D1019A359D920A260D821+5V61GND22+5V62GND23A163D724A064D625BA165D526BA066D427NC67D328NC68D229NC69D130NC70D031GND71GND32GND72GND33EM_CLK73EM_OE34EM_CE074EM_WE35EM_ADV75EM_OE36NC76EM_WAIT37NC77TechvCS138NC78TechvCS039NC79GND40NC80GND注:NC表示沒有連接;A14與BA0共用。P7插槽信號描述:引腳號信號描述引腳號信號描述1NC41NC2NC42SPI1_SDI3GND43GND4GND44GND5+5V45NC6+5V46NC7GND47NC8GND48EXTINT59+5V49NC10+5V50NC11NC51GND12NC52GND引腳號信號描述引腳號信號描述13NC53EXTINT414NC54NC15NC55NC16NC56NC17NC57NC18NC58NC19NC59RESETn20NC60NC21CLKX061GND22NC62GND23FSX063NC24DX064NC25GND65NC26GND66NC27CLKR067EXTINT628NC68EXTINT729FSR069TechvCS230DR070TechvCS231GND71NC32GND72NC33SPI1_SCLK73NC34NC74NC35SPI1_ENA075NC36SPI1_SDO76GND37GND77GND38GND78CLKOUT339NC79GND40NC80GND1.2.4視頻專用信號擴展 DM365數(shù)字媒體處理器最大特色就是具備專門圖象數(shù)據(jù)接口,比如數(shù)字前端視頻捕捉、后端數(shù)字視頻輸出、LCD接口等。這些引腳跟GPIO是復用,使用時應該注意。圖視頻信號接口其信號意義描述以下表:引腳號信號描述引腳號信號描述1+5V41NC2+5V42NC3視頻輸入YIN743NC4CIN744NC5YIN645NC6CIN646NC7YIN547視頻輸出YOUT38CIN548YOUT4_R49YIN449YOUT5_R510CIN450YOUT6_R611YIN351YOUT7_R712CIN352COUT5_G213YIN253COUT6_G314CIN254COUT7_G415YIN155YOUT0_G516CIN156YOUT1_G617YIN057YOUT2_G7引腳號信號描述引腳號信號描述18CIN058COUT0_B319VSYNC59COUT1_B420GND60COUT2_B521HSYNC61COUT3_B622WEN62COUT4_B723GND63TOUCHX-24NC64TOUCHY-25PCLK65TOUCHY+26NC66TOUCHX+27NC67LCD_OE_OUT28NC68VSYNC_OUT29NC69HSYNC_OUT30NC70VCLK_OUT31NC71GND32NC72GND33NC73NC34NC74GND35NC75I2C_SCLK36NC76EXTCLK37NC77I2C_DATA38NC78FIELD_OUT39NC79GND40NC80GND注:詳細信號作用能夠參考TMS320DM365芯片手冊

第二章CCS開發(fā)環(huán)境下硬件測試程序編寫第1節(jié)DDR2測試程序試驗目標:對DM365CPU板上DDR2進行讀寫測試試驗器件:計算機、Techvdm365CPU板,仿真器(ADT-XDS560USB仿真器),CCS3.3以上版本試驗原理:試驗代碼原理是CPU先向DDR2一段空間內寫入數(shù)據(jù),然后CPU再讀取剛寫入數(shù)據(jù),進行讀寫數(shù)據(jù)校驗,假如校驗成功,則說明CPU能夠對DDR2進行數(shù)據(jù)讀取,不然則不能。試驗步驟:1.正確連接好仿真器和電源。2.打開測試程序“evmdm365_v1\tests\\ddr\ddr.pjt”,以下列圖所表示:3.編譯全部文件并裝載4.跳到主程序開始5.運行程序,觀察輸出窗口信息,出現(xiàn)以下消息則表示測試經(jīng)過。6.測試試驗完成。

第2節(jié)NANDFLASH測試程序試驗目標:對CPU板上NANDFLASH進行讀寫測試試驗器件:計算機、Techvdm365CPU板,仿真器(ADT-XDS560USB仿真器),CCS3.3以上版本試驗原理:讀取NANDFLASHID號,判斷正確否,然后向nandflash中寫入數(shù)據(jù),然后再讀取NANDFLASH空間數(shù)據(jù),最終校驗數(shù)據(jù)一致性。假如校驗成功,則說明CPU能夠對NANDFLASH進行存放操作,不然則不能。試驗步驟:1.正確連接好仿真器和電源。2.打開測試程序“evmdm365_v1\tests\nandflash\nandflash.pjt”,以下列圖所表示:3.編譯全部文件并裝載4.跳到主程序開始5.運行程序,觀察輸出窗口輸出信息,出現(xiàn)以下信息則表示測試經(jīng)過。6.測試試驗完成。

第3節(jié)GPIO口測試程序試驗目標:簡單測試GPIO。試驗器件:計算機、Techvdm365CPU板,仿真器(ADT-XDS560USB仿真器),CCS3.3以上版本試驗原理:本試驗是經(jīng)過利用GPIO口來控制具備多路選擇功效器件。SN74BTLV3257PW,連通需要線路,然后使GPIO口輸出高低電平,控制底板LED燈閃爍。原理圖以下:GPIO36控制SN74CBTLV3257PW:GPIO36=0:A-->1B1GPIO36=1:A-->1B2(詳細應用請參看芯片數(shù)據(jù)手冊)SPI_SDENA(GPIO25)連接到底板D2LED燈(詳細參看原理圖)試驗步驟:1.正確連接好仿真器和電源。2.打開測試程序“evmdm365_v1\tests\GPIO\GPIO.pjt”,以下列圖所表示:3.編譯全部文件并裝載4.跳到主程序開始5.運行程序,觀察窗口輸出信息和底板上D2燈是否閃爍。假如有這兩種情況出現(xiàn)表示GPIO口設置正確,以下列圖所表示:6.測試試驗完成。

第4節(jié)I2C口測試程序試驗目標:簡單測試I2C接口。試驗器件:計算機、Techvdm365CPU板,仿真器(ADT-XDS560USB仿真器),CCS3.3以上版本試驗原理:本試驗是經(jīng)過底板上鍵盤來測試I2C口。包括到原理圖以下:

詳細芯片原理請參看詳細數(shù)據(jù)手冊。試驗步驟:1.正確連接好仿真器和電源。2.打開測試程序“evmdm365_v1\tests\GPIO\GPIO.pjt”,以下列圖所表示:3.編譯全部文件并裝載4.跳到主程序開始5.運行程序,依次按動底板上鍵盤,此時會在下面觀察窗口出現(xiàn)以下信息,表示測試經(jīng)過:6.測試試驗完成。

第三章DM365BOOTLOADER我們在TECHV-DM6446開發(fā)上采取Uboot作為BOOTLOADER。Uboot是德國DENX小組開發(fā)用于多個嵌入式CPUbootloader程序。UBoot不但僅支持嵌入式Linux系統(tǒng),還支持NetBSD,VxWorks,QNX,RTEMS,ARTOS,LynxOS等嵌入式操作系統(tǒng)。UBoot除了支持PowerPC系列處理器外,還能支持MIPS、x86、ARM、NIOS、XScale等很多系列處理器。

第1節(jié)UBOOT移植uboot源碼中通常包含:boardcommoncpudiskdocdriversdttexamplesfsincludelib_armlib_genericnetpostrtctools等目錄。其介紹以下:1、board:一些已經(jīng)有開發(fā)板關于文件.每一個開發(fā)板都以一個子目錄出現(xiàn)。2、common:實現(xiàn)uboot命令行下支持命令,每一條命令都對應一個文件。3、cpu:與特定CPU架構相關文件,Uboot支持CPU在該目錄下都有一個子目錄。4、disk:對磁盤支持文件。5、doc:Uboot說明文檔,推薦大家參考閱讀。6、drivers:Uboot支持設備驅動程序目錄,網(wǎng)卡、串口和USB等驅動程序存放在該目錄。7、fs:支持文件系統(tǒng),Uboot現(xiàn)在支持cramfs、fat、fdos、jffs2和registerfs。8、include:Uboot使用頭文件,還有對各種硬件平臺支持匯編文件,系統(tǒng)配置文件和對文件系統(tǒng)支持文件。9、lib_xxxx:與體系結構相關庫文件。10、net:與網(wǎng)絡協(xié)議棧相關代碼,BOOTP協(xié)議、TFTP協(xié)議、RARP協(xié)議和NFS文件系統(tǒng)實現(xiàn)。11、tools:Uboot工具目錄。U-Boot本身支持很多開發(fā)板,在其源代碼中,通常每個板子都對應一個board/目錄下文件夾以及include/configs/目錄下目標板配置頭文件。所以,要添加U-Boot對我們目標板支持,首先就是要建立目標板文件夾和配置頭文件,并修改相關Makefile。下面簡明說明為U-Boot添加新目標板定義過程:(1)在board/目錄下建立目標板目錄:davinci/dm365_evm,并依照目標板硬件編寫(或從相近開發(fā)板修改)board_init.s、dm365_board.c、Makefile等文件文件。(2)在include/configs/目錄下建立目標板配置頭文件:davinci_dm365_evm.h。(3)修改Makefile。在U-Boot源碼頂層目錄下Makefile中加入目標板編譯配置選項:davinci_dm365_evm_config: unconfig @$(MKCONFIG)$(@:_config=)armarm926ejsdm365_evmdavincidavinci定義CROSS_COMPILE值:CROSS_COMPILE=/home/workdir/dm365/montavista/pro/devkit/arm/v5t_le/bin/arm_v5t_le-當然,要使編譯出來u-boot能真正適適用于我們目標板,還有很多工作要做,包含處理器工作狀態(tài)、存放器映射設置、網(wǎng)卡驅動移植等等。移植好文件在/home/workdir/dm365/u-boot中。第2節(jié)UBOOT編譯在命令窗口中切換到/home/workdir/dm365/u-boot目錄下,按次序輸入以下命令:makedistcleanmakedavinci_dm365_evm_configmake編譯完成,會出現(xiàn)以下界面:同時,我們會看到/home/workdir/dm365/u-boot/目錄下生成二進制文件:u-boot.bin第3節(jié)UBOOT命令介紹Printenv打印環(huán)境變量:例:printenv

Setenv設置新變量:例:setenvethaddreth0Saveenv保留變量:例:saveenv命令將當前定義全部變量及其值存入flash中。用來存放變量及其值空間只有8k字節(jié),應不要超出。Loadb經(jīng)過串口Kermit協(xié)議下載二進制數(shù)據(jù)。Tftp經(jīng)過網(wǎng)絡下載程序,需要先設置好網(wǎng)絡配置。例:tftp80800000uImage(uImage應位于tftp服務程序目錄中)Md顯示內存區(qū)內容。Mm修改內存,地址自動遞增。Nm修改內存,地址不自動遞增。Mw用模型填充內存Cp拷貝一塊內存到另一塊Cmp比較兩塊內存區(qū)這些內存操作命令后都可加一個后綴表示操作數(shù)據(jù)大小(比如cp.b表示按字節(jié)拷貝)Protect寫保護操作run執(zhí)行設置好腳本例:run腳本名bootcmduboot保留環(huán)境變量,也是一個腳本。假如定義了該變量,在autoboot模式下,將會執(zhí)行該腳本內容。Go執(zhí)行內存中二進制代碼,一個簡單跳轉到指定地址。Bootm執(zhí)行內存中二進制代碼。要求二進制代碼為制訂格式。通常為mkimage處理過二進制文件。

Bootp經(jīng)過網(wǎng)絡開啟,需要提前設置好硬件地址。ping

(只能開發(fā)板PING服務器)例:ping47?得到全部命令列表help

得到命令幫助信息例:help命令名更多命令信息可用?和help查詢。第4節(jié)UBOOT燒寫按照附錄TDS560USB仿真器配置說明配置仿真器,連接開發(fā)板。將dm365bootwrite文件夾拷貝到C盤根目錄;CCS連上目標板后使用LoadProgram…命令將c:\dm365bootwrite\NANDWriter_DM36x.out下載到目標板上;點擊運行程序,彈出第一個對話框,輸入c:\dm365bootwrite\UBL_DM36x_NAND.bin后回車;等候彈出第二個對話框時輸入c:\dm365bootwrite\u-boot-1.3.4-dm365_evm.bin回車;等候彈出第三個對話框時輸入c:\dm365bootwrite\u-boot-w.bin回車;等候彈出第四個對話框時輸入c:\dm365bootwrite\u_boot.bin回車;等到燒寫完成(CCS下面信息框會出現(xiàn)Burncomplete提醒),斷電,斷開仿真器。使用串口線、網(wǎng)線將目標板和電腦連接好;打開電腦上超級終端,并設置參數(shù)以下所表示:打開開發(fā)板電源,在3秒內按下電腦鍵盤空格鍵,我們看到超級終端輸出入下信息TechShineDM365EthernetPHY:GENERIC@0x00Hitanykeytostopautoboot:0DM365EVM:>uboot燒寫成功。

第四章LINUX操作系統(tǒng)移植及其應用程序、驅動程序編寫第1節(jié)LINUX操作系統(tǒng)移植我們使用linux內核版本是2.6.18。打開/home/workdir/dm365/linux-2.6.18_pro500即可看到其源碼:/arch子目錄包含了全部與硬件體系結構相關內核移植代碼。其中每一個目錄都代表一個硬件平臺,對于每種平臺都應該包含:boot:包含開啟內核所使用部分或全部平臺相關代碼。kernel:包含支持體系結構特有特征代碼lib:包含存放體系結構特有通用函數(shù)實當代碼mm:包含存放體系結構特有內存管理程序實現(xiàn)mach-xxx:包含存放該處理器移植代碼/Documentation子目錄包含關于內核許多非常詳細文檔。/drivers子目錄包含內核中全部設備驅動程序。/fs子目錄包含了全部文件系統(tǒng)代碼。/include子目錄包含了建立內核代碼時所需大部分庫文件頭文件,該模塊利用其余模塊重建內核。同時,它也包含不一樣平臺需要庫文件。/init子目錄包含了內核初始化代碼,內核從此目錄下開始工作。/ipc子目錄包含了內核進程間通訊代碼。/kernel子目錄包含了主內核代碼,如進程調度等。/lib子目錄包含了通用庫函數(shù)代碼等。/mm子目錄包含了內核內存管理代碼。/net子目錄包含了內核網(wǎng)絡相關代碼。/scripts子目錄包含了配置內核一些腳本文件通常在每個目錄下,都有一個.depend文件和一個Makefile文件,這兩個文件都是編譯時使用輔助文件,仔細閱讀這兩個文件對搞清各個文件這間聯(lián)絡和依靠關系很有幫助;而且,在有目錄下還有Readme文件,它是對該目錄下文件一些說明,一樣有利于我們對內核源碼了解。設置目標平臺和指定交叉編譯器嵌入式系統(tǒng)硬件平臺千差萬別,其處理器也各不相同,針對不一樣處理器我們要使用對應交叉編譯環(huán)境。所以在編譯之前要對指定交叉編譯器。在根目錄Makefile文件中,修改以下:###########################ARCH:=arm###########################CROSS_COMPILE=/home/workdir/dm365/montavista/pro/devkit/arm/v5t_le/bin/arm_v5t_le-###########################配置內核Linux有三種方式來配置內核:makeconfig、makemenuconfig和makexconfig。后兩種界面好操作方便。我們用makexconfig。在命令行中輸入:cd/home/workdir/dm365/linux-2.6.18_pro500makexconfig稍等,我們會看到彈出以下窗口:然后,我們就能夠在這個窗口中定制內核了。配置完后,保留退出。系統(tǒng)會把我們配置寫入內核根目錄中.config文件中。編譯時,make會自動調用.config文件。接著,我們在命令行輸入:makeuImage我們會看到編譯輸出信息,編譯時間和您電腦性能關于,編譯完成后就會得到linux內核文件:uImage(在目錄/home/workdir/dm365/linux-2.6.18_pro500/arch/arm/boot中)當然要把linux移植到自己硬件平臺上還有很多工作要做。要求我們對linux和目標平臺都要很熟悉。不過不用擔心,芯片制造商和開發(fā)板制造商會給您提供很多移植好代碼,您只需要在這些代碼基礎上依照自己硬件修改就行了。精儀達盛企業(yè)為您提供在EL_TECHV_DM365開發(fā)板上移植好linux代碼位于/home/workdir/dm365/linux-2.6.18_pro500中。第2節(jié)LINUX內核燒寫在下載內核之前,要連接電腦主機和開發(fā)板串口和網(wǎng)口并確保目標板uboot能夠正常工作。打開虛擬機Vmare,并登錄到虛擬機Linux;把上一節(jié)編譯好內核拷貝到/tftpboot目錄下。給開發(fā)板上電,并在三秒內按下電腦鍵盤空格鍵進入uboot命令行。把上述uImage文件下到DDR內存中,在uboot命令行中輸入以下命令:tftp0x80800000uImage 稍等即可看到:在uboot命令行中輸入以下命令:nanderase40000000 等候Flash擦除完成。最終在uboot命令行中輸入以下命令:nandwrite8080000040000000燒寫完成后,輸入boot命令或按下復位鍵,即可看到dm365用新固化在nandflash中kernel開啟。第3節(jié)LINUX驅動程序編寫系統(tǒng)調用是操作系統(tǒng)內核和應用程序之間接口,設備驅動程序是操作系統(tǒng)內核和機器硬件之間接口.設備驅動程序為應用程序屏蔽了硬件細節(jié),這么在應用程序看來,硬件設備只是一個設備文件,應用程序能夠像操作普通文件一樣對硬件設備進行操作.設備驅動程序是內核一部分,它完成以下功效:1、對設備初始化和釋放.2、把數(shù)據(jù)從內核傳送到硬件和從硬件讀取數(shù)據(jù).3、讀取應用程序傳送給設備文件數(shù)據(jù)和回送應用程序請求數(shù)據(jù).4、檢測和處理設備出現(xiàn)錯誤.在Linux操作系統(tǒng)下有兩類主要設備文件類型,一個是字符設備,另一個是塊設備.字符設備和塊設備主要區(qū)分是:在對字符設備發(fā)出讀/寫請求時,實際硬件I/O通常就緊接著發(fā)生了,塊設備則不然,它利用一塊系統(tǒng)內存作緩沖區(qū),當用戶進程對設備請求能滿足用戶要求,就返回請求數(shù)據(jù),假如不能,就調用請求函數(shù)來進行實際I/O操作.塊設備是主要針對磁盤等慢速設備設計,以免花費過多CPU時間來等候.用戶進程是經(jīng)過設備文件來與實際硬件打交道.每個設備文件都都有其文件屬性(c/b),表示是字符設備還塊設備。另外每個文件都有兩個設備號,第一個是主設備號,標識驅動程序,第二個是從設備號,標識使用同一個設備驅動程序不一樣硬件設備,比如有兩個軟盤,就能夠用從設備號來區(qū)分他們.(設備文件主設備號必須與設備驅動程序在登記時申請主設備號一致,不然用戶進程將無法訪問到驅動程序.)在系統(tǒng)內部,I/O設備存/取經(jīng)過一組固定入口點來進行,這組入口點是由每個設備設備驅動程序提供。詳細到Linux系統(tǒng),設備驅動程序所提供這組入口點由一個文件操作結構來向系統(tǒng)進行說明。file_operations結構定義于linux/fs.h文件中,伴隨內核不停升級,file_operations結構也越來越大,不一樣版本內核會稍有不一樣。

structfile_operations

{

structmodule*owner;

loff_t(*llseek)(structfile*,loff_t,int);

ssize_t(*read)(structfile*,char*,size_t,loff_t*);

ssize_t(*write)(structfile*,constchar*,size_t,loff_t*);

int(*readdir)(structfile*,void*,filldir_t);

unsignedint(*poll)(structfile*,structpoll_table_struct*);

int(*ioctl)(structinode*,structfile*,unsignedint,\

unsignedlong);

int(*mmap)(structfile*,structvm_area_struct*);

int(*open)(structinode*,structfile*);

int(*flush)(structfile*);

int(*release)(structinode*,structfile*);

int(*fsync)(structfile*,structdentry*,intdatasync);

int(*fasync)(int,structfile*,int);

int(*lock)(structfile*,int,structfile_lock*);

ssize_t(*readv)(structfile*,conststructiovec*,\

unsignedlong,loff_t*);

ssize_t(*writev)(structfile*,conststructiovec*,\

unsignedlong,loff_t*);

ssize_t(*sendpage)(structfile*,structpage*,int,size_t,\

loff_t*,int);

unsignedlong(*get_unmapped_area)(structfile*,unsignedlong,\

unsignedlong,unsignedlong,unsignedlong);

};file_operations結構中組員全部是函數(shù)指針,所以實質上就是函數(shù)跳轉表。每個進程對設備操作,都會依照major、minor設備號,轉換成對file_operations結構訪問。即在文件操作中使用open,read,write,ioctl,close等,都會調用在file_operation中定義對應函數(shù)入口。下面給出一個設備驅動注冊模版供您參考:1

//設備結構體

2

structxxx_dev_t

3

{

4

structcdevcdev;

5

...

6

}xxx_dev;

7

//設備驅動模塊加載函數(shù)

8

staticint__initxxx_init(void)

9

{

10

...

11

cdev_init(&xxx_dev.cdev,&xxx_fops);//初始化cdev

12

xxx_dev.cdev.owner=THIS_MODULE;

13

//獲取字符設備號

14

if(xxx_major)

15

{

16

register_chrdev_region(xxx_dev_no,1,DEV_NAME);

17

}

18

else

19

{

20

alloc_chrdev_region(&xxx_dev_no,0,1,DEV_NAME);

21

}

22

23

ret=cdev_add(&xxx_dev.cdev,xxx_dev_no,1);//注冊設備

24

...

25}

26//設備驅動模塊卸載函數(shù)

27staticvoid__exitxxx_exit(void)

28{

29

unregister_chrdev_region(xxx_dev_no,1);//釋放占用設備號

30

cdev_del(&xxx_dev.cdev);//注銷設備

31

...

32}接著,讓我們自己動手來做一個驅動:1、編寫hello-driver.c#include<linux/init.h>#include<linux/module.h>#include<linux/kernel.h>staticintMy_init(void){printk(KERN_ALERT"Hello,TECHSHINE!\n");return0;}staticvoidMy_exit(void){printk(KERN_ALERT"Thisismyfirstmodule!\nGoodByeNow!\n");}module_init(My_init);module_exit(My_exit);MODULE_LICENSE("GPL");宏module_init調用函數(shù)My_init,My_init這個函數(shù)是模塊入口,在這里My_init功效是打印“Hello,TECHSHINE!”。當卸載模塊時由module_exit宏調用My_exit函數(shù),這是模塊注銷函數(shù)。卸載模塊時打印"Thisismyfirstmodule!\nGoodByeNow!"。這里使用是printk而不是printf,因為在內核中不能直接這么調用C庫函數(shù)。所以module.h和kernel.h是內核模塊必須頭文件,MODULE_LICENSE("GPL")表示這個模塊遵照GPL規(guī)則。現(xiàn)在我們把hello-driver.c保留到/home/filesys/home/hello-driver目錄下。2、編寫其Makefile文件:MVTOOL_PREFIX=/home/workdir/dm365/montavista/pro/devkit/arm/v5t_le/bin/arm_v5t_le-KERNEL_DIR=/home/workdir/dm365/linux-2.6.18_pro500MAKE_ENV=ARCH=armCROSS_COMPILE=$(MVTOOL_PREFIX)obj-m+=hello-driver.oall: make-C$(KERNEL_DIR)M=`pwd`$(MAKE_ENV)modulesclean: -rm-rf*.o*mod**.ko.cmem*.tmp*我們也把它保留到/home/filesys/home/hello-driver目錄下。3、輸入cd/home/filesys/home/hello-drivermake進行編譯,生成可執(zhí)行文件hello-driver.ko4、打開超級終端,設置以下:5、給開發(fā)板上電,登陸到MontaVistaLinux。在串口終端下輸入:cd/home/hello-driverinsmodhello-driver.ko串口終端會輸出:Hello,TECHSHINE!輸入:rmmodhello-driver.ko卸載hello-driver.ko

DM365USB驅動編寫試驗目標熟悉Linux下C語言編程熟悉Linux下DM365驅動程序編寫試驗設備計算機、DM365開發(fā)板、U盤試驗內容試驗程序源代碼位于/home/workdir/dm365/linux-2.6.18_pro500/drivers/usb目錄下,請用戶仔細閱讀,了解內部運行機制。試驗步驟連接好DM365試驗平臺和計算機;打開虛擬機Vmare,并登錄到虛擬機Linux打開超級終端,設置以下:給DM365上電,待linux開啟完成提醒輸入用戶名,我們輸入root即可進入開發(fā)板上運行l(wèi)inux系統(tǒng)。把U盤插開發(fā)板usb接口。(注:U盤文件系統(tǒng)必須為Fat或者Fat32)此時,串口終端輸出以下信息:輸入mount-tvfat/dev/scsi/host0/bus0/target0/lun0/part1/mnt/usb或mount/dev/sda1/mnt/usb或mount/dev/sda/mnt/usb(注:掛載時用設備描述符依照實際情況有所不一樣請用戶依照插卡時系統(tǒng)提醒信息正確掛載設備)然后查看/mnt/usb目錄中內容,我們會看到原來U盤中已經(jīng)有文件。進入/mnt/usb目錄,輸入命令:mkdirhellols我們會看到自己在U盤中創(chuàng)建目錄:hello輸入:cd..umountusb,拔出U盤。本試驗結束。

DM365SD卡驅動編寫試驗目標熟悉Linux下C語言編程熟悉Linux下DM365驅動程序編寫熟悉DM365SD/MMC控制器操作方式試驗設備計算機、DM6446開發(fā)板、SD卡試驗內容試驗程序源代碼位于/home/workdir/dm365/linux-2.6.18_pro500/drivers/mmc目錄下,請用戶仔細閱讀,了解內部運行機制。試驗步驟連接好DM365試驗平臺和計算機;打開虛擬機Vmare,并登錄到虛擬機Linux打開超級終端,設置以下:給開發(fā)板上電,進入linux系統(tǒng),把sd卡插入開發(fā)板上sd/mmc接口。(注:SD卡最好格式化為Fat或者Fat32格式且容量應小于2G)此時,串口終端輸出以下信息:.1.2:~#mmcblk0:mmc0:19b3SD02G1921024KiBdevfs_mk_dir:invalidargument.<6>mmcblk0:p1接著,在串口終端中輸入:mount/dev/mmcblk0p1/mnt/(注:掛載時用設備描述符依照實際情況有所不一樣請用戶依照插卡時系統(tǒng)提醒信息正確掛載設備)然后查看/mnt/目錄中內容,我們會看到原來sd卡中已經(jīng)有文件。進入/mnt/目錄,輸入命令:mkdirhellols我們會看到自己在sd卡中創(chuàng)建目錄:hellomount/dev/mmcblk0p1/mnt/.1.2:~#ls/mntdctv.1.2:~#cd/mnt.1.2:/mnt#lsdctv.1.2:/mnt#mkdirhello.1.2:/mnt#lsdctvhello輸入:cd..umountmnt,拔出sd卡。本試驗結束。

第4節(jié)LINUX應用程序編寫應用程序編寫與驅動程序編寫相比對硬件依賴程度大為減小,相對來說也比較輕易,另外,書籍、資料也相當多。這里不再贅述,只舉一小例子,來說明以下編譯器使用方法。編寫hello.c文件:#include<stdio.h>intmain(){ printf("Hello,TECHSHINE!\n"); return0;}把它保留到/home/filesys/home/hello目錄中。編寫Makefile文件:cc=/home/workdir/dm365/montavista/pro/devkit/arm/v5t_le/bin/arm_v5t_le-gcchello:hello.c $(cc)hello.c-ohelloclean: rmhello也把它保留到/home/filesys/home/hello目錄中。輸入cd/home/filesys/home/hellomake進行編譯,生成可執(zhí)行文件hello打開超級終端,設置以下:給開發(fā)板上電,登錄到MontaVistaLinux。在串口終端下輸入:cd/home/hello./hello串口終端會輸出:Hello,TECHSHINE!

第五章視頻音頻編解碼試驗第1節(jié)G711格式語音編碼試驗注:程序源代碼在虛擬機/home/workdir/dm365/dvsdk_2_10_01_18/dvsdk_demos_2_10_00_17/dm365/encode目錄下面。一、目標1.熟悉Linux下C語言編程;2.熟悉DM365語音編碼方式;二、設備計算機,DM365開發(fā)板,音頻線,電視。三、步驟與內容1.連接好硬件。注意:音頻頻信號能夠使用音頻線從電腦上輸入。2、打開并設置好超級終端。3.打開虛擬機Vmare,并使用root用戶登錄到虛擬機Linux;4.給DM365上電,使用root用戶登錄到目標板。5.在串口終端下,切換到/opt/dvsdk目錄:敲入命令:cd/opt/dvsdk6.運行編碼程序encode,在/opt/dvsdk目錄依次下輸入以下命令:./loadmodules.sh ./encode-s/home/test.g711-l (運行程序)該命令把輸入聲音編碼成G711格式,保留在/home目錄下test.g711。稍等即可看到電視有正在錄制聲音信息輸出,比如soundbitrate7.按鍵盤“Ctrl+C”來結束程序8.本試驗結束。

第2節(jié)G711格式語音解碼試驗注:程序源代碼在虛擬機/home/workdir/dm365/dvsdk_2_10_01_18/dvsdk_demos_2_10_00_17/dm365/decode目錄

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論