好文档 - 专业文书写作范文服务资料分享网站

MTK-DVD-代码学习-新手上路

天下 分享 时间: 加入收藏 我要投稿 点赞

DVD新手ABC

写这篇文档是为以前没有接触过dvd项目的工程师提供一些咨询,让你们能

够在最短的时间里上手。

在这篇文档里面包括以下内容: 一、DVD的软件/硬件平台 二、配置样机 三、程序的调试

四、程序的DownLoad 五、系统的软件流程 六、点亮dvd上的显示屏 七、按键的定义

八、UI( User Interface)修改 九、工程中常见问题解答

1、DVD的软件/硬件平台 1.1DVD的主芯片

我们使用的芯片是MTK(联发科技)的芯片,MTK系列的芯片有:1389B,1389C,1389D,1389F,1389HD等。

怎样从芯片上看出目前使用的芯片的型号了? 如果一个芯片的编号为:MT1389DE0421-CWSD14JJ,数字1389+横杠后的字母“C”就是它的型号,这是一款1389C系列的芯片。

MTK视频解码,伺服等集成在芯片里面,音频DAC有的芯片有集成,有的没有。

1.2MTK的其他主要外围芯片

MTK主要的外围芯片有:flash;内存dram;控制loader(光驱)动作的驱动芯片;eeprom;flash是用来保存目标文件target.bin;在配置样机的时候,我们需要了解的是内存dram的大小; eeprom芯片用来保存dvd中菜单里面的设置;如果是一款高清的平台,它还需要一颗MT1392的芯片。

1.3构建DVD的软件平台

MTK芯片是由RISC、DSP、C51以及时钟、接口等部分组成。其中C51主要完成UI部分的工作,包括OSD、VFD、IR及IR的处理等。 下面所说的程序都是指C51程序。 程序使用的是c51的编译器,如果把c51的编译器放在C盘,在设置环境变量的时候设置为:C:\\C51;

现在我们来看软件部分:软件部分可以看成有两大块构成,在8032文件夹里面的文件属于应用层的,是我们可以看到并做修改的;另一部分是底层的risc,这部分的修改,我们是动不了的,需要有MTK自己去做修改。

2.配置样机

在做这个项目之前,我们先要拿到对应的公版软件;样机不同,公版软件的设置也不一样。如果只是要简单的让机器跑起来,我们对样机的配制主要是在vendor.h这个文件中进行修改:

一、如果你的主芯片是1389c的,你需要打开下面的宏定义: #define MT1389_REV_C

二、根据dram的大小来定义dram,如果你的dram是8m的: #define DRAM_SZ DRAM_8M

如果你的dram是由两块2m的芯片组成还需要打开下面的定义: #define DRAM_CASCADE 三、关于声音的定义

如果芯片内置D/A,则需要打开以下定义: #define INT_ADAC

如果是外置的则需要关掉这个定义,接下来要打开makefile文件,进行Audio DAC Config的配置:

关掉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,需要把批处理中的

set FLASH_SZ=1改成set FLASH_SZ=2,再重新编译。 怎样查看编译结果了?

一是直接在dos里面查看,这样的编译信息是不详细的。

二是在8032文件下面的文件名为a的里面查看,可以以文本文件的形式打开,这个文件里面的编译信息,这里面的信息是很详细的。 在编译的过程中会出现L15,L16这样的警告,这样警告的出现是有的函数或是变量写出来后没有被使用所出现的警告,这类警告是不需要管的;如果出现L1,L2之类的警告,就必须找出问题,消除这样的警告。 还有其他在程序中自己造成的语法编译错误,则需要根据编译提示去自己消除这样错误! 编译通过后,需要再调用批处理MERGE79来对8032 CODE和RISC CODE进行合并,最后在8032文件夹里面会生成一个target.bin文件,我们接下来做的事情就是把这个文件DownLoad到dvd样机里面去。

4、程序的DownLoad

要把编译好的程序Doawload到dvd样机里面去,可以使用专用烧写工具,也可以使用MTK提供的mtktool,它的界面如下:

其中bin file的路径是指向target.bin的,而backup file是上传dvd里面target.bin的路径。

程序通过串口download到dvd机里面去,所有的准备工作做好了以后按upgrade进行程序的download。

程序download完以后,要给样机断电,然后重新启动,样机才会开始工作。如果打开了RS232_LOG这个宏定义,还需要按一下上面的那个reset的红色箭头才

能启动!

5、系统的软件流程:

系统的软件流程可以分为四大部分:启动流程、按键处理流程、UOP处理流程、OSD刷新显示流程。 1、启动流程:

样机启动后首先进行初使化,如果系统是待机状态要等待按键来唤醒机器,如果不是则会进入主循环。

main()

GetInitState() //取初始化状态

STANDBY

Y N

PowerDownResetHardware() SetDRAMType()//设置dram

MpegPowerDown() ResetHardware()//Reset Hardware

while ((_bIRKey != IR_POWER) mainloop()//主循环 && (_bIRKey != IR_EJECT)) 等待power/eject键唤醒

2、按键处理流程:

系统每隔20ms会发生一次中断,dvd的OSD刷新,按键处理,碟片播放控制命令的处理等都会在20ms内处理完成!vTimer20ms(void)这个函数是在Timer.c里面的!

vTimer20ms

vUITimer() SmTimer //UOP处理

vOSDCoreTimer//OSD刷新 vGetCurrKey()//有没有遥控器按下

vIrTimer()//有按键则处理它

vPlayerKeyProc()//分类处理

fgSCRSAVKeyProc 、、、、、、、、、 屏保状态 vUpdateInputState fgISOKeyProc 输入状态 ISO碟 fgGotoState fgInitKeyProc Goto状态 Init状态 fgComKeyProc ComKey处理

3、UOP处理流程

UOP是用户操作(user operation)的缩写,用户发送操作命令,当这个命令被执行完后会返回一个信息bCOMHandleUopRet()、bDVDHandleUopRet()等等,接着去更新共享区的信息vHandleInfoUpdate(),dvd机根据这些信息再去执行后面的操作用户操作及处理的流程如下:

MTK-DVD-代码学习-新手上路

DVD新手ABC写这篇文档是为以前没有接触过dvd项目的工程师提供一些咨询,让你们能够在最短的时间里上手。在这篇文档里面包括以下内容:一、DVD的软件/硬件平台二、配置样机三、程序的调试四、程序的DownLoad五、系统的软件流程六、点亮dvd上的显示屏七、按键
推荐度:
点击下载文档文档为doc格式
292yq6pljb207lq1bbd16zh7s4eqd201d5m
领取福利

微信扫码领取福利

微信扫码分享