赞助论坛
  • 2338阅读
  • 0回复

HiShell实现不刷机调试海尔机的一个例子 [复制链接]

楼层直达

发帖
58
精华
11
金币
882
威望
105
贡献
113
好评
41
注册
2010-01-05
楼主    quicktime 发表于: 2010-05-03 00:06:28 
HiShell实现不刷机调试海尔机的一个例子

本文只讲安装和操作部分,原理和进阶的请阅读下面两个贴子,无兴趣了解或无编程基础,没有手工改过bin的直接跳过下面两个链接。

[url=http://bbs.lcdhome.net/read-htm-tid-53603.html]不刷机调试海尔机--HiShell 1.0 alpha[/url]

[url=http://bbs.lcdhome.net/read-htm-tid-56514.html]大海尔系列内存布局[/url]

[b]本文适合大海尔。[/b]

先要安装好HiShell。[b]HiShell请到[url=http://bbs.lcdhome.net/read-htm-tid-53603.html]不刷机调试海尔机--HiShell 1.0 alpha[/url]下载[/b]


[b]>HiShell的安装:[/b]

可以简单的认为HiShell有两部分组成。
一个是HaierBoot2Loader,在PC上运行,相当于一个键盘和显示控制台。
一个是HiShell.bin相当于安装在鸡丁盒内的DOS,必须烧在鸡丁盒的bin里。

1. HaierBoot2Loader在PC上运行。依赖于微软的.NET Framework 3.5。好像Windows 7已经带有.NET Framework 3.5。如果缺少该组件请到微软网站下载。
[url]http://www.microsoft.com/downloads/details.aspx?familyid=AB99342F-5D1A-413D-8319-81DA479AB0D7&displaylang=zh-cn[/url]

2. HiShell.bin的安装。打开原鸡丁盒的bin文件,在升级数据区01D600~01FF00之间有一段FF的空白区域。把HiShell.bin复制到该区域,然后修正升级程序区(1FFF8处)的CRC校验值。
最后用刷机程序刷进鸡丁盒。可以只刷升级数据区。

3. HiShell.bin不会影响到原有bin的功能。正常使用情况下,他只是鸡丁盒中的一段无用数据。

[b]>HiShell基本使用方法:[/b]
1. 打开HaierBoot2Loader。
2. 打开鸡丁盒电源。正常情况下出现这样的画面,说明HiShell.bin加载成功。注意红色框内的提示信息。

[img]http://bbs.lcdhome.net/p_w_upload/Mon_1004/31_030073_9d0bdbd4f5c8dbb.jpg[/img]

3. 有时后会抓不到鸡丁盒的开机信号,没有出现上述画面。关掉鸡丁盒电源;然后重新打开Boot2文件,选2023目录下的HiBoot.bin即可,或者关掉HaierBoot2Loader,重新打开。再重新打开鸡丁盒电源。
4. 通过HaierBoot2Loader发送数据功能,在数据输入框内输入命令。数据输出框内显示执行结果。输入框内可直接回车发送命令。

[b]这个例子,说明如何试验修改好的bin文件应用软件的数据部分。[/b]
bin文件应用软件的数据部分包含开机画面,字库,提示信息颜色文字等,还有主程序代码。修改好后如果通过刷机来试验,不成功还要刷回来。
这个例子使用HiShell,不需要刷机,一旦不成功,关机立刻恢复原样。

第一步,把bin的应用软件部分取出。用二进制文件编辑器,把bin文件的060000到结尾的所有数据另存成一个文件,比如取名叫AS.BIN。2M的flash,取下来的AS.BIN长度应该是1A0000.
第二步,按上面的HiShell基本使用方法,打开HaierBoot2Loader,再打开鸡丁盒电源。注意上面说的提示信息是否正确。
第三步,在发送数据输入框内输入:
L 5F0000 1A0000
然后回车。1A0000是AS.BIN文件长度。注意,回车后不要在发送数据输入框输入回车或点击发送按钮。鸡丁盒在等待你的第四步,任何误操作都会让鸡顶盒不能识别你的命令。

第四步,点击发送文件,选刚才提取的AS.BIN。然后等待,文件发送到鸡丁盒完毕。
[p_w_upload=61629]

第五步,在发送数据输入框内输入:
G 680000
[p_w_upload=61630]
这时鸡丁盒运行你第五步加载的应用程序,进入正常工作。你这时可以看到新的bin的运行结果。

[b]几点说明:[/b]
1. 通过这个方式运行应用软件,跳过了CRC校验的部分,不能试验出CRC校验是否正确。
2. 通过这个方式运行应用软件, 1FF00处的硬件信息/厂商标记,都是flash中原有的,并未修改过。
3. 发现有一个bin,是没有任何lzss压缩数据的,在可被1000H整除的地址处找不到字节串55 AA 5A A5。使用该方法,字库没有正确加载。
4. 鸡丁盒应用软件后本身运作可能会修改40000~5F0000的搜台数据。使用该方法,加载运行了不正确的鸡丁盒应用软件可能会把搜台数据修改错误。遇到这种情况重新开机后再自动搜索一下。