爱技术

 找回密码
 注册会员

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

搜索
123
返回列表 发新帖
楼主: winming
收起左侧

kvSIM_1.0 无需重启在线切换 同时切换短信中心号码!10.15日更新 代码优化!!

[复制链接]
发表于 2008-10-16 11:03:04 | 显示全部楼层
新版多出0x1fc700-1fc770,这一块就没法用bin加载了吧?
回复 支持 反对

使用道具 举报

发表于 2008-10-16 21:33:07 | 显示全部楼层
看了下建立5200块的说明,不大明白,是不是只要刷下面这个,然后把1楼更新的那个虚拟卡切换bin拷入MMC里就可以在线换号了?和KV0.9冲突吗?

;以下补丁用于制作5200.bin,不是刷入机子的。
;制作5200.bin的VK
;以下文件头,用户不要修改:
0x56312C: FFFFFFFF E00C88C0
0x563130: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF E00DE00E88E088D0E6FFE00188F0E6FC;480=E001字节
0x563140: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 5014E6FD3400E6FE2000E00FDAB44AFA;5014=5200,3400用户资料开头
0x563150: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 06F00800E6FD1E05DAE6A804DB00CC00
回复 支持 反对

使用道具 举报

发表于 2008-10-19 23:18:05 | 显示全部楼层
原帖由 winming 于 2008-10-15 12:57 发表
根据云版主的意见对代码进行了优化!
怕浪费空间的朋友可以刷了!感谢云版主的意见!
同时请教云版主一个问题:
如何将FLASH指定地址指定长度的数据加载到RAM指定地址中????请问有什么函数,如何调用?


6688有的系统自带的COPY函数,但我没用过,看看下面JUNFENG的教程说明

来个补丁转移的过程几注释
27D410: E6 F1 10 00 :   mov     r1, #10h                 ;把立即数10写入r1
27D414: 88 10       :   mov     [-r0], r1                       ;r1入栈
27D416: E6 FC 40 3D :   mov     r12, #3D40h           ;向r12写入立即数3d40
27D41A: E6 FD 11 00 :   mov     r13, #11h                ;向r13写入立即数11
27D41E: E6 FE 5E 14 :   mov     r14, #145Eh              ;向r14写入立即数145e
27D422: E6 FF 1F 03 :   mov     r15, #31Fh                  ;向r15写入立即数31f
27D426: DA C7 9E 85 :   calls   0C7h, loc_C7859E       ;系统库函数strncpy,Copy string ended by 0 from r15:r14 to r13:r12

27D42A: 08 02       :   add     r0, #2                               ;栈加2,也就是栈顶上移2
27D42C: D7 40 36 00 :   extp    #36h, #1                      ;切换到36页,有效指令一条
27D430: C2 F1 62 03 :   movbz   r1, 0D8362h                ; (0036:0362) 把0036:0362处的数据移动到r1
27D434: E6 FD 11 00 :   mov     r13, #11h                      ;向r13写入立即数11
27D438: 46 F1 2A 00 :   cmp     r1, #2Ah                         ;用r1的值减2a,且不修改r1数据,我们可以理解为判断r1是否为2a
27D43C: 2D 03       :   jmpr    cc_Z, loc_27D444                 ;2d03 意为如果相等则跳转


ok,再看系统库函数strncpy:Copy string ended by 0 from r15:r14 to r13:r12
也就是说把31f,145e处的数据复制到11,34d0,于0结束
31f,145e怎么找?
根据狼大的教导,c166是采用段页式存储,代码用段寻址,数据用页寻址
转换成file address先
公式 : file address= pag*4000+pof
            
这里是     31f*4000+145e=C7D45E

然后转为补丁地址
C7D45E-A00000=27D45E

为什么?公式: FILE ADDRESS=FLASH ADDRESS+A00000


地址的解释告一段落,用sfe反汇编并对比一下,你就知道为什么了
玫瑰的补丁是要把27d45e处的数据613A2F6A6176612F732F782E6A616400
复制到11,34d0,看看寒山的补丁复制的是什么。。。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-10-20 08:53:26 | 显示全部楼层

回复 44# 云卷.云舒 的帖子

此函数我也看了, 但是此函数是遇0结束的!
我要的是指定长度的函数!
回复 支持 反对

使用道具 举报

发表于 2008-10-20 18:38:59 | 显示全部楼层
10) CopyArray :字符拷贝

        mov        r12, size                        ;长度
        mov        [-r0], r12
        mov        r12, src_offset                ;源
        mov        r13, src_page
        mov        r14, dst_offset                ;目标
        mov        r15, dst_page
        calls       C7859E                        ;DAC79E85

举例:
8810E6F110008810E6FC403DE6FD1100E6FED01DE6FF
FC02DAC79E8508029810
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-10-20 23:19:07 | 显示全部楼层

回复 46# 云卷.云舒 的帖子

还麻烦云版主看一下,虽然指定了长度,但是只要复制的数据中有0 还是会结束的,0后面的数据无法复制!
回复 支持 反对

使用道具 举报

发表于 2008-10-20 23:28:04 | 显示全部楼层

回复 47# winming 的帖子

这个,我没用过

你要COPY的是什么数据?具体派什么用场?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-10-20 23:52:22 | 显示全部楼层
你好,云版主,我想把此补丁做成兼容KvSIM0.9让更多的人使用此补丁。
想直接复制KvSIM0.9中用户数据到内存中,这样就脱离了EEP的块操作!有什么好的方案还请赐教!
回复 支持 反对

使用道具 举报

发表于 2008-10-21 18:11:29 | 显示全部楼层

回复 49# winming 的帖子

直接复制KvSIM0.9中用户数据到内存中...

用BIN加载好了...前提是不运行JAVA,不看RAM电子书,不用别的BIN文件,不关机...这样数据才可以保持一直存在

所以用EEP的块储存数据是最稳定的
回复 支持 反对

使用道具 举报

发表于 2008-10-22 23:27:33 | 显示全部楼层
无痕版主,看看这个,能不能用上
http://mobile.0110.cn/viewthread ... &extra=page%3D1
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员 微信登录

本版积分规则

小黑屋|Archiver|手机版|爱技术 ( 沪ICP备08115260号-3 )

GMT+8, 2025-8-3 00:34

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表