- 积分
- 431
- 实力分
- 点
- 金钱数
- 两
- 技术分
- 分
- 贡献分
- 分
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
根据SL45_5601版的资料整理的一些6688V5508版的自带的常用库函数
狼大的文章是这样说明的:
在Flash程序中,一些寄存器有固定的习惯用法。R12,R13,R14,R15作为传入参数,而R4和R5作为传出参数,R0被用为系统栈。
提到的一些函数,有我们常用,还有些只有FLASH程序自己用,补丁修改没有用过.
补丁的说明很简单,举例一般是有补丁修改用过的,还有些是从FLASH自身ROM中拷贝出来的,可能一些寄存器用法和反汇编说明不太一致
有些字串字符显示的可能无法显示中文字符。
...仅供参考,欢迎指出不对的地方
01) DisplayMessageBox :提示框
mov r12, flag ;标识 #1=boxed有边框, 标识 #2=unboxed 无边框
mov r13, textID ;插入字串
calls E604A8 ; 类型1: with V icon对构号图片 DAE6A804
mov r12, flag
mov r13, textID
calls E60508 ; 类型2:with ! icon惊叹号图片 DAE60805
举例:
E01CE6FD6104DAE608050DB00
02) StringCopy :字串拷贝
mov r12, dst_offset ;目标
mov r13, dst_page
mov r14, src_Offset ; 源
mov r15, src_page
calls C784A6 ; DAC7A684
举例:短信计数
0x4458A0: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DAE4D659DAE4AE59F0C066FCFF3FF2FD
0x4458B0: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 02FEE6FE1018E6FF9103DAC7A684
03) MoveWord :移动字符
mov r4, src_offset ;目标
mov r5, src_page ; 源
mov r10, dst_offset
mov r11, dst_page
mov r3, word_count ;长度
calls C7EE0A ;DAC70AEE
举例:增加待机图片预览
0x1F49C0: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF E6F44828E0C5E6FB2000E00AE6F38001
0x1F49D0: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DAC70AEEE6F61D00DB00
04) Indirect Call :间接调用(callR4...R5)
mov r4, func_offset
mov r5, func_page ,callR5R4
calls C788EE ;DAC788EE
举例:
0x482610:FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF E6F4F6F9E00C88C088C088C0E6FCA002
0x482620:FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 88C0E6FC5C14E6FDC01FE6FE3400E00F
0x482630:FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF E6F5B400DAC788EE06F00800DB00FFFF
05) Run Java File :运行JAVA文件
mov r12, filename_offset ;文件名(应该包含路径)
mov r13, filename_page
mov r14, flag ; 标识:#0 = list 清单, #1 = run 运行
calls BAE796 ;DABA96E7
举例:
0330228: F0 C8 F0 D9 06 FC B2 00 E0 1E DA BA 96 E7
06) Draw Image (Screen must be prepared) :显示图片(屏幕必须准备好的--->显示挂钩或DA执行调用)
mov r14, image_index ;图片号码
mov r12, x_pos ;X坐标
mov r13, y_pos ;Y坐标
calls B3DF04 ;DAB304DF
举例:
E00CE6FD4200E6FE1901DAB304DF
07) Write Data to EEPROM :往EEP块写入数据
mov r12, #0
mov [-r0], r12
mov [-r0], r12
mov [-r0], r12
mov r12, ;size长度
mov [-r0], r12
mov r12, EEPROM_Block ;EEP块名称
mov r13, data_Offset ;源数据
mov r14, data_Page
mov r15, offset
calls B4FA4A ;DAB44AFA
add r0, #8
举例:
E00C88C088C088C0E6FCA002DADB8ECD88C0E6FCC313E6FD1C00E6FE2000E00F
DAB44AFA06F00800DB00
08 ) Read Data from EEPROM (method 1) :从EEP中读取数据(方法1)
mov r12, #0
mov [-r0], r12
mov [-r0], r12
mov [-r0], r12
mov r12, size
mov [-r0], r12
mov r12, EEPROM_Block ;EEP块名称
mov r13, dst_Offset ;目标
mov r14, dst_Page
mov r15, offset
calls B4F9F6 ;DAB4F6F9
add r0, #8
举例:
00447960:E00C88C088C088C0E6FC120088C0E6FC
00447970:AE13E6FDD621E01EE00FDAB4F6F906F0
00447980:0800DB00
08 ) Read Data from EEPROM (method 2) ::从EEP中读取数据(方法2)
mov r12, size
mov [-r0], r2
mov r12, EEPROM_Block ;EEP块名称
mov r13, dst_Offset ;目标
mov r14, dst_Page
mov r15, offset
calls B4FB72 ;DAB472FB
add r0, #2
举例:
0x483D80: E008888088808880E0498890E6FC2C14E08D00D066FDFF3FF2FE02FEF0F8DAB4
0x483DA0: 72FB06F00800
09) GetLength :取得字串长度
mov r12, string_offset
mov r13, string_page
calls C78536 ;DAC73685 输出output = r4
举例:
0024ac8c:E6003000CC00F2FC943EF2FD963EDAC7
0024ac9c:3685E600
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
11) Get Word Value :取值
mov r12, string_offset
mov r13, string_page
calls C782E6 ;DAC7E682;输出 output = r4
举例:
01f0894: E6 FC 62 03 E6 FD 36 00 DA C7 E6 82
12) Get Double Word Value :取值(寄存器r4,r5输出)
mov r12, string_offset
mov r13, string_page
calls C77EBA ;DAC77EBA;输出 output = r4,r5
举例:FLASH没有用到过...
13) Get Word :取得字符
mov r12, data_offset
mov r13, data_page
calls C78356 ;DAC75683 output = r4
举例:
011fe30: 66 FC FF 3F F2 FD 02 FE DA C7 56 83
14) Get Double Word :取得字符(寄存器r4,r5输出)
mov r12, data_offset
mov r13, data_page
calls C78344 ;DAC74483 output = r4:r5
举例
0155368: 66 FC FF 3F F2 FD 02 FE DA C7 44 83
15) FillChar :strset
mov r12, dst_offset ;目标
mov r13, dst_page
mov r14, char
mov r15, size ;长度
calls C78416 ;DAC71684
举例:
0x1FA030: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 45060D15E6FCC005E6FD3200E6FEFF00
0x1FA040: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF E0FFDAC71684
16) Display Free String without Box :显示自由字串(不带边框)
mov r12, text_offset ;文本
mov r13, text_page
calls BD9F58 ;DABD589F
举例:
001d2e64: E6 FC B7 2E E6 FD F4 02 DA BD 58
17) Find substring :寻找替代字串
mov r12, string_offset
mov r13, string_page
mov r14, substring_offset
mov r15, substring_page
calls C785F0 ;DAC7F085
0036cd64: F0 C6 F0 D7 E6 FE 60 24 E6 FF 5B 03 DA C7 F0 85 |
评分
-
查看全部评分
|