




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
寫這篇文檔是為以前沒有接觸過dvd項目的工程師提供一些咨詢,讓你們能夠在最短的時間里上手。在這篇文檔里面包括以下內容:一、DVD的軟件/硬件平臺二、配置樣機三、程序的調試四、程序的DownLoad五、系統的軟件流程六、點亮dvd上的顯示屏七、按鍵的定義八、UI( UserInterface)修改九、工程中常見問題解答DVD的軟件/硬件平臺我們使用的芯片是MTK(聯發科技)的芯片,MTK系列的芯片有:1389B,1389C,1389D,1389F,1389HD等。怎樣從芯片上看出目前使用的芯片的型號了?如果一個芯片的編號為:MT1389DE0421-CWSD14JJ,數字1389+橫杠后的字母“C”就是它的型號,這是一款1389C系列的芯片。MTK視頻解碼,伺服等集成在芯片里面,音頻DAC有的芯片有集成,有的沒有。MTK主要的外圍芯片有:flash;內存dram;控制loader(光驅)動作的驅動芯片;eeprom;flash是用來保存目標文件target.bin;在配置樣機的時候,我們需要了解的是內存dram的大小;eeprom芯片用來保存dvd中菜單里面的設置;如果是一款高清的平臺,它還需要一顆MT1392的芯片。MTK芯片是由RISC、DSP、C51以及時鐘、接口等部分組成。其中C51主要完成UI部分的工作,包括OSD、VFD、IR及IR的處理等。下面所說的程序都是指C51程序。程序使用的是c51的編譯器,如果把c51的編譯器放在C盤,在設置環境變量的時候設置為:C:\C51;現在我們來看軟件部分:軟件部分可以看成有兩大塊構成,在8032文件夾里面的文件屬于應用層的,是我們可以看到并做修改的;另一部分是底層的risc,這部分的修改,我們是動不了的,需要有MTK自己去做修改。2.配置樣機在做這個項目之前,我們先要拿到對應的公版軟件;樣機不同,公版軟件的設置也不一樣。如果只是要簡單的讓機器跑起來,我們對樣機的配制主要是在vendor.h這個文件中進行修改:一、如果你的主芯片是1389c的,你需要打開下面的宏定義:#defineMT1389_REV_C二、根據dram的大小來定義dram,如果你的dram是8m的:#defineDRAM_SZDRAM_8M如果你的dram是由兩塊2m的芯片組成還需要打開下面的定義:#defineDRAM_CASCADE三、關于聲音的定義如果芯片內置D/A,則需要打開以下定義:#defineINT_ADAC如果是外置的則需要關掉這個定義,接下來要打開makefile文件,進行AudioDACConfig的配置:關掉ADAC_DEF=_NPADAC_這個語句:#ADAC_DEF=_NPADAC_接下來根據聲音是左對齊、右對齊、I2S等格式,打開相應的一個定義,如果聲音是I2S格式,則可以打開:ADAC_DEF=_CS4340_接下來就是要選擇risc,點亮dvd上的顯示屏和按鍵的定義在后面的章節中將會講到;選擇完正確的risc后就可以進行到接下來的工作:編譯調試。3、程序的調試程序是通過使用dos命令,調用批處理文件進行編譯連接的,首先要進入到8032文件所在的路徑,如果我的8032的文件在以下路徑:D:\test_vfd\sample_3\ver5048\ver5048\8032調用批處理進行編譯,如果編譯出來的CODE超過1M,需要把批處理中的setFLASH_SZ=1改成setFLASH_SZ=2,再重新編譯。怎樣查看編譯結果了?一是直接在dos里面查看,這樣的編譯信息是不詳細的。二是在8032文件下面的文件名為a的里面查看,可以以文本文件的形式打開,這個文件里面的編譯信息,這里面的信息是很詳細的。在編譯的過程中會出現L15,L16這樣的警告,這樣警告的出現是有的函數或是變量寫出來后沒有被使用所出現的警告,這類警告是不需要管的;如果出現L1,L2之類的警告,就必須找出問題,消除這樣的警告。還有其他在程序中自己造成的語法編譯錯誤,則需要根據編譯提示去自己消除這樣錯誤!編譯通過后,需要再調用批處理MERGE79來對8032CODE和RISCCODE進行合并,最后在8032文件夾里面會生成一個target.bin文件,我們接下來做的事情就是把這個文件DownLoad到dvd樣機里面去。4、程序的DownLoad要把編譯好的程序Doawload到dvd樣機里面去,可以使用專用燒寫工具,也可以使用MTK提供的mtktool,它的界面如下:其中binfile的路徑是指向target.bin的,而backupfile是上傳dvd里面target.bin的路徑。程序通過串口download到dvd機里面去,所有的準備工作做好了以后按upgrade進行程序的download。程序download完以后,要給樣機斷電,然后重新啟動,樣機才會開始工作。如果打開了RS232_LOG這個宏定義,還需要按一下上面的那個reset的紅色箭頭才能啟動!5、系統的軟件流程:系統的軟件流程可以分為四大部分:啟動流程、按鍵處理流程、UOP處理流程、OSD刷新顯示流程。1、啟動流程:樣機啟動后首先進行初使化,如果系統是待機狀態要等待按鍵來喚醒機器,如果不是則會進入主循環。main()STANDBYSTANDBYGetInitState()//取初始化狀態YNPowerDownResetHardware()SetDRAMType()//設置dramMpegPowerDown()ResetHardware()//ResetHardwarewhile((_bIRKey!=IR_POWER)mainloop()//主循環&&(_bIRKey!=IR_EJECT))等待power/eject鍵喚醒2、按鍵處理流程:系統每隔20ms會發生一次中斷,dvd的OSD刷新,按鍵處理,碟片播放控制命令的處理等都會在20ms內處理完成!vTimer20ms(void)這個函數是在Timer.c里面的!vTimer20msvUITimer()SmTimer//UOP處理vOSDCoreTimer//OSD刷新vGetCurrKey()//有沒有遙控器按下vIrTimer()//有按鍵則處理它vPlayerKeyProc()//分類處理fgSCRSAVKeyProc、、、、、、、、、屏保狀態vUpdateInputStatefgISOKeyProc輸入狀態ISO碟fgGotoStatefgInitKeyProcGoto狀態Init狀態fgComKeyProcComKey處理3、UOP處理流程UOP是用戶操作(useroperation)的縮寫,用戶發送操作命令,當這個命令被執行完后會返回一個信息bCOMHandleUopRet()、bDVDHandleUopRet()等等,接著去更新共享區的信息vHandleInfoUpdate(),dvd機根據這些信息再去執行后面的操作用戶操作及處理的流程如下: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”,請關掉所有使用串口的程序并重新運行VFDTOOL。運行工具VFDTOOL,顯示出一個界面,如下:利用工具——VFDTOOL可以取得vfd屏,面板按鍵,遙控按鍵的碼值,但不用每一項都調試,可根據需要選擇。首先,在SelectSerialPort欄里選擇COM1(一般情況)。“TestVFD”:點擊進入vfd屏設置。“TestVFDKey”:點擊進入vfd面板按鍵設置。“TestIRKey”:點擊進入遙控按鍵設置。如果需要保存文件(*.vfd),點擊按鈕“SavetoFile”,然后根據提示操作。平時最好養成保存文件的習慣,防止在點屏時出現意外,文件丟失后又要重新點屏。如果需要打開已經保存的文件(*.vfd),點擊按鈕“LoadfromFile”,然后根據提示進行查找。點屏完畢后,保存生成的(*.vfd)文件,同時點擊“MakeDataFile”可以生成兩個文件vfd_cut.h和vfd_func.h。把它們拷貝到usedater(8032\custom\demo\userdata)目錄下,替換掉原來的。注意:點屏完畢后應該先關掉定義//#defineTEST_VFD,再重新編譯生成“”,download完成后,重新開機即可。“ResetRS232”:用來重新連接COM口。“CloseTool”:點擊該按鈕,退出工具VFDTOOL。vfd顯示——TestVFD選擇TestVFD后,會出現以下界面:首先根據vfd的驅動IC(16311、16322等)選擇工作模式:選定一個工作模式后,點擊按鈕“Turnallon”,檢查vfd屏上的每一個segment是否都被點亮。如果沒有完全被點亮,則需要重新選擇工作模式,直到全部點亮,再進行點屏。設置Fort在FortSize一欄選擇需要點亮的fort的數目,默認為9,一般把不需要的fort清零,不要隨意刪除不需要的Fort,并且不要隨意更改Fort的排序;在Segnumber一欄選擇vfdsegment的段數(8/14);FortPos的數字表示每個Fort的順序,都是默認值,可以不用選擇;在右邊的小方格里打勾來選擇地址;在InRamBit一欄可以看到選中的當前地址;在SegmentList選擇每一個需要點亮的segment(A~R);按Assign鍵更新該segment的地址;按Clean鍵清空該segment的地址,然后可以重新指給它新的地址;按ShowFort在vfd屏上顯示已經點好的fort或segment。設置IconUpdataIcon:更新當前選中的Icon的地址;DeleteIcon:刪除當前選中的Icon;AddIcon:添加新的Icon,位置在IconList的最后;ClearIcon:清空當前選中的Icon的地址;ClearAll:清空所有的Icon的地址;InsertIcon:插入一個新的Icon位置在IconList的當前選中的Icon的后面;ShowIcon:把已經點好的Icon在vfd屏上顯示出來。字母設定頁在該頁可以對26個英文字母(包括大小寫)和10個阿拉伯數字進行設定。一般都采用工具已經編輯好的,但如果有特殊需要,可以通過點擊“AddChar”鍵進行添加。(4)設置TextA.在CharList中選擇Seg_Char(8/14);B.在TextList中選擇需要的text,根據CharArray中的位置從CharList選擇相應的字母,按UpdataChar鍵,當前選中的字字母就被賦予了新的地址;注意:這個過程是一個字母一個字母進行的。C.ClearChar:清空選中的Char;D.ClearTxt:清空選中的Text;E.ClearAll:清空所有的Text;F.ShowTxt:在vfd屏上顯示一個Text;G.AddTxt:添加一個新的Text。(5)設置WheelA.在右邊的小方格內打勾,相應的地址就會在InRamBit內顯示,在WheelList中選擇相應的地址,按UpdataPoint鍵,被選中的碼值就被新的碼值所替換了;注意:根據Wheel的葉片顯示順序進行點屏。B.InsertrPoint:插入一個Point;C.ClearPoint:清空選中的Point;D.ClearAll:清空所有的Point;E.ShowPoint:在vfd屏上顯示點好的Point;F.AddPoint:添加一個新的Point。2.面板首先,你要選擇vfd驅動IC的型號(16311或16312),然后點擊ConnectKey按鈕。選擇VFDkey,給DVD發送命令,工具準備接收面板上的鍵值,鍵值將顯示在ReceiveKeyValue。在KeyList上選擇按鍵的名字,按Assigned鍵,按鍵的名字將會顯示在右上角的方框里。可以用ClearKey清空選中的按鍵碼值。可以通過MakeKeyFile保存寫好的碼值。具體面板操作如下圖:3.遙控首先選擇ConnectKey按鈕,然后按遙控上的按鍵,向DVD發出命令,工具將要接受按鍵的碼值、客戶碼等,他們將分別顯示在KeyValue、CustomCode和CustomSubCode方框里。在KeydefineList上選擇按鍵的名字,點擊Assigned鍵,按鍵的名字將會顯示在右上角的方框里。可以用ClearKey清空選中的按鍵碼值。可以通過MakeKeyFile保存寫好的碼值。具體面板操作如下圖:七、按鍵定義所有的按鍵定義都可以在keydef.h文件里找到;按鍵執行可以從keyproce.c文件里往下看;遙控器的定義在irkey.c文件里。除了用第六點中所說方法可以取得按鍵碼值外,還可以利用工具MTKTOOL“”。在download程序后,選擇工具欄“”的“”,就可以對按鍵進行控制了,這樣可以在沒有遙控器的時候替代遙控,保證工作正常進行。由于60XX和70XX軟件的特殊性,不能直接通過VFDTOOL進行點屏,可以通過以下方法取值:把vfd屏掛到可以用89C或者其他支持tool的平臺上去,我們可以直接用89C軟件中的vfd_cus.h和vfd_func.h(ver5048\8032\custom\demo\userdata)文件,然后把這兩個文件中的碼值按照一定的順序填入6027軟件中的vfdspec.h(ver6027\8032\custom\demo\userdata)文件里,填的時候注意按鍵碼值與位置一一對應。此外,要獲得遙控或者面板的碼值,我們可以在軟件中添加“debug”信息,利用工具MTKTOOL進行打印。將打印出來VFD碼值信息填入vfdspec.h文件里的相應位置,Irkey的碼值信息填入irkey.c中的相應位置就可以了。具體操作如下。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里后,我們運行工具MTKTOOL。重啟(斷點再上電)DVD機后會發現DVD機沒有任何反應!此時,選擇工具欄“”的“”一項,DVD機就可以啟動了,然后點擊“”按鈕,會出現一個文檔形式的界面。隨后每按面板或是遙控上的一個按鍵,就會出現一個相應的碼值。把碼值信息記錄下來,然后填入軟件里對應的文件就可以了。注意:選擇“debug”打印信息獲取碼值時,應該打開vendor.h里的定義:#defineRS232_LOG。八、UI修改UI修改主要包括屏保、開機畫面、菜單,下面將分別進行介紹。1、屏保——關于顯示客戶自己的屏保圖案:
(1)準備一個16色,大小為158×94象素的BMP圖;
(2)用osdedit工具軟件打開nui_rom.bin,添加準備好的BMP圖片;
(3)修改ssbmp.c文件的函數: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也越大,因此該工具設有NTCS/PALHALF這兩種格式以用來處理size較小的圖片;(2)將logo圖片放于工具相同目錄下;(3)DOS下運行工具,參數設定格式如下:“bmp2logoTV-TypeQuan-Levelfilename”,其中:bmp2logo為工具名;TV-Type有NTSC、PAL、NTSCHALF、PALHALF四種;每種格式對應的logo圖片大小可參照步驟一;Quan-Level為質量參數,數值越大則對圖片的壓縮率越大,若使用NTCS/PALHALF格式時,推薦使用值為5;Filename為BMP圖片文件名;(4)運行工具后會生成logo文件“”,將logo文件放入“\8032\custom\demo\userdata”目錄中,替換原來的“”。重新編譯生成“”,download完成后,重新開機即可。菜單按【SETUP】鍵進入設定菜單,按左右鍵移動光標可以進行“通用設定、音頻設定、視頻設定、初期設定頁、密碼設定”選擇。菜單總的來說是由很多子菜單——選項構成的,再一級一級的往下分。菜單中各個選項的定義都可以在stpmenu.h中找到(如果是兩聲道的則要在stpmenu1.h中修改)。菜單修改的方法是靈活多樣的,下面就幾種典型的修改方法做介紹:添加\刪除選項如果想把通用設定頁中的選項“ScreenSaver”添加到音頻設定頁,可以通過以下步驟實現:首先在軟件中找到“ScreenSaver”的定義://ScreenSavercodesData_rOptSSOn={OSD_MSG_ON,OSD_MSG_SS_ON,OSD_MSG_ON,SV_ON};//表示屏保狀態“開”codesData_rOptSSOff={OSD_MSG_OFF,OSD_MSG_SS_OFF,OSD_MSG_OFF,SV_OFF};//表示屏保狀態“關”codesData*_prDataSS[]={&_rOptSSOn,&_rOptSSOff};//表示屏保選項有兩個狀態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下(程序中的位置),此舉是為了保證在調用到ScreenSaver選項的時候,確保ScreenSaver已經定義了,然后在codesEntry*_prEntryVdoPage[]={……};中添加“&_rEntrySS”,同時把codesEntry*_prEntryGeneal[]={……&_rEntrySS};中的“&_rEntrySS”選項注釋掉,以及原來的ScreenSaver定義的部分注釋掉,避免重復定義。這樣我們就完成了在一個菜單
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 湖南省衡陽縣第五中學2025屆高三第一次診斷性考試試題物理試題試卷含解析
- 上海城建職業學院《特色文化傳承》2023-2024學年第二學期期末試卷
- 潞安職業技術學院《有限元法基礎》2023-2024學年第二學期期末試卷
- 泰州職業技術學院《針灸醫籍》2023-2024學年第一學期期末試卷
- 北京地鐵廣告常規媒體介紹-刊例價
- 某方便面生產企業管理報表的優化與工作效率的精進
- 電壓傳感器考核試卷
- 環境污染治理中的公民參與考核試卷
- 礦產勘查項目管理考核試卷
- 文化藝術產業的創意人才培育與激勵機制考核試卷
- 四年級美術藝術測評學業指標試題及答案
- 三14《情緒對對碰》心理健康課件
- 雙硫侖(戒酒硫)藥片藥品說明書
- 《社會工作概論(第三版)》課件08 第八章 小組社會工作
- (讀書筆記)禮物的流動:一個中國村莊中的互惠原則和社會網絡
- 生理學(全套課件)
- 路基石方破碎開挖專項施工方案
- 二年級美術上冊課件 《3.我的手印畫》 贛美版 (共18張PPT)
- Q∕SY 126-2014 油田水處理用緩蝕阻垢劑技術規范
- 環保管理制度(適用于軟件企業)
- 全國青少年機器人技術等價考試三級全套課件
評論
0/150
提交評論