




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一部分 硬件环境搭建硬件环境, 我们需要一台电脑,至少有一个串口; 一条串口连接线; 一个串口转换电路板; 一块Realtek芯片的demo板(配有专用电源); 一条3对3视频线; 一台电视机; 一条连接到局域网的网线;第二部分 软件升级1, 升级BOOTCODEA) 用串口线连接PC和板子上面的串口B) 打开Windows操作系统的开始菜单-附件-通讯-超级终端, 输入你觉得容易记住的名字确定后,在弹出的框里,栏,选择串口线连接PC上的哪个COM,一般是选择COM1确定后,在弹出的框里按下图所示的数据选择:确定后就会通过超级终端连接到串口COM1.C) 焦点选中窗口: , 先按住键盘左上角的Esc键, 再接通串口线连接的板子电源,在超级终端上会停留在 Realtek 位置, 如下图:D) 输入命令:Realtek load -b asc:/tty0 80100000后按回车键E) 选择超级终端上的菜单 传送-发送文件, 在栏目下,点击浏览按钮,选择要升级的BOOTCODE文件, 在栏目下选择: Ymodem-G点击发送按钮, 开始传送文件F) 当中的数字,与中的数字相等, 且不在增加时, 点击取消按钮,如下图G) 在超级终端内按2下回车, 显示出Realtek 标记后, 输入命令Realtek go 并回车, BOOTCODE便开始升级写入到FLASH中去.出现下图所示, 表示BOOTCODE升级成功:H)输入命令: Realtek reset 使系统重启, BOOTCODE升级完成2, 网络升级BOOTCODEA) 在超级终端内显示出Realtek 标记后输入下面命令:Realtek set ipaddr 34这里是假设局域网的网段IP是172.29.9然后, 输入下面命令以检察上一命令是否已经设置生效Realtek set在弹出的信息中, ipaddr (R/W) 后面的值, 是否是你刚才设置的IP地址, 如果是, 那么设置成功B)在PC上运行TFTP服务器软件(TFTP协议默认的监听端口是69)C)在超级终端内输入命令:Realtek fread t3/bootcode.bin 0x80100000这里假设运行TFTP服务器的PC机IP地址是3当超级终端显示Successfully transferred 0xfb5a4 (101029540) bytes后,输入下面命令:Realtek go 0x80100000即开始升级BOOTCODE. 升级成功后输入下面命令, 使系统重启Realtek reset3, USB升级APA) 复制我们要升级的image文件到USB设备根目录下(image文件是由我们通过CODE制作好的AP升级包)B) 把USB设备插入到板子上C) 执行第1步中C)步骤, 显示出Realtek 输入提示, 输入命令:Realtek erase m回车后,再输入命令 reset 并回车, 系统就开始升级,同时,在电视机上会出现如下画面:升级成功后,系统会自动进入AP程序. 当第一次升级AP后,会弹出如下图所示的初始化系统设置界面:用遥控器设置好相关项目后, 进入GUIDE界面:4, 不升级AP, 直接运行DvdPlayerA) BOOTCODE正常情况时是先加载LINUX系统, 然后直接运行DvdPlayer程序.( DvdPlayer是从我们的CODE编译生成的应用程序), 在第一次用USB升级过后, 板子内保存有LINUX系统内核, 我们可以通过LINUX系统的mount命令来挂载网络文件, 从而直接运行网络上的Dvdplayer程序, 不必重新用USB升级以节省调试的时间B)现在的目标是在加载LINUX系统后,不直接运行Dvdplayer程序,而进入LINUX的命令行, 那么我们需要修改一个配置文件rsS当用USB升级成功, 进入GUIDE界面后, 我们在超级终端内输入命令 stopall 停止所有运行的进程然后输入下面命令vi /usr/local/etc/rcS然后找到DEFAULT_AP_DIR=/usr/local/bin 这一行在超级终端内按i键, 进入VI的编辑模式, 把上面这行注释掉:#DEFAULT_AP_DIR=/usr/local/bin按Esc键退出编辑模式输入以下命令退出VI编辑程序: (注意前面有个冒号):wq然后断开板子的电源,再通电.C)从网络运行DvdPlayer加载LINUX系统后, 按几下回车出现 /# 标记后输入:mount -t nfs -o nolock 50:/nfs /mnt/hdd/将服务器50上的NFS文件挂载到板子上然后在板子上进入我们复制进去的bin目录下(这个目录包含DvdPlayer, RootAP, 和Resource目录), 执行 ./ DvdPlayer运行应用程序D)从USB运行Dvdplayer将bin目录复制到USB设备中, 插入USB设备, 加载LINUX系统后, 按几下回车出现 /# 标记后输入:cd tmp/usbmounts/sda1/bin/./DvdPlayer第三部分 软件编译环境的搭建1,安装LINUX我们的软件系统是完全在LINUX下编译的, 我们可以在一台安装了LINUX操作系统的服务器上编译程序, 也可以在自己的PC上安装LINUX操作系统. 关于LINUX操作系统的安装, 请参考相关资料, 在这里不再赘述.2, 編譯环境:Requisites:1. mips cross compiler:2. include & lib files:Install procedure:1. rpm -i sdelinux-5.03.06-1.i386.rpm2. cp /usr/local/lib/gcc-lib/mipsel-linux/2.96-sdelinuxmips-040127/*.oto /usr/local/lib/gcc-lib/mipsel-linux/2.96-sdelinuxmips-040127/soft/3. cd /usr/local/mipsel-linux/; tar xjvf inc_lib.tar.bz2Toolchain 路徑:安裝完之後,toolchain 的程式會放在/usr/local/bin 裡面。程式的開頭名稱一律都是mipsel-linux-。比如如果要用mips 的gcc,那麼就執行mipsel-linux-gcc;如果要執行ld,則是mipsel-linux-ld;要執行objdump,則是mipsel-linux-objdump。3,安装TCL工具包新版的編譯需要tcl library, 所以需要各位將編譯的伺服器加入這toolchain, 請在fedora Xwindow下選Applications- Add/Remove software開啟後,選擇List 這一頁,再找出tcl-8.4.13-3.fc6.i386(這編號不同沒關係)tcl scripting language development environment這一項, 將它打勾安裝即可.对于DeBian LINUX系统可以通过下面命令安装:dpkg -i tcl8.4-dev_8.4.19-2_i386.debdpkg -i tcl8.4_8.4.19-2_i386.deb第四部分 软件的编译过程1, 编译生成DvdPlayerA)解压CODE压缩包*.tar.gz, 输入命令:tar zxvf *.tar.gzB)编译目录Application, 执行以下命令:cd 1262MK_AVHDD_135525QAsystembranch_src_sharedMemory_integrationApplicationmake cleanmakeC)编译目录Platform_Lib, 执行以下命令:cd 1262MK_AVHDD_135525QAsystembranch_src_sharedMemory_integrationPlatform_Libmake cleanmakeD)编译目录Utility, 执行以下命令:cd 1262MK_AVHDD_135525QAsystembranch_src_sharedMemory_integrationUtilitymake cleanmakeE)编译目录GrandMa_DG_StateMachine,生成最终的DvdPlayer, 执行以下命令:cd 1262MK_AVHDD_135525QAsystembranch_src_sharedMemory_integrationUnit_testGrandMa_DG_StateMachinemake cleanmake release然后,在GrandMa_DG_StateMachinebin目录下会生成DvdPlayer, RootAppResource目录执行mipsel-linux-strip -s RootApp 去掉RootApp的Debug部分2,制作安装包install.flash.imgA)解压image制作压缩包*.tar.gz, 输入命令:tar zxvf *.tar.gzB)复制上面生成的DvdPlayer, RootApp和Resource目录到image_file_avhdd_135525APbin 目录下C)在image_file_avhdd_135525目录下输入命令:make install_ap会生成develop.flash.avhdd.ap.img文件, 然后我们修改它的文件名为install.flash.imgMake image nosvn=1 install_ap=1 全出Make image nosvn=1 install_ap=1 第五部分 软件的调试1,目前我们的调试方法是在相关的代码位置加上printf 从串口打印出调试信息.2,有关使用gdb调试的方法,请参考相关文档.第六部分 软件的架构和流程1,整体架构图:2,AP层次关系:AbstractAP (抽象类)AP继承关系层次Category2_APBgFormatNotificationAPDvbtAPGuideAPPowerOffConfirmationAPScreenSaverAPSetupMenuAPShowDisplayAPShowDisplayIIAPShowStatusAPTimerNotificationAPUSBPlugConfirmationAPVolumeCtrlAPCategory1_APFileCopyAPDiscUtilityAPDVControlAPGBrowserAPHDDEditingChoiceAPHddUtilAPMinusEditingAPPlusEditingAPRootAPTimerRecordAPVideoPlaybackAP每个AP最经常被调用的函数: ProcessKey /遥控,面板按键消息处理, Timer, Tuner等等的消息处理函数Activate/在当前AP被激活时调用的函数Deactivate/在当前AP被切换到另一个AP后调用的函数InvalidateRect() /使某个区域无效SwitchAPTo(GetAPByName(GuideAP);/从当前AP切换到另一个AP, GuideAP是要切换到的AP名字AbstractAP:ProcessKey(command); /当前AP不能处理某个消息时,调用这个函数做通用的消息处理3, Category 1 & Category 2 AP这2层AP可以同时运行, 但是同一时刻只有一层AP接受焦点. 可以理解为一层是前台用户操作,另一层是后台作业.4, Menu, Control, Dialog每个AP在激活的同时, 会创建一个或者多个Menu, 每个Menu可以由1个或者多个Control或者是Dialog组成.这种方法与Windows VC+的实现方法类似. Menu是与用户交互的界面(UI), 它们负责把需要显示给用户的信息在画面上表达出来, 或者是把用户输入的信息显示出来.5, AP的接受消息来源Pipe (Keyboard/IR/UART) , Timer , FlowEvent , Signal6, 消息循环模式:采用主Main 函数loop循环取得并分发消息到当前激活的第1层和第2层AP;CODE主函数systembranch_src_sharedMemory_integrationUnit_testGrandMa_DG_StateMachine目录下的main.cpp文件内;消息的处理流程大致如下:Main函数循环取得不同方式的消息- 当前激活的AP (由ProcessKey函数处理) - 当前AP通过menu绘制出用户界面显示相应信息或者进行后台操作;第七部分 界面对应的源码文件所有文件都在相对目录: systembranch_src_sharedMemory_integrationUnit_testGrandMa_DG_StateMachine下GuideAP.cppGuideMenu.cppMKGuideMenu.cppGAllControl.cppGMusicControl.cppGPictureControl.cppGVideoControl.cppGMultiMediaCtrler.cppGNewBrowserMenu.cppGBrowserAP.cppGBrowserDeviceMenu.cppGBrowserDir.cppGBrowserFilter.cppTimerRecordAP.cppTimerRecordMenu.cppTimerRecordEntryList.cppTimerRecordManualMenu.cppTimerDeleteConfirmWindow.cppTimerRecordStatusCheck.cppTimerRecordHistoryMenu.cpp-当预约录像到时间时,弹出的倒数20秒开始录像的提示框:TimerNotificationAP.cppTimerReadyNoticeWindow.cpp与setup界面相关的源文件都在相对目录systembranch_src_sharedMemory_integrationUnit_testGrandMa_DG_StateMachine SetupMenuApp下另外还有:SetupMenuAP.cppVolumeCtrlMenu.cppVolumeCtrlAP.cppkbd_control.cppFileCopyAP.cppFileCopyWorker.cppExplorerMenu.cppCopyAPDef.hCopyAPUtils.hFileCopyAPGUI.hCopyAPLinkPageMenu.cppCopyAPPageOneMenu.cppCopyAPProgressMenu.cppSrcDeviceSelectionMenu.cppSrcItemSelectionMenu.cppDstDeviceSelectionMenu.cppDstDirSelectionMenu.cpp-屏幕保护:ScreenSaverAP.cpp-VIDEO INRootAP.cppAbstractAP.cppShowDisplayAP.cpp-显示录像时的小红点,以及无效图标:ShowStatusAP.cpp-插入USB时的提示窗口:USBPlugConfirmationAP.cpp-主函数Main.cpp第八部分 其它功能对应的源码文件1, 遥控器按键扫描线程以及相关程序在ir_control.cpp文件2, 面板按键扫描线程以及相关程序在vfd_control.cpp文件3, 取得当前激活AP名字:在main.cpp代码retval = targetAP-ProcessKey(&cmd_buffer);下面增加:printf(* CurrentAP = %s *n, targetAP-GetName();4, 修改遥控器按键值与消息之间的对应.在相对路径systembranch_src_sharedMemory_integrationPlatform_LibRemoteControl目录下的RemoteControl.cpp文件内修改.方法为:在char IRCodeTranslate(int code)函数内, switch(code & 0x0000ffff) 的意思是取得遥控器客户代码.对于一个32位的遥控码值,包括客户代码和遥控按键码2个部分.例如: 遥控器发来的码值是 0x00edffcc 那么00ed就是按键码值, ffcc就是遥控器的客户代码.所有按键的码值中都有这个部分;switch(code & 0x00ff0000)16) 的意思是: 取遥控码值中ff位置的一个字节的值, 如果遥控器发来的码值是 0x00edffcc 那么结果就是0xed ,根据ff位置的一个字节的值, 我们就可以判定用户按下了遥控器上的哪个按键.case 0xcd: return CMD_POWER; 当你按下的按键用来表示POWER键时, 你就把(code & 0x00ff0000)16)的结果修改到0xcd, 下
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 湖北省武汉市青山区5月2026届九年级化学第一学期期中质量检测试题含解析
- 2026届三门峡市重点中学化学九年级第一学期期中联考试题含解析
- 2026届四川省绵阳市绵阳外国语学校英语九年级第一学期期末经典试题含解析
- 离婚协议范本:财产分割、子女抚养及债务偿还方案
- 高端商务楼宇物业管理与客户关系维护合同
- 竞业禁止协议赔偿金额界定与劳动者权益保障
- 跨界融合的私立学校校长聘用与管理合同
- 税务筹划与税收筹划培训顾问服务协议
- 离婚时共同房产处置及居住权分配协议公证模板
- 离婚债务承担与财产分割及子女抚养费用分担协议
- T-SAASS 164-2024 盐碱地蛇床绿色轻简化种植技术规程
- 二级WPS Office高级应用与设计计算机等级考试试题及答案指导(2025年)
- 智能计算系统:从深度学习到大模型 第2版课件 第四章-编程框架使用
- 供应链管理师二级练习卷含答案
- 《公路边坡网锚喷植被混凝土生态防护技术指南》
- 主要负责人安全生产责任制模版(三篇)
- 工程项目现场管理制度(业主方用)
- 2023部编新人教版五年级(上册)道德与法治全册教案
- 竞选竞选大学心理委员参考课件
- GB/T 18216.7-2024交流1 000 V 和直流1 500 V 及以下低压配电系统电气安全防护措施的试验、测量或监控设备第7部分:相序
- 部编《语文》三年级上册全册教案及教学反思
评论
0/150
提交评论