版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
寫這篇文檔是為以前沒有接觸過dvd項目的工程師提供一些咨詢,讓你們能夠在最短的時間里上手。在這篇文檔里面包括以下內(nèi)容:一、DVD的軟件/硬件平臺二、配置樣機三、程序的調(diào)試四、程序的DownLoad五、系統(tǒng)的軟件流程六、點亮dvd上的顯示屏七、按鍵的定義八、UI( UserInterface)修改九、工程中常見問題解答DVD的軟件/硬件平臺我們使用的芯片是MTK(聯(lián)發(fā)科技)的芯片,MTK系列的芯片有:1389B,1389C,1389D,1389F,1389HD等。怎樣從芯片上看出目前使用的芯片的型號了?如果一個芯片的編號為:MT1389DE0421-CWSD14JJ,數(shù)字1389+橫杠后的字母“C”就是它的型號,這是一款1389C系列的芯片。MTK視頻解碼,伺服等集成在芯片里面,音頻DAC有的芯片有集成,有的沒有。MTK主要的外圍芯片有:flash;內(nèi)存dram;控制loader(光驅(qū))動作的驅(qū)動芯片;eeprom;flash是用來保存目標(biāo)文件target.bin;在配置樣機的時候,我們需要了解的是內(nèi)存dram的大小;eeprom芯片用來保存dvd中菜單里面的設(shè)置;如果是一款高清的平臺,它還需要一顆MT1392的芯片。MTK芯片是由RISC、DSP、C51以及時鐘、接口等部分組成。其中C51主要完成UI部分的工作,包括OSD、VFD、IR及IR的處理等。下面所說的程序都是指C51程序。程序使用的是c51的編譯器,如果把c51的編譯器放在C盤,在設(shè)置環(huán)境變量的時候設(shè)置為:C:\C51;現(xiàn)在我們來看軟件部分:軟件部分可以看成有兩大塊構(gòu)成,在8032文件夾里面的文件屬于應(yīng)用層的,是我們可以看到并做修改的;另一部分是底層的risc,這部分的修改,我們是動不了的,需要有MTK自己去做修改。2.配置樣機在做這個項目之前,我們先要拿到對應(yīng)的公版軟件;樣機不同,公版軟件的設(shè)置也不一樣。如果只是要簡單的讓機器跑起來,我們對樣機的配制主要是在vendor.h這個文件中進(jìn)行修改:一、如果你的主芯片是1389c的,你需要打開下面的宏定義:#defineMT1389_REV_C二、根據(jù)dram的大小來定義dram,如果你的dram是8m的:#defineDRAM_SZDRAM_8M如果你的dram是由兩塊2m的芯片組成還需要打開下面的定義:#defineDRAM_CASCADE三、關(guān)于聲音的定義如果芯片內(nèi)置D/A,則需要打開以下定義:#defineINT_ADAC如果是外置的則需要關(guān)掉這個定義,接下來要打開makefile文件,進(jìn)行AudioDACConfig的配置:關(guān)掉ADAC_DEF=_NPADAC_這個語句:#ADAC_DEF=_NPADAC_接下來根據(jù)聲音是左對齊、右對齊、I2S等格式,打開相應(yīng)的一個定義,如果聲音是I2S格式,則可以打開:ADAC_DEF=_CS4340_接下來就是要選擇risc,點亮dvd上的顯示屏和按鍵的定義在后面的章節(jié)中將會講到;選擇完正確的risc后就可以進(jìn)行到接下來的工作:編譯調(diào)試。3、程序的調(diào)試程序是通過使用dos命令,調(diào)用批處理文件進(jìn)行編譯連接的,首先要進(jìn)入到8032文件所在的路徑,如果我的8032的文件在以下路徑:D:\test_vfd\sample_3\ver5048\ver5048\8032調(diào)用批處理進(jìn)行編譯,如果編譯出來的CODE超過1M,需要把批處理中的setFLASH_SZ=1改成setFLASH_SZ=2,再重新編譯。怎樣查看編譯結(jié)果了?一是直接在dos里面查看,這樣的編譯信息是不詳細(xì)的。二是在8032文件下面的文件名為a的里面查看,可以以文本文件的形式打開,這個文件里面的編譯信息,這里面的信息是很詳細(xì)的。在編譯的過程中會出現(xiàn)L15,L16這樣的警告,這樣警告的出現(xiàn)是有的函數(shù)或是變量寫出來后沒有被使用所出現(xiàn)的警告,這類警告是不需要管的;如果出現(xiàn)L1,L2之類的警告,就必須找出問題,消除這樣的警告。還有其他在程序中自己造成的語法編譯錯誤,則需要根據(jù)編譯提示去自己消除這樣錯誤!編譯通過后,需要再調(diào)用批處理MERGE79來對8032CODE和RISCCODE進(jìn)行合并,最后在8032文件夾里面會生成一個target.bin文件,我們接下來做的事情就是把這個文件DownLoad到dvd樣機里面去。4、程序的DownLoad要把編譯好的程序Doawload到dvd樣機里面去,可以使用專用燒寫工具,也可以使用MTK提供的mtktool,它的界面如下:其中binfile的路徑是指向target.bin的,而backupfile是上傳dvd里面target.bin的路徑。程序通過串口download到dvd機里面去,所有的準(zhǔn)備工作做好了以后按upgrade進(jìn)行程序的download。程序download完以后,要給樣機斷電,然后重新啟動,樣機才會開始工作。如果打開了RS232_LOG這個宏定義,還需要按一下上面的那個reset的紅色箭頭才能啟動!5、系統(tǒng)的軟件流程:系統(tǒng)的軟件流程可以分為四大部分:啟動流程、按鍵處理流程、UOP處理流程、OSD刷新顯示流程。1、啟動流程:樣機啟動后首先進(jìn)行初使化,如果系統(tǒng)是待機狀態(tài)要等待按鍵來喚醒機器,如果不是則會進(jìn)入主循環(huán)。main()STANDBYSTANDBYGetInitState()//取初始化狀態(tài)YNPowerDownResetHardware()SetDRAMType()//設(shè)置dramMpegPowerDown()ResetHardware()//ResetHardwarewhile((_bIRKey!=IR_POWER)mainloop()//主循環(huán)&&(_bIRKey!=IR_EJECT))等待power/eject鍵喚醒2、按鍵處理流程:系統(tǒng)每隔20ms會發(fā)生一次中斷,dvd的OSD刷新,按鍵處理,碟片播放控制命令的處理等都會在20ms內(nèi)處理完成!vTimer20ms(void)這個函數(shù)是在Timer.c里面的!vTimer20msvUITimer()SmTimer//UOP處理vOSDCoreTimer//OSD刷新vGetCurrKey()//有沒有遙控器按下vIrTimer()//有按鍵則處理它vPlayerKeyProc()//分類處理fgSCRSAVKeyProc、、、、、、、、、屏保狀態(tài)vUpdateInputStatefgISOKeyProc輸入狀態(tài)ISO碟fgGotoStatefgInitKeyProcGoto狀態(tài)Init狀態(tài)fgComKeyProcComKey處理3、UOP處理流程UOP是用戶操作(useroperation)的縮寫,用戶發(fā)送操作命令,當(dāng)這個命令被執(zhí)行完后會返回一個信息bCOMHandleUopRet()、bDVDHandleUopRet()等等,接著去更新共享區(qū)的信息vHandleInfoUpdate(),dvd機根據(jù)這些信息再去執(zhí)行后面的操作用戶操作及處理的流程如下:SmTimervHandleSm()bCOMHandleUopRet()vSmUpdate()bDVDHandleUopRet()bHandleUOPRet()bVCDHandleUopRet()vHandleInfoUpdate()bISOHandleUopRet()、、、、、、、、、、、、、、、、、、、SI_PBC_GRPSI_NV_GRPSI_STREAM_STATUS_GRP、、、、、、、vGroupPbcUpdatevGroupNvUpdatevGroupStreamUpdate4、OSD刷新顯示流程:vOsdCoreTimer()vOsdCoreRefresh()vOsdCorelayer2Refresh()vOsdLayer1Refresh()六、點屏使用工具——VFDTOOL“”。首先,連接PCCom1與DVD之間的RS232cable,同時打開vendor.h里的定義:#defineTEST_VFD,然后將程序重新編譯,把生成的target.bin文件dowenload到flash里,等到dowenload完畢,重新開機后我們就可以開始點屏了。如果電腦屏幕顯示:Pleasecheckis“Rs232Comhasbeenused”,請關(guān)掉所有使用串口的程序并重新運行VFDTOOL。運行工具VFDTOOL,顯示出一個界面,如下:利用工具——VFDTOOL可以取得vfd屏,面板按鍵,遙控按鍵的碼值,但不用每一項都調(diào)試,可根據(jù)需要選擇。首先,在SelectSerialPort欄里選擇COM1(一般情況)?!癟estVFD”:點擊進(jìn)入vfd屏設(shè)置。“TestVFDKey”:點擊進(jìn)入vfd面板按鍵設(shè)置?!癟estIRKey”:點擊進(jìn)入遙控按鍵設(shè)置。如果需要保存文件(*.vfd),點擊按鈕“SavetoFile”,然后根據(jù)提示操作。平時最好養(yǎng)成保存文件的習(xí)慣,防止在點屏?xí)r出現(xiàn)意外,文件丟失后又要重新點屏。如果需要打開已經(jīng)保存的文件(*.vfd),點擊按鈕“LoadfromFile”,然后根據(jù)提示進(jìn)行查找。點屏完畢后,保存生成的(*.vfd)文件,同時點擊“MakeDataFile”可以生成兩個文件vfd_cut.h和vfd_func.h。把它們拷貝到usedater(8032\custom\demo\userdata)目錄下,替換掉原來的。注意:點屏完畢后應(yīng)該先關(guān)掉定義//#defineTEST_VFD,再重新編譯生成“”,download完成后,重新開機即可?!癛esetRS232”:用來重新連接COM口?!癈loseTool”:點擊該按鈕,退出工具VFDTOOL。vfd顯示——TestVFD選擇TestVFD后,會出現(xiàn)以下界面:首先根據(jù)vfd的驅(qū)動IC(16311、16322等)選擇工作模式:選定一個工作模式后,點擊按鈕“Turnallon”,檢查vfd屏上的每一個segment是否都被點亮。如果沒有完全被點亮,則需要重新選擇工作模式,直到全部點亮,再進(jìn)行點屏。設(shè)置Fort在FortSize一欄選擇需要點亮的fort的數(shù)目,默認(rèn)為9,一般把不需要的fort清零,不要隨意刪除不需要的Fort,并且不要隨意更改Fort的排序;在Segnumber一欄選擇vfdsegment的段數(shù)(8/14);FortPos的數(shù)字表示每個Fort的順序,都是默認(rèn)值,可以不用選擇;在右邊的小方格里打勾來選擇地址;在InRamBit一欄可以看到選中的當(dāng)前地址;在SegmentList選擇每一個需要點亮的segment(A~R);按Assign鍵更新該segment的地址;按Clean鍵清空該segment的地址,然后可以重新指給它新的地址;按ShowFort在vfd屏上顯示已經(jīng)點好的fort或segment。設(shè)置IconUpdataIcon:更新當(dāng)前選中的Icon的地址;DeleteIcon:刪除當(dāng)前選中的Icon;AddIcon:添加新的Icon,位置在IconList的最后;ClearIcon:清空當(dāng)前選中的Icon的地址;ClearAll:清空所有的Icon的地址;InsertIcon:插入一個新的Icon位置在IconList的當(dāng)前選中的Icon的后面;ShowIcon:把已經(jīng)點好的Icon在vfd屏上顯示出來。字母設(shè)定頁在該頁可以對26個英文字母(包括大小寫)和10個阿拉伯?dāng)?shù)字進(jìn)行設(shè)定。一般都采用工具已經(jīng)編輯好的,但如果有特殊需要,可以通過點擊“AddChar”鍵進(jìn)行添加。(4)設(shè)置TextA.在CharList中選擇Seg_Char(8/14);B.在TextList中選擇需要的text,根據(jù)CharArray中的位置從CharList選擇相應(yīng)的字母,按UpdataChar鍵,當(dāng)前選中的字字母就被賦予了新的地址;注意:這個過程是一個字母一個字母進(jìn)行的。C.ClearChar:清空選中的Char;D.ClearTxt:清空選中的Text;E.ClearAll:清空所有的Text;F.ShowTxt:在vfd屏上顯示一個Text;G.AddTxt:添加一個新的Text。(5)設(shè)置WheelA.在右邊的小方格內(nèi)打勾,相應(yīng)的地址就會在InRamBit內(nèi)顯示,在WheelList中選擇相應(yīng)的地址,按UpdataPoint鍵,被選中的碼值就被新的碼值所替換了;注意:根據(jù)Wheel的葉片顯示順序進(jìn)行點屏。B.InsertrPoint:插入一個Point;C.ClearPoint:清空選中的Point;D.ClearAll:清空所有的Point;E.ShowPoint:在vfd屏上顯示點好的Point;F.AddPoint:添加一個新的Point。2.面板首先,你要選擇vfd驅(qū)動IC的型號(16311或16312),然后點擊ConnectKey按鈕。選擇VFDkey,給DVD發(fā)送命令,工具準(zhǔn)備接收面板上的鍵值,鍵值將顯示在ReceiveKeyValue。在KeyList上選擇按鍵的名字,按Assigned鍵,按鍵的名字將會顯示在右上角的方框里??梢杂肅learKey清空選中的按鍵碼值??梢酝ㄟ^MakeKeyFile保存寫好的碼值。具體面板操作如下圖:3.遙控首先選擇ConnectKey按鈕,然后按遙控上的按鍵,向DVD發(fā)出命令,工具將要接受按鍵的碼值、客戶碼等,他們將分別顯示在KeyValue、CustomCode和CustomSubCode方框里。在KeydefineList上選擇按鍵的名字,點擊Assigned鍵,按鍵的名字將會顯示在右上角的方框里??梢杂肅learKey清空選中的按鍵碼值。可以通過MakeKeyFile保存寫好的碼值。具體面板操作如下圖:七、按鍵定義所有的按鍵定義都可以在keydef.h文件里找到;按鍵執(zhí)行可以從keyproce.c文件里往下看;遙控器的定義在irkey.c文件里。除了用第六點中所說方法可以取得按鍵碼值外,還可以利用工具M(jìn)TKTOOL“”。在download程序后,選擇工具欄“”的“”,就可以對按鍵進(jìn)行控制了,這樣可以在沒有遙控器的時候替代遙控,保證工作正常進(jìn)行。由于60XX和70XX軟件的特殊性,不能直接通過VFDTOOL進(jìn)行點屏,可以通過以下方法取值:把vfd屏掛到可以用89C或者其他支持tool的平臺上去,我們可以直接用89C軟件中的vfd_cus.h和vfd_func.h(ver5048\8032\custom\demo\userdata)文件,然后把這兩個文件中的碼值按照一定的順序填入6027軟件中的vfdspec.h(ver6027\8032\custom\demo\userdata)文件里,填的時候注意按鍵碼值與位置一一對應(yīng)。此外,要獲得遙控或者面板的碼值,我們可以在軟件中添加“debug”信息,利用工具M(jìn)TKTOOL進(jìn)行打印。將打印出來VFD碼值信息填入vfdspec.h文件里的相應(yīng)位置,Irkey的碼值信息填入irkey.c中的相應(yīng)位置就可以了。具體操作如下。Debug信息:DRS232LogS(char*pcStr);DRS232LogB(BYTEbV1,BYTEbV2,BYTEbV3,BYTEbV4);(1)獲取VFD按鍵碼值:staticvoidvVfdKeyScan(BOOLfgPwrDown)large{……if(_bVfdKeyScan!=IR_NONE)//theKeyscanhaven'tbeenprocessed{return;}……#ifdefRS232_LOGDBGLogS("\nvfdkey=");DBGLogB(i,0,0,0);#endif_bVfdKeyScan=_pbVfdKeyScan[i];……(2)獲取Irkey按鍵碼值:voidvIrRecv(BYTEbIRH){ ……switch(_bIRBitCnt){……case32:_bIRStatus=IR_WAIT_NEW_CODE;if(_bIRKeyBuf!=(~_bIRKeyBufInv)){return; }……#ifdefRS232_LOG DRS232LogS("\nIR_KEY_VALUME=0x");DRS232LogB(_bIRKeyBuf,0,0,0);#endif#if(IR_KEY_GAP_SIZE>0)if(_bIRKeyBuf>=IR_KEY_GAP_START){_bIRKeyBuf-=IR_KEY_GAP_SIZE;}#endif……(3)記錄碼值信息將寫好的程序重新編譯,生成的target.bin文件download到flash里后,我們運行工具M(jìn)TKTOOL。重啟(斷點再上電)DVD機后會發(fā)現(xiàn)DVD機沒有任何反應(yīng)!此時,選擇工具欄“”的“”一項,DVD機就可以啟動了,然后點擊“”按鈕,會出現(xiàn)一個文檔形式的界面。隨后每按面板或是遙控上的一個按鍵,就會出現(xiàn)一個相應(yīng)的碼值。把碼值信息記錄下來,然后填入軟件里對應(yīng)的文件就可以了。注意:選擇“debug”打印信息獲取碼值時,應(yīng)該打開vendor.h里的定義:#defineRS232_LOG。八、UI修改UI修改主要包括屏保、開機畫面、菜單,下面將分別進(jìn)行介紹。1、屏?!P(guān)于顯示客戶自己的屏保圖案:
(1)準(zhǔn)備一個16色,大小為158×94象素的BMP圖;
(2)用osdedit工具軟件打開nui_rom.bin,添加準(zhǔn)備好的BMP圖片;
(3)修改ssbmp.c文件的函數(shù):voidvBmpScrSaveInit(void)large
{
#ifdefSS_USE_ONE_BMP
pbBmp[0]=1;
#ifdefALL_WB_USE_TRUECOLOR
pbBmp[1]=BMP_DVD2;
#else
pbBmp[1]=BMP_DVD;
#endif
#else
}(4)重新編譯生成“”,download完成后,重新開機即可。開機畫面(1)先使用畫圖工具制作logo圖片(bmp格式),圖片的大小有四種格式分別為:NTSC:720X480像素;PAL:720X576像素;NTSCHALF:352X240像素;PALHALF:352X288像素;圖片size越大生成的logo文件size也越大,因此該工具設(shè)有NTCS/PALHALF這兩種格式以用來處理size較小的圖片;(2)將logo圖片放于工具相同目錄下;(3)DOS下運行工具,參數(shù)設(shè)定格式如下:“bmp2logoTV-TypeQuan-Levelfilename”,其中:bmp2logo為工具名;TV-Type有NTSC、PAL、NTSCHALF、PALHALF四種;每種格式對應(yīng)的logo圖片大小可參照步驟一;Quan-Level為質(zhì)量參數(shù),數(shù)值越大則對圖片的壓縮率越大,若使用NTCS/PALHALF格式時,推薦使用值為5;Filename為BMP圖片文件名;(4)運行工具后會生成logo文件“”,將logo文件放入“\8032\custom\demo\userdata”目錄中,替換原來的“”。重新編譯生成“”,download完成后,重新開機即可。菜單按【SETUP】鍵進(jìn)入設(shè)定菜單,按左右鍵移動光標(biāo)可以進(jìn)行“通用設(shè)定、音頻設(shè)定、視頻設(shè)定、初期設(shè)定頁、密碼設(shè)定”選擇。菜單總的來說是由很多子菜單——選項構(gòu)成的,再一級一級的往下分。菜單中各個選項的定義都可以在stpmenu.h中找到(如果是兩聲道的則要在stpmenu1.h中修改)。菜單修改的方法是靈活多樣的,下面就幾種典型的修改方法做介紹:添加\刪除選項如果想把通用設(shè)定頁中的選項“ScreenSaver”添加到音頻設(shè)定頁,可以通過以下步驟實現(xiàn):首先在軟件中找到“ScreenSaver”的定義://ScreenSavercodesData_rOptSSOn={OSD_MSG_ON,OSD_MSG_SS_ON,OSD_MSG_ON,SV_ON};//表示屏保狀態(tài)“開”codesData_rOptSSOff={OSD_MSG_OFF,OSD_MSG_SS_OFF,OSD_MSG_OFF,SV_OFF};//表示屏保狀態(tài)“關(guān)”codesData*_prDataSS[]={&_rOptSSOn,&_rOptSSOff};//表示屏保選項有兩個狀態(tài)codesEntry_rEntrySS={ENTRY_TYPE_GROUPBUTTON,NULL_BMP,OSD_MSG_SCREENSAVER,OSD_MSG_SCREEN_SAVER,SCR_SAVER_POSITION,SI_SCR_SAVE_SWITCH,TBL_SIZE(_prDataSS)-1,SV_ON,_prDataSS,bNormalVdo};//ScreenSaverEnd看明白定義后,可以把ScreenSaver的整個定義“copy”,照搬到VideoPage下(程序中的位置),此舉是為了保證在調(diào)用到ScreenSaver選項的時候,確保ScreenSaver已經(jīng)定義了,然后在codesEntry*_prEntryVdoPage[]={……};中添加“&_rEntrySS”,同時把codesEntry*_prEntryGeneal[]={……&_rEntrySS};中的“&_rEntrySS”選項注釋掉,以及原來的ScreenSaver定義的部分注釋掉,避免重復(fù)定義。這樣我們就完成了在一個菜單
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2019-2025年中國地產(chǎn)綠化行業(yè)投資潛力分析及行業(yè)發(fā)展趨勢報告
- 2025年中國救生筏行業(yè)發(fā)展監(jiān)測及投資前景預(yù)測報告
- 2025年洗衣機塑料模具項目投資可行性研究分析報告
- 2025年度民間公司借款合同合同續(xù)借與展期
- 2025年中國商業(yè)銀行現(xiàn)金管理業(yè)務(wù)市場競爭態(tài)勢及行業(yè)投資潛力預(yù)測報告
- 2025年機械單卡旋切機項目投資可行性研究分析報告
- 個人汽車抵押借款合同書版B版
- 二零二四年墻體廣告維護(hù)與管理服務(wù)合同3篇
- 2025年發(fā)熱體睡袋行業(yè)深度研究分析報告
- 二零二五版建筑工程質(zhì)量監(jiān)督服務(wù)返點合同3篇
- 2024虛擬現(xiàn)實產(chǎn)業(yè)布局白皮書
- 車站值班員(中級)鐵路職業(yè)技能鑒定考試題及答案
- JTG∕T E61-2014 公路路面技術(shù)狀況自動化檢測規(guī)程
- 高中英語短語大全(打印版)
- 2024年資格考試-對外漢語教師資格證筆試參考題庫含答案
- 軟件研發(fā)安全管理制度
- 三位數(shù)除以兩位數(shù)-豎式運算300題
- 寺院消防安全培訓(xùn)課件
- 比摩阻-管徑-流量計算公式
- GB/T 42430-2023血液、尿液中乙醇、甲醇、正丙醇、丙酮、異丙醇和正丁醇檢驗
- 五年級數(shù)學(xué)應(yīng)用題100道
評論
0/150
提交評論