<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 - FFFFFF | EEPROM | C00000 - FEFFFF | 第二块Flash(4M bytes) | BF0000 - BFFFFF | 第一块EEPROM(6688未使用) | A00000 - BEFFFF | 第一块Flash(2M bytes) | 800000 - 9FFFFF | C00000-DFFFFF的映射(2M bytes) | 400000 - 7FFFFF | C00000-FFFFFF的映射(4M bytes) | 100000 - 3FFFFF | D00000-FFFFFF的映射(3M bytes) | 0E0000 - 0FFFFF | 空地址,用0填充(128K bytes) | 080000 - 0DFFFF | RAM (384K bytes, 3M bits) | 050000 - 07FFFF | C50000-C7FFFF的映射(192K bytes) | 018000 - 04FFFF | RAM (224K bytes) | 010800 - 017FFF | 字对齐可写内存(30K bytes) | 010000 - 0107FF | CPU内部ROM(2K bytes) | 00F000 - 00FFFF | CPU寄存器内存块 | 000200 - 00EFFF | CPU内部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)。 |