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

大海尔系列的内存布局 [复制链接]

楼层直达

发帖
58
精华
11
金币
882
威望
105
贡献
113
好评
41
注册
2010-01-05
楼主    quicktime 发表于: 2010-05-01 01:42:41 
Byzx大侠很早就发现了小海尔的内存布局。

俺的是大海尔,大海尔的和小海尔的做法还是有些区别。

1. 000000~1FFFFF Flash
  100~300为starter代码

2. 0FFA80~0FFFFF, 运行时被映射成IO端口地址,内存芯片控制,解码等都和这片区域相关。

3. 260000~26FFFF 升级代码(downloader)的工作数据区

4. 3B0000~3B1EFF 应用软件解压装载程序运行时代码区,从680140装载至此处。

5. 410000~50FFFF 应用软件数据加载此处,做解压装载准备。对应到Flash的60000~16FFFF

6. 510000~51FFFF 应用软件代码(application software)的工作数据区

7. 5CF400~5EFFFF, 海尔S30, 上广电,天地星等(均为2M flash)的downloader运行时代码区。 从flash 400,长度20000H,装载此处。
  入口代码地址5CFCCA
  初始化代码地址5CFA24.

8. 5D0000~5EFFFF,卓异红三黄五(1M flash和2M flash)的downloader运行时代码区。
  入口代码地址5D0000
  初始化代码地址5E37AE
 
9. 5F0000,flash中060000~1FFFFF应用软件数据临时加载此处,。含s30, 上广电,天地星, 卓异红三黄五(1M flash和2M flash)。
 
10. 680000~68FFFF 应用程序解压装载程序, 实际代码存放在flash的0F0000。因680000段在应用软件解压后被覆盖掉。downloader跳转到此处后,再次把自身装载到3B0000。
      入口代码地址680000
 
11.   字库加载解压至760000

12.   应用程序主代码解压至630000,代码入口地址630000。

13.   卓异红三黄五(2M),天地星, 开机画面解压至720000

14.   s30,上广电,卓异红三黄五1M,开机画面和应用软件一起打包,不单独解压。位置为(6B0000~6EFB3F)。

==============

另外总算彻底搞清楚Flash Header区的应用软件CRC的计算方式了。
  020059~02005E, 应用软件crc32校验值。
  02005D~020060, 应用软件crc32校验长度。
  应用软件crc校验起始地址: 060000
那么,为什么有些Bin还需要在应用软件末尾加CRC呢? 可以发现,这种情况下,020059~02005E是00 00 00 00。虽然没有找到理论支持,但实践中发现,一段数据后附加了4个字节的CRC32,然后再整体作CRC32校验数据,这时的校验结果为00 00 00 00。所以,这种情况下,应用软件数据crc32校验长度是实际应用软件数据长度+4字节,多出的4字节就是前面数据的CRC校验数据。

====================

再附一个整理过的串口诊断数据,可通过读取串口,诊断鸡丁盒的工作状态。

  3A: 开机
  02: 部分重要device初始化完成。(可能是包含激活SDRA内存等重要元件)
  03: 升级代码加载完成。
  04: 初始化CPU完成。
  0F: 应用程序加载完成。
  10: begin check NVRAM crc16.
  11: NVRAM crc16 ceck OK.
  12: begin check flash header crc32. normally flow, skip the singal.
  13: Flash Header crc32 check OK.
  14: begin应用程序区crc校验, normally flow, 14之后跳转到应用程序区解压转载程序(680000)
  16: write protected area(0000~01FFF7) crc check OK. 应用程序区crc校验失败,或强制升级进入这一步。
  17: 升级应用程序,重试flash header和应用程序校验。看起来发送信号12是死代码。
  18: 写保护区或应用程序区校验失败,系统停住。
  80: 进入应用程序区,准备加载LZSS解码代码。
  81: 准备解压数据完成,还未进行LZSS解码。
  82: 字库解压开始
  83: 字库解压装载完成。
  84: 应用程序解压装载完成。跳转到630000
  85: 开机画面解压装载完成。这一步在84前,只存在有单独开机画面压缩包的bin中。
本帖最近评分记录: 6 条评分