Changeset 569


Ignore:
Timestamp:
11/15/08 12:38:05 (5 years ago)
Author:
reyalp
Message:

+ merge ixus80_sd1100 from chr. Patches

0002-sd1100-support-ixus80-82-fw-100c-101a.patch
0006-add-signatures-from-sd1100.patch

see http://chdk.setepontos.com/index.php/topic,650.msg24281.html#msg24281

+ Added encoded diskboot support to makefiles

  • Set -march=armv5te for GCC3
  • ixus80_sd1100 1.00c is now sig_ref_dryos_2
Location:
trunk
Files:
41 added
8 edited

Legend:

Unmodified
Added
Removed
  • trunk/Makefile

    r559 r569  
    3939  endif 
    4040endif 
     41ifdef NEED_ENCODED_DISKBOOT 
     42        @echo dance \-\> DISKBOOT.BIN 
     43        $(ENCODE_DISKBOOT) $(topdir)/bin/main.bin $(topdir)/bin/DISKBOOT.BIN 
     44        rm $(topdir)/bin/main.bin 
     45else 
    4146        mv $(topdir)/bin/main.bin $(topdir)/bin/DISKBOOT.BIN 
     47endif 
    4248        @echo "**** Firmware creation completed successfully" 
    4349 
     
    187193        $(MAKE) -s --no-print-directory PLATFORM=ixus60_sd600  PLATFORMSUB=100d NO_INC_BUILD=1 firzipsub 
    188194        $(MAKE) -s --no-print-directory PLATFORM=ixus960_sd950  PLATFORMSUB=100d NO_INC_BUILD=1 firzipsub 
     195        $(MAKE) -s --no-print-directory PLATFORM=ixus80_sd1100  PLATFORMSUB=100c NO_INC_BUILD=1 firzipsub 
     196        $(MAKE) -s --no-print-directory PLATFORM=ixus80_sd1100  PLATFORMSUB=101a NO_INC_BUILD=1 firzipsub 
    189197        @echo "**** All firmwares created successfully" 
    190198        @echo "**** Copying duplicate Firmwares" 
     
    195203        cp $(topdir)bin/$(VER)-ixus70_sd1000-101b-$(BUILD_NUMBER).zip $(topdir)bin/$(VER)-ixus70_sd1000-101a-$(BUILD_NUMBER).zip 
    196204        cp $(topdir)bin/$(VER)-ixus75_sd750-101a-$(BUILD_NUMBER).zip $(topdir)bin/$(VER)-ixus75_sd750-101b-$(BUILD_NUMBER).zip 
     205        cp $(topdir)bin/$(VER)-ixus80_sd1100-101a-$(BUILD_NUMBER).zip $(topdir)bin/$(VER)-ixus80_sd1100-101b-$(BUILD_NUMBER).zip 
    197206        @echo "**** Done Copying duplicate Firmwares" 
    198207        @echo "**** Summary of memisosizes" 
     
    260269        $(MAKE) -s --no-print-directory PLATFORM=ixus60_sd600  PLATFORMSUB=100d NO_INC_BUILD=1 firzipsubcomplete 
    261270        $(MAKE) -s --no-print-directory PLATFORM=ixus960_sd950  PLATFORMSUB=100d NO_INC_BUILD=1 firzipsubcomplete 
     271        $(MAKE) -s --no-print-directory PLATFORM=ixus80_sd1100  PLATFORMSUB=100c NO_INC_BUILD=1 firzipsubcomplete 
     272        $(MAKE) -s --no-print-directory PLATFORM=ixus80_sd1100  PLATFORMSUB=101a NO_INC_BUILD=1 firzipsubcomplete 
    262273        @echo "**** All zipfiles including firmwares and extra stuff created successfully" 
    263274        @echo "**** Copying duplicate Firmwares" 
     
    274285        cp $(topdir)bin/ixus75_sd750-101a-$(BUILD_NUMBER)-full.zip $(topdir)bin/ixus75_sd750-101b-$(BUILD_NUMBER)-full.zip 
    275286        cp $(topdir)bin/ixus75_sd750-101a-$(BUILD_NUMBER).zip $(topdir)bin/ixus75_sd750-101b-$(BUILD_NUMBER).zip 
     287        cp $(topdir)bin/ixus80_sd1100-101a-$(BUILD_NUMBER).zip $(topdir)bin/ixus80_sd1100-101b-$(BUILD_NUMBER).zip 
    276288        @echo "**** Done Copying duplicate Firmwares" 
    277289        @echo "**** Summary of memisosizes" 
     
    341353        $(MAKE) -s --no-print-directory PLATFORM=ixus60_sd600  PLATFORMSUB=100d NO_INC_BUILD=1 clean 
    342354        $(MAKE) -s --no-print-directory PLATFORM=ixus960_sd950  PLATFORMSUB=100d NO_INC_BUILD=1 clean 
     355        $(MAKE) -s --no-print-directory PLATFORM=ixus80_sd1100  PLATFORMSUB=100c NO_INC_BUILD=1 clean 
     356        $(MAKE) -s --no-print-directory PLATFORM=ixus80_sd1100  PLATFORMSUB=101a NO_INC_BUILD=1 clean 
    343357         
    344358 
  • trunk/core/kbd.c

    r557 r569  
    8585#endif 
    8686 
    87 #if defined(CAMERA_a460) || defined(CAMERA_a530) || defined (CAMERA_a540) || defined(CAMERA_a550) || defined(CAMERA_a560) || defined(CAMERA_a570) || defined(CAMERA_ixus860_sd870) || defined(CAMERA_ixus960_sd950) 
     87#if defined(CAMERA_a460) || defined(CAMERA_a530) || defined (CAMERA_a540) || defined(CAMERA_a550) || defined(CAMERA_a560) || defined(CAMERA_a570) || defined(CAMERA_ixus860_sd870) || defined(CAMERA_ixus960_sd950) || defined(CAMERA_ixus80_sd1100) 
    8888#define ZSTEP_TABLE_SIZE 8 
    8989static int nTxtbl[]={0,1,2,3,4,5,6,7}; 
  • trunk/doc/version.txt

    r564 r569  
    33version / revision / author 
    44 
    5  
     50.7.6 / #565-569 / reyalp 
     6+ merge ixus80_sd1100 from chr 
     7  see http://chdk.setepontos.com/index.php/topic,650.msg24281.html#msg24281 
     8+ Added encoded diskboot support to makefiles 
     9* Set -march=armv5te for GCC3 
     10* ixus80_sd1100 1.00c is now sig_ref_dryos_2 
     11* sig_ref_*.txt now must have start address on first line 
     12  
    6130.7.5 / #564 / php 
    714 
  • trunk/include/camera.h

    r564 r569  
    473473 
    474474//---------------------------------------------------------- 
     475#elif defined (CAMERA_ixus80_sd1100) 
     476    #define CAM_PROPSET                 2 
     477    #define CAM_DRYOS                   1 
     478 
     479    #define CAM_RAW_ROWPIX              3336   // for new 8 MP 
     480    #define CAM_RAW_ROWS                2480   // for new 8 MP 
     481 
     482    #undef  CAM_USE_ZOOM_FOR_MF 
     483    #undef  CAM_HAS_ERASE_BUTTON 
     484    #undef  CAM_HAS_IRIS_DIAPHRAGM 
     485    #define CAM_HAS_ND_FILTER           1 
     486    #undef  CAM_HAS_MANUAL_FOCUS 
     487    #undef  CAM_HAS_USER_TV_MODES 
     488    #define CAM_SHOW_OSD_IN_SHOOT_MENU  1 
     489        // TODO / test 
     490        #undef  CAM_REMOTE 
     491        #define CAM_CAN_UNLOCK_OPTICAL_ZOOM_IN_VIDEO 1 
     492    #undef  CAM_CAN_MUTE_MICROPHONE 
     493    #define CAM_AF_SCAN_DURING_VIDEO_RECORD 0 
     494 
     495//---------------------------------------------------------- 
    475496#elif defined (CAMERA_ixus700_sd500) 
    476497    #define CAM_PROPSET                 1 
  • trunk/makefile.inc

    r566 r569  
    44PLATFORMSUB=100a 
    55 
     6#PLATFORM=a610 
     7#PLATFORMSUB=100e 
     8 
    69#PLATFORM=a620 
    710#PLATFORMSUB=100f 
     
    102105#PLATFORM=ixus860_sd870 
    103106#PLATFORMSUB=100c 
     107 
     108#PLATFORM=ixus80_sd1100 
     109#PLATFORMSUB=100c 
     110#PLATFORMSUB=101a 
    104111 
    105112#PLATFORM=ixus950_sd850 
     
    236243 
    237244PAKWIF=$(topdir)tools/pakwif$(EXE) 
     245ENCODE_DISKBOOT=$(topdir)tools/dancingbits$(EXE) 
    238246 
    239247########################################################################## 
     
    251259CFLAGS=-fno-inline -Os -fno-strict-aliasing 
    252260# flags for gcc v4 
    253 # CFLAGS+=-mtune=arm946e-s 
     261# CFLAGS+=-mcpu=arm946e-s 
     262# for gcc v3, we use to allow use of strd etc 
     263CFLAGS+=-march=armv5te 
     264 
    254265CTHUMB=-mthumb 
    255266CFLAGS+=-mthumb-interwork 
  • trunk/tools/Makefile

    r566 r569  
    6060        fi 
    6161 
    62 signatures_dryos.h: gensig$(EXE) gensigs.sh sig_ref_dryos_1.txt sig_ref_dryos_1.bin 
     62signatures_dryos.h: gensig$(EXE) gensigs.sh sig_ref_dryos_1.txt sig_ref_dryos_1.bin sig_ref_dryos_2.txt sig_ref_dryos_2.bin 
    6363        @echo \-\> $@ 
    64         if [ -s sig_ref_dryos_1.bin ] ; then \ 
    65           $(SH) ./gensigs.sh $(SORT) dryos "1" > signatures_dryos.h ; \ 
     64        if [ -s sig_ref_dryos_1.bin ] && [ -s sig_ref_dryos_2.bin ] ; then \ 
     65          $(SH) ./gensigs.sh $(SORT) dryos "1 2" > signatures_dryos.h ; \ 
    6666        else \ 
    6767          echo CAUTION! \'signatures_dryos.h\' is not uptated due to \'sig_ref_dryos_1.bin\` is empty! ; \ 
     
    8181        touch sig_ref_dryos_1.bin 
    8282 
     83sig_ref_dryos_2.bin: 
     84        touch sig_ref_dryos_2.bin 
     85 
    8386finsig.o: finsig.c signatures_$(PLATFORMOS).h 
    8487 
  • trunk/tools/signatures_dryos.h

    r538 r569  
    29542954}; 
    29552955 
     2956static FuncSig func_sig_AllocateMemory_2[] = { 
     2957        {   0, 0xe5900000, 0xfdffffff }, // ldr:4:0xE5900000 
     2958        {   1, 0xea000000, 0xff000000 }, // b, bl:3:0xEAF80561 
     2959        {   2, 0xe5801000, 0xfdffffff }, // str:4:0xE5801000 
     2960        {   8, 0xe5900000, 0xfdffffff }, // ldr:4:0xE5900000 
     2961        {  15, 0xe1a00000, 0xfdffffff }, // mov:6:0xE3A00000 
     2962        {  16, 0xe58d0000, 0xfdffffff }, // str:4:0xE58D0000 
     2963        {  17, 0xe040087f, 0xfdffffff }, // sub:6:0xE240087F 
     2964        {  18, 0xe1a0100d, 0xfdffffff }, // mov:6:0xE1A0100D 
     2965        {  19, 0xe1a02004, 0xfdffffff }, // mov:6:0xE3A02004 
     2966        {  20, 0xeb000000, 0xff000000 }, // b, bl:3:0xEBFC5F73 
     2967        {  23, 0xe1a0000d, 0xfdffffff }, // mov:6:0xE1A0000D 
     2968        {  24, 0xeb000000, 0xff000000 }, // b, bl:3:0xEBF8061F 
     2969        {  25, 0xe59d0000, 0xfdffffff }, // ldr:4:0xE59D0000 
     2970        {  28, 0xe5905000, 0xfdffffff }, // ldr:4:0xE5905000 
     2971        {  29, 0xe04dd01c, 0xfdffffff }, // sub:6:0xE24DD01C 
     2972        {  30, 0xe0804004, 0xfdffffff }, // add:6:0xE2804004 
     2973        {  31, 0xe08d0008, 0xfdffffff }, // add:6:0xE28D0008 
     2974        { -1, -1, -1 }, 
     2975        /* 17/32 */ 
     2976}; 
     2977 
     2978static FuncSig func_sig_ExecuteEventProcedure_2[] = { 
     2979        {   2, 0xe59f0104, 0xfdffffff }, // ldr:4:0xE59F0104 
     2980        {   3, 0xe59d1010, 0xfdffffff }, // ldr:4:0xE59D1010 
     2981        {   4, 0xe0404014, 0xfdffffff }, // sub:6:0xE2404014 
     2982        {   5, 0xe58d0000, 0xfdffffff }, // str:4:0xE58D0000 
     2983        {   6, 0xe5940008, 0xfdffffff }, // ldr:4:0xE5940008 
     2984        {   7, 0xe08d5014, 0xfdffffff }, // add:6:0xE28D5014 
     2985        {   8, 0xe1a0200d, 0xfdffffff }, // mov:6:0xE1A0200D 
     2986        {   9, 0xeb000000, 0xff000000 }, // b, bl:3:0xEBFFFECF 
     2987        {  10, 0xe1500019, 0xfdffffff }, // cmp:7:0xE3500019 
     2988        {  11, 0x1a000000, 0xff000000 }, // b, bl:3:0x1A00000A 
     2989        {  12, 0xe59f00ac, 0xfdffffff }, // ldr:4:0xE59F00AC 
     2990        {  13, 0xe59d3010, 0xfdffffff }, // ldr:4:0xE59D3010 
     2991        {  14, 0xe08f20d8, 0xfdffffff }, // add:6:0xE28F20D8 
     2992        {  15, 0xe08f10c8, 0xfdffffff }, // add:6:0xE28F10C8 
     2993        {  16, 0xeb000000, 0xff000000 }, // b, bl:3:0xEBFED162 
     2994        {  17, 0xe5941004, 0xfdffffff }, // ldr:4:0xE5941004 
     2995        {  18, 0xe59f0094, 0xfdffffff }, // ldr:4:0xE59F0094 
     2996        {  20, 0xe1a010dd, 0xfdffffff }, // mov:6:0xE3A010DD 
     2997        {  21, 0xe08f00d0, 0xfdffffff }, // add:6:0xE28F00D0 
     2998        {  22, 0xeb000000, 0xff000000 }, // b, bl:3:0xEBFECAD8 
     2999        {  23, 0xe5942000, 0xfdffffff }, // ldr:4:0xE5942000 
     3000        {  24, 0xe59d1010, 0xfdffffff }, // ldr:4:0xE59D1010 
     3001        {  25, 0xe5940010, 0xfdffffff }, // ldr:4:0xE5940010 
     3002        {  27, 0xe59d0000, 0xfdffffff }, // ldr:4:0xE59D0000 
     3003        {  29, 0xe1a00005, 0xfdffffff }, // mov:6:0xE1A00005 
     3004        { -1, -1, -1 }, 
     3005        /* 25/32 */ 
     3006}; 
     3007 
     3008static FuncSig func_sig_EnterToCompensationEVF_2[] = { 
     3009        {   1, 0xe08f1f77, 0xfdffffff }, // add:6:0xE28F1F77 
     3010        {   2, 0xe1a00020, 0xfdffffff }, // mov:6:0xE3A00020 
     3011        {   3, 0xeb000000, 0xff000000 }, // b, bl:3:0xEB01107D 
     3012        {   4, 0xeb000000, 0xff000000 }, // b, bl:3:0xEB00060B 
     3013        {   5, 0xe1500000, 0xfdffffff }, // cmp:7:0xE3500000 
     3014        {   7, 0xeb000000, 0xff000000 }, // b, bl:3:0xEB000611 
     3015        {   8, 0xe1500000, 0xfdffffff }, // cmp:7:0xE3500000 
     3016        {  10, 0xe1a02002, 0xfdffffff }, // mov:6:0xE3A02002 
     3017        {  11, 0xe59f11d4, 0xfdffffff }, // ldr:4:0xE59F11D4 
     3018        {  12, 0xe1a000cf, 0xfdffffff }, // mov:6:0xE3A000CF 
     3019        {  13, 0xeb000000, 0xff000000 }, // b, bl:3:0xEB011B7F 
     3020        {  14, 0xe1100001, 0xfdffffff }, // tst:7:0xE3100001 
     3021        {  15, 0x159f11c8, 0xfdffffff }, // ldr:4:0x159F11C8 
     3022        {  16, 0x151f0f5c, 0xfdffffff }, // ldr:4:0x151F0F5C 
     3023        {  17, 0x1b000000, 0xff000000 }, // b, bl:3:0x1BFFD789 
     3024        {  19, 0xea000000, 0xff000000 }, // b, bl:3:0xEA00DEFB 
     3025        {  21, 0xe08f1f6d, 0xfdffffff }, // add:6:0xE28F1F6D 
     3026        {  22, 0xe1a00020, 0xfdffffff }, // mov:6:0xE3A00020 
     3027        {  23, 0xeb000000, 0xff000000 }, // b, bl:3:0xEB011069 
     3028        {  24, 0xeb000000, 0xff000000 }, // b, bl:3:0xEB0005F7 
     3029        {  25, 0xe1500000, 0xfdffffff }, // cmp:7:0xE3500000 
     3030        {  27, 0xeb000000, 0xff000000 }, // b, bl:3:0xEB0005FD 
     3031        {  28, 0xe1500000, 0xfdffffff }, // cmp:7:0xE3500000 
     3032        {  30, 0x0a000000, 0xff000000 }, // b, bl:3:0x0A00DEFA 
     3033        { -1, -1, -1 }, 
     3034        /* 24/32 */ 
     3035}; 
     3036 
     3037static FuncSig func_sig_ExitFromCompensationEVF_2[] = { 
     3038        {   1, 0xe08f1f6d, 0xfdffffff }, // add:6:0xE28F1F6D 
     3039        {   2, 0xe1a00020, 0xfdffffff }, // mov:6:0xE3A00020 
     3040        {   3, 0xeb000000, 0xff000000 }, // b, bl:3:0xEB011069 
     3041        {   4, 0xeb000000, 0xff000000 }, // b, bl:3:0xEB0005F7 
     3042        {   5, 0xe1500000, 0xfdffffff }, // cmp:7:0xE3500000 
     3043        {   7, 0xeb000000, 0xff000000 }, // b, bl:3:0xEB0005FD 
     3044        {   8, 0xe1500000, 0xfdffffff }, // cmp:7:0xE3500000 
     3045        {  10, 0x0a000000, 0xff000000 }, // b, bl:3:0x0A00DEFA 
     3046        {  13, 0xe08f1f69, 0xfdffffff }, // add:6:0xE28F1F69 
     3047        {  14, 0xe1a00020, 0xfdffffff }, // mov:6:0xE3A00020 
     3048        {  15, 0xeb000000, 0xff000000 }, // b, bl:3:0xEB01105D 
     3049        {  16, 0xeb000000, 0xff000000 }, // b, bl:3:0xEB0005EB 
     3050        {  17, 0xe1500000, 0xfdffffff }, // cmp:7:0xE3500000 
     3051        {  19, 0xeb000000, 0xff000000 }, // b, bl:3:0xEB0005F1 
     3052        {  20, 0xe1500000, 0xfdffffff }, // cmp:7:0xE3500000 
     3053        {  22, 0xe1a02002, 0xfdffffff }, // mov:6:0xE3A02002 
     3054        {  23, 0xe59f1154, 0xfdffffff }, // ldr:4:0xE59F1154 
     3055        {  24, 0xe1a000cf, 0xfdffffff }, // mov:6:0xE3A000CF 
     3056        {  25, 0xeb000000, 0xff000000 }, // b, bl:3:0xEB011B5F 
     3057        {  26, 0xe1100001, 0xfdffffff }, // tst:7:0xE3100001 
     3058        {  27, 0x159f1190, 0xfdffffff }, // ldr:4:0x159F1190 
     3059        {  28, 0x151f0fdc, 0xfdffffff }, // ldr:4:0x151F0FDC 
     3060        {  29, 0x1b000000, 0xff000000 }, // b, bl:3:0x1BFFD769 
     3061        {  31, 0xea000000, 0xff000000 }, // b, bl:3:0xEA00DEDB 
     3062        { -1, -1, -1 }, 
     3063        /* 24/32 */ 
     3064}; 
     3065 
     3066static FuncSig func_sig_FreeMemory_2[] = { 
     3067        {   0, 0xe5900000, 0xfdffffff }, // ldr:4:0xE5900000 
     3068        {   1, 0xea000000, 0xff000000 }, // b, bl:3:0xEAF80564 
     3069        {   2, 0xe5900000, 0xfdffffff }, // ldr:4:0xE5900000 
     3070        {   3, 0xea000000, 0xff000000 }, // b, bl:3:0xEAF80561 
     3071        {   4, 0xe5801000, 0xfdffffff }, // str:4:0xE5801000 
     3072        {  10, 0xe5900000, 0xfdffffff }, // ldr:4:0xE5900000 
     3073        {  17, 0xe1a00000, 0xfdffffff }, // mov:6:0xE3A00000 
     3074        {  18, 0xe58d0000, 0xfdffffff }, // str:4:0xE58D0000 
     3075        {  19, 0xe040087f, 0xfdffffff }, // sub:6:0xE240087F 
     3076        {  20, 0xe1a0100d, 0xfdffffff }, // mov:6:0xE1A0100D 
     3077        {  21, 0xe1a02004, 0xfdffffff }, // mov:6:0xE3A02004 
     3078        {  22, 0xeb000000, 0xff000000 }, // b, bl:3:0xEBFC5F73 
     3079        {  25, 0xe1a0000d, 0xfdffffff }, // mov:6:0xE1A0000D 
     3080        {  26, 0xeb000000, 0xff000000 }, // b, bl:3:0xEBF8061F 
     3081        {  27, 0xe59d0000, 0xfdffffff }, // ldr:4:0xE59D0000 
     3082        {  30, 0xe5905000, 0xfdffffff }, // ldr:4:0xE5905000 
     3083        {  31, 0xe04dd01c, 0xfdffffff }, // sub:6:0xE24DD01C 
     3084        { -1, -1, -1 }, 
     3085        /* 17/32 */ 
     3086}; 
     3087 
     3088static FuncSig func_sig_GetBatteryTemperature_2[] = { 
     3089        {   1, 0xe59f40d8, 0xfdffffff }, // ldr:4:0xE59F40D8 
     3090        {   2, 0xe5940008, 0xfdffffff }, // ldr:4:0xE5940008 
     3091        {   3, 0xe1500000, 0xfdffffff }, // cmp:7:0xE3500000 
     3092        {   4, 0x059f10f0, 0xfdffffff }, // ldr:4:0x059F10F0 
     3093        {   5, 0x008f00d8, 0xfdffffff }, // add:6:0x028F00D8 
     3094        {   6, 0x0b000000, 0xff000000 }, // b, bl:3:0x0BFF5AE1 
     3095        {   7, 0xe594000c, 0xfdffffff }, // ldr:4:0xE594000C 
     3096        {   9, 0xe1510000, 0xfdffffff }, // cmp:7:0xE3510000 
     3097        {  11, 0x0a000000, 0xff000000 }, // b, bl:3:0x0A00000F 
     3098        {  12, 0xe1510001, 0xfdffffff }, // cmp:7:0xE3510001 
     3099        {  14, 0x0a000000, 0xff000000 }, // b, bl:3:0x0AFFFFD4 
     3100        {  15, 0xe5900010, 0xfdffffff }, // ldr:4:0xE5900010 
     3101        {  16, 0xe1500002, 0xfdffffff }, // cmp:7:0xE3500002 
     3102        {  17, 0x059f10c0, 0xfdffffff }, // ldr:4:0x059F10C0 
     3103        {  18, 0x008f00a4, 0xfdffffff }, // add:6:0x028F00A4 
     3104        {  19, 0x0b000000, 0xff000000 }, // b, bl:3:0x0BFF5AD4 
     3105        {  20, 0xe594100c, 0xfdffffff }, // ldr:4:0xE594100C 
     3106        {  22, 0xe5911010, 0xfdffffff }, // ldr:4:0xE5911010 
     3107        {  23, 0xe59f20a0, 0xfdffffff }, // ldr:4:0xE59F20A0 
     3108        {  24, 0xe0811181, 0xfdffffff }, // add:6:0xE0811181 
     3109        {  26, 0xe0821201, 0xfdffffff }, // add:6:0xE0821201 
     3110        {  27, 0xea000000, 0xff000000 }, // b, bl:3:0xEAFFFFAD 
     3111        {  29, 0xe59f4068, 0xfdffffff }, // ldr:4:0xE59F4068 
     3112        {  30, 0xe5940008, 0xfdffffff }, // ldr:4:0xE5940008 
     3113        {  31, 0xe1500000, 0xfdffffff }, // cmp:7:0xE3500000 
     3114        { -1, -1, -1 }, 
     3115        /* 25/32 */ 
     3116}; 
     3117 
     3118static FuncSig func_sig_GetCCDTemperature_2[] = { 
     3119        {   1, 0xe59f4148, 0xfdffffff }, // ldr:4:0xE59F4148 
     3120        {   2, 0xe5940008, 0xfdffffff }, // ldr:4:0xE5940008 
     3121        {   3, 0xe1500000, 0xfdffffff }, // cmp:7:0xE3500000 
     3122        {   4, 0x01a010fa, 0xfdffffff }, // mov:6:0x03A010FA 
     3123        {   5, 0x008f0f52, 0xfdffffff }, // add:6:0x028F0F52 
     3124        {   6, 0x0b000000, 0xff000000 }, // b, bl:3:0x0BFF5AFD 
     3125        {   7, 0xe594000c, 0xfdffffff }, // ldr:4:0xE594000C 
     3126        {   9, 0xe1510000, 0xfdffffff }, // cmp:7:0xE3510000 
     3127        {  11, 0x0a000000, 0xff000000 }, // b, bl:3:0x0A00002B 
     3128        {  12, 0xe1510001, 0xfdffffff }, // cmp:7:0xE3510001 
     3129        {  14, 0x1a000000, 0xff000000 }, // b, bl:3:0x1A00000C 
     3130        {  15, 0xe5900008, 0xfdffffff }, // ldr:4:0xE5900008 
     3131        {  16, 0xe1500002, 0xfdffffff }, // cmp:7:0xE3500002 
     3132        {  17, 0x01a010ff, 0xfdffffff }, // mov:6:0x03A010FF 
     3133        {  18, 0x008f0f45, 0xfdffffff }, // add:6:0x028F0F45 
     3134        {  19, 0x0b000000, 0xff000000 }, // b, bl:3:0x0BFF5AF0 
     3135        {  20, 0xe594100c, 0xfdffffff }, // ldr:4:0xE594100C 
     3136        {  22, 0xe5911008, 0xfdffffff }, // ldr:4:0xE5911008 
     3137        {  23, 0xe59f2110, 0xfdffffff }, // ldr:4:0xE59F2110 
     3138        {  24, 0xe0811181, 0xfdffffff }, // add:6:0xE0811181 
     3139        {  26, 0xe0821201, 0xfdffffff }, // add:6:0xE0821201 
     3140        {  27, 0xea000000, 0xff000000 }, // b, bl:3:0xEAFFFFC9 
     3141        {  29, 0xe59f40d8, 0xfdffffff }, // ldr:4:0xE59F40D8 
     3142        {  30, 0xe5940008, 0xfdffffff }, // ldr:4:0xE5940008 
     3143        {  31, 0xe1500000, 0xfdffffff }, // cmp:7:0xE3500000 
     3144        { -1, -1, -1 }, 
     3145        /* 25/32 */ 
     3146}; 
     3147 
     3148static FuncSig func_sig_GetCurrentAvValue_2[] = { 
     3149        {   1, 0xeb000000, 0xff000000 }, // b, bl:3:0xEB03B1EB 
     3150        {   2, 0xe1a04000, 0xfdffffff }, // mov:6:0xE1A04000 
     3151        {   3, 0xe51f00ac, 0xfdffffff }, // ldr:4:0xE51F00AC 
     3152        {   4, 0xe5900000, 0xfdffffff }, // ldr:4:0xE5900000 
     3153        {   5, 0xe1500000, 0xfdffffff }, // cmp:7:0xE3500000 
     3154        {   6, 0x01a010be, 0xfdffffff }, // mov:6:0x03A010BE 
     3155        {   7, 0x004f00b8, 0xfdffffff }, // sub:6:0x024F00B8 
     3156        {   8, 0x0b000000, 0xff000000 }, // b, bl:3:0x0BFBBE5C 
     3157        {   9, 0xeb000000, 0xff000000 }, // b, bl:3:0xEB0003E1 
     3158        {  10, 0xe0804004, 0xfdffffff }, // add:6:0xE0804004 
     3159        {  11, 0xeb000000, 0xff000000 }, // b, bl:3:0xEB000B5C 
     3160        {  12, 0xeb000000, 0xff000000 }, // b, bl:3:0xEB03B1B1 
     3161        {  13, 0xe0800004, 0xfdffffff }, // add:6:0xE0800004 
     3162        {  14, 0xe1a00800, 0xfdffffff }, // mov:6:0xE1A00800 
     3163        {  15, 0xe1a00840, 0xfdffffff }, // mov:6:0xE1A00840 
     3164        {  18, 0xe1a04000, 0xfdffffff }, // mov:6:0xE1A04000 
     3165        {  19, 0xe51f00ec, 0xfdffffff }, // ldr:4:0xE51F00EC 
     3166        {  20, 0xe1a05001, 0xfdffffff }, // mov:6:0xE1A05001 
     3167        {  21, 0xe5900000, 0xfdffffff }, // ldr:4:0xE5900000 
     3168        {  22, 0xe1a06002, 0xfdffffff }, // mov:6:0xE1A06002 
     3169        {  23, 0xe1500000, 0xfdffffff }, // cmp:7:0xE3500000 
     3170        {  24, 0x01a010cc, 0xfdffffff }, // mov:6:0x03A010CC 
     3171        {  25, 0x004f0c01, 0xfdffffff }, // sub:6:0x024F0C01 
     3172        {  26, 0x0b000000, 0xff000000 }, // b, bl:3:0x0BFBBE4A 
     3173        {  27, 0xe1a02006, 0xfdffffff }, // mov:6:0xE1A02006 
     3174        {  28, 0xe1a0100d, 0xfdffffff }, // mov:6:0xE1A0100D 
     3175        {  29, 0xe08d0004, 0xfdffffff }, // add:6:0xE28D0004 
     3176        {  30, 0xeb000000, 0xff000000 }, // b, bl:3:0xEB03B1A8 
     3177        {  31, 0xeb000000, 0xff000000 }, // b, bl:3:0xEB000B48 
     3178        { -1, -1, -1 }, 
     3179        /* 29/32 */ 
     3180}; 
     3181 
     3182static FuncSig func_sig_GetDrive_ClusterSize_2[] = { 
     3183        {   0, 0xe1500001, 0xfdffffff }, // cmp:7:0xE3500001 
     3184        {   2, 0xe1a04000, 0xfdffffff }, // mov:6:0xE1A04000 
     3185        {   3, 0xa59f02a0, 0xfdffffff }, // ldr:4:0xA59F02A0 
     3186        {   4, 0xa1a01e57, 0xfdffffff }, // mov:6:0xA3A01E57 
     3187        {   5, 0xab000000, 0xff000000 }, // b, bl:3:0xABFF3332 
     3188        {   6, 0xe1a00017, 0xfdffffff }, // mov:6:0xE3A00017 
     3189        {   7, 0xe51f181c, 0xfdffffff }, // ldr:4:0xE51F181C 
     3190        {   8, 0xe0000094, 0xfdffffff }, // and:6:0xE0000094 mul:11:0xE0000094 
     3191        {   9, 0xe0810100, 0xfdffffff }, // add:6:0xE0810100 
     3192        {  10, 0xe5900054, 0xfdffffff }, // ldr:4:0xE5900054 
     3193        {  12, 0xea000000, 0xff000000 }, // b, bl:3:0xEA00095B 
     3194        {  13, 0xe1500001, 0xfdffffff }, // cmp:7:0xE3500001 
     3195        {  15, 0xe1a04000, 0xfdffffff }, // mov:6:0xE1A04000 
     3196        {  16, 0xa59f026c, 0xfdffffff }, // ldr:4:0xA59F026C 
     3197        {  17, 0xa59f1290, 0xfdffffff }, // ldr:4:0xA59F1290 
     3198        {  18, 0xab000000, 0xff000000 }, // b, bl:3:0xABFF3325 
     3199        {  19, 0xe1a00017, 0xfdffffff }, // mov:6:0xE3A00017 
     3200        {  20, 0xe51f1850, 0xfdffffff }, // ldr:4:0xE51F1850 
     3201        {  21, 0xe0000094, 0xfdffffff }, // and:6:0xE0000094 mul:11:0xE0000094 
     3202        {  22, 0xe0810100, 0xfdffffff }, // add:6:0xE0810100 
     3203        {  23, 0xe5900054, 0xfdffffff }, // ldr:4:0xE5900054 
     3204        {  25, 0xea000000, 0xff000000 }, // b, bl:3:0xEA000952 
     3205        {  26, 0xe1500001, 0xfdffffff }, // cmp:7:0xE3500001 
     3206        {  28, 0xe1a04000, 0xfdffffff }, // mov:6:0xE1A04000 
     3207        {  29, 0xa59f0238, 0xfdffffff }, // ldr:4:0xA59F0238 
     3208        {  30, 0xa59f1260, 0xfdffffff }, // ldr:4:0xA59F1260 
     3209        {  31, 0xab000000, 0xff000000 }, // b, bl:3:0xABFF3318 
     3210        { -1, -1, -1 }, 
     3211        /* 29/32 */ 
     3212}; 
     3213 
     3214static FuncSig func_sig_GetDrive_FreeClusters_2[] = { 
     3215        {   0, 0xe1500001, 0xfdffffff }, // cmp:7:0xE3500001 
     3216        {   2, 0xe1a04000, 0xfdffffff }, // mov:6:0xE1A04000 
     3217        {   3, 0xa59f0238, 0xfdffffff }, // ldr:4:0xA59F0238 
     3218        {   4, 0xa59f1260, 0xfdffffff }, // ldr:4:0xA59F1260 
     3219        {   5, 0xab000000, 0xff000000 }, // b, bl:3:0xABFF3318 
     3220        {   6, 0xe1a00017, 0xfdffffff }, // mov:6:0xE3A00017 
     3221        {   7, 0xe51f1884, 0xfdffffff }, // ldr:4:0xE51F1884 
     3222        {   8, 0xe0000094, 0xfdffffff }, // and:6:0xE0000094 mul:11:0xE0000094 
     3223        {   9, 0xe0810100, 0xfdffffff }, // add:6:0xE0810100 
     3224        {  10, 0xe5900054, 0xfdffffff }, // ldr:4:0xE5900054 
     3225        {  12, 0xea000000, 0xff000000 }, // b, bl:3:0xEA00094A 
     3226        {  13, 0xe1500001, 0xfdffffff }, // cmp:7:0xE3500001 
     3227        {  15, 0xe1a04000, 0xfdffffff }, // mov:6:0xE1A04000 
     3228        {  16, 0xa59f1234, 0xfdffffff }, // ldr:4:0xA59F1234 
     3229        {  17, 0xa04f0d22, 0xfdffffff }, // sub:6:0xA24F0D22 
     3230        {  18, 0xab000000, 0xff000000 }, // b, bl:3:0xABFF330B 
     3231        {  19, 0xe1a00017, 0xfdffffff }, // mov:6:0xE3A00017 
     3232        {  20, 0xe51f18b8, 0xfdffffff }, // ldr:4:0xE51F18B8 
     3233        {  21, 0xe0000094, 0xfdffffff }, // and:6:0xE0000094 mul:11:0xE0000094 
     3234        {  22, 0xe0810100, 0xfdffffff }, // add:6:0xE0810100 
     3235        {  23, 0xe5900054, 0xfdffffff }, // ldr:4:0xE5900054 
     3236        {  25, 0xea000000, 0xff000000 }, // b, bl:3:0xEA000941 
     3237        {  26, 0xe1500001, 0xfdffffff }, // cmp:7:0xE3500001 
     3238        {  28, 0xe1a04000, 0xfdffffff }, // mov:6:0xE1A04000 
     3239        {  29, 0xa59f01d0, 0xfdffffff }, // ldr:4:0xA59F01D0 
     3240        {  30, 0xa59f1200, 0xfdffffff }, // ldr:4:0xA59F1200 
     3241        {  31, 0xab000000, 0xff000000 }, // b, bl:3:0xABFF32FE 
     3242        { -1, -1, -1 }, 
     3243        /* 29/32 */ 
     3244}; 
     3245 
     3246static FuncSig func_sig_GetDrive_TotalClusters_2[] = { 
     3247        {   0, 0xe1500001, 0xfdffffff }, // cmp:7:0xE3500001 
     3248        {   2, 0xe1a04000, 0xfdffffff }, // mov:6:0xE1A04000 
     3249        {   3, 0xa59f026c, 0xfdffffff }, // ldr:4:0xA59F026C 
     3250        {   4, 0xa59f1290, 0xfdffffff }, // ldr:4:0xA59F1290 
     3251        {   5, 0xab000000, 0xff000000 }, // b, bl:3:0xABFF3325 
     3252        {   6, 0xe1a00017, 0xfdffffff }, // mov:6:0xE3A00017 
     3253        {   7, 0xe51f1850, 0xfdffffff }, // ldr:4:0xE51F1850 
     3254        {   8, 0xe0000094, 0xfdffffff }, // and:6:0xE0000094 mul:11:0xE0000094 
     3255        {   9, 0xe0810100, 0xfdffffff }, // add:6:0xE0810100 
     3256        {  10, 0xe5900054, 0xfdffffff }, // ldr:4:0xE5900054 
     3257        {  12, 0xea000000, 0xff000000 }, // b, bl:3:0xEA000952 
     3258        {  13, 0xe1500001, 0xfdffffff }, // cmp:7:0xE3500001 
     3259        {  15, 0xe1a04000, 0xfdffffff }, // mov:6:0xE1A04000 
     3260        {  16, 0xa59f0238, 0xfdffffff }, // ldr:4:0xA59F0238 
     3261        {  17, 0xa59f1260, 0xfdffffff }, // ldr:4:0xA59F1260 
     3262        {  18, 0xab000000, 0xff000000 }, // b, bl:3:0xABFF3318 
     3263        {  19, 0xe1a00017, 0xfdffffff }, // mov:6:0xE3A00017 
     3264        {  20, 0xe51f1884, 0xfdffffff }, // ldr:4:0xE51F1884 
     3265        {  21, 0xe0000094, 0xfdffffff }, // and:6:0xE0000094 mul:11:0xE0000094 
     3266        {  22, 0xe0810100, 0xfdffffff }, // add:6:0xE0810100 
     3267        {  23, 0xe5900054, 0xfdffffff }, // ldr:4:0xE5900054 
     3268        {  25, 0xea000000, 0xff000000 }, // b, bl:3:0xEA00094A 
     3269        {  26, 0xe1500001, 0xfdffffff }, // cmp:7:0xE3500001 
     3270        {  28, 0xe1a04000, 0xfdffffff }, // mov:6:0xE1A04000 
     3271        {  29, 0xa59f1234, 0xfdffffff }, // ldr:4:0xA59F1234 
     3272        {  30, 0xa04f0d22, 0xfdffffff }, // sub:6:0xA24F0D22 
     3273        {  31, 0xab000000, 0xff000000 }, // b, bl:3:0xABFF330B 
     3274        { -1, -1, -1 }, 
     3275        /* 29/32 */ 
     3276}; 
     3277 
     3278static FuncSig func_sig_GetOpticalTemperature_2[] = { 
     3279        {   1, 0xe59f4068, 0xfdffffff }, // ldr:4:0xE59F4068 
     3280        {   2, 0xe5940008, 0xfdffffff }, // ldr:4:0xE5940008 
     3281        {   3, 0xe1500000, 0xfdffffff }, // cmp:7:0xE3500000 
     3282        {   4, 0x01a010de, 0xfdffffff }, // mov:6:0x03A010DE 
     3283        {   5, 0x008f0068, 0xfdffffff }, // add:6:0x028F0068 
     3284        {   6, 0x0b000000, 0xff000000 }, // b, bl:3:0x0BFF5AC5 
     3285        {   7, 0xe594000c, 0xfdffffff }, // ldr:4:0xE594000C 
     3286        {   9, 0xe1510000, 0xfdffffff }, // cmp:7:0xE3510000 
     3287        {  10, 0x1a000000, 0xff000000 }, // b, bl:3:0x1A00000C 
     3288        {  11, 0xe5900000, 0xfdffffff }, // ldr:4:0xE5900000 
     3289        {  12, 0xe1500002, 0xfdffffff }, // cmp:7:0xE3500002 
     3290        {  13, 0x01a010e0, 0xfdffffff }, // mov:6:0x03A010E0 
     3291        {  14, 0x008f0044, 0xfdffffff }, // add:6:0x028F0044 
     3292        {  15, 0x0b000000, 0xff000000 }, // b, bl:3:0x0BFF5ABC 
     3293        {  16, 0xe594100c, 0xfdffffff }, // ldr:4:0xE594100C 
     3294        {  18, 0xe5911000, 0xfdffffff }, // ldr:4:0xE5911000 
     3295        {  19, 0xe59f2040, 0xfdffffff }, // ldr:4:0xE59F2040 
     3296        {  20, 0xe0811181, 0xfdffffff }, // add:6:0xE0811181 
     3297        {  22, 0xe0821201, 0xfdffffff }, // add:6:0xE0821201 
     3298        {  23, 0xea000000, 0xff000000 }, // b, bl:3:0xEAFFFF95 
     3299        {  24, 0xe1510001, 0xfdffffff }, // cmp:7:0xE3510001 
     3300        {  26, 0x1a000000, 0xff000000 }, // b, bl:3:0x1AFFFFC8 
     3301        {  28, 0x0a000000, 0xff000000 }, // b, bl:3:0x0AFFFFAA 
     3302        {  29, 0x000026d8, 0xfdffffff }, // and:6:0x000026D8 
     3303        {  30, 0x70656854, 0xfdffffff }, // rsb:6:0x72656854 
     3304        { -1, -1, -1 }, 
     3305        /* 25/32 */ 
     3306}; 
     3307 
     3308static FuncSig func_sig_GetSystemTime_2[] = { 
     3309        {   1, 0xe1a0000d, 0xfdffffff }, // mov:6:0xE1A0000D 
     3310        {   2, 0xeb000000, 0xff000000 }, // b, bl:3:0xEBF8061F 
     3311        {   3, 0xe59d0000, 0xfdffffff }, // ldr:4:0xE59D0000 
     3312        {   6, 0xe5905000, 0xfdffffff }, // ldr:4:0xE5905000 
     3313        {   7, 0xe04dd01c, 0xfdffffff }, // sub:6:0xE24DD01C 
     3314        {   8, 0xe0804004, 0xfdffffff }, // add:6:0xE2804004 
     3315        {   9, 0xe08d0008, 0xfdffffff }, // add:6:0xE28D0008 
     3316        {  10, 0xe1a01014, 0xfdffffff }, // mov:6:0xE3A01014 
     3317        {  11, 0xeb000000, 0xff000000 }, // b, bl:3:0xEB01F745 
     3318        {  12, 0xe1550000, 0xfdffffff }, // cmp:7:0xE3550000 
     3319        {  13, 0x108d3008, 0xfdffffff }, // add:6:0x128D3008 
     3320        {  14, 0xe1a00000, 0xfdffffff }, // mov:6:0xE3A00000 
     3321        {  15, 0x1a000000, 0xff000000 }, // b, bl:3:0x1A000004 
     3322        {  16, 0xe08f00ac, 0xfdffffff }, // add:6:0xE28F00AC 
     3323        {  17, 0xeb000000, 0xff000000 }, // b, bl:3:0xEBF7A94A 
     3324        {  18, 0xe1a00001, 0xfdffffff }, // mov:6:0xE3A00001 
     3325        {  19, 0xe08dd01c, 0xfdffffff }, // add:6:0xE28DD01C 
     3326        {  21, 0xe0844004, 0xfdffffff }, // add:6:0xE2844004 
     3327        {  22, 0xe1a01000, 0xfdffffff }, // mov:6:0xE1A01000 
     3328        {  23, 0xe5142004, 0xfdffffff }, // ldr:4:0xE5142004 
     3329        {  24, 0xe0800001, 0xfdffffff }, // add:6:0xE2800001 
     3330        {  25, 0xe1500005, 0xfdffffff }, // cmp:7:0xE3500005 
     3331        {  26, 0xe5832101, 0xfdffffff }, // str:4:0xE7832101 
     3332        {  27, 0xba000000, 0xff000000 }, // b, bl:3:0xBAFFFFF8 
     3333        {  28, 0xe59d3018, 0xfdffffff }, // ldr:4:0xE59D3018 
     3334        {  29, 0xe58d3000, 0xfdffffff }, // str:4:0xE58D3000 
     3335        {  30, 0xe08d3008, 0xfdffffff }, // add:6:0xE28D3008 
     3336        { -1, -1, -1 }, 
     3337        /* 27/32 */ 
     3338}; 
     3339 
     3340static FuncSig func_sig_GetZoomLensCurrentPosition_2[] = { 
     3341        {   1, 0xeb000000, 0xff000000 }, // b, bl:3:0xEB01E38F 
     3342        {   2, 0xe1500000, 0xfdffffff }, // cmp:7:0xE3500000 
     3343        {   4, 0x0a000000, 0xff000000 }, // b, bl:3:0x0AFFFAA0 
     3344        {   6, 0x1a000000, 0xff000000 }, // b, bl:3:0x1A01E38F 
     3345        {   7, 0xea000000, 0xff000000 }, // b, bl:3:0xEA01E3A9 
     3346        {   8, 0xe51f02d0, 0xfdffffff }, // ldr:4:0xE51F02D0 
     3347        {  11, 0xe51f02dc, 0xfdffffff }, // ldr:4:0xE51F02DC 
     3348        {  12, 0xe590102c, 0xfdffffff }, // ldr:4:0xE590102C 
     3349        {  13, 0xe5900028, 0xfdffffff }, // ldr:4:0xE5900028 
     3350        {  14, 0xe0410000, 0xfdffffff }, // sub:6:0xE0410000 
     3351        {  16, 0xe51f22f0, 0xfdffffff }, // ldr:4:0xE51F22F0 
     3352        {  17, 0xe1a01001, 0xfdffffff }, // mov:6:0xE3A01001 
     3353        {  18, 0xe5821008, 0xfdffffff }, // str:4:0xE5821008 
     3354        {  19, 0xe1a01000, 0xfdffffff }, // mov:6:0xE1A01000 
     3355        {  20, 0xe51f02ec, 0xfdffffff }, // ldr:4:0xE51F02EC 
     3356        {  21, 0xe1a0200c, 0xfdffffff }, // mov:6:0xE3A0200C 
     3357        {  22, 0xea000000, 0xff000000 }, // b, bl:3:0xEA021E93 
     3358        {  23, 0xe51f130c, 0xfdffffff }, // ldr:4:0xE51F130C 
     3359        {  24, 0xe1a00000, 0xfdffffff }, // mov:6:0xE3A00000 
     3360        {  25, 0xe5810008, 0xfdffffff }, // str:4:0xE5810008 
     3361        {  27, 0xe51f031c, 0xfdffffff }, // ldr:4:0xE51F031C 
     3362        {  28, 0xe5900014, 0xfdffffff }, // ldr:4:0xE5900014 
     3363        {  30, 0xe51f0328, 0xfdffffff }, // ldr:4:0xE51F0328 
     3364        {  31, 0xe590001c, 0xfdffffff }, // ldr:4:0xE590001C 
     3365        { -1, -1, -1 }, 
     3366        /* 24/32 */ 
     3367}; 
     3368 
     3369static FuncSig func_sig_SetPropertyCase_2[] = { 
     3370        {   1, 0xe51f4020, 0xfdffffff }, // ldr:4:0xE51F4020 
     3371        {   2, 0xe1a05000, 0xfdffffff }, // mov:6:0xE1A05000 
     3372        {   3, 0xe5940000, 0xfdffffff }, // ldr:4:0xE5940000 
     3373        {   4, 0xe1a06001, 0xfdffffff }, // mov:6:0xE1A06001 
     3374        {   5, 0xe1500000, 0xfdffffff }, // cmp:7:0xE3500000 
     3375        {   6, 0x059f1908, 0xfdffffff }, // ldr:4:0x059F1908 
     3376        {   7, 0x004f0034, 0xfdffffff }, // sub:6:0x024F0034 
     3377        {   8, 0xe1a07002, 0xfdffffff }, // mov:6:0xE1A07002 
     3378        {   9, 0x0b000000, 0xff000000 }, // b, bl:3:0x0BFEBC43 
     3379        {  10, 0xe5940008, 0xfdffffff }, // ldr:4:0xE5940008 
     3380        {  11, 0xe59f38f8, 0xfdffffff }, // ldr:4:0xE59F38F8 
     3381        {  12, 0xe59f18f8, 0xfdffffff }, // ldr:4:0xE59F18F8 
     3382        {  13, 0xe5900000, 0xfdffffff }, // ldr:4:0xE5900000 
     3383        {  14, 0xe04f2050, 0xfdffffff }, // sub:6:0xE24F2050 
     3384        {  15, 0xeb000000, 0xff000000 }, // b, bl:3:0xEBFEBBF7 
     3385        {  16, 0xe5940008, 0xfdffffff }, // ldr:4:0xE5940008 
     3386        {  17, 0xe1a03007, 0xfdffffff }, // mov:6:0xE1A03007 
     3387        {  18, 0xe1a02006, 0xfdffffff }, // mov:6:0xE1A02006 
     3388        {  19, 0xe1a01005, 0xfdffffff }, // mov:6:0xE1A01005 
     3389        {  20, 0xeb000000, 0xff000000 }, // b, bl:3:0xEBFFFF87 
     3390        {  21, 0xe1500000, 0xfdffffff }, // cmp:7:0xE3500000 
     3391        {  22, 0x159f18d4, 0xfdffffff }, // ldr:4:0x159F18D4 
     3392        {  23, 0x104f0074, 0xfdffffff }, // sub:6:0x124F0074 
     3393        {  24, 0x1b000000, 0xff000000 }, // b, bl:3:0x1BFEBC34 
     3394        {  25, 0xe5940008, 0xfdffffff }, // ldr:4:0xE5940008 
     3395        {  26, 0xe5900000, 0xfdffffff }, // ldr:4:0xE5900000 
     3396        {  28, 0xea000000, 0xff000000 }, // b, bl:3:0xEAFEBAD3 
     3397        {  29, 0xe1a0c000, 0xfdffffff }, // mov:6:0xE1A0C000 
     3398        {  30, 0xe1a00002, 0xfdffffff }, // mov:6:0xE1A00002 
     3399        {  31, 0xe1510e12, 0xfdffffff }, // cmp:7:0xE3510E12 
     3400        { -1, -1, -1 }, 
     3401        /* 30/32 */ 
     3402}; 
     3403 
     3404static FuncSig func_sig_kbd_pwr_off_2[] = { 
     3405        {   0, 0xe1a00000, 0xfdffffff }, // mov:6:0xE3A00000 
     3406        {   1, 0xea000000, 0xff000000 }, // b, bl:3:0xEAFFFEC5 
     3407        {   2, 0xe5900000, 0xfdffffff }, // ldr:4:0xE5900000 
     3408        {   3, 0xe0000001, 0xfdffffff }, // and:6:0xE2000001 
     3409        {   5, 0xe5801000, 0xfdffffff }, // str:4:0xE5801000 
     3410        {   7, 0xe59f107c, 0xfdffffff }, // ldr:4:0xE59F107C 
     3411        {   8, 0xe1a00020, 0xfdffffff }, // mov:6:0xE3A00020 
     3412        {   9, 0xe581001c, 0xfdffffff }, // str:4:0xE581001C 
     3413        {  10, 0xe5810024, 0xfdffffff }, // str:4:0xE5810024 
     3414        {  14, 0xe1a05000, 0xfdffffff }, // mov:6:0xE1A05000 
     3415        {  15, 0xe59f0044, 0xfdffffff }, // ldr:4:0xE59F0044 
     3416        {  16, 0xe1a04000, 0xfdffffff }, // mov:6:0xE3A04000 
     3417        {  17, 0xe5900000, 0xfdffffff }, // ldr:4:0xE5900000 
     3418        {  18, 0xe1500000, 0xfdffffff }, // cmp:7:0xE3500000 
     3419        {  19, 0x11a010d4, 0xfdffffff }, // mov:6:0x13A010D4 
     3420        {  20, 0x108f0038, 0xfdffffff }, // add:6:0x128F0038 
     3421        {  21, 0x1b000000, 0xff000000 }, // b, bl:3:0x1BFF64B5 
     3422        {  22, 0xe59f0040, 0xfdffffff }, // ldr:4:0xE59F0040 
     3423        {  23, 0xe1550000, 0xfdffffff }, // cmp:7:0xE3550000 
     3424        {  24, 0x0590401c, 0xfdffffff }, // ldr:4:0x0590401C 
     3425        {  25, 0x0a000000, 0xff000000 }, // b, bl:3:0x0A000005 
     3426        {  26, 0xe1550001, 0xfdffffff }, // cmp:7:0xE3550001 
     3427        {  27, 0x05904024, 0xfdffffff }, // ldr:4:0x05904024 
     3428        {  28, 0x0a000000, 0xff000000 }, // b, bl:3:0x0A000002 
     3429        {  29, 0xe1a010e5, 0xfdffffff }, // mov:6:0xE3A010E5 
     3430        {  30, 0xe08f0010, 0xfdffffff }, // add:6:0xE28F0010 
     3431        {  31, 0xeb000000, 0xff000000 }, // b, bl:3:0xEBFF64AB 
     3432        { -1, -1, -1 }, 
     3433        /* 27/32 */ 
     3434}; 
     3435 
     3436static FuncSig func_sig_kbd_pwr_on_2[] = { 
     3437        {   1, 0xe1a00020, 0xfdffffff }, // mov:6:0xE3A00020 
     3438        {   2, 0xeb000000, 0xff000000 }, // b, bl:3:0xEBFFFED8 
     3439        {   3, 0xe04f2020, 0xfdffffff }, // sub:6:0xE24F2020 
     3440        {   4, 0xe0821000, 0xfdffffff }, // add:6:0xE2821000 
     3441        {   5, 0xe1a03000, 0xfdffffff }, // mov:6:0xE3A03000 
     3442        {   6, 0xe1a0000a, 0xfdffffff }, // mov:6:0xE3A0000A 
     3443        {   7, 0xeb000000, 0xff000000 }, // b, bl:3:0xEB0096D6 
     3444        {   8, 0xe1100001, 0xfdffffff }, // tst:7:0xE3100001 
     3445        {   9, 0x11500015, 0xfdffffff }, // cmp:7:0x13500015 
     3446        {  10, 0x11a010f9, 0xfdffffff }, // mov:6:0x13A010F9 
     3447        {  11, 0x108f00ac, 0xfdffffff }, // add:6:0x128F00AC 
     3448        {  12, 0x1b000000, 0xff000000 }, // b, bl:3:0x1BFF64D2 
     3449        {  13, 0xe59f009c, 0xfdffffff }, // ldr:4:0xE59F009C 
     3450        {  14, 0xe59f10ac, 0xfdffffff }, // ldr:4:0xE59F10AC 
     3451        {  15, 0xe5900004, 0xfdffffff }, // ldr:4:0xE5900004 
     3452        {  17, 0xe1a030fa, 0xfdffffff }, // mov:6:0xE3A030FA 
     3453        {  18, 0xe08f2090, 0xfdffffff }, // add:6:0xE28F2090 
     3454        {  19, 0xea000000, 0xff000000 }, // b, bl:3:0xEAFF6485 
     3455        {  20, 0xe1a00000, 0xfdffffff }, // mov:6:0xE3A00000 
     3456        {  21, 0xea000000, 0xff000000 }, // b, bl:3:0xEAFFFEC5 
     3457        {  22, 0xe5900000, 0xfdffffff }, // ldr:4:0xE5900000 
     3458        {  23, 0xe0000001, 0xfdffffff }, // and:6:0xE2000001 
     3459        {  25, 0xe5801000, 0xfdffffff }, // str:4:0xE5801000 
     3460        {  27, 0xe59f107c, 0xfdffffff }, // ldr:4:0xE59F107C 
     3461        {  28, 0xe1a00020, 0xfdffffff }, // mov:6:0xE3A00020 
     3462        {  29, 0xe581001c, 0xfdffffff }, // str:4:0xE581001C 
     3463        {  30, 0xe5810024, 0xfdffffff }, // str:4:0xE5810024 
     3464        { -1, -1, -1 }, 
     3465        /* 27/32 */ 
     3466}; 
     3467 
     3468static FuncSig func_sig_strchr_2[] = { 
     3469        {   0, 0xe00120ff, 0xfdffffff }, // and:6:0xE20120FF 
     3470        {   2, 0xe1510002, 0xfdffffff }, // cmp:7:0xE1510002 
     3471        {   4, 0xe1510000, 0xfdffffff }, // cmp:7:0xE3510000 
     3472        {   5, 0xe0800001, 0xfdffffff }, // add:6:0xE2800001 
     3473        {   6, 0x1a000000, 0xff000000 }, // b, bl:3:0x1AFFFFF9 
     3474        {   7, 0xe1a00000, 0xfdffffff }, // mov:6:0xE3A00000 
     3475        {   9, 0xe1a02000, 0xfdffffff }, // mov:6:0xE3A02000 
     3476        {  10, 0xe00130ff, 0xfdffffff }, // and:6:0xE20130FF 
     3477        {  12, 0xe1510003, 0xfdffffff }, // cmp:7:0xE1510003 
     3478        {  13, 0x01a02000, 0xfdffffff }, // mov:6:0x01A02000 
     3479        {  14, 0xe1510000, 0xfdffffff }, // cmp:7:0xE3510000 
     3480        {  15, 0xe0800001, 0xfdffffff }, // add:6:0xE2800001 
     3481        {  16, 0x1a000000, 0xff000000 }, // b, bl:3:0x1AFFFFF9 
     3482        {  17, 0xe1a00002, 0xfdffffff }, // mov:6:0xE1A00002 
     3483        {  19, 0xe1a03000, 0xfdffffff }, // mov:6:0xE1A03000 
     3484        {  20, 0xe52de004, 0xfdffffff }, // str:4:0xE52DE004 
     3485        {  21, 0xea000000, 0xff000000 }, // b, bl:3:0xEA000006 
     3486        {  22, 0xe1a02001, 0xfdffffff }, // mov:6:0xE1A02001 
     3487        {  23, 0xea000000, 0xff000000 }, // b, bl:3:0xEA000001 
     3488        {  24, 0xe15c0000, 0xfdffffff }, // cmp:7:0xE35C0000 
     3489        {  25, 0x0a000000, 0xff000000 }, // b, bl:3:0x0A000005 
     3490        {  27, 0xe15c000e, 0xfdffffff }, // cmp:7:0xE15C000E 
     3491        {  28, 0x1a000000, 0xff000000 }, // b, bl:3:0x1AFFFFFA 
     3492        {  30, 0xe15e0000, 0xfdffffff }, // cmp:7:0xE35E0000 
     3493        {  31, 0x1a000000, 0xff000000 }, // b, bl:3:0x1AFFFFF5 
     3494        { -1, -1, -1 }, 
     3495        /* 25/32 */ 
     3496}; 
     3497 
     3498static FuncSig func_sig_strcpy_2[] = { 
     3499        {   0, 0xe1a02000, 0xfdffffff }, // mov:6:0xE1A02000 
     3500        {   2, 0xe1530000, 0xfdffffff }, // cmp:7:0xE3530000 
     3501        {   4, 0x1a000000, 0xff000000 }, // b, bl:3:0x1AFFFFFB 
     3502        {   6, 0xea000000, 0xff000000 }, // b, bl:3:0xEA000008 
     3503        {   8, 0xe1520003, 0xfdffffff }, // cmp:7:0xE1520003 
     3504        {   9, 0x00800001, 0xfdffffff }, // add:6:0x02800001 
     3505        {  10, 0x00811001, 0xfdffffff }, // add:6:0x02811001 
     3506        {  11, 0x0a000000, 0xff000000 }, // b, bl:3:0x0A000003 
     3507        {  14, 0xe0400001, 0xfdffffff }, // sub:6:0xE0400001 
     3508        {  17, 0xe1520000, 0xfdffffff }, // cmp:7:0xE3520000 
     3509        {  19, 0x01530000, 0xfdffffff }, // cmp:7:0x03530000 
     3510        {  20, 0x1a000000, 0xff000000 }, // b, bl:3:0x1AFFFFF1 
     3511        {  21, 0xe1a00000, 0xfdffffff }, // mov:6:0xE3A00000 
     3512        {  23, 0xe1500000, 0xfdffffff }, // cmp:7:0xE3500000 
     3513        {  25, 0xe1a01000, 0xfdffffff }, // mov:6:0xE1A01000 
     3514        {  27, 0xe1520000, 0xfdffffff }, // cmp:7:0xE3520000 
     3515        {  28, 0x10811001, 0xfdffffff }, // add:6:0x12811001 
     3516        {  29, 0x1a000000, 0xff000000 }, // b, bl:3:0x1AFFFFFB 
     3517        {  30, 0xe0410000, 0xfdffffff }, // sub:6:0xE0410000 
     3518        { -1, -1, -1 }, 
     3519        /* 19/32 */ 
     3520}; 
     3521 
     3522static FuncSig func_sig_strncpy_2[] = { 
     3523        {   0, 0xe1a03000, 0xfdffffff }, // mov:6:0xE1A03000 
     3524        {   1, 0xea000000, 0xff000000 }, // b, bl:3:0xEA000009 
     3525        {   3, 0xe15c0000, 0xfdffffff }, // cmp:7:0xE35C0000 
     3526        {   5, 0x1a000000, 0xff000000 }, // b, bl:3:0x1A000005 
     3527        {   6, 0xe1a01000, 0xfdffffff }, // mov:6:0xE3A01000 
     3528        {   7, 0xe0422001, 0xfdffffff }, // sub:6:0xE2422001 
     3529        {  10, 0x1a000000, 0xff000000 }, // b, bl:3:0x1AFFFFFB 
     3530        {  12, 0xe0522001, 0xfdffffff }, // sub:6:0xE2522001 
     3531        {  13, 0x2a000000, 0xff000000 }, // b, bl:3:0x2AFFFFF3 
     3532        {  16, 0xe1b09001, 0xfdffffff }, // mov:6:0xE1B09001 
     3533        {  17, 0xe1a0b000, 0xfdffffff }, // mov:6:0xE1A0B000 
     3534        {  18, 0xe59f11f8, 0xfdffffff }, // ldr:4:0xE59F11F8 
     3535        {  19, 0xe04dd004, 0xfdffffff }, // sub:6:0xE24DD004 
     3536        {  20, 0xe1a0400b, 0xfdffffff }, // mov:6:0xE1A0400B 
     3537        {  21, 0xe1a0a001, 0xfdffffff }, // mov:6:0xE3A0A001 
     3538        {  22, 0xe1a08000, 0xfdffffff }, // mov:6:0xE3A08000 
     3539        {  23, 0xe1a06002, 0xfdffffff }, // mov:6:0xE1A06002 
     3540        {  24, 0xe1a05000, 0xfdffffff }, // mov:6:0xE3A05000 
     3541        {  25, 0x1589b000, 0xfdffffff }, // str:4:0x1589B000 
     3542        {  28, 0xe1100040, 0xfdffffff }, // tst:7:0xE3100040 
     3543        {  29, 0x10844001, 0xfdffffff }, // add:6:0x12844001 
     3544        {  30, 0x1a000000, 0xff000000 }, // b, bl:3:0x1AFFFFFA 
     3545        { -1, -1, -1 }, 
     3546        /* 22/32 */ 
     3547}; 
     3548 
     3549static FuncSig func_sig_time_2[] = { 
     3550        {   1, 0xe1a05000, 0xfdffffff }, // mov:6:0xE1A05000 
     3551        {   2, 0xe51f40c8, 0xfdffffff }, // ldr:4:0xE51F40C8 
     3552        {   4, 0xe58d0000, 0xfdffffff }, // str:4:0xE58D0000 
     3553        {   5, 0xe5940000, 0xfdffffff }, // ldr:4:0xE5940000 
     3554        {   6, 0xe1500000, 0xfdffffff }, // cmp:7:0xE3500000 
     3555        {   7, 0x1a000000, 0xff000000 }, // b, bl:3:0x1A000007 
     3556        {   8, 0xe1a01001, 0xfdffffff }, // mov:6:0xE3A01001 
     3557        {   9, 0xe1a00000, 0xfdffffff }, // mov:6:0xE3A00000 
     3558        {  10, 0xeb000000, 0xff000000 }, // b, bl:3:0xEBFED224 
     3559        {  11, 0xe1100001, 0xfdffffff }, // tst:7:0xE3100001 
     3560        {  12, 0xe5840000, 0xfdffffff }, // str:4:0xE5840000 
     3561        {  13, 0x159f12cc, 0xfdffffff }, // ldr:4:0x159F12CC 
     3562        {  14, 0x104f00f0, 0xfdffffff }, // sub:6:0x124F00F0 
     3563        {  15, 0x1b000000, 0xff000000 }, // b, bl:3:0x1BFED40B 
     3564        {  16, 0xe5940000, 0xfdffffff }, // ldr:4:0xE5940000 
     3565        {  17, 0xe1a01000, 0xfdffffff }, // mov:6:0xE3A01000 
     3566        {  18, 0xeb000000, 0xff000000 }, // b, bl:3:0xEBFED277 
     3567        {  19, 0xe1a0000d, 0xfdffffff }, // mov:6:0xE1A0000D 
     3568        {  20, 0xeb000000, 0xff000000 }, // b, bl:3:0xEBFF05A2 
     3569        {  21, 0xe1a02001, 0xfdffffff }, // mov:6:0xE3A02001 
     3570        {  22, 0xe1a01000, 0xfdffffff }, // mov:6:0xE3A01000 
     3571        {  23, 0xe1a0000d, 0xfdffffff }, // mov:6:0xE1A0000D 
     3572        {  24, 0xeb000000, 0xff000000 }, // b, bl:3:0xEBFFFFBE 
     3573        {  25, 0xe1500000, 0xfdffffff }, // cmp:7:0xE3500000 
     3574        {  26, 0x1a000000, 0xff000000 }, // b, bl:3:0x1A000009 
     3575        {  27, 0xe594000c, 0xfdffffff }, // ldr:4:0xE594000C 
     3576        {  28, 0xe5941010, 0xfdffffff }, // ldr:4:0xE5941010 
     3577        {  29, 0xe1a02000, 0xfdffffff }, // mov:6:0xE3A02000 
     3578        {  30, 0xe0800001, 0xfdffffff }, // add:6:0xE0800001 
     3579        {  31, 0xe59d1000, 0xfdffffff }, // ldr:4:0xE59D1000 
     3580        { -1, -1, -1 }, 
     3581        /* 30/32 */ 
     3582}; 
     3583 
    29563584FuncsList func_list[] = { 
    29573585        { "AllocateMemory", func_sig_AllocateMemory_1 }, 
     3586        { "AllocateMemory", func_sig_AllocateMemory_2 }, 
    29583587        { "AllocateUncacheableMemory", func_sig_AllocateUncacheableMemory_1 }, 
    29593588        { "Close", func_sig_Close_1 }, 
    29603589        { "CreateTask", func_sig_CreateTask_1 }, 
    29613590        { "DeleteFile_Fut", func_sig_DeleteFile_Fut_1 }, 
     3591        { "EnterToCompensationEVF", func_sig_EnterToCompensationEVF_2 }, 
    29623592        { "ExecuteEventProcedure", func_sig_ExecuteEventProcedure_1 }, 
     3593        { "ExecuteEventProcedure", func_sig_ExecuteEventProcedure_2 }, 
     3594        { "ExitFromCompensationEVF", func_sig_ExitFromCompensationEVF_2 }, 
    29633595        { "ExitTask", func_sig_ExitTask_1 }, 
    29643596        { "Fclose_Fut", func_sig_Fclose_Fut_1 }, 
     
    29693601        { "Fread_Fut", func_sig_Fread_Fut_1 }, 
    29703602        { "FreeMemory", func_sig_FreeMemory_1 }, 
     3603        { "FreeMemory", func_sig_FreeMemory_2 }, 
    29713604        { "FreeUncacheableMemory", func_sig_FreeUncacheableMemory_1 }, 
    29723605        { "Fseek_Fut", func_sig_Fseek_Fut_1 }, 
    29733606        { "Fwrite_Fut", func_sig_Fwrite_Fut_1 }, 
     3607        { "GetBatteryTemperature", func_sig_GetBatteryTemperature_2 }, 
     3608        { "GetCCDTemperature", func_sig_GetCCDTemperature_2 }, 
    29743609        { "GetCurrentAvValue", func_sig_GetCurrentAvValue_1 }, 
     3610        { "GetCurrentAvValue", func_sig_GetCurrentAvValue_2 }, 
    29753611        { "GetCurrentTargetDistance", func_sig_GetCurrentTargetDistance_1 }, 
    29763612        { "GetDrive_ClusterSize", func_sig_GetDrive_ClusterSize_1 }, 
     3613        { "GetDrive_ClusterSize", func_sig_GetDrive_ClusterSize_2 }, 
    29773614        { "GetDrive_FreeClusters", func_sig_GetDrive_FreeClusters_1 }, 
     3615        { "GetDrive_FreeClusters", func_sig_GetDrive_FreeClusters_2 }, 
    29783616        { "GetDrive_TotalClusters", func_sig_GetDrive_TotalClusters_1 }, 
     3617        { "GetDrive_TotalClusters", func_sig_GetDrive_TotalClusters_2 }, 
    29793618        { "GetFocusLensSubjectDistance", func_sig_GetFocusLensSubjectDistance_1 }, 
     3619        { "GetOpticalTemperature", func_sig_GetOpticalTemperature_2 }, 
    29803620        { "GetParameterData", func_sig_GetParameterData_1 }, 
    29813621        { "GetPropertyCase", func_sig_GetPropertyCase_1 }, 
    29823622        { "GetSystemTime", func_sig_GetSystemTime_1 }, 
     3623        { "GetSystemTime", func_sig_GetSystemTime_2 }, 
    29833624        { "GetZoomLensCurrentPoint", func_sig_GetZoomLensCurrentPoint_1 }, 
    29843625        { "GetZoomLensCurrentPosition", func_sig_GetZoomLensCurrentPosition_1 }, 
     3626        { "GetZoomLensCurrentPosition", func_sig_GetZoomLensCurrentPosition_2 }, 
    29853627        { "IsStrobeChargeCompleted", func_sig_IsStrobeChargeCompleted_1 }, 
    29863628        { "LocalTime", func_sig_LocalTime_1 }, 
     
    30013643        { "SetParameterData", func_sig_SetParameterData_1 }, 
    30023644        { "SetPropertyCase", func_sig_SetPropertyCase_1 }, 
     3645        { "SetPropertyCase", func_sig_SetPropertyCase_2 }, 
    30033646        { "SleepTask", func_sig_SleepTask_1 }, 
    30043647        { "TakeSemaphore", func_sig_TakeSemaphore_1 }, 
     
    30203663        { "kbd_p2_f", func_sig_kbd_p2_f_1 }, 
    30213664        { "kbd_pwr_off", func_sig_kbd_pwr_off_1 }, 
     3665        { "kbd_pwr_off", func_sig_kbd_pwr_off_2 }, 
    30223666        { "kbd_pwr_on", func_sig_kbd_pwr_on_1 }, 
     3667        { "kbd_pwr_on", func_sig_kbd_pwr_on_2 }, 
    30233668        { "kbd_read_keys", func_sig_kbd_read_keys_1 }, 
    30243669        { "kbd_read_keys_r2", func_sig_kbd_read_keys_r2_1 }, 
     
    30423687        { "strcat", func_sig_strcat_1 }, 
    30433688        { "strchr", func_sig_strchr_1 }, 
     3689        { "strchr", func_sig_strchr_2 }, 
    30443690        { "strcmp", func_sig_strcmp_1 }, 
    30453691        { "strcpy", func_sig_strcpy_1 }, 
     3692        { "strcpy", func_sig_strcpy_2 }, 
    30463693        { "strftime", func_sig_strftime_1 }, 
    30473694        { "strlen", func_sig_strlen_1 }, 
    30483695        { "strncmp", func_sig_strncmp_1 }, 
    30493696        { "strncpy", func_sig_strncpy_1 }, 
     3697        { "strncpy", func_sig_strncpy_2 }, 
    30503698        { "strrchr", func_sig_strrchr_1 }, 
    30513699        { "strtol", func_sig_strtol_1 }, 
    30523700        { "time", func_sig_time_1 }, 
     3701        { "time", func_sig_time_2 }, 
    30533702        { "vsprintf", func_sig_vsprintf_1 }, 
    30543703        { "write", func_sig_write_1 }, 
  • trunk/version.inc

    r564 r569  
    1 BUILD_NUMBER := 0.7.5 
     1BUILD_NUMBER := 0.7.6 
Note: See TracChangeset for help on using the changeset viewer.