sunplus8202v BIN文件中LOGO的替换工具设计思路
原创文章,如有转载,请注明出处:http://blog.csdn.net/desert2009sz/article/details/6871758
由于前段时间在做单游戏手柄的无线转换方案,所以收集了一些关于IOP以及SPMC6502的资料。开始设计时本想省掉这个接口IC,但由于其设计难度较高,且以后双无线手柄也需要做这样的工作,所以就还是花了3天左右的时间把该方案完成。在这个过程中,对游戏手柄的工作方式,通讯协仪,以及8202v的软件架构和编译有了一定的了解。
在完成设计后,原本想再花点时间把risc游戏手柄控制那块学习下,看看能不能对双游戏手柄提供帮助。因此又查阅了8202v的makefile,虽然最终没有找到对游戏手柄有价值的东西,但还是获益匪浅。通过对该文件的学习,对其软件的编译过程,工作模式,bin的生成过程,模块分类,模块加载和运行,模块与risc的通讯(主指iop)有了一定的了解。
以下部分就是bin的生成过程总结:
① 生成romL.obj
② 根据dvdL.ld从romL.obj中提取:rom1.dump, ram1.dump, rom2,dump, 并将其合并为romL.dump
③ 根据dvdL.ld从romL.obj中
提取iop.dump,转为iop.bin,压缩生成iop.bin.gz
提取iop_rst.dump,转为iop_rst.bin,压缩生成iop_rst.bin.gz
......
提取fsgui.dump,转为fsgui.bin,压缩生成fsgui.bin.gz
④ 将romL.dump生成romL.bin,将iop.bin.gz, iop_rst.bin.gz,.....fsgui.bin.gz也添加到romL.bin后面
⑤ @$(CHKSUM) romL.bin 64
@$(XB2) 0x70 romL.bin rom.bin
@$(CHKSUM) rom.bin 32
据说第⑤步可以不做也能正常工作,待证实
前几天听到同事说想设计一个能对rom.bin直接换logo的工具,我的思路如下。
一、需要解决的问题
①要想替换,就必须先找到被换的logo在哪
根据title.c文件,得知logo文件存放在DVDTitle数组里;又根据dvdL.ld知道title.c中DVDTitle常量在drv_fsgui这个SECTIONS中;
而drv_fsgui最终生成了fsgui.bin.gz,放在了romL.bin最后面;
DVD在显示logo前,需要通过RISC中的LoadModual函数,将MODUAL_FSGUI_CODE模块_text_fsgui,即fsgui.bin.gz加载并解压到SDRAM运行;
fsgui.bin.gz在romL.bin的位置:
unOffset = ((UINT32 *)_stextf)[MODUAL_FSGUI_CODE];
p = (BYTE *)(_stextf + unOffset + (MODUAL_Ns * 4)); p即其位置;
_stextf的值可以在romL.map中查到:
0x0000000088192720 _etext=((ADDR(.rom1)+SIZEOF(.rom1))+SIZEOF(.rom2))
0x00000000881934f0 _stextf=(_etext+SIZEOF(.ram1))
unOffset的值可以在romL.bin中查到,即((UINT32 *)(0x00000000881934f0)[MODUAL_FSGUI_CODE])=0x01AC93 [93 AC 01 00]
p=0x1934f0 + 0x01AC93 + 80 = 0x1AE1D3
=================================================================================================================
从romL.bin中导出fsgui.bin.gz;
用winhex在fsgui.bin.gz的文件头加入1F 8B 08 08 F0 20 3E 47 02 0B 66 73 67 75 69 2E 62 69 6E 00
然后解压缩得到fsgui.bin
//在gzip的官网上下载gzip.
//将该工具解压,然后通过该工具对fsgui.bin.gz解压
gzip -d -c iop_test.bin.gz >iop_test.bin
根据romL.map查找_text_fsgui,DVDTitle
.drv_fsgui 0x00000000806ff800 0x64e90
0x00000000806ff800 _text_fsgui=.
sunplus8202v BIN文件中LOGO的替换工具设计思路相关推荐
- WordSR 在多个Word文件中批量查找替换
这阵子在看一些技术文档,都是 word 格式的,需要在多个Word文件中批量查找指定的内容,找不到免费的合适的软件,顺手开发了这个工具软件,下载地址 WordSR v0.2,下面是一些版权信息和软件介 ...
- 批量将文件中汉字数字替换为阿拉伯数字
批量将文件中汉字数字替换为阿拉伯数字 我们有时候遇到很多是中文名文件名, 比如 第一章.第二十九章等文件,排序的时候无法按照顺序排列 而将其一一替换为阿拉伯数字很麻烦, 我花了一晚上弄出的代码如下保存 ...
- 从word、wps、excel、pdf和txt文件中查找文本的工具
从word.wps.excel.pdf和txt文件中查找文本的工具. 因工作中要经常从大量word文档中查找固定的文本,所以自己就做了本工具. 可以批量从doc.docx.wps.xls.xlsx.p ...
- 批量xml文件中的字符串替换
替换批量xml文件中的内容 替换批量xml文件中的内容 1.实现代码 替换批量xml文件中的内容 1.实现代码 package testpackage;import java.io.BufferedR ...
- SNS中好友动态功能的设计思路
现在大部分SNS网站都有一个功能,就是显示好友的活动状态,比如你的好友上传了一张照片.分享了一篇文章等等动作,都可以显示在你的页面里,这样大大增强了社区的互动性,也成为现在SNS网站的主要特征,对于这 ...
- idea在java文件中查找_Java开发工具IntelliJ IDEA使用源代码系列教程(四):在文件中搜索目标...
IntelliJ IDEA是Java语言开发的集成环境,IntelliJ在业界被公认为优秀的Java开发工具之一,尤其在智能代码助手.代码自动提示.重构.J2EE支持.Ant.JUnit.CVS整合. ...
- linux文件中的字符替换
(一)通过vim编辑器来替换. vi/vim 中可以使用 :s 命令来替换字符串. :s/well/good/ 替换当前行第一个 well 为 good :s/well/good/g 替换当前行所有 ...
- 推荐一个SAM文件中flag含义解释工具--转载
SAM是Sequence Alignment/Map 的缩写.像bwa等软件序列比对结果都会输出这样的文件.samtools网站上有专门的文档介绍SAM文件.具体地址:http://samtools. ...
- 31、SAM文件中flag含义解释工具--转载
转载:http://www.cnblogs.com/nkwy2012/p/6362996.html SAM是Sequence Alignment/Map 的缩写.像bwa等软件序列比对结果都会输出这样 ...
最新文章
- 在Ubuntu 14.04 64bit上查看硬件配置信息
- Java异常有多慢?
- [改善Java代码]覆写equals方法必须覆写hashCode方法
- 100个人搬100块砖C语言,姓氏名人故事:一百块砖搬出搬进
- c++opencv显示中文_OpenCV如何入门秘籍
- 天津科技大学计算机基础,天津科技大学大学计算机基础样卷
- android 查看多个图片,android提取视频多张图片和视频信息
- Flutter实战一Flutter聊天应用(二十一)
- VMware虚拟机中Linux系统如何修改IP地址
- 毕设-基于SpringBoot企业人事管理系统
- python声音报警_python:基于tkinter打造的股票实时监控声音报警器! 自动监控,声音警报...
- Blender学习入门(一)-Blender的下载和插件安装
- SaaS行业其实岌岌可危
- android Logcat打印格式说明
- 腾达路由器电信宽带服务器无响应,腾达路由器连接上但上不了网怎么办 腾达路由器上不了网原因及解决办法【图文】...
- 苹果html 闪退,苹果打开软件闪退是怎么回事_苹果手机一打开软件就闪退如何解决-win7之家...
- 超火爆的人类一败涂地Human Fall Flat Mac中文版(支持m1)
- 【AI with ML】第 8 章 :使用 TensorFlow 创建文本
- matlab tecplot data,MATLAB讀取TECPLOT笛卡爾網格三維流場數據
- 基于小波精英解学习和多角度搜索的新型阴阳平衡优化算法