【天堂论坛】玩机到天堂 买机找海洋西门子 6688……黑白经典.MP3机王 → [转贴] 6688i的软硬件资料和补丁使用和开发等
查看完整版本:[转贴] 6688i的软硬件资料和补丁使用和开发等
2006/3/31 15:09:22
<DIV align=center>探索6688i
by Konca Fung</DIV>

  这里介绍Siemens 6688i(外国称SL45i)的硬件资料,希望可以对有兴趣研究补丁的朋友有所帮助。

  首先,我需要向Mamaich致谢,他不但向我提供资料,还耐心地解答我的提问。mamaich.fuckru.net是他的主页,我相信你看过他的主页会就会发现他是个反汇编的高手,无论是手机程序或者PC程序。
  第二,希望懂俄语的朋友能帮忙翻译一下这篇文章:http://mamaich.fuckru.net/sl45i/sl45_re.htm,如果你访问不了,请看 这里

  6688i上运行的是一嵌入式操作系统,因为我们没有该系统的源代码,所以只能在反汇编的基础上进行分析。
  6688i的主芯片是Infineon PMB6850,内含C166的CPU Core,有关资料请见:1.C167CPU详细资料(4M) 2.C166指令手册
  IDA是个强大的反汇编软件,支持多种CPU(如80x86, Z80, C166等),点击这里下载C166专用版(2M)

  C166的寻址空间是16M,它对指令和数据的寻址有点不同:共分256个指令段,每个段64K,最大段偏移是0xFFFF;共1024个数据段,每个段16K,最大段偏移是0x3FFF。
  6688i有两块共6M(2+4)的Flash芯片用于保存程序,这6M内容被映射到0xA00000开始的连续空间上(即16M寻址空间的最后的6M)。下表更详细地阐述了空间的分配:

FF0000 - FFFFFFEEPROM
C00000 - FEFFFF第二块Flash(4M bytes)
BF0000 - BFFFFF第一块EEPROM(6688未使用)
A00000 - BEFFFF第一块Flash(2M bytes)
800000 - 9FFFFFC00000-DFFFFF的映射(2M bytes)
400000 - 7FFFFFC00000-FFFFFF的映射(4M bytes)
100000 - 3FFFFFD00000-FFFFFF的映射(3M bytes)
0E0000 - 0FFFFF空地址,用0填充(128K bytes)
080000 - 0DFFFFRAM (384K bytes, 3M bits)
050000 - 07FFFFC50000-C7FFFF的映射(192K bytes)
018000 - 04FFFFRAM (224K bytes)
010800 - 017FFF字对齐可写内存(30K bytes)
010000 - 0107FFCPU内部ROM(2K bytes)
00F000 - 00FFFFCPU寄存器内存块
000200 - 00EFFFCPU内部RAM
000000 - 0001FF中断向量表

  CPU加电时,0x10000-0x107FF的CPU内部ROM被映射到0地址,且CPU从0地址开始执行代码。这些在CPU内部ROM的程序做完一些初始化和检测后会跳到Flash中的程序中。

  我利用AT+CGSN的补丁把16M的Memory Dump了出来,用IDA进行反汇编,并对照Mamaich提供的v56lg8的IDB文件找出相应的函数,这里提供下载:6688 IDA反汇编文件 (9M, Version B)

  另外,做了个实验,是关于开机的:
1. 设置一分钟后的闹钟,关机,接上数据线
2. 运行ServiceMode.exe (下载,它发送程序给6688以使它进入Service模式,我试过XP下可用)
3. ServiceMode程序显示正在扫描
4. 一分钟后,6688的屏幕上显示ServiceMode字样而并没有响闹钟
5.A 在显示ServiceMode后的一分钟内按红键关机再开机时,响闹钟并显示信息,确定后手机自动关机
5.B 在显示ServiceMode一分钟之后关机再开机时,屏幕无显示但背景灯亮了一下之后马上熄灭,再按红键才正常开机。
  

由此我推测,6688关机后(当然电池是装上的),CPU停止运行,但有一RTC电路在计时并判断是否触发闹钟。当有闹钟触发或用户按下红键后,电源管理电路开始向CPU供电,此时CPU才执行内部ROM的程序(0x10000-0x107FF,但被映射到0地址),里面的程序判断串口是否有特定数据(连续的0x55,我们烧Flash入手机就是通过这方法),如果有则接收后续的数据并保存和运行。
  如果没有,则初始化操作系统后判断是否由RTC触发,如果是,则显示闹钟,用户确认或超时后就关机;如果不是,则进入普通模式,判断SIM卡是否存在,如果存在则读入数据并开发登录网络。

  一些愚见,如有错误,敬请指出,欢迎交流,我的E-Mail是konca@tom.com,QQ是14008831(请注明6688)。


Powered by BBSXP 2007 ACCESS © 1998-2024
Processed in 0.01 second(s)