0x08000000 0210 LSLS r0,r2,#8
0x08000002 2000 MOVS r0,#0x00
0x08000004 1905 ADDS r5,r0,r4
0x08000006 0800 LSRS r0,r0,#0
0x08000008 1909 ADDS r1,r1,r4
0x0800000A 0800 LSRS r0,r0,#0
0x0800000C 190B ADDS r3,r1,r4
0x0800000E 0800 LSRS r0,r0,#0
0x08000010 190D ADDS r5,r1,r4
0x08000012 0800 LSRS r0,r0,#0
0x08000014 190F ADDS r7,r1,r4
0x08000016 0800 LSRS r0,r0,#0
0x08000018 1911 ADDS r1,r2,r4
0x0800001A 0800 LSRS r0,r0,#0
0x0800001C 0000 MOVS r0,r0
0x0800001E 0000 MOVS r0,r0
0x08000020 0000 MOVS r0,r0
0x08000022 0000 MOVS r0,r0
0x08000024 0000 MOVS r0,r0
0x08000026 0000 MOVS r0,r0
0x08000028 0000 MOVS r0,r0
0x0800002A 0000 MOVS r0,r0
0x0800002C 1913 ADDS r3,r2,r4
0x0800002E 0800 LSRS r0,r0,#0
0x08000030 1915 ADDS r5,r2,r4
0x08000032 0800 LSRS r0,r0,#0
0x08000034 0000 MOVS r0,r0
0x08000036 0000 MOVS r0,r0
0x08000038 1917 ADDS r7,r2,r4
0x0800003A 0800 LSRS r0,r0,#0
0x0800003C 0101 LSLS r1,r0,#4
0x0800003E 0800 LSRS r0,r0,#0
0x08000040 191B ADDS r3,r3,r4
0x08000042 0800 LSRS r0,r0,#0
0x08000044 191B ADDS r3,r3,r4
0x08000046 0800 LSRS r0,r0,#0
0x08000048 191B ADDS r3,r3,r4
0x0800004A 0800 LSRS r0,r0,#0
0x0800004C 191B ADDS r3,r3,r4
0x0800004E 0800 LSRS r0,r0,#0
0x08000050 191B ADDS r3,r3,r4
0x08000052 0800 LSRS r0,r0,#0
0x08000054 191B ADDS r3,r3,r4
0x08000056 0800 LSRS r0,r0,#0
0x08000058 191B ADDS r3,r3,r4
0x0800005A 0800 LSRS r0,r0,#0
0x0800005C 191B ADDS r3,r3,r4
0x0800005E 0800 LSRS r0,r0,#0
0x08000060 191B ADDS r3,r3,r4
0x08000062 0800 LSRS r0,r0,#0
0x08000064 191B ADDS r3,r3,r4
0x08000066 0800 LSRS r0,r0,#0
0x08000068 191B ADDS r3,r3,r4
0x0800006A 0800 LSRS r0,r0,#0
0x0800006C 191B ADDS r3,r3,r4
0x0800006E 0800 LSRS r0,r0,#0
0x08000070 191B ADDS r3,r3,r4
0x08000072 0800 LSRS r0,r0,#0
0x08000074 191B ADDS r3,r3,r4
0x08000076 0800 LSRS r0,r0,#0
0x08000078 191B ADDS r3,r3,r4
0x0800007A 0800 LSRS r0,r0,#0
0x0800007C 191B ADDS r3,r3,r4
0x0800007E 0800 LSRS r0,r0,#0
0x08000080 191B ADDS r3,r3,r4
0x08000082 0800 LSRS r0,r0,#0
0x08000084 191B ADDS r3,r3,r4
0x08000086 0800 LSRS r0,r0,#0
0x08000088 191B ADDS r3,r3,r4
0x0800008A 0800 LSRS r0,r0,#0
0x0800008C 191B ADDS r3,r3,r4
0x0800008E 0800 LSRS r0,r0,#0
0x08000090 191B ADDS r3,r3,r4
0x08000092 0800 LSRS r0,r0,#0
0x08000094 191B ADDS r3,r3,r4
0x08000096 0800 LSRS r0,r0,#0
0x08000098 191B ADDS r3,r3,r4
0x0800009A 0800 LSRS r0,r0,#0
0x0800009C 191B ADDS r3,r3,r4
0x0800009E 0800 LSRS r0,r0,#0
0x080000A0 191B ADDS r3,r3,r4
0x080000A2 0800 LSRS r0,r0,#0
0x080000A4 191B ADDS r3,r3,r4
0x080000A6 0800 LSRS r0,r0,#0
0x080000A8 191B ADDS r3,r3,r4
0x080000AA 0800 LSRS r0,r0,#0
0x080000AC 191B ADDS r3,r3,r4
0x080000AE 0800 LSRS r0,r0,#0
0x080000B0 191B ADDS r3,r3,r4
0x080000B2 0800 LSRS r0,r0,#0
0x080000B4 191B ADDS r3,r3,r4
0x080000B6 0800 LSRS r0,r0,#0
0x080000B8 191B ADDS r3,r3,r4
0x080000BA 0800 LSRS r0,r0,#0
0x080000BC 191B ADDS r3,r3,r4
0x080000BE 0800 LSRS r0,r0,#0
0x080000C0 191B ADDS r3,r3,r4
0x080000C2 0800 LSRS r0,r0,#0
0x080000C4 191B ADDS r3,r3,r4
0x080000C6 0800 LSRS r0,r0,#0
0x080000C8 191B ADDS r3,r3,r4
0x080000CA 0800 LSRS r0,r0,#0
0x080000CC 191B ADDS r3,r3,r4
0x080000CE 0800 LSRS r0,r0,#0
0x080000D0 191B ADDS r3,r3,r4
0x080000D2 0800 LSRS r0,r0,#0
0x080000D4 191B ADDS r3,r3,r4
0x080000D6 0800 LSRS r0,r0,#0
0x080000D8 191B ADDS r3,r3,r4
0x080000DA 0800 LSRS r0,r0,#0
0x080000DC 191B ADDS r3,r3,r4
0x080000DE 0800 LSRS r0,r0,#0
0x080000E0 191B ADDS r3,r3,r4
0x080000E2 0800 LSRS r0,r0,#0
0x080000E4 191B ADDS r3,r3,r4
0x080000E6 0800 LSRS r0,r0,#0
0x080000E8 191B ADDS r3,r3,r4
0x080000EA 0800 LSRS r0,r0,#0
_main_stk:
0x080000EC F8DFD00C LDR.W sp,[pc,#12] ; @0x080000FC
_main_scatterload:
0x080000F0 F001FC62 BL.W __scatterload_rt2 (0x080019B8)
_main_init:
0x080000F4 4800 LDR r0,[pc,#0] ; @0x080000F8;r0=0x08000119
0x080000F6 4700 BX r0
0x080000F8 0119 LSLS r1,r3,#4
0x080000FA 0800 LSRS r0,r0,#0
0x080000FC 0210 LSLS r0,r2,#8
0x080000FE 2000 MOVS r0,#0x00
31: TimeTick++;
0x08000100 488D LDR r0,[pc,#564] ; @0x08000338
0x08000102 6801 LDR r1,[r0,#0x00]
0x08000104 1C49 ADDS r1,r1,#1
0x08000106 6001 STR r1,[r0,#0x00]
32: }
33:
34: void Delay (unsigned long tick) {
35: unsigned long timetick;
36:
0x08000108 4770 BX lr
37: timetick = TimeTick;
0x0800010A 498B LDR r1,[pc,#556] ; @0x08000338
0x0800010C 680A LDR r2,[r1,#0x00]
38: while ((TimeTick - timetick) < tick);
0x0800010E 680B LDR r3,[r1,#0x00]
0x08000110 1A9B SUBS r3,r3,r2
0x08000112 4283 CMP r3,r0
0x08000114 D3FB BCC 0x0800010E
39: }
40:
41:
0x08000116 4770 BX lr
42: int main (void) {
43: unsigned long cnt;
44: unsigned char buf[6];
45:
0x08000118 B51C PUSH {r2-r4,lr}
46: SetupClock();
0x0800011A F000F945 BL.W SetupClock (0x080003A8)
47: SetupLED ();
0x0800011E F000F983 BL.W SetupLED (0x08000428)
48: SetupKBD ();
49:
0x08000122 F000F994 BL.W SetupKBD (0x0800044E)
50: SPI_FLASH_Init(); /* Initialize the SPI FLASH driver */
0x08000126 F000F9D5 BL.W SPI_FLASH_Init (0x080004D4)
51: LCD_Init(); /* Initialize the LCD */
0x0800012A F000FF5A BL.W LCD_Init (0x08000FE2)
52: LCD_Clear(White); /* Clear the LCD */
53:
54: /* Display ST Logo (if exists on SPI Flash) */
0x0800012E F64F74FF MOVW r4,#0xFFFF
0x08000132 4620 MOV r0,r4
0x08000134 F001F837 BL.W LCD_Clear (0x080011A6)
55: SPI_FLASH_BufferRead(buf, 0x0064FD00, 6);
0x08000138 4D80 LDR r5,[pc,#512] ; @0x0800033C
0x0800013A 2206 MOVS r2,#0x06
0x0800013C 4629 MOV r1,r5
0x0800013E 4668 MOV r0,sp
0x08000140 F000FB06 BL.W SPI_FLASH_BufferRead (0x08000750)
56: if (strncmp((const char *)buf, "BM\x42\x58\x02\x00", 6) == 0) {
0x08000144 2206 MOVS r2,#0x06
0x08000146 A17E ADR r1,{pc}+2 ; @0x08000340
0x08000148 4668 MOV r0,sp
0x0800014A F001FC26 BL.W strncmp (0x0800199A)
57: LCD_SetDisplayWindow(239, 319, 240, 320);
0x0800014E F44F77A0 MOV r7,#0x140
0x08000152 1E7E SUBS r6,r7,#1
0x08000154 B958 CBNZ r0,0x0800016E
0x08000156 463B MOV r3,r7
0x08000158 22F0 MOVS r2,#0xF0
0x0800015A 4631 MOV r1,r6
0x0800015C 20EF MOVS r0,#0xEF
0x0800015E F001F846 BL.W LCD_SetDisplayWindow (0x080011EE)
58: LCD_DrawBMP(0x0064FD00);
0x08000162 4628 MOV r0,r5
0x08000164 F001FA91 BL.W LCD_DrawBMP (0x0800168A)
59: Delay(100);
60: }
61:
62: /* Display STM32 Slide (if exists on SPI Flash) */
0x08000168 2064 MOVS r0,#0x64
0x0800016A F7FFFFCE BL.W Delay (0x0800010A)
63: SPI_FLASH_BufferRead(buf, 0x00414400, 6);
0x0800016E 4D76 LDR r5,[pc,#472] ; @0x08000348
0x08000170 2206 MOVS r2,#0x06
0x08000172 4629 MOV r1,r5
0x08000174 4668 MOV r0,sp
0x08000176 F000FAEB BL.W SPI_FLASH_BufferRead (0x08000750)
64: if (strncmp((const char *)buf, "BM\x42\x58\x02\x00", 6) == 0) {
0x0800017A 2206 MOVS r2,#0x06
0x0800017C A170 ADR r1,{pc}+4 ; @0x08000340
0x0800017E 4668 MOV r0,sp
0x08000180 F001FC0B BL.W strncmp (0x0800199A)
0x08000184 B958 CBNZ r0,0x0800019E
65: LCD_SetDisplayWindow(239, 319, 240, 320);
0x08000186 463B MOV r3,r7
0x08000188 22F0 MOVS r2,#0xF0
0x0800018A 4631 MOV r1,r6
0x0800018C 20EF MOVS r0,#0xEF
0x0800018E F001F82E BL.W LCD_SetDisplayWindow (0x080011EE)
66: LCD_DrawBMP(0x00414400);
0x08000192 4628 MOV r0,r5
0x08000194 F001FA79 BL.W LCD_DrawBMP (0x0800168A)
67: Delay(200);
68: }
69:
70: /* Display Keil Logo */
0x08000198 20C8 MOVS r0,#0xC8
0x0800019A F7FFFFB6 BL.W Delay (0x0800010A)
71: LCD_Clear(White); /* Clear the LCD */
0x0800019E F64F74FF MOVW r4,#0xFFFF
0x080001A2 4620 MOV r0,r4
0x080001A4 F000FFFF BL.W LCD_Clear (0x080011A6)
72: LCD_SetBackColor(White); /* Set the Back Color */
0x080001A8 4620 MOV r0,r4
0x080001AA F000FF30 BL.W LCD_SetBackColor (0x0800100E)
73: LCD_SetTextColor(0x0238); /* Set the Text Color */
74:
0x080001AE F44F700E MOV r0,#0x238
0x080001B2 F000FF29 BL.W LCD_SetTextColor (0x08001008)
75: LCD_SetDisplayWindow(144, 240, 48, 160);
0x080001B6 23A0 MOVS r3,#0xA0
0x080001B8 2230 MOVS r2,#0x30
0x080001BA 21F0 MOVS r1,#0xF0
0x080001BC 2090 MOVS r0,#0x90
0x080001BE F001F816 BL.W LCD_SetDisplayWindow (0x080011EE)
76: LCD_DrawMonoBMP((u32)Keil_Logo);
0x080001C2 4862 LDR r0,[pc,#392] ; @0x0800034C
0x080001C4 F001FA27 BL.W LCD_DrawMonoBMP (0x08001616)
77: Delay(200);
78:
0x080001C8 20C8 MOVS r0,#0xC8
0x080001CA F7FFFF9E BL.W Delay (0x0800010A)
79: LCD_SetDisplayWindow(239, 319, 240, 320);
0x080001CE 463B MOV r3,r7
0x080001D0 22F0 MOVS r2,#0xF0
0x080001D2 4631 MOV r1,r6
0x080001D4 20EF MOVS r0,#0xEF
0x080001D6 F001F80A BL.W LCD_SetDisplayWindow (0x080011EE)
80: LCD_Clear(White); /* Clear the LCD */
81:
0x080001DA 4620 MOV r0,r4
0x080001DC F000FFE3 BL.W LCD_Clear (0x080011A6)
82: LCD_SetBackColor(Blue); /* Set the Back Color */
0x080001E0 201F MOVS r0,#0x1F
0x080001E2 F000FF14 BL.W LCD_SetBackColor (0x0800100E)
83: LCD_SetTextColor(White); /* Set the Text Color */
0x080001E6 4620 MOV r0,r4
0x080001E8 F000FF0E BL.W LCD_SetTextColor (0x08001008)
84: LCD_DisplayStringLine(Line0, "STM32 Demonstration ");
0x080001EC A158 ADR r1,{pc}+4 ; @0x08000350
0x080001EE 2000 MOVS r0,#0x00
0x080001F0 F000FFC0 BL.W LCD_DisplayStringLine (0x08001174)
85: LCD_SetBackColor(White); /* Set the Back Color */
0x080001F4 4620 MOV r0,r4
0x080001F6 F000FF0A BL.W LCD_SetBackColor (0x0800100E)
86: LCD_SetTextColor(Blue); /* Set the Text Color */
0x080001FA 201F MOVS r0,#0x1F
0x080001FC F000FF04 BL.W LCD_SetTextColor (0x08001008)
87: LCD_DisplayStringLine(Line2, "Designed with RV-MDK");
88:
0x08000200 A159 ADR r1,{pc}+4 ; @0x08000368
0x08000202 2030 MOVS r0,#0x30
0x08000204 F000FFB6 BL.W LCD_DisplayStringLine (0x08001174)
89: LCD_SetBackColor(White); /* Set the Back Color */
0x08000208 4620 MOV r0,r4
0x0800020A F000FF00 BL.W LCD_SetBackColor (0x0800100E)
90: LCD_SetTextColor(Green); /* Set the Text Color */
91:
0x0800020E F44F60FC MOV r0,#0x7E0
0x08000212 F000FEF9 BL.W LCD_SetTextColor (0x08001008)
92: LCD_DisplayStringLine(Line6, " Keyboard Test: ");
93:
94: cnt = 0;
95:
96: for (;;) {
97:
0x08000216 A15A ADR r1,{pc}+2 ; @0x08000380
0x08000218 2090 MOVS r0,#0x90
0x0800021A F000FFAB BL.W LCD_DisplayStringLine (0x08001174)
98: LED_Off(0x0F); /* Turn Off all LEDs */
99: LED_On (1 << (cnt/40)); /* Turn On one LED */
100:
101: if ((cnt & 0x07) == 0) {
102: LCD_SetBackColor(Cyan);
103: LCD_DisplayChar(Line4, 319-2*cnt, ' ');
104: LCD_SetBackColor(White);
105: }
106: if (++cnt == 160) {
107: cnt = 0;
108: LCD_ClearLine(Line4);
109: }
110:
111: LCD_SetTextColor(Red);
112:
113: /* Read "Left" Key */
0x0800021E 4D5E LDR r5,[pc,#376] ; @0x08000398
114: if(!GPIO_ReadInputDataBit(GPIOE, GPIO_Pin_1)) {
115: LCD_DisplayChar(Line8, 319-136, 0x80+9);
116: } else {
117: LCD_DisplayChar(Line8, 319-136, 0x80+8);
118: }
119:
120: /* Read "Right" Key */
121: if(!GPIO_ReadInputDataBit(GPIOE, GPIO_Pin_0)) {
122: LCD_DisplayChar(Line8, 319-168, 0x80+11);
123: } else {
124: LCD_DisplayChar(Line8, 319-168, 0x80+10);
125: }
126:
127: /* Read "Up" Key */
0x08000220 F8DFB178 LDR.W r11,[pc,#376] ; @0x0800039C
128: if(!GPIO_ReadInputDataBit(GPIOD, GPIO_Pin_8)) {
129: LCD_DisplayChar(Line7, 319-152, 0x80+5);
130: } else {
0x08000224 F8DF8178 LDR.W r8,[pc,#376] ; @0x080003A0
94: cnt = 0;
95:
96: for (;;) {
97:
98: LED_Off(0x0F); /* Turn Off all LEDs */
0x08000228 2400 MOVS r4,#0x00
99: LED_On (1 << (cnt/40)); /* Turn On one LED */
100:
0x0800022A F04F0928 MOV r9,#0x28
0x0800022E F04F0A01 MOV r10,#0x01
98: LED_Off(0x0F); /* Turn Off all LEDs */
99: LED_On (1 << (cnt/40)); /* Turn On one LED */
100:
0x08000232 68E8 LDR r0,[r5,#0x0C]
0x08000234 F4207070 BIC r0,r0,#0x3C0
0x08000238 60E8 STR r0,[r5,#0x0C]
0x0800023A FBB4F1F9 UDIV r1,r4,r9
0x0800023E FA0AF001 LSL r0,r10,r1
0x08000242 68E9 LDR r1,[r5,#0x0C]
0x08000244 EA411080 ORR r0,r1,r0,LSL #6
0x08000248 60E8 STR r0,[r5,#0x0C]
101: if ((cnt & 0x07) == 0) {
0x0800024A 0760 LSLS r0,r4,#29
0x0800024C D10F BNE 0x0800026E
102: LCD_SetBackColor(Cyan);
0x0800024E F64770FF MOVW r0,#0x7FFF
0x08000252 F000FEDC BL.W LCD_SetBackColor (0x0800100E)
103: LCD_DisplayChar(Line4, 319-2*cnt, ' ');
0x08000256 4260 RSBS r0,r4,#0
0x08000258 EB060040 ADD r0,r6,r0,LSL #1
0x0800025C B281 UXTH r1,r0
0x0800025E 2220 MOVS r2,#0x20
0x08000260 2060 MOVS r0,#0x60
0x08000262 F000FF7F BL.W LCD_DisplayChar (0x08001164)
104: LCD_SetBackColor(White);
105: }
0x08000266 F64F70FF MOVW r0,#0xFFFF
0x0800026A F000FED0 BL.W LCD_SetBackColor (0x0800100E)
106: if (++cnt == 160) {
0x0800026E 1C64 ADDS r4,r4,#1
0x08000270 2CA0 CMP r4,#0xA0
0x08000272 D103 BNE 0x0800027C
107: cnt = 0;
0x08000274 2400 MOVS r4,#0x00
108: LCD_ClearLine(Line4);
109: }
110:
0x08000276 2060 MOVS r0,#0x60
0x08000278 F000FF93 BL.W LCD_ClearLine (0x080011A2)
111: LCD_SetTextColor(Red);
112:
113: /* Read "Left" Key */
0x0800027C F44F4078 MOV r0,#0xF800
0x08000280 F000FEC2 BL.W LCD_SetTextColor (0x08001008)
114: if(!GPIO_ReadInputDataBit(GPIOE, GPIO_Pin_1)) {
115: LCD_DisplayChar(Line8, 319-136, 0x80+9);
116: } else {
0x08000284 2102 MOVS r1,#0x02
0x08000286 465F MOV r7,r11
0x08000288 4658 MOV r0,r11
0x0800028A F001FC23 BL.W GPIO_ReadInputDataBit (0x08001AD4)
0x0800028E B3F0 CBZ r0,0x0800030E
117: LCD_DisplayChar(Line8, 319-136, 0x80+8);
118: }
119:
120: /* Read "Right" Key */
0x08000290 2288 MOVS r2,#0x88
0x08000292 21B7 MOVS r1,#0xB7
0x08000294 20C0 MOVS r0,#0xC0
0x08000296 F000FF65 BL.W LCD_DisplayChar (0x08001164)
121: if(!GPIO_ReadInputDataBit(GPIOE, GPIO_Pin_0)) {
122: LCD_DisplayChar(Line8, 319-168, 0x80+11);
123: } else {
0x0800029A 2101 MOVS r1,#0x01
0x0800029C 4638 MOV r0,r7
0x0800029E F001FC19 BL.W GPIO_ReadInputDataBit (0x08001AD4)
0x080002A2 B3A8 CBZ r0,0x08000310
124: LCD_DisplayChar(Line8, 319-168, 0x80+10);
125: }
126:
127: /* Read "Up" Key */
0x080002A4 228A MOVS r2,#0x8A
0x080002A6 2197 MOVS r1,#0x97
0x080002A8 20C0 MOVS r0,#0xC0
0x080002AA F000FF5B BL.W LCD_DisplayChar (0x08001164)
128: if(!GPIO_ReadInputDataBit(GPIOD, GPIO_Pin_8)) {
129: LCD_DisplayChar(Line7, 319-152, 0x80+5);
130: } else {
0x080002AE F44F7180 MOV r1,#0x100
0x080002B2 4647 MOV r7,r8
0x080002B4 4640 MOV r0,r8
0x080002B6 F001FC0D BL.W GPIO_ReadInputDataBit (0x08001AD4)
0x080002BA B350 CBZ r0,0x08000312
131: LCD_DisplayChar(Line7, 319-152, 0x80+4);
132: }
133:
134: /* Read "Down" Key */
0x080002BC 2284 MOVS r2,#0x84
0x080002BE 21A7 MOVS r1,#0xA7
0x080002C0 20A8 MOVS r0,#0xA8
0x080002C2 F000FF4F BL.W LCD_DisplayChar (0x08001164)
135: if(!GPIO_ReadInputDataBit(GPIOD, GPIO_Pin_14)) {
136: LCD_DisplayChar(Line9, 319-152, 0x80+7);
137: } else {
0x080002C6 F44F4180 MOV r1,#0x4000
0x080002CA 4638 MOV r0,r7
0x080002CC F001FC02 BL.W GPIO_ReadInputDataBit (0x08001AD4)
0x080002D0 B360 CBZ r0,0x0800032C
138: LCD_DisplayChar(Line9, 319-152, 0x80+6);
139: }
140:
141: /* Read "Sel" Key */
0x080002D2 2286 MOVS r2,#0x86
0x080002D4 21A7 MOVS r1,#0xA7
0x080002D6 20D8 MOVS r0,#0xD8
0x080002D8 F000FF44 BL.W LCD_DisplayChar (0x08001164)
142: if(!GPIO_ReadInputDataBit(GPIOD, GPIO_Pin_12)) {
143: LCD_DisplayChar(Line8, 319-152, 0x80+1);
144: } else {
0x080002DC F44F5180 MOV r1,#0x1000
0x080002E0 4638 MOV r0,r7
0x080002E2 F001FBF7 BL.W GPIO_ReadInputDataBit (0x08001AD4)
0x080002E6 B318 CBZ r0,0x08000330
145: LCD_DisplayChar(Line8, 319-152, 0x80+0);
146: }
147:
0x080002E8 2280 MOVS r2,#0x80
0x080002EA 21A7 MOVS r1,#0xA7
0x080002EC 20C0 MOVS r0,#0xC0
0x080002EE F000FF39 BL.W LCD_DisplayChar (0x08001164)
148: LCD_SetTextColor(Magenta);
149:
150: /* Read "Key" Key */
0x080002F2 F64F001F MOVW r0,#0xF81F
0x080002F6 F000FE87 BL.W LCD_SetTextColor (0x08001008)
151: if(!GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_9)) {
152: LCD_DisplayChar(Line8, 319-206, 0x80+3);
153: } else {
0x080002FA F44F7100 MOV r1,#0x200
0x080002FE 4829 LDR r0,[pc,#164] ; @0x080003A4
0x08000300 F001FBE8 BL.W GPIO_ReadInputDataBit (0x08001AD4)
0x08000304 B1B0 CBZ r0,0x08000334
154: LCD_DisplayChar(Line8, 319-206, 0x80+2);
155: }
156:
0x08000306 2282 MOVS r2,#0x82
0x08000308 2171 MOVS r1,#0x71
0x0800030A 20C0 MOVS r0,#0xC0
0x0800030C E002 B 0x08000314
0x0800030E E007 B 0x08000320
0x08000310 E008 B 0x08000324
0x08000312 E009 B 0x08000328
0x08000314 F000FF26 BL.W LCD_DisplayChar (0x08001164)
157: Delay(5);
0x08000318 2005 MOVS r0,#0x05
0x0800031A F7FFFEF6 BL.W Delay (0x0800010A)
0x0800031E E788 B 0x08000232
115: LCD_DisplayChar(Line8, 319-136, 0x80+9);
116: } else {
117: LCD_DisplayChar(Line8, 319-136, 0x80+8);
118: }
119:
120: /* Read "Right" Key */
121: if(!GPIO_ReadInputDataBit(GPIOE, GPIO_Pin_0)) {
0x08000320 2289 MOVS r2,#0x89
0x08000322 E7B6 B 0x08000292
122: LCD_DisplayChar(Line8, 319-168, 0x80+11);
123: } else {
124: LCD_DisplayChar(Line8, 319-168, 0x80+10);
125: }
126:
127: /* Read "Up" Key */
128: if(!GPIO_ReadInputDataBit(GPIOD, GPIO_Pin_8)) {
0x08000324 228B MOVS r2,#0x8B
0x08000326 E7BE B 0x080002A6
129: LCD_DisplayChar(Line7, 319-152, 0x80+5);
130: } else {
131: LCD_DisplayChar(Line7, 319-152, 0x80+4);
132: }
133:
134: /* Read "Down" Key */
135: if(!GPIO_ReadInputDataBit(GPIOD, GPIO_Pin_14)) {
0x08000328 2285 MOVS r2,#0x85
0x0800032A E7C8 B 0x080002BE
136: LCD_DisplayChar(Line9, 319-152, 0x80+7);
137: } else {
138: LCD_DisplayChar(Line9, 319-152, 0x80+6);
139: }
140:
141: /* Read "Sel" Key */
142: if(!GPIO_ReadInputDataBit(GPIOD, GPIO_Pin_12)) {
0x0800032C 2287 MOVS r2,#0x87
0x0800032E E7D1 B 0x080002D4
143: LCD_DisplayChar(Line8, 319-152, 0x80+1);
144: } else {
145: LCD_DisplayChar(Line8, 319-152, 0x80+0);
146: }
147:
148: LCD_SetTextColor(Magenta);
149:
150: /* Read "Key" Key */
151: if(!GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_9)) {
0x08000330 2281 MOVS r2,#0x81
0x08000332 E7DA B 0x080002EA
152: LCD_DisplayChar(Line8, 319-206, 0x80+3);
0x08000334 2283 MOVS r2,#0x83
0x08000336 E7E7 B 0x08000308
0x08000338 0000 MOVS r0,r0
0x0800033A 2000 MOVS r0,#0x00
0x0800033C FD000064 DCD 0xFD000064 ; ? Undefined
0x08000340 4D42 LDR r5,[pc,#264] ; @0x0800044C
0x08000342 5842 LDR r2,[r0,r1]
0x08000344 0002 MOVS r2,r0
0x08000346 0000 MOVS r0,r0
0x08000348 4400 ADD r0,r0,r0
0x0800034A 0041 LSLS r1,r0,#1
0x0800034C 31E8 ADDS r1,r1,#0xE8
0x0800034E 0800 LSRS r0,r0,#0
0x08000350 5453 STRB r3,[r2,r1]
0x08000352 334D ADDS r3,r3,#0x4D
0x08000354 2032 MOVS r0,#0x32
0x08000356 6544 STR r4,[r0,#0x54]
0x08000358 6F6D LDR r5,[r5,#0x74]
0x0800035A 736E STRB r6,[r5,#0x0D]
0x0800035C 7274 STRB r4,[r6,#0x09]
0x0800035E 7461 STRB r1,[r4,#0x11]
0x08000360 6F69 LDR r1,[r5,#0x74]
0x08000362 206E MOVS r0,#0x6E
0x08000364 0000 MOVS r0,r0
0x08000366 0000 MOVS r0,r0
0x08000368 6544 STR r4,[r0,#0x54]
0x0800036A 6973 LDR r3,[r6,#0x14]
0x0800036C 6E67 LDR r7,[r4,#0x64]
0x0800036E 6465 STR r5,[r4,#0x44]
0x08000370 7720 STRB r0,[r4,#0x1C]
0x08000372 7469 STRB r1,[r5,#0x11]
0x08000374 2068 MOVS r0,#0x68
0x08000376 5652 LDRSB r2,[r2,r1]
0x08000378 4D2D LDR r5,[pc,#180] ; @0x08000430
0x0800037A 4B44 LDR r3,[pc,#272] ; @0x0800048C
0x0800037C 0000 MOVS r0,r0
0x0800037E 0000 MOVS r0,r0
0x08000380 2020 MOVS r0,#0x20
0x08000382 4B20 LDR r3,[pc,#128] ; @0x08000404
0x08000384 7965 LDRB r5,[r4,#0x05]
0x08000386 6F62 LDR r2,[r4,#0x74]
0x08000388 7261 STRB r1,[r4,#0x09]
0x0800038A 2064 MOVS r0,#0x64
0x0800038C 6554 STR r4,[r2,#0x54]
0x0800038E 7473 STRB r3,[r6,#0x11]
0x08000390 203A MOVS r0,#0x3A
0x08000392 2020 MOVS r0,#0x20
0x08000394 0000 MOVS r0,r0
0x08000396 0000 MOVS r0,r0
0x08000398 1000 ASRS r0,r0,#0
0x0800039A 4001 ANDS r1,r1,r0
0x0800039C 1800 ADDS r0,r0,r0
0x0800039E 4001 ANDS r1,r1,r0
0x080003A0 1400 ASRS r0,r0,#16
0x080003A2 4001 ANDS r1,r1,r0
0x080003A4 0C00 LSRS r0,r0,#16
0x080003A6 4001 ANDS r1,r1,r0
15: {
0x080003A8 B510 PUSH {r4,lr}
16: RCC_DeInit (); /* RCC system reset(for debug purpose)*/
0x080003AA F001FBDD BL.W RCC_DeInit (0x08001B68)
17: RCC_HSEConfig (RCC_HSE_ON); /* Enable HSE */
18:
19: /* Wait till HSE is ready */
0x080003AE F44F3480 MOV r4,#0x10000
0x080003B2 4620 MOV r0,r4
0x080003B4 F001FC20 BL.W RCC_HSEConfig (0x08001BF8)
20: while (RCC_GetFlagStatus(RCC_FLAG_HSERDY) == RESET);
21:
0x080003B8 2031 MOVS r0,#0x31
0x080003BA F001FBF3 BL.W RCC_GetFlagStatus (0x08001BA4)
0x080003BE 2800 CMP r0,#0x00
0x080003C0 D0FA BEQ 0x080003B8
22: RCC_HCLKConfig (RCC_SYSCLK_Div1); /* HCLK = SYSCLK */
0x080003C2 2000 MOVS r0,#0x00
0x080003C4 F001FC0E BL.W RCC_HCLKConfig (0x08001BE4)
23: RCC_PCLK2Config (RCC_HCLK_Div1); /* PCLK2 = HCLK */
0x080003C8 2000 MOVS r0,#0x00
0x080003CA F001FC39 BL.W RCC_PCLK2Config (0x08001C40)
24: RCC_PCLK1Config (RCC_HCLK_Div2); /* PCLK1 = HCLK/2 */
0x080003CE F44F6080 MOV r0,#0x400
0x080003D2 F001FC2B BL.W RCC_PCLK1Config (0x08001C2C)
25: RCC_ADCCLKConfig (RCC_PCLK2_Div6); /* ADCCLK = PCLK2/6 */
26:
0x080003D6 F44F4000 MOV r0,#0x8000
0x080003DA F001FB8B BL.W RCC_ADCCLKConfig (0x08001AF4)
27: FLASH_SetLatency(FLASH_Latency_2); /* Flash 2 wait state */
0x080003DE 2002 MOVS r0,#0x02
0x080003E0 F001FB08 BL.W FLASH_SetLatency (0x080019F4)
28: FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);
29:
30: /* PLLCLK = 8MHz * 9 = 72 MHz */
0x080003E4 2010 MOVS r0,#0x10
0x080003E6 F001FAF9 BL.W FLASH_PrefetchBufferCmd (0x080019DC)
31: RCC_PLLConfig (RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);
32:
0x080003EA F44F11E0 MOV r1,#0x1C0000
0x080003EE 4620 MOV r0,r4
0x080003F0 F001FC36 BL.W RCC_PLLConfig (0x08001C60)
33: RCC_PLLCmd (ENABLE); /* Enable PLL */
34:
35: /* Wait till PLL is ready */
0x080003F4 2001 MOVS r0,#0x01
0x080003F6 F001FC2D BL.W RCC_PLLCmd (0x08001C54)
36: while (RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET);
37:
38: /* Select PLL as system clock source */
0x080003FA 2039 MOVS r0,#0x39
0x080003FC F001FBD2 BL.W RCC_GetFlagStatus (0x08001BA4)
0x08000400 2800 CMP r0,#0x00
0x08000402 D0FA BEQ 0x080003FA
39: RCC_SYSCLKConfig (RCC_SYSCLKSource_PLLCLK);
40:
41: /* Wait till PLL is used as system clock source */
0x08000404 2002 MOVS r0,#0x02
0x08000406 F001FC35 BL.W RCC_SYSCLKConfig (0x08001C74)
42: while (RCC_GetSYSCLKSource() != 0x08);
43:
44: /* SysTick event each 10 ms with input clock equal to 9MHz (HCLK/8) */
0x0800040A F001FBE3 BL.W RCC_GetSYSCLKSource (0x08001BD4)
0x0800040E 2808 CMP r0,#0x08
0x08000410 D1FB BNE 0x0800040A
45: SysTick_SetReload(90000);
46:
47: /* Enable the SysTick Counter */
0x08000412 482A LDR r0,[pc,#168] ; @0x080004BC
0x08000414 F001FCB5 BL.W SysTick_SetReload (0x08001D82)
48: SysTick_CounterCmd(SysTick_Counter_Enable);
49:
50: /* Enable SysTick interrupt */
0x08000418 2001 MOVS r0,#0x01
0x0800041A F001FC94 BL.W SysTick_CounterCmd (0x08001D46)
51: SysTick_ITConfig(ENABLE);
52: }
53:
54:
55: GPIO_InitTypeDef GPIO_InitStructure;
56:
0x0800041E E8BD4010 POP {r4,lr}
0x08000422 2001 MOVS r0,#0x01
0x08000424 F001BCA1 B.W SysTick_ITConfig (0x08001D6A)
57: void SetupLED (void) {
58:
59: /* Enable GPIOC clock */
0x08000428 B510 PUSH {r4,lr}
60: RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
61:
62: /* Configure PC6..PC9 as outputs push-pull, max speed 50 MHz */
0x0800042A 2101 MOVS r1,#0x01
0x0800042C 2010 MOVS r0,#0x10
0x0800042E F001FB83 BL.W RCC_APB2PeriphClockCmd (0x08001B38)
63: GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7 |
64: GPIO_Pin_8 | GPIO_Pin_9;
0x08000432 4823 LDR r0,[pc,#140] ; @0x080004C0
0x08000434 F44F7170 MOV r1,#0x3C0
0x08000438 8001 STRH r1,[r0,#0x00]
65: GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
0x0800043A 2110 MOVS r1,#0x10
0x0800043C 70C1 STRB r1,[r0,#0x03]
66: GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
0x0800043E 2103 MOVS r1,#0x03
0x08000440 7081 STRB r1,[r0,#0x02]
67: GPIO_Init(GPIOC, &GPIO_InitStructure);
68: }
69:
0x08000442 4601 MOV r1,r0
0x08000444 E8BD4010 POP {r4,lr}
0x08000448 481E LDR r0,[pc,#120] ; @0x080004C4
0x0800044A F001BAF3 B.W GPIO_Init (0x08001A34)
70: void SetupKBD (void) {
71:
72: /* Enable GPIOB, GPIOD, and GPIOE clocks */
0x0800044E B570 PUSH {r4-r6,lr}
73: RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB |
74: RCC_APB2Periph_GPIOD |
75: RCC_APB2Periph_GPIOE, ENABLE);
76:
77: /* Configure PD.08, PD.12 and PD.14 as input floating */
0x08000450 2101 MOVS r1,#0x01
0x08000452 2068 MOVS r0,#0x68
0x08000454 F001FB70 BL.W RCC_APB2PeriphClockCmd (0x08001B38)
78: GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_12 | GPIO_Pin_14;
0x08000458 4C19 LDR r4,[pc,#100] ; @0x080004C0
0x0800045A F44F40A2 MOV r0,#0x5100
79: GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
0x0800045E 2504 MOVS r5,#0x04
0x08000460 8020 STRH r0,[r4,#0x00]
0x08000462 70E5 STRB r5,[r4,#0x03]
80: GPIO_Init(GPIOD, &GPIO_InitStructure);
81:
82: /* Configure PE.00 and PE.01 as input floating */
0x08000464 4621 MOV r1,r4
0x08000466 4818 LDR r0,[pc,#96] ; @0x080004C8
0x08000468 F001FAE4 BL.W GPIO_Init (0x08001A34)
83: GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1;
0x0800046C 2003 MOVS r0,#0x03
0x0800046E 8020 STRH r0,[r4,#0x00]
84: GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
0x08000470 70E5 STRB r5,[r4,#0x03]
85: GPIO_Init(GPIOE, &GPIO_InitStructure);
86:
87: /* Configure PB.09 as input floating */
0x08000472 4621 MOV r1,r4
0x08000474 4815 LDR r0,[pc,#84] ; @0x080004CC
0x08000476 F001FADD BL.W GPIO_Init (0x08001A34)
88: GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
0x0800047A 01E8 LSLS r0,r5,#7
0x0800047C 8020 STRH r0,[r4,#0x00]
89: GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
0x0800047E 70E5 STRB r5,[r4,#0x03]
90: GPIO_Init(GPIOB, &GPIO_InitStructure);
91:
92: /* RIGHT Button */
0x08000480 4621 MOV r1,r4
0x08000482 4813 LDR r0,[pc,#76] ; @0x080004D0
0x08000484 F001FAD6 BL.W GPIO_Init (0x08001A34)
93: GPIO_EXTILineConfig(GPIO_PortSourceGPIOE, GPIO_PinSource0);
94:
95: /* LEFT Button */
0x08000488 2100 MOVS r1,#0x00
0x0800048A 2004 MOVS r0,#0x04
0x0800048C F001FABE BL.W GPIO_EXTILineConfig (0x08001A0C)
96: GPIO_EXTILineConfig(GPIO_PortSourceGPIOE, GPIO_PinSource1);
97:
98: /* DOWN Button */
0x08000490 2101 MOVS r1,#0x01
0x08000492 2004 MOVS r0,#0x04
0x08000494 F001FABA BL.W GPIO_EXTILineConfig (0x08001A0C)
99: GPIO_EXTILineConfig(GPIO_PortSourceGPIOD, GPIO_PinSource14);
100:
101: /* UP Button */
0x08000498 210E MOVS r1,#0x0E
0x0800049A 2003 MOVS r0,#0x03
0x0800049C F001FAB6 BL.W GPIO_EXTILineConfig (0x08001A0C)
102: GPIO_EXTILineConfig(GPIO_PortSourceGPIOD, GPIO_PinSource8);
103:
104: /* SEL Button */
0x080004A0 2108 MOVS r1,#0x08
0x080004A2 2003 MOVS r0,#0x03
0x080004A4 F001FAB2 BL.W GPIO_EXTILineConfig (0x08001A0C)
105: GPIO_EXTILineConfig(GPIO_PortSourceGPIOD, GPIO_PinSource12);
106:
107: /* KEY Button */
0x080004A8 210C MOVS r1,#0x0C
0x080004AA 2003 MOVS r0,#0x03
0x080004AC F001FAAE BL.W GPIO_EXTILineConfig (0x08001A0C)
108: GPIO_EXTILineConfig(GPIO_PortSourceGPIOB, GPIO_PinSource9);
0x080004B0 E8BD4070 POP {r4-r6,lr}
0x080004B4 2109 MOVS r1,#0x09
0x080004B6 2001 MOVS r0,#0x01
0x080004B8 F001BAA8 B.W GPIO_EXTILineConfig (0x08001A0C)
0x080004BC 5F90 LDRSH r0,[r2,r6]
0x080004BE 0001 MOVS r1,r0
0x080004C0 0004 MOVS r4,r0
0x080004C2 2000 MOVS r0,#0x00
0x080004C4 1000 ASRS r0,r0,#0
0x080004C6 4001 ANDS r1,r1,r0
0x080004C8 1400 ASRS r0,r0,#16
0x080004CA 4001 ANDS r1,r1,r0
0x080004CC 1800 ADDS r0,r0,r0
0x080004CE 4001 ANDS r1,r1,r0
0x080004D0 0C00 LSRS r0,r0,#16
0x080004D2 4001 ANDS r1,r1,r0
55: {
56: SPI_InitTypeDef SPI_InitStructure;
57: GPIO_InitTypeDef GPIO_InitStructure;
58:
59: /* Enable SPI1 and GPIOA clocks */
0x080004D4 B530 PUSH {r4-r5,lr}
0x080004D6 B087 SUB sp,sp,#0x1C
60: RCC_APB2PeriphClockCmd(RCC_APB2Periph_SPI1 | RCC_APB2Periph_GPIOA, ENABLE);
61:
62: /* Configure SPI1 pins: NSS, SCK, MISO and MOSI */
0x080004D8 2101 MOVS r1,#0x01
0x080004DA F2410004 MOVW r0,#0x1004
0x080004DE F001FB2B BL.W RCC_APB2PeriphClockCmd (0x08001B38)
63: GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7;
0x080004E2 20E0 MOVS r0,#0xE0
0x080004E4 F8AD0014 STRH r0,[sp,#0x14]
64: GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
0x080004E8 2403 MOVS r4,#0x03
0x080004EA F88D4016 STRB r4,[sp,#0x16]
65: GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
0x080004EE 2018 MOVS r0,#0x18
66: GPIO_Init(GPIOA, &GPIO_InitStructure);
67:
68: /* Configure PA.4 as Output push-pull, used as Flash Chip select */
0x080004F0 4DD3 LDR r5,[pc,#844] ; @0x08000840
0x080004F2 F88D0017 STRB r0,[sp,#0x17]
0x080004F6 A905 ADD r1,sp,#0x14
0x080004F8 4628 MOV r0,r5
0x080004FA F001FA9B BL.W GPIO_Init (0x08001A34)
69: GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;
0x080004FE 2110 MOVS r1,#0x10
0x08000500 F8AD1014 STRH r1,[sp,#0x14]
70: GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
0x08000504 F88D4016 STRB r4,[sp,#0x16]
71: GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
0x08000508 F88D1017 STRB r1,[sp,#0x17]
72: GPIO_Init(GPIOA, &GPIO_InitStructure);
73:
74: /* Deselect the FLASH: Chip Select high */
0x0800050C A905 ADD r1,sp,#0x14
0x0800050E 4628 MOV r0,r5
0x08000510 F001FA90 BL.W GPIO_Init (0x08001A34)
75: SPI_FLASH_CS_HIGH();
76:
77: /* SPI1 configuration */
0x08000514 2110 MOVS r1,#0x10
0x08000516 4628 MOV r0,r5
0x08000518 F001FAE5 BL.W GPIO_SetBits (0x08001AE6)
78: SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex;
0x0800051C 2000 MOVS r0,#0x00
0x0800051E F8AD0000 STRH r0,[sp,#0x00]
79: SPI_InitStructure.SPI_Mode = SPI_Mode_Master;
0x08000522 F44F7182 MOV r1,#0x104
0x08000526 F8AD1002 STRH r1,[sp,#0x02]
80: SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b;
0x0800052A F8AD0004 STRH r0,[sp,#0x04]
81: SPI_InitStructure.SPI_CPOL = SPI_CPOL_High;
0x0800052E 2102 MOVS r1,#0x02
0x08000530 F8AD1006 STRH r1,[sp,#0x06]
82: SPI_InitStructure.SPI_CPHA = SPI_CPHA_2Edge;
0x08000534 2101 MOVS r1,#0x01
0x08000536 F8AD1008 STRH r1,[sp,#0x08]
83: SPI_InitStructure.SPI_NSS = SPI_NSS_Soft;
0x0800053A 0249 LSLS r1,r1,#9
0x0800053C F8AD100A STRH r1,[sp,#0x0A]
84: SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_4;
0x08000540 2108 MOVS r1,#0x08
0x08000542 F8AD100C STRH r1,[sp,#0x0C]
85: SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB;
0x08000546 F8AD000E STRH r0,[sp,#0x0E]
86: SPI_InitStructure.SPI_CRCPolynomial = 7;
0x0800054A 2007 MOVS r0,#0x07
87: SPI_Init(SPI1, &SPI_InitStructure);
88:
89: /* Enable SPI1 */
0x0800054C 4CBD LDR r4,[pc,#756] ; @0x08000844
0x0800054E F8AD0010 STRH r0,[sp,#0x10]
0x08000552 4669 MOV r1,sp
0x08000554 4620 MOV r0,r4
0x08000556 F001FBDA BL.W SPI_Init (0x08001D0E)
90: SPI_Cmd(SPI1, ENABLE);
0x0800055A 2101 MOVS r1,#0x01
0x0800055C 4620 MOV r0,r4
0x0800055E F001FB93 BL.W SPI_Cmd (0x08001C88)
91: }
0x08000562 B007 ADD sp,sp,#0x1C
0x08000564 BD30 POP {r4-r5,pc}
397: {
398: /* Loop while DR register in not emplty */
0x08000566 B570 PUSH {r4-r6,lr}
399: while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE) == RESET);
400:
401: /* Send byte through the SPI1 peripheral */
0x08000568 4CB6 LDR r4,[pc,#728] ; @0x08000844
0x0800056A 4605 MOV r5,r0
0x0800056C 2102 MOVS r1,#0x02
0x0800056E 4620 MOV r0,r4
0x08000570 F001FBC2 BL.W SPI_I2S_GetFlagStatus (0x08001CF8)
0x08000574 2800 CMP r0,#0x00
0x08000576 D0F9 BEQ 0x0800056C
402: SPI_I2S_SendData(SPI1, byte);
403:
404: /* Wait to receive a byte */
0x08000578 4629 MOV r1,r5
0x0800057A 4620 MOV r0,r4
0x0800057C F001FBC5 BL.W SPI_I2S_SendData (0x08001D0A)
405: while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_RXNE) == RESET);
406:
407: /* Return the byte read from the SPI bus */
0x08000580 2101 MOVS r1,#0x01
0x08000582 4620 MOV r0,r4
0x08000584 F001FBB8 BL.W SPI_I2S_GetFlagStatus (0x08001CF8)
0x08000588 2800 CMP r0,#0x00
0x0800058A D0F9 BEQ 0x08000580
408: return SPI_I2S_ReceiveData(SPI1);
0x0800058C 4620 MOV r0,r4
0x0800058E F001FBBA BL.W SPI_I2S_ReceiveData (0x08001D06)
0x08000592 B2C0 UXTB r0,r0
409: }
0x08000594 BD70 POP {r4-r6,pc}
463: {
464: u8 FLASH_Status = 0;
465:
466: /* Select the FLASH: Chip Select low */
0x08000596 B510 PUSH {r4,lr}
467: SPI_FLASH_CS_LOW();
468:
469: /* Send "Read Status Register" instruction */
0x08000598 4CA9 LDR r4,[pc,#676] ; @0x08000840
0x0800059A 2110 MOVS r1,#0x10
0x0800059C 4620 MOV r0,r4
0x0800059E F001FAA0 BL.W GPIO_ResetBits (0x08001AE2)
470: SPI_FLASH_SendByte(RDSR);
471:
472: /* Loop as long as the memory is busy with a write cycle */
473: do
474: {
475: /* Send a dummy byte to generate the clock needed by the FLASH
476: and put the value of the status register in FLASH_Status variable */
0x080005A2 2005 MOVS r0,#0x05
0x080005A4 F7FFFFDF BL.W SPI_FLASH_SendByte (0x08000566)
477: FLASH_Status = SPI_FLASH_SendByte(Dummy_Byte);
478:
0x080005A8 20A5 MOVS r0,#0xA5
0x080005AA F7FFFFDC BL.W SPI_FLASH_SendByte (0x08000566)
479: } while((FLASH_Status & WIP_Flag) == SET); /* Write in progress */
480:
481: /* Deselect the FLASH: Chip Select high */
0x080005AE 07C0 LSLS r0,r0,#31
0x080005B0 D1FA BNE 0x080005A8
482: SPI_FLASH_CS_HIGH();
0x080005B2 4620 MOV r0,r4
0x080005B4 E8BD4010 POP {r4,lr}
0x080005B8 2110 MOVS r1,#0x10
0x080005BA F001BA94 B.W GPIO_SetBits (0x08001AE6)
442: {
443: /* Select the FLASH: Chip Select low */
0x080005BE B510 PUSH {r4,lr}
444: SPI_FLASH_CS_LOW();
445:
446: /* Send "Write Enable" instruction */
0x080005C0 4C9F LDR r4,[pc,#636] ; @0x08000840
0x080005C2 2110 MOVS r1,#0x10
0x080005C4 4620 MOV r0,r4
0x080005C6 F001FA8C BL.W GPIO_ResetBits (0x08001AE2)
447: SPI_FLASH_SendByte(WREN);
448:
449: /* Deselect the FLASH: Chip Select high */
0x080005CA 2006 MOVS r0,#0x06
0x080005CC F7FFFFCB BL.W SPI_FLASH_SendByte (0x08000566)
450: SPI_FLASH_CS_HIGH();
0x080005D0 4620 MOV r0,r4
0x080005D2 E8BD4010 POP {r4,lr}
0x080005D6 2110 MOVS r1,#0x10
0x080005D8 F001BA85 B.W GPIO_SetBits (0x08001AE6)
101: {
102: /* Send write enable instruction */
0x080005DC B570 PUSH {r4-r6,lr}
0x080005DE 4604 MOV r4,r0
103: SPI_FLASH_WriteEnable();
104:
105: /* Sector Erase */
106: /* Select the FLASH: Chip Select low */
0x080005E0 F7FFFFED BL.W SPI_FLASH_WriteEnable (0x080005BE)
107: SPI_FLASH_CS_LOW();
108: /* Send Sector Erase instruction */
0x080005E4 4D96 LDR r5,[pc,#600] ; @0x08000840
0x080005E6 2110 MOVS r1,#0x10
0x080005E8 4628 MOV r0,r5
0x080005EA F001FA7A BL.W GPIO_ResetBits (0x08001AE2)
109: SPI_FLASH_SendByte(SE);
110: /* Send SectorAddr high nibble address byte */
0x080005EE 20D8 MOVS r0,#0xD8
0x080005F0 F7FFFFB9 BL.W SPI_FLASH_SendByte (0x08000566)
111: SPI_FLASH_SendByte((SectorAddr & 0xFF0000) >> 16);
112: /* Send SectorAddr medium nibble address byte */
0x080005F4 F3C44007 UBFX r0,r4,#16,#8
0x080005F8 F7FFFFB5 BL.W SPI_FLASH_SendByte (0x08000566)
113: SPI_FLASH_SendByte((SectorAddr & 0xFF00) >> 8);
114: /* Send SectorAddr low nibble address byte */
0x080005FC F3C42007 UBFX r0,r4,#8,#8
0x08000600 F7FFFFB1 BL.W SPI_FLASH_SendByte (0x08000566)
115: SPI_FLASH_SendByte(SectorAddr & 0xFF);
116: /* Deselect the FLASH: Chip Select high */
0x08000604 B2E0 UXTB r0,r4
0x08000606 F7FFFFAE BL.W SPI_FLASH_SendByte (0x08000566)
117: SPI_FLASH_CS_HIGH();
118:
119: /* Wait the end of Flash writing */
0x0800060A 2110 MOVS r1,#0x10
0x0800060C 4628 MOV r0,r5
0x0800060E F001FA6A BL.W GPIO_SetBits (0x08001AE6)
120: SPI_FLASH_WaitForWriteEnd();
121: }
122:
123: /*******************************************************************************
124: * Function Name : SPI_FLASH_BulkErase
125: * Description : Erases the entire FLASH.
126: * Input : None
127: * Output : None
128: * Return : None
129: *******************************************************************************/
130: void SPI_FLASH_BulkErase(void)
0x08000612 E8BD4070 POP {r4-r6,lr}
0x08000616 E7BE B SPI_FLASH_WaitForWriteEnd (0x08000596)
131: {
132: /* Send write enable instruction */
0x08000618 B510 PUSH {r4,lr}
133: SPI_FLASH_WriteEnable();
134:
135: /* Bulk Erase */
136: /* Select the FLASH: Chip Select low */
0x0800061A F7FFFFD0 BL.W SPI_FLASH_WriteEnable (0x080005BE)
137: SPI_FLASH_CS_LOW();
138: /* Send Bulk Erase instruction */
0x0800061E 4C88 LDR r4,[pc,#544] ; @0x08000840
0x08000620 2110 MOVS r1,#0x10
0x08000622 4620 MOV r0,r4
0x08000624 F001FA5D BL.W GPIO_ResetBits (0x08001AE2)
139: SPI_FLASH_SendByte(BE);
140: /* Deselect the FLASH: Chip Select high */
0x08000628 20C7 MOVS r0,#0xC7
0x0800062A F7FFFF9C BL.W SPI_FLASH_SendByte (0x08000566)
141: SPI_FLASH_CS_HIGH();
142:
143: /* Wait the end of Flash writing */
0x0800062E 2110 MOVS r1,#0x10
0x08000630 4620 MOV r0,r4
0x08000632 F001FA58 BL.W GPIO_SetBits (0x08001AE6)
144: SPI_FLASH_WaitForWriteEnd();
145: }
146:
147: /*******************************************************************************
148: * Function Name : SPI_FLASH_PageWrite
149: * Description : Writes more than one byte to the FLASH with a single WRITE
150: * cycle(Page WRITE sequence). The number of byte can't exceed
151: * the FLASH page size.
152: * Input : - pBuffer : pointer to the buffer containing the data to be
153: * written to the FLASH.
154: * - WriteAddr : FLASH's internal address to write to.
155: * - NumByteToWrite : number of bytes to write to the FLASH,
156: * must be equal or less than "SPI_FLASH_PageSize" value.
157: * Output : None
158: * Return : None
159: *******************************************************************************/
160: void SPI_FLASH_PageWrite(u8* pBuffer, u32 WriteAddr, u16 NumByteToWrite)
0x08000636 E8BD4010 POP {r4,lr}
0x0800063A E7AC B SPI_FLASH_WaitForWriteEnd (0x08000596)
161: {
162: /* Enable the write access to the FLASH */
0x0800063C E92D41F0 PUSH {r4-r8,lr}
0x08000640 4605 MOV r5,r0
0x08000642 460F MOV r7,r1
0x08000644 4614 MOV r4,r2
163: SPI_FLASH_WriteEnable();
164:
165: /* Select the FLASH: Chip Select low */
0x08000646 F7FFFFBA BL.W SPI_FLASH_WriteEnable (0x080005BE)
166: SPI_FLASH_CS_LOW();
167: /* Send "Write to Memory " instruction */
0x0800064A 4E7D LDR r6,[pc,#500] ; @0x08000840
0x0800064C 2110 MOVS r1,#0x10
0x0800064E 4630 MOV r0,r6
0x08000650 F001FA47 BL.W GPIO_ResetBits (0x08001AE2)
168: SPI_FLASH_SendByte(WRITE);
169: /* Send WriteAddr high nibble address byte to write to */
0x08000654 2002 MOVS r0,#0x02
0x08000656 F7FFFF86 BL.W SPI_FLASH_SendByte (0x08000566)
170: SPI_FLASH_SendByte((WriteAddr & 0xFF0000) >> 16);
171: /* Send WriteAddr medium nibble address byte to write to */
0x0800065A F3C74007 UBFX r0,r7,#16,#8
0x0800065E F7FFFF82 BL.W SPI_FLASH_SendByte (0x08000566)
172: SPI_FLASH_SendByte((WriteAddr & 0xFF00) >> 8);
173: /* Send WriteAddr low nibble address byte to write to */
0x08000662 F3C72007 UBFX r0,r7,#8,#8
0x08000666 F7FFFF7E BL.W SPI_FLASH_SendByte (0x08000566)
174: SPI_FLASH_SendByte(WriteAddr & 0xFF);
175:
176: /* while there is data to be written on the FLASH */
0x0800066A B2F8 UXTB r0,r7
0x0800066C F7FFFF7B BL.W SPI_FLASH_SendByte (0x08000566)
177: while(NumByteToWrite--)
178: {
179: /* Send the current byte */
0x08000670 E003 B 0x0800067A
180: SPI_FLASH_SendByte(*pBuffer);
181: /* Point on the next byte to be written */
0x08000672 7828 LDRB r0,[r5,#0x00]
0x08000674 F7FFFF77 BL.W SPI_FLASH_SendByte (0x08000566)
182: pBuffer++;
183: }
184:
185: /* Deselect the FLASH: Chip Select high */
0x08000678 1C6D ADDS r5,r5,#1
0x0800067A 0020 MOVS r0,r4
0x0800067C F1A40401 SUB r4,r4,#0x01
0x08000680 B2A4 UXTH r4,r4
0x08000682 D1F6 BNE 0x08000672
186: SPI_FLASH_CS_HIGH();
187:
188: /* Wait the end of Flash writing */
0x08000684 2110 MOVS r1,#0x10
0x08000686 4630 MOV r0,r6
0x08000688 F001FA2D BL.W GPIO_SetBits (0x08001AE6)
189: SPI_FLASH_WaitForWriteEnd();
190: }
191:
192: /*******************************************************************************
193: * Function Name : SPI_FLASH_BufferWrite
194: * Description : Writes block of data to the FLASH. In this function, the
195: * number of WRITE cycles are reduced, using Page WRITE sequence.
196: * Input : - pBuffer : pointer to the buffer containing the data to be
197: * written to the FLASH.
198: * - WriteAddr : FLASH's internal address to write to.
199: * - NumByteToWrite : number of bytes to write to the FLASH.
200: * Output : None
201: * Return : None
202: *******************************************************************************/
203: void SPI_FLASH_BufferWrite(u8* pBuffer, u32 WriteAddr, u16 NumByteToWrite)
0x0800068C E8BD41F0 POP {r4-r8,lr}
0x08000690 E781 B SPI_FLASH_WaitForWriteEnd (0x08000596)
204: {
205: u8 NumOfPage = 0, NumOfSingle = 0, Addr = 0, count = 0, temp = 0;
206:
0x08000692 E92D47F0 PUSH {r4-r10,lr}
0x08000696 4606 MOV r6,r0
0x08000698 460D MOV r5,r1
207: Addr = WriteAddr % SPI_FLASH_PageSize;
0x0800069A F01100FF ANDS r0,r1,#0xFF
208: count = SPI_FLASH_PageSize - Addr;
209: NumOfPage = NumByteToWrite / SPI_FLASH_PageSize;
0x0800069E F1C00100 RSB r1,r0,#0x00
0x080006A2 B2CF UXTB r7,r1
210: NumOfSingle = NumByteToWrite % SPI_FLASH_PageSize;
211:
212: if(Addr == 0) /* WriteAddr is SPI_FLASH_PageSize aligned */
213: {
214: if(NumOfPage == 0) /* NumByteToWrite < SPI_FLASH_PageSize */
215: {
216: SPI_FLASH_PageWrite(pBuffer, WriteAddr, NumByteToWrite);
217: }
218: else /* NumByteToWrite > SPI_FLASH_PageSize */
219: {
220: while(NumOfPage--)
221: {
0x080006A4 B2D1 UXTB r1,r2
209: NumOfPage = NumByteToWrite / SPI_FLASH_PageSize;
210: NumOfSingle = NumByteToWrite % SPI_FLASH_PageSize;
211:
212: if(Addr == 0) /* WriteAddr is SPI_FLASH_PageSize aligned */
213: {
214: if(NumOfPage == 0) /* NumByteToWrite < SPI_FLASH_PageSize */
215: {
216: SPI_FLASH_PageWrite(pBuffer, WriteAddr, NumByteToWrite);
217: }
218: else /* NumByteToWrite > SPI_FLASH_PageSize */
219: {
220: while(NumOfPage--)
221: {
0x080006A6 EA4F2412 LSR r4,r2,#8
0x080006AA 4689 MOV r9,r1
222: SPI_FLASH_PageWrite(pBuffer, WriteAddr, SPI_FLASH_PageSize);
223: WriteAddr += SPI_FLASH_PageSize;
224: pBuffer += SPI_FLASH_PageSize;
225: }
226:
227: SPI_FLASH_PageWrite(pBuffer, WriteAddr, NumOfSingle);
228: }
229: }
230: else /* WriteAddr is not SPI_FLASH_PageSize aligned */
231: {
232: if(NumOfPage== 0) /* NumByteToWrite < SPI_FLASH_PageSize */
233: {
234: if(NumOfSingle > count) /* (NumByteToWrite + WriteAddr) > SPI_FLASH_PageSize */
235: {
236: temp = NumOfSingle - count;
237:
238: SPI_FLASH_PageWrite(pBuffer, WriteAddr, count);
0x080006AC F44F7A80 MOV r10,#0x100
212: if(Addr == 0) /* WriteAddr is SPI_FLASH_PageSize aligned */
0x080006B0 D013 BEQ 0x080006DA
207: Addr = WriteAddr % SPI_FLASH_PageSize;
0x080006B2 B2E8 UXTB r0,r5
208: count = SPI_FLASH_PageSize - Addr;
0x080006B4 4240 RSBS r0,r0,#0
0x080006B6 B2C0 UXTB r0,r0
239: WriteAddr += count;
240: pBuffer += count;
241:
242: SPI_FLASH_PageWrite(pBuffer, WriteAddr, temp);
243: }
244: else
245: {
246: SPI_FLASH_PageWrite(pBuffer, WriteAddr, NumByteToWrite);
247: }
248: }
249: else /* NumByteToWrite > SPI_FLASH_PageSize */
250: {
0x080006B8 4428 ADD r0,r0,r5
0x080006BA 4680 MOV r8,r0
232: if(NumOfPage== 0) /* NumByteToWrite < SPI_FLASH_PageSize */
233: {
234: if(NumOfSingle > count) /* (NumByteToWrite + WriteAddr) > SPI_FLASH_PageSize */
235: {
236: temp = NumOfSingle - count;
237:
238: SPI_FLASH_PageWrite(pBuffer, WriteAddr, count);
239: WriteAddr += count;
240: pBuffer += count;
241:
242: SPI_FLASH_PageWrite(pBuffer, WriteAddr, temp);
243: }
244: else
245: {
246: SPI_FLASH_PageWrite(pBuffer, WriteAddr, NumByteToWrite);
247: }
248: }
249: else /* NumByteToWrite > SPI_FLASH_PageSize */
250: {
0x080006BC B31C CBZ r4,0x08000706
251: NumByteToWrite -= count;
0x080006BE 1BD0 SUBS r0,r2,r7
0x080006C0 B280 UXTH r0,r0
252: NumOfPage = NumByteToWrite / SPI_FLASH_PageSize;
0x080006C2 0A04 LSRS r4,r0,#8
253: NumOfSingle = NumByteToWrite % SPI_FLASH_PageSize;
254:
0x080006C4 B2C0 UXTB r0,r0
0x080006C6 4681 MOV r9,r0
255: SPI_FLASH_PageWrite(pBuffer, WriteAddr, count);
256: WriteAddr += count;
0x080006C8 463A MOV r2,r7
0x080006CA 4629 MOV r1,r5
0x080006CC 4630 MOV r0,r6
0x080006CE F7FFFFB5 BL.W SPI_FLASH_PageWrite (0x0800063C)
257: pBuffer += count;
258:
259: while(NumOfPage--)
260: {
261: SPI_FLASH_PageWrite(pBuffer, WriteAddr, SPI_FLASH_PageSize);
262: WriteAddr += SPI_FLASH_PageSize;
0x080006D2 443E ADD r6,r6,r7
0x080006D4 4645 MOV r5,r8
0x080006D6 4657 MOV r7,r10
263: pBuffer += SPI_FLASH_PageSize;
264: }
265:
0x080006D8 E02E B 0x08000738
214: if(NumOfPage == 0) /* NumByteToWrite < SPI_FLASH_PageSize */
215: {
216: SPI_FLASH_PageWrite(pBuffer, WriteAddr, NumByteToWrite);
217: }
218: else /* NumByteToWrite > SPI_FLASH_PageSize */
219: {
220: while(NumOfPage--)
221: {
0x080006DA B17C CBZ r4,0x080006FC
222: SPI_FLASH_PageWrite(pBuffer, WriteAddr, SPI_FLASH_PageSize);
0x080006DC 4657 MOV r7,r10
220: while(NumOfPage--)
221: {
222: SPI_FLASH_PageWrite(pBuffer, WriteAddr, SPI_FLASH_PageSize);
0x080006DE 0020 MOVS r0,r4
0x080006E0 F1A40401 SUB r4,r4,#0x01
0x080006E4 B2E4 UXTB r4,r4
0x080006E6 D00C BEQ 0x08000702
0x080006E8 463A MOV r2,r7
0x080006EA 4629 MOV r1,r5
0x080006EC 4630 MOV r0,r6
0x080006EE F7FFFFA5 BL.W SPI_FLASH_PageWrite (0x0800063C)
223: WriteAddr += SPI_FLASH_PageSize;
0x080006F2 F5057580 ADD r5,r5,#0x100
224: pBuffer += SPI_FLASH_PageSize;
225: }
226:
0x080006F6 F5067680 ADD r6,r6,#0x100
0x080006FA E7F0 B 0x080006DE
216: SPI_FLASH_PageWrite(pBuffer, WriteAddr, NumByteToWrite);
217: }
218: else /* NumByteToWrite > SPI_FLASH_PageSize */
219: {
220: while(NumOfPage--)
221: {
222: SPI_FLASH_PageWrite(pBuffer, WriteAddr, SPI_FLASH_PageSize);
223: WriteAddr += SPI_FLASH_PageSize;
224: pBuffer += SPI_FLASH_PageSize;
225: }
226:
0x080006FC 4629 MOV r1,r5
0x080006FE 4630 MOV r0,r6
0x08000700 E00E B 0x08000720
227: SPI_FLASH_PageWrite(pBuffer, WriteAddr, NumOfSingle);
228: }
229: }
230: else /* WriteAddr is not SPI_FLASH_PageSize aligned */
231: {
232: if(NumOfPage== 0) /* NumByteToWrite < SPI_FLASH_PageSize */
233: {
0x08000702 464A MOV r2,r9
0x08000704 E7FA B 0x080006FC
234: if(NumOfSingle > count) /* (NumByteToWrite + WriteAddr) > SPI_FLASH_PageSize */
235: {
0x08000706 42B9 CMP r1,r7
0x08000708 D9F8 BLS 0x080006FC
236: temp = NumOfSingle - count;
237:
0x0800070A EBA90007 SUB r0,r9,r7
0x0800070E B2C4 UXTB r4,r0
238: SPI_FLASH_PageWrite(pBuffer, WriteAddr, count);
239: WriteAddr += count;
0x08000710 463A MOV r2,r7
0x08000712 4629 MOV r1,r5
0x08000714 4630 MOV r0,r6
0x08000716 F7FFFF91 BL.W SPI_FLASH_PageWrite (0x0800063C)
0x0800071A 4641 MOV r1,r8
240: pBuffer += count;
241:
0x0800071C 19F0 ADDS r0,r6,r7
242: SPI_FLASH_PageWrite(pBuffer, WriteAddr, temp);
243: }
244: else
245: {
0x0800071E 4622 MOV r2,r4
246: SPI_FLASH_PageWrite(pBuffer, WriteAddr, NumByteToWrite);
247: }
248: }
249: else /* NumByteToWrite > SPI_FLASH_PageSize */
250: {
251: NumByteToWrite -= count;
252: NumOfPage = NumByteToWrite / SPI_FLASH_PageSize;
253: NumOfSingle = NumByteToWrite % SPI_FLASH_PageSize;
254:
255: SPI_FLASH_PageWrite(pBuffer, WriteAddr, count);
256: WriteAddr += count;
257: pBuffer += count;
258:
259: while(NumOfPage--)
260: {
0x08000720 E8BD47F0 POP {r4-r10,lr}
0x08000724 E78A B SPI_FLASH_PageWrite (0x0800063C)
261: SPI_FLASH_PageWrite(pBuffer, WriteAddr, SPI_FLASH_PageSize);
0x08000726 463A MOV r2,r7
0x08000728 4629 MOV r1,r5
0x0800072A 4630 MOV r0,r6
0x0800072C F7FFFF86 BL.W SPI_FLASH_PageWrite (0x0800063C)
262: WriteAddr += SPI_FLASH_PageSize;
0x08000730 F5057580 ADD r5,r5,#0x100
263: pBuffer += SPI_FLASH_PageSize;
264: }
265:
0x08000734 F5067680 ADD r6,r6,#0x100
259: while(NumOfPage--)
260: {
261: SPI_FLASH_PageWrite(pBuffer, WriteAddr, SPI_FLASH_PageSize);
262: WriteAddr += SPI_FLASH_PageSize;
263: pBuffer += SPI_FLASH_PageSize;
264: }
265:
0x08000738 0020 MOVS r0,r4
0x0800073A F1A40401 SUB r4,r4,#0x01
0x0800073E B2E4 UXTB r4,r4
0x08000740 D1F1 BNE 0x08000726
266: if(NumOfSingle != 0)
267: {
0x08000742 EA5F0009 MOVS r0,r9
0x08000746 D001 BEQ 0x0800074C
268: SPI_FLASH_PageWrite(pBuffer, WriteAddr, NumOfSingle);
269: }
270: }
271: }
0x08000748 4602 MOV r2,r0
0x0800074A E7D7 B 0x080006FC
272: }
273:
274: /*******************************************************************************
275: * Function Name : SPI_FLASH_BufferRead
276: * Description : Reads a block of data from the FLASH.
277: * Input : - pBuffer : pointer to the buffer that receives the data read
278: * from the FLASH.
279: * - ReadAddr : FLASH's internal address to read from.
280: * - NumByteToRead : number of bytes to read from the FLASH.
281: * Output : None
282: * Return : None
283: *******************************************************************************/
284: void SPI_FLASH_BufferRead(u8* pBuffer, u32 ReadAddr, u16 NumByteToRead)
0x0800074C E8BD87F0 POP {r4-r10,pc}
285: {
286: /* Select the FLASH: Chip Select low */
0x08000750 E92D41F0 PUSH {r4-r8,lr}
287: SPI_FLASH_CS_LOW();
288:
289: /* Send "Read from Memory " instruction */
0x08000754 4E3A LDR r6,[pc,#232] ; @0x08000840
0x08000756 4604 MOV r4,r0
0x08000758 460F MOV r7,r1
0x0800075A 4615 MOV r5,r2
0x0800075C 2110 MOVS r1,#0x10
0x0800075E 4630 MOV r0,r6
0x08000760 F001F9BF BL.W GPIO_ResetBits (0x08001AE2)
290: SPI_FLASH_SendByte(READ);
291:
292: /* Send ReadAddr high nibble address byte to read from */
0x08000764 2003 MOVS r0,#0x03
0x08000766 F7FFFEFE BL.W SPI_FLASH_SendByte (0x08000566)
293: SPI_FLASH_SendByte((ReadAddr & 0xFF0000) >> 16);
294: /* Send ReadAddr medium nibble address byte to read from */
0x0800076A F3C74007 UBFX r0,r7,#16,#8
0x0800076E F7FFFEFA BL.W SPI_FLASH_SendByte (0x08000566)
295: SPI_FLASH_SendByte((ReadAddr& 0xFF00) >> 8);
296: /* Send ReadAddr low nibble address byte to read from */
0x08000772 F3C72007 UBFX r0,r7,#8,#8
0x08000776 F7FFFEF6 BL.W SPI_FLASH_SendByte (0x08000566)
297: SPI_FLASH_SendByte(ReadAddr & 0xFF);
298:
0x0800077A B2F8 UXTB r0,r7
0x0800077C F7FFFEF3 BL.W SPI_FLASH_SendByte (0x08000566)
299: while(NumByteToRead--) /* while there is data to be read */
300: {
301: /* Read a byte from the FLASH */
0x08000780 E004 B 0x0800078C
302: *pBuffer = SPI_FLASH_SendByte(Dummy_Byte);
303: /* Point to the next location where the byte read will be saved */
304: pBuffer++;
305: }
306:
307: /* Deselect the FLASH: Chip Select high */
0x08000782 20A5 MOVS r0,#0xA5
0x08000784 F7FFFEEF BL.W SPI_FLASH_SendByte (0x08000566)
0x08000788 F8040B01 STRB r0,[r4],#0x01
0x0800078C 0028 MOVS r0,r5
0x0800078E F1A50501 SUB r5,r5,#0x01
0x08000792 B2AD UXTH r5,r5
0x08000794 D1F5 BNE 0x08000782
308: SPI_FLASH_CS_HIGH();
309: }
310:
311: /*******************************************************************************
312: * Function Name : SPI_FLASH_ReadID
313: * Description : Reads FLASH identification.
314: * Input : None
315: * Output : None
316: * Return : FLASH identification
317: *******************************************************************************/
318: u32 SPI_FLASH_ReadID(void)
0x08000796 4630 MOV r0,r6
0x08000798 E8BD41F0 POP {r4-r8,lr}
0x0800079C 2110 MOVS r1,#0x10
0x0800079E F001B9A2 B.W GPIO_SetBits (0x08001AE6)
319: {
320: u32 Temp = 0, Temp0 = 0, Temp1 = 0, Temp2 = 0;
321:
322: /* Select the FLASH: Chip Select low */
0x080007A2 E92D41F0 PUSH {r4-r8,lr}
323: SPI_FLASH_CS_LOW();
324:
325: /* Send "RDID " instruction */
0x080007A6 4C26 LDR r4,[pc,#152] ; @0x08000840
0x080007A8 2110 MOVS r1,#0x10
0x080007AA 4620 MOV r0,r4
0x080007AC F001F999 BL.W GPIO_ResetBits (0x08001AE2)
326: SPI_FLASH_SendByte(0x9F);
327:
328: /* Read a byte from the FLASH */
0x080007B0 209F MOVS r0,#0x9F
0x080007B2 F7FFFED8 BL.W SPI_FLASH_SendByte (0x08000566)
329: Temp0 = SPI_FLASH_SendByte(Dummy_Byte);
330:
331: /* Read a byte from the FLASH */
0x080007B6 20A5 MOVS r0,#0xA5
0x080007B8 F7FFFED5 BL.W SPI_FLASH_SendByte (0x08000566)
0x080007BC 4606 MOV r6,r0
332: Temp1 = SPI_FLASH_SendByte(Dummy_Byte);
333:
334: /* Read a byte from the FLASH */
0x080007BE 20A5 MOVS r0,#0xA5
0x080007C0 F7FFFED1 BL.W SPI_FLASH_SendByte (0x08000566)
0x080007C4 4607 MOV r7,r0
335: Temp2 = SPI_FLASH_SendByte(Dummy_Byte);
336:
337: /* Deselect the FLASH: Chip Select high */
0x080007C6 20A5 MOVS r0,#0xA5
0x080007C8 F7FFFECD BL.W SPI_FLASH_SendByte (0x08000566)
0x080007CC 4605 MOV r5,r0
338: SPI_FLASH_CS_HIGH();
339:
0x080007CE 2110 MOVS r1,#0x10
0x080007D0 4620 MOV r0,r4
0x080007D2 F001F988 BL.W GPIO_SetBits (0x08001AE6)
340: Temp = (Temp0 << 16) | (Temp1 << 8) | Temp2;
341:
342: return Temp;
0x080007D6 0430 LSLS r0,r6,#16
0x080007D8 EA402007 ORR r0,r0,r7,LSL #8
0x080007DC 4328 ORRS r0,r0,r5
343: }
344:
345: /*******************************************************************************
346: * Function Name : SPI_FLASH_StartReadSequence
347: * Description : Initiates a read data byte (READ) sequence from the Flash.
348: * This is done by driving the /CS line low to select the device,
349: * then the READ instruction is transmitted followed by 3 bytes
350: * address. This function exit and keep the /CS line low, so the
351: * Flash still being selected. With this technique the whole
352: * content of the Flash is read with a single READ instruction.
353: * Input : - ReadAddr : FLASH's internal address to read from.
354: * Output : None
355: * Return : None
356: *******************************************************************************/
357: void SPI_FLASH_StartReadSequence(u32 ReadAddr)
0x080007DE E8BD81F0 POP {r4-r8,pc}
358: {
359: /* Select the FLASH: Chip Select low */
0x080007E2 B510 PUSH {r4,lr}
0x080007E4 4604 MOV r4,r0
360: SPI_FLASH_CS_LOW();
361:
362: /* Send "Read from Memory " instruction */
0x080007E6 2110 MOVS r1,#0x10
0x080007E8 4815 LDR r0,[pc,#84] ; @0x08000840
0x080007EA F001F97A BL.W GPIO_ResetBits (0x08001AE2)
363: SPI_FLASH_SendByte(READ);
364:
365: /* Send the 24-bit address of the address to read from -----------------------*/
366: /* Send ReadAddr high nibble address byte */
0x080007EE 2003 MOVS r0,#0x03
0x080007F0 F7FFFEB9 BL.W SPI_FLASH_SendByte (0x08000566)
367: SPI_FLASH_SendByte((ReadAddr & 0xFF0000) >> 16);
368: /* Send ReadAddr medium nibble address byte */
0x080007F4 F3C44007 UBFX r0,r4,#16,#8
0x080007F8 F7FFFEB5 BL.W SPI_FLASH_SendByte (0x08000566)
369: SPI_FLASH_SendByte((ReadAddr& 0xFF00) >> 8);
370: /* Send ReadAddr low nibble address byte */
0x080007FC F3C42007 UBFX r0,r4,#8,#8
0x08000800 F7FFFEB1 BL.W SPI_FLASH_SendByte (0x08000566)
371: SPI_FLASH_SendByte(ReadAddr & 0xFF);
372: }
373:
374: /*******************************************************************************
375: * Function Name : SPI_FLASH_ReadByte
376: * Description : Reads a byte from the SPI Flash.
377: * This function must be used only if the Start_Read_Sequence
378: * function has been previously called.
379: * Input : None
380: * Output : None
381: * Return : Byte Read from the SPI Flash.
382: *******************************************************************************/
383: u8 SPI_FLASH_ReadByte(void)
384: {
0x08000804 B2E0 UXTB r0,r4
0x08000806 E8BD4010 POP {r4,lr}
0x0800080A E6AC B SPI_FLASH_SendByte (0x08000566)
385: return (SPI_FLASH_SendByte(Dummy_Byte));
0x0800080C 20A5 MOVS r0,#0xA5
0x0800080E E6AA B SPI_FLASH_SendByte (0x08000566)
420: {
421: /* Loop while DR register in not emplty */
0x08000810 B570 PUSH {r4-r6,lr}
422: while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE) == RESET);
423:
424: /* Send Half Word through the SPI1 peripheral */
0x08000812 4C0C LDR r4,[pc,#48] ; @0x08000844
0x08000814 4605 MOV r5,r0
0x08000816 2102 MOVS r1,#0x02
0x08000818 4620 MOV r0,r4
0x0800081A F001FA6D BL.W SPI_I2S_GetFlagStatus (0x08001CF8)
0x0800081E 2800 CMP r0,#0x00
0x08000820 D0F9 BEQ 0x08000816
425: SPI_I2S_SendData(SPI1, HalfWord);
426:
427: /* Wait to receive a Half Word */
0x08000822 4629 MOV r1,r5
0x08000824 4620 MOV r0,r4
0x08000826 F001FA70 BL.W SPI_I2S_SendData (0x08001D0A)
428: while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_RXNE) == RESET);
429:
430: /* Return the Half Word read from the SPI bus */
0x0800082A 2101 MOVS r1,#0x01
0x0800082C 4620 MOV r0,r4
0x0800082E F001FA63 BL.W SPI_I2S_GetFlagStatus (0x08001CF8)
0x08000832 2800 CMP r0,#0x00
0x08000834 D0F9 BEQ 0x0800082A
431: return SPI_I2S_ReceiveData(SPI1);
0x08000836 4620 MOV r0,r4
0x08000838 E8BD4070 POP {r4-r6,lr}
0x0800083C F001BA63 B.W SPI_I2S_ReceiveData (0x08001D06)
0x08000840 0800 LSRS r0,r0,#0
0x08000842 4001 ANDS r1,r1,r0
0x08000844 3000 ADDS r0,r0,#0x00
0x08000846 4001 ANDS r1,r1,r0
1270: GPIO_WriteBit(GPIOx, CtrlPins, BitVal);
1271: }
1272:
1273: /*******************************************************************************
1274: * Function Name : LCD_SPIConfig
1275: * Description : Configures the SPI2 interface.
1276: * Input : None
1277: * Output : None
1278: * Return : None
1279: *******************************************************************************/
1280: void LCD_SPIConfig(void)
0x08000848 F001B94F B.W GPIO_WriteBit (0x08001AEA)
885: {
0x0800084C B510 PUSH {r4,lr}
0x0800084E 4604 MOV r4,r0
886: LCD_CtrlLinesWrite(GPIOB, CtrlPin_NCS, Bit_RESET);
887:
0x08000850 2200 MOVS r2,#0x00
0x08000852 2104 MOVS r1,#0x04
0x08000854 48FD LDR r0,[pc,#1012] ; @0x08000C4C
0x08000856 F7FFFFF7 BL.W LCD_CtrlLinesWrite (0x08000848)
888: SPI_I2S_SendData(SPI2, Start_Byte);
0x0800085A 4621 MOV r1,r4
0x0800085C 4CFC LDR r4,[pc,#1008] ; @0x08000C50
0x0800085E 4620 MOV r0,r4
0x08000860 F001FA53 BL.W SPI_I2S_SendData (0x08001D0A)
889: while(SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_BSY) != RESET)
890: {
891: }
0x08000864 2180 MOVS r1,#0x80
0x08000866 4620 MOV r0,r4
0x08000868 F001FA46 BL.W SPI_I2S_GetFlagStatus (0x08001CF8)
0x0800086C 2800 CMP r0,#0x00
0x0800086E D1F9 BNE 0x08000864
892: }
893:
894: /*******************************************************************************
895: * Function Name : LCD_WriteRegIndex
896: * Description : Writes index to select the LCD register.
897: * Input : - LCD_Reg: address of the selected register.
898: * Output : None
899: * Return : None
900: *******************************************************************************/
901: void LCD_WriteRegIndex(u8 LCD_Reg)
0x08000870 BD10 POP {r4,pc}
902: {
903: /* Reset LCD control line(/CS) and Send Start-Byte */
0x08000872 B570 PUSH {r4-r6,lr}
0x08000874 4605 MOV r5,r0
904: LCD_nCS_StartByte(START_BYTE | SET_INDEX);
905:
906: /* Write 16-bit Reg Index (High Byte is 0) */
0x08000876 2070 MOVS r0,#0x70
0x08000878 F7FFFFE8 BL.W LCD_nCS_StartByte (0x0800084C)
907: SPI_I2S_SendData(SPI2, 0x00);
0x0800087C 4CF4 LDR r4,[pc,#976] ; @0x08000C50
0x0800087E 2100 MOVS r1,#0x00
0x08000880 4620 MOV r0,r4
0x08000882 F001FA42 BL.W SPI_I2S_SendData (0x08001D0A)
908: while(SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_BSY) != RESET)
909: {
910: }
0x08000886 2180 MOVS r1,#0x80
0x08000888 4620 MOV r0,r4
0x0800088A F001FA35 BL.W SPI_I2S_GetFlagStatus (0x08001CF8)
0x0800088E 2800 CMP r0,#0x00
0x08000890 D1F9 BNE 0x08000886
911: SPI_I2S_SendData(SPI2, LCD_Reg);
0x08000892 4629 MOV r1,r5
0x08000894 4620 MOV r0,r4
0x08000896 F001FA38 BL.W SPI_I2S_SendData (0x08001D0A)
912: while(SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_BSY) != RESET)
913: {
914: }
915:
0x0800089A 2180 MOVS r1,#0x80
0x0800089C 4620 MOV r0,r4
0x0800089E F001FA2B BL.W SPI_I2S_GetFlagStatus (0x08001CF8)
0x080008A2 2800 CMP r0,#0x00
0x080008A4 D1F9 BNE 0x0800089A
916: LCD_CtrlLinesWrite(GPIOB, CtrlPin_NCS, Bit_SET);
0x080008A6 E8BD4070 POP {r4-r6,lr}
0x080008AA 2201 MOVS r2,#0x01
0x080008AC 2104 MOVS r1,#0x04
0x080008AE 48E7 LDR r0,[pc,#924] ; @0x08000C4C
0x080008B0 E7CA B LCD_CtrlLinesWrite (0x08000848)
1081: {
0x080008B2 E92D41F0 PUSH {r4-r8,lr}
1082: if(LCDType == LCD_ILI9320)
1083: {
0x080008B6 4AE7 LDR r2,[pc,#924] ; @0x08000C54
0x080008B8 6853 LDR r3,[r2,#0x04]
945: LCD_CtrlLinesWrite(GPIOB, CtrlPin_NCS, Bit_SET);
0x080008BA 4DE4 LDR r5,[pc,#912] ; @0x08000C4C
936: SPI_I2S_SendData(SPI2, LCD_RegValue>>8);
0x080008BC 4FE4 LDR r7,[pc,#912] ; @0x08000C50
0x080008BE F5A34413 SUB r4,r3,#0x9300
0x080008C2 3C20 SUBS r4,r4,#0x20
0x080008C4 D11A BNE 0x080008FC
1084: LCD_WriteRegILI9320(LCD_Reg, LCD_RegValue);
1085: }
0x080008C6 460C MOV r4,r1
930: LCD_WriteRegIndex(LCD_Reg);
931:
932: /* Write 16-bit Reg */
933: /* Reset LCD control line(/CS) and Send Start-Byte */
0x080008C8 F7FFFFD3 BL.W LCD_WriteRegIndex (0x08000872)
934: LCD_nCS_StartByte(START_BYTE | WRITE_REG);
935:
0x080008CC 2072 MOVS r0,#0x72
0x080008CE F7FFFFBD BL.W LCD_nCS_StartByte (0x0800084C)
936: SPI_I2S_SendData(SPI2, LCD_RegValue>>8);
0x080008D2 0A21 LSRS r1,r4,#8
0x080008D4 4638 MOV r0,r7
0x080008D6 F001FA18 BL.W SPI_I2S_SendData (0x08001D0A)
937: while(SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_BSY) != RESET)
938: {
939: }
0x080008DA 2180 MOVS r1,#0x80
0x080008DC 4638 MOV r0,r7
0x080008DE F001FA0B BL.W SPI_I2S_GetFlagStatus (0x08001CF8)
0x080008E2 2800 CMP r0,#0x00
0x080008E4 D1F9 BNE 0x080008DA
940: SPI_I2S_SendData(SPI2, (LCD_RegValue & 0xFF));
0x080008E6 B2E1 UXTB r1,r4
0x080008E8 4638 MOV r0,r7
0x080008EA F001FA0E BL.W SPI_I2S_SendData (0x08001D0A)
941: while(SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_BSY) != RESET)
0x080008EE 2180 MOVS r1,#0x80
0x080008F0 4638 MOV r0,r7
0x080008F2 F001FA01 BL.W SPI_I2S_GetFlagStatus (0x08001CF8)
0x080008F6 2800 CMP r0,#0x00
0x080008F8 D1F9 BNE 0x080008EE
0x080008FA E023 B 0x08000944
1086: else if(LCDType == LCD_HX8312)
1087: {
0x080008FC 6852 LDR r2,[r2,#0x04]
0x080008FE F5A24303 SUB r3,r2,#0x8300
0x08000902 3B12 SUBS r3,r3,#0x12
0x08000904 D124 BNE 0x08000950
1057: LCD_CtrlLinesWrite(GPIOD, CtrlPin_NWR, Bit_RESET);
0x08000906 F8DF8350 LDR.W r8,[pc,#848] ; @0x08000C5A
1088: LCD_WriteRegHX8312(LCD_Reg, ((u8)LCD_RegValue));
1089: }
0x0800090A 4606 MOV r6,r0
0x0800090C B2CC UXTB r4,r1
0x0800090E 2200 MOVS r2,#0x00
0x08000910 F44F4100 MOV r1,#0x8000
0x08000914 4640 MOV r0,r8
0x08000916 F7FFFF97 BL.W LCD_CtrlLinesWrite (0x08000848)
1058: LCD_CtrlLinesWrite(GPIOD, CtrlPin_RS, Bit_RESET);
0x0800091A 2200 MOVS r2,#0x00
0x0800091C 2180 MOVS r1,#0x80
0x0800091E 4640 MOV r0,r8
0x08000920 F7FFFF92 BL.W LCD_CtrlLinesWrite (0x08000848)
1059: LCD_CtrlLinesWrite(GPIOB, CtrlPin_NCS, Bit_RESET);
1060:
1061: tmp = LCD_Reg << 8;
0x08000924 2200 MOVS r2,#0x00
0x08000926 2104 MOVS r1,#0x04
0x08000928 4628 MOV r0,r5
0x0800092A F7FFFF8D BL.W LCD_CtrlLinesWrite (0x08000848)
1062: tmp |= LCD_RegValue;
1063:
0x0800092E EA442106 ORR r1,r4,r6,LSL #8
1064: SPI_I2S_SendData(SPI2, tmp);
0x08000932 4638 MOV r0,r7
0x08000934 F001F9E9 BL.W SPI_I2S_SendData (0x08001D0A)
1065: while(SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_BSY) != RESET)
1066: {
1067: }
1068:
0x08000938 2180 MOVS r1,#0x80
0x0800093A 4638 MOV r0,r7
0x0800093C F001F9DC BL.W SPI_I2S_GetFlagStatus (0x08001CF8)
0x08000940 2800 CMP r0,#0x00
0x08000942 D1F9 BNE 0x08000938
1069: LCD_CtrlLinesWrite(GPIOB, CtrlPin_NCS, Bit_SET);
1070: }
1071:
1072: /*******************************************************************************
1073: * Function Name : LCD_WriteReg
1074: * Description : Writes to the selected LCD register.
1075: * Input : - LCD_Reg: address of the selected register.
1076: * - LCD_RegValue: value to write to the selected register.
1077: * Output : None
1078: * Return : None
1079: *******************************************************************************/
1080: void LCD_WriteReg(u8 LCD_Reg, u16 LCD_RegValue)
1081: {
1082: if(LCDType == LCD_ILI9320)
1083: {
1084: LCD_WriteRegILI9320(LCD_Reg, LCD_RegValue);
1085: }
1086: else if(LCDType == LCD_HX8312)
1087: {
1088: LCD_WriteRegHX8312(LCD_Reg, ((u8)LCD_RegValue));
1089: }
0x08000944 4628 MOV r0,r5
0x08000946 E8BD41F0 POP {r4-r8,lr}
0x0800094A 2201 MOVS r2,#0x01
0x0800094C 2104 MOVS r1,#0x04
0x0800094E E77B B LCD_CtrlLinesWrite (0x08000848)
1090: }
0x08000950 E8BD81F0 POP {r4-r8,pc}
1281: {
1282: SPI_InitTypeDef SPI_InitStructure;
1283: GPIO_InitTypeDef GPIO_InitStructure;
1284:
1285: /* Enable GPIOB clock */
0x08000954 B510 PUSH {r4,lr}
0x08000956 B086 SUB sp,sp,#0x18
1286: RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
1287:
1288: /* Enable SPI2 clock */
0x08000958 2101 MOVS r1,#0x01
0x0800095A 2008 MOVS r0,#0x08
0x0800095C F001F8EC BL.W RCC_APB2PeriphClockCmd (0x08001B38)
1289: RCC_APB1PeriphClockCmd(RCC_APB1Periph_SPI2, ENABLE);
1290:
1291: /* Configure SPI2 pins: NSS, SCK, MISO and MOSI */
0x08000960 2101 MOVS r1,#0x01
0x08000962 0388 LSLS r0,r1,#14
0x08000964 F001F8D0 BL.W RCC_APB1PeriphClockCmd (0x08001B08)
1292: GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15;
0x08000968 F44F4070 MOV r0,#0xF000
0x0800096C F8AD0014 STRH r0,[sp,#0x14]
1293: GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
0x08000970 2003 MOVS r0,#0x03
0x08000972 F88D0016 STRB r0,[sp,#0x16]
1294: GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
0x08000976 2018 MOVS r0,#0x18
0x08000978 F88D0017 STRB r0,[sp,#0x17]
1295: GPIO_Init(GPIOB, &GPIO_InitStructure);
1296:
0x0800097C A905 ADD r1,sp,#0x14
0x0800097E 48B3 LDR r0,[pc,#716] ; @0x08000C4C
0x08000980 F001F858 BL.W GPIO_Init (0x08001A34)
1297: SPI_I2S_DeInit(SPI2);
1298:
1299: /* SPI2 Config */
0x08000984 4CB2 LDR r4,[pc,#712] ; @0x08000C50
0x08000986 4620 MOV r0,r4
0x08000988 F001F990 BL.W SPI_I2S_DeInit (0x08001CAC)
1300: SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex;
0x0800098C 2100 MOVS r1,#0x00
0x0800098E F8AD1000 STRH r1,[sp,#0x00]
1301: SPI_InitStructure.SPI_Mode = SPI_Mode_Master;
0x08000992 F44F7082 MOV r0,#0x104
0x08000996 F8AD0002 STRH r0,[sp,#0x02]
1302: if(LCDType == LCD_ILI9320)
1303: {
0x0800099A 48AE LDR r0,[pc,#696] ; @0x08000C54
0x0800099C 6842 LDR r2,[r0,#0x04]
0x0800099E F5A24313 SUB r3,r2,#0x9300
0x080009A2 3B20 SUBS r3,r3,#0x20
0x080009A4 D108 BNE 0x080009B8
1304: SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b;
0x080009A6 F8AD1004 STRH r1,[sp,#0x04]
1305: SPI_InitStructure.SPI_CPOL = SPI_CPOL_High;
0x080009AA 2002 MOVS r0,#0x02
0x080009AC F8AD0006 STRH r0,[sp,#0x06]
1306: SPI_InitStructure.SPI_CPHA = SPI_CPHA_2Edge;
1307: }
0x080009B0 2001 MOVS r0,#0x01
0x080009B2 F8AD0008 STRH r0,[sp,#0x08]
0x080009B6 E00C B 0x080009D2
1308: else if(LCDType == LCD_HX8312)
1309: {
0x080009B8 6840 LDR r0,[r0,#0x04]
0x080009BA F5A04203 SUB r2,r0,#0x8300
0x080009BE 3A12 SUBS r2,r2,#0x12
0x080009C0 D107 BNE 0x080009D2
1310: SPI_InitStructure.SPI_DataSize = SPI_DataSize_16b;
0x080009C2 F44F6000 MOV r0,#0x800
0x080009C6 F8AD0004 STRH r0,[sp,#0x04]
1311: SPI_InitStructure.SPI_CPOL = SPI_CPOL_Low;
0x080009CA F8AD1006 STRH r1,[sp,#0x06]
1312: SPI_InitStructure.SPI_CPHA = SPI_CPHA_1Edge;
1313: }
0x080009CE F8AD1008 STRH r1,[sp,#0x08]
1314: SPI_InitStructure.SPI_NSS = SPI_NSS_Soft;
0x080009D2 F44F7000 MOV r0,#0x200
1315: SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_2;
0x080009D6 F8AD100C STRH r1,[sp,#0x0C]
0x080009DA F8AD000A STRH r0,[sp,#0x0A]
1316: SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB;
0x080009DE F8AD100E STRH r1,[sp,#0x0E]
1317: SPI_Init(SPI2, &SPI_InitStructure);
1318:
1319: /* SPI2 enable */
0x080009E2 4669 MOV r1,sp
0x080009E4 4620 MOV r0,r4
0x080009E6 F001F992 BL.W SPI_Init (0x08001D0E)
1320: SPI_Cmd(SPI2, ENABLE);
0x080009EA 2101 MOVS r1,#0x01
0x080009EC 4620 MOV r0,r4
0x080009EE F001F94B BL.W SPI_Cmd (0x08001C88)
1321: }
0x080009F2 B006 ADD sp,sp,#0x18
0x080009F4 BD10 POP {r4,pc}
1235: {
1236: GPIO_InitTypeDef GPIO_InitStructure;
1237:
1238: /* Configure NCS (PB.02) in Output Push-Pull mode */
0x080009F6 B538 PUSH {r3-r5,lr}
1239: GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;
0x080009F8 2004 MOVS r0,#0x04
0x080009FA F8AD0000 STRH r0,[sp,#0x00]
1240: GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
0x080009FE 2003 MOVS r0,#0x03
0x08000A00 F88D0002 STRB r0,[sp,#0x02]
1241: GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
0x08000A04 2010 MOVS r0,#0x10
0x08000A06 F88D0003 STRB r0,[sp,#0x03]
1242: GPIO_Init(GPIOB, &GPIO_InitStructure);
1243:
1244: /* Configure NWR(RNW), RS (PD.15, PD.07) in Output Push-Pull mode */
0x08000A0A 4669 MOV r1,sp
0x08000A0C 488F LDR r0,[pc,#572] ; @0x08000C4C
0x08000A0E F001F811 BL.W GPIO_Init (0x08001A34)
1245: GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7 | GPIO_Pin_15;
0x08000A12 F2480080 MOVW r0,#0x8080
1246: GPIO_Init(GPIOD, &GPIO_InitStructure);
1247:
0x08000A16 4C90 LDR r4,[pc,#576] ; @0x08000C58
0x08000A18 F8AD0000 STRH r0,[sp,#0x00]
0x08000A1C 4669 MOV r1,sp
0x08000A1E 4620 MOV r0,r4
0x08000A20 F001F808 BL.W GPIO_Init (0x08001A34)
1248: LCD_CtrlLinesWrite(GPIOD, CtrlPin_NWR, Bit_SET);
0x08000A24 2201 MOVS r2,#0x01
0x08000A26 03D1 LSLS r1,r2,#15
0x08000A28 4620 MOV r0,r4
0x08000A2A F7FFFF0D BL.W LCD_CtrlLinesWrite (0x08000848)
1249: LCD_CtrlLinesWrite(GPIOD, CtrlPin_RS, Bit_SET);
0x08000A2E 2201 MOVS r2,#0x01
0x08000A30 2180 MOVS r1,#0x80
0x08000A32 4620 MOV r0,r4
0x08000A34 F7FFFF08 BL.W LCD_CtrlLinesWrite (0x08000848)
1250: }
0x08000A38 BD38 POP {r3-r5,pc}
59: {
60: /* Configure the LCD Control pins --------------------------------------------*/
0x08000A3A B510 PUSH {r4,lr}
61: LCD_CtrlLinesConfig();
62:
63: /* Configure the SPI2 interface ----------------------------------------------*/
0x08000A3C F7FFFFDB BL.W LCD_CtrlLinesConfig (0x080009F6)
64: LCD_SPIConfig();
65:
0x08000A40 F7FFFF88 BL.W LCD_SPIConfig (0x08000954)
66: if(LCDType == LCD_ILI9320)
67: {
0x08000A44 4883 LDR r0,[pc,#524] ; @0x08000C54
0x08000A46 6841 LDR r1,[r0,#0x04]
0x08000A48 F5A14213 SUB r2,r1,#0x9300
0x08000A4C 3A20 SUBS r2,r2,#0x20
0x08000A4E D17E BNE 0x08000B4E
68: Delay(5); /* Delay 50 ms */
69: /* Start Initial Sequence ------------------------------------------------*/
0x08000A50 2005 MOVS r0,#0x05
0x08000A52 F7FFFB5A BL.W Delay (0x0800010A)
70: LCD_WriteReg(R229, 0x8000); /* Set the internal vcore voltage */
0x08000A56 F44F4100 MOV r1,#0x8000
0x08000A5A 20E5 MOVS r0,#0xE5
0x08000A5C F7FFFF29 BL.W LCD_WriteReg (0x080008B2)
71: LCD_WriteReg(R0, 0x0001); /* Start internal OSC. */
0x08000A60 2101 MOVS r1,#0x01
0x08000A62 2000 MOVS r0,#0x00
0x08000A64 F7FFFF25 BL.W LCD_WriteReg (0x080008B2)
72: LCD_WriteReg(R1, 0x0100); /* set SS and SM bit */
0x08000A68 F44F7180 MOV r1,#0x100
0x08000A6C 2001 MOVS r0,#0x01
0x08000A6E F7FFFF20 BL.W LCD_WriteReg (0x080008B2)
73: LCD_WriteReg(R2, 0x0700); /* set 1 line inversion */
0x08000A72 F44F61E0 MOV r1,#0x700
0x08000A76 2002 MOVS r0,#0x02
0x08000A78 F7FFFF1B BL.W LCD_WriteReg (0x080008B2)
74: LCD_WriteReg(R3, 0x1030); /* set GRAM write direction and BGR=1. */
0x08000A7C F2410130 MOVW r1,#0x1030
0x08000A80 2003 MOVS r0,#0x03
0x08000A82 F7FFFF16 BL.W LCD_WriteReg (0x080008B2)
75: LCD_WriteReg(R4, 0x0000); /* Resize register */
0x08000A86 2100 MOVS r1,#0x00
0x08000A88 2004 MOVS r0,#0x04
0x08000A8A F7FFFF12 BL.W LCD_WriteReg (0x080008B2)
76: LCD_WriteReg(R8, 0x0202); /* set the back porch and front porch */
0x08000A8E F2402102 MOVW r1,#0x202
0x08000A92 2008 MOVS r0,#0x08
0x08000A94 F7FFFF0D BL.W LCD_WriteReg (0x080008B2)
77: LCD_WriteReg(R9, 0x0000); /* set non-display area refresh cycle ISC[3:0] */
0x08000A98 2100 MOVS r1,#0x00
0x08000A9A 2009 MOVS r0,#0x09
0x08000A9C F7FFFF09 BL.W LCD_WriteReg (0x080008B2)
78: LCD_WriteReg(R10, 0x0000); /* FMARK function */
0x08000AA0 2100 MOVS r1,#0x00
0x08000AA2 200A MOVS r0,#0x0A
0x08000AA4 F7FFFF05 BL.W LCD_WriteReg (0x080008B2)
79: LCD_WriteReg(R12, 0x0000); /* RGB interface setting */
0x08000AA8 2100 MOVS r1,#0x00
0x08000AAA 200C MOVS r0,#0x0C
0x08000AAC F7FFFF01 BL.W LCD_WriteReg (0x080008B2)
80: LCD_WriteReg(R13, 0x0000); /* Frame marker Position */
0x08000AB0 2100 MOVS r1,#0x00
0x08000AB2 200D MOVS r0,#0x0D
0x08000AB4 F7FFFEFD BL.W LCD_WriteReg (0x080008B2)
81: LCD_WriteReg(R15, 0x0000); /* RGB interface polarity */
82:
83: /* Power On sequence -----------------------------------------------------*/
0x08000AB8 2100 MOVS r1,#0x00
0x08000ABA 200F MOVS r0,#0x0F
0x08000ABC F7FFFEF9 BL.W LCD_WriteReg (0x080008B2)
84: LCD_WriteReg(R16, 0x0000); /* SAP, BT[3:0], AP, DSTB, SLP, STB */
0x08000AC0 2100 MOVS r1,#0x00
0x08000AC2 2010 MOVS r0,#0x10
0x08000AC4 F7FFFEF5 BL.W LCD_WriteReg (0x080008B2)
85: LCD_WriteReg(R17, 0x0000); /* DC1[2:0], DC0[2:0], VC[2:0] */
0x08000AC8 2100 MOVS r1,#0x00
0x08000ACA 2011 MOVS r0,#0x11
0x08000ACC F7FFFEF1 BL.W LCD_WriteReg (0x080008B2)
86: LCD_WriteReg(R18, 0x0000); /* VREG1OUT voltage */
0x08000AD0 2100 MOVS r1,#0x00
0x08000AD2 2012 MOVS r0,#0x12
0x08000AD4 F7FFFEED BL.W LCD_WriteReg (0x080008B2)
87: LCD_WriteReg(R19, 0x0000); /* VDV[4:0] for VCOM amplitude */
0x08000AD8 2100 MOVS r1,#0x00
0x08000ADA 2013 MOVS r0,#0x13
0x08000ADC F7FFFEE9 BL.W LCD_WriteReg (0x080008B2)
88: Delay(20); /* Dis-charge capacitor power voltage (200ms) */
0x08000AE0 2014 MOVS r0,#0x14
0x08000AE2 F7FFFB12 BL.W Delay (0x0800010A)
89: LCD_WriteReg(R16, 0x17B0); /* SAP, BT[3:0], AP, DSTB, SLP, STB */
0x08000AE6 F24171B0 MOVW r1,#0x17B0
0x08000AEA 2010 MOVS r0,#0x10
0x08000AEC F7FFFEE1 BL.W LCD_WriteReg (0x080008B2)
90: LCD_WriteReg(R17, 0x0137); /* DC1[2:0], DC0[2:0], VC[2:0] */
0x08000AF0 F2401137 MOVW r1,#0x137
0x08000AF4 2011 MOVS r0,#0x11
0x08000AF6 F7FFFEDC BL.W LCD_WriteReg (0x080008B2)
91: Delay(5); /* Delay 50 ms */
0x08000AFA 2005 MOVS r0,#0x05
0x08000AFC F7FFFB05 BL.W Delay (0x0800010A)
92: LCD_WriteReg(R18, 0x0139); /* VREG1OUT voltage */
0x08000B00 F2401139 MOVW r1,#0x139
0x08000B04 2012 MOVS r0,#0x12
0x08000B06 F7FFFED4 BL.W LCD_WriteReg (0x080008B2)
93: Delay(5); /* Delay 50 ms */
0x08000B0A 2005 MOVS r0,#0x05
0x08000B0C F7FFFAFD BL.W Delay (0x0800010A)
94: LCD_WriteReg(R19, 0x1d00); /* VDV[4:0] for VCOM amplitude */
0x08000B10 F44F51E8 MOV r1,#0x1D00
0x08000B14 2013 MOVS r0,#0x13
0x08000B16 F7FFFECC BL.W LCD_WriteReg (0x080008B2)
95: LCD_WriteReg(R41, 0x0013); /* VCM[4:0] for VCOMH */
0x08000B1A 2113 MOVS r1,#0x13
0x08000B1C 2029 MOVS r0,#0x29
0x08000B1E F7FFFEC8 BL.W LCD_WriteReg (0x080008B2)
96: Delay(5); /* Delay 50 ms */
0x08000B22 2005 MOVS r0,#0x05
0x08000B24 F7FFFAF1 BL.W Delay (0x0800010A)
97: LCD_WriteReg(R32, 0x0000); /* GRAM horizontal Address */
0x08000B28 2100 MOVS r1,#0x00
0x08000B2A 2020 MOVS r0,#0x20
0x08000B2C F7FFFEC1 BL.W LCD_WriteReg (0x080008B2)
98: LCD_WriteReg(R33, 0x0000); /* GRAM Vertical Address */
99:
100: /* Adjust the Gamma Curve ------------------------------------------------*/
0x08000B30 2100 MOVS r1,#0x00
0x08000B32 2021 MOVS r0,#0x21
0x08000B34 F7FFFEBD BL.W LCD_WriteReg (0x080008B2)
101: LCD_WriteReg(R48, 0x0006);
0x08000B38 2106 MOVS r1,#0x06
0x08000B3A 2030 MOVS r0,#0x30
0x08000B3C F7FFFEB9 BL.W LCD_WriteReg (0x080008B2)
102: LCD_WriteReg(R49, 0x0101);
0x08000B40 F2401101 MOVW r1,#0x101
0x08000B44 2031 MOVS r0,#0x31
0x08000B46 F7FFFEB4 BL.W LCD_WriteReg (0x080008B2)
103: LCD_WriteReg(R50, 0x0003);
0x08000B4A 2103 MOVS r1,#0x03
0x08000B4C E000 B 0x08000B50
0x08000B4E E085 B 0x08000C5C
0x08000B50 2032 MOVS r0,#0x32
0x08000B52 F7FFFEAE BL.W LCD_WriteReg (0x080008B2)
104: LCD_WriteReg(R53, 0x0106);
0x08000B56 F44F7183 MOV r1,#0x106
0x08000B5A 2035 MOVS r0,#0x35
0x08000B5C F7FFFEA9 BL.W LCD_WriteReg (0x080008B2)
105: LCD_WriteReg(R54, 0x0b02);
0x08000B60 F6403102 MOVW r1,#0xB02
0x08000B64 2036 MOVS r0,#0x36
0x08000B66 F7FFFEA4 BL.W LCD_WriteReg (0x080008B2)
106: LCD_WriteReg(R55, 0x0302);
0x08000B6A F2403102 MOVW r1,#0x302
0x08000B6E 2037 MOVS r0,#0x37
0x08000B70 F7FFFE9F BL.W LCD_WriteReg (0x080008B2)
107: LCD_WriteReg(R56, 0x0707);
0x08000B74 F2407107 MOVW r1,#0x707
0x08000B78 2038 MOVS r0,#0x38
0x08000B7A F7FFFE9A BL.W LCD_WriteReg (0x080008B2)
108: LCD_WriteReg(R57, 0x0007);
0x08000B7E 2107 MOVS r1,#0x07
0x08000B80 2039 MOVS r0,#0x39
0x08000B82 F7FFFE96 BL.W LCD_WriteReg (0x080008B2)
109: LCD_WriteReg(R60, 0x0600);
0x08000B86 F44F61C0 MOV r1,#0x600
0x08000B8A 203C MOVS r0,#0x3C
0x08000B8C F7FFFE91 BL.W LCD_WriteReg (0x080008B2)
110: LCD_WriteReg(R61, 0x020b);
111:
112: /* Set GRAM area ---------------------------------------------------------*/
0x08000B90 F240210B MOVW r1,#0x20B
0x08000B94 203D MOVS r0,#0x3D
0x08000B96 F7FFFE8C BL.W LCD_WriteReg (0x080008B2)
113: LCD_WriteReg(R80, 0x0000); /* Horizontal GRAM Start Address */
0x08000B9A 2100 MOVS r1,#0x00
0x08000B9C 2050 MOVS r0,#0x50
0x08000B9E F7FFFE88 BL.W LCD_WriteReg (0x080008B2)
114: LCD_WriteReg(R81, 0x00EF); /* Horizontal GRAM End Address */
0x08000BA2 21EF MOVS r1,#0xEF
0x08000BA4 2051 MOVS r0,#0x51
0x08000BA6 F7FFFE84 BL.W LCD_WriteReg (0x080008B2)
115: LCD_WriteReg(R82, 0x0000); /* Vertical GRAM Start Address */
0x08000BAA 2100 MOVS r1,#0x00
0x08000BAC 2052 MOVS r0,#0x52
0x08000BAE F7FFFE80 BL.W LCD_WriteReg (0x080008B2)
116: LCD_WriteReg(R83, 0x013F); /* Vertical GRAM End Address */
117:
0x08000BB2 F240113F MOVW r1,#0x13F
0x08000BB6 2053 MOVS r0,#0x53
0x08000BB8 F7FFFE7B BL.W LCD_WriteReg (0x080008B2)
118: LCD_WriteReg(R96, 0x2700); /* Gate Scan Line */
0x08000BBC F44F511C MOV r1,#0x2700
0x08000BC0 2060 MOVS r0,#0x60
0x08000BC2 F7FFFE76 BL.W LCD_WriteReg (0x080008B2)
119: LCD_WriteReg(R97, 0x0001); /* NDL,VLE, REV */
0x08000BC6 2101 MOVS r1,#0x01
0x08000BC8 2061 MOVS r0,#0x61
0x08000BCA F7FFFE72 BL.W LCD_WriteReg (0x080008B2)
120: LCD_WriteReg(R106, 0x0000); /* set scrolling line */
121:
122: /* Partial Display Control -----------------------------------------------*/
0x08000BCE 2100 MOVS r1,#0x00
0x08000BD0 206A MOVS r0,#0x6A
0x08000BD2 F7FFFE6E BL.W LCD_WriteReg (0x080008B2)
123: LCD_WriteReg(R128, 0x0000);
0x08000BD6 2100 MOVS r1,#0x00
0x08000BD8 2080 MOVS r0,#0x80
0x08000BDA F7FFFE6A BL.W LCD_WriteReg (0x080008B2)
124: LCD_WriteReg(R129, 0x0000);
0x08000BDE 2100 MOVS r1,#0x00
0x08000BE0 2081 MOVS r0,#0x81
0x08000BE2 F7FFFE66 BL.W LCD_WriteReg (0x080008B2)
125: LCD_WriteReg(R130, 0x0000);
0x08000BE6 2100 MOVS r1,#0x00
0x08000BE8 2082 MOVS r0,#0x82
0x08000BEA F7FFFE62 BL.W LCD_WriteReg (0x080008B2)
126: LCD_WriteReg(R131, 0x0000);
0x08000BEE 2100 MOVS r1,#0x00
0x08000BF0 2083 MOVS r0,#0x83
0x08000BF2 F7FFFE5E BL.W LCD_WriteReg (0x080008B2)
127: LCD_WriteReg(R132, 0x0000);
0x08000BF6 2100 MOVS r1,#0x00
0x08000BF8 2084 MOVS r0,#0x84
0x08000BFA F7FFFE5A BL.W LCD_WriteReg (0x080008B2)
128: LCD_WriteReg(R133, 0x0000);
129:
130: /* Panel Control ---------------------------------------------------------*/
0x08000BFE 2100 MOVS r1,#0x00
0x08000C00 2085 MOVS r0,#0x85
0x08000C02 F7FFFE56 BL.W LCD_WriteReg (0x080008B2)
131: LCD_WriteReg(R144, 0x0010);
0x08000C06 2110 MOVS r1,#0x10
0x08000C08 2090 MOVS r0,#0x90
0x08000C0A F7FFFE52 BL.W LCD_WriteReg (0x080008B2)
132: LCD_WriteReg(R146, 0x0000);
0x08000C0E 2100 MOVS r1,#0x00
0x08000C10 2092 MOVS r0,#0x92
0x08000C12 F7FFFE4E BL.W LCD_WriteReg (0x080008B2)
133: LCD_WriteReg(R147, 0x0003);
0x08000C16 2103 MOVS r1,#0x03
0x08000C18 2093 MOVS r0,#0x93
0x08000C1A F7FFFE4A BL.W LCD_WriteReg (0x080008B2)
134: LCD_WriteReg(R149, 0x0110);
0x08000C1E F44F7188 MOV r1,#0x110
0x08000C22 2095 MOVS r0,#0x95
0x08000C24 F7FFFE45 BL.W LCD_WriteReg (0x080008B2)
135: LCD_WriteReg(R151, 0x0000);
0x08000C28 2100 MOVS r1,#0x00
0x08000C2A 2097 MOVS r0,#0x97
0x08000C2C F7FFFE41 BL.W LCD_WriteReg (0x080008B2)
136: LCD_WriteReg(R152, 0x0000);
137:
138: /* Set GRAM write direction and BGR = 1 */
139: /* I/D=01 (Horizontal : increment, Vertical : decrement) */
140: /* AM=1 (address is updated in vertical writing direction) */
0x08000C30 2100 MOVS r1,#0x00
0x08000C32 2098 MOVS r0,#0x98
0x08000C34 F7FFFE3D BL.W LCD_WriteReg (0x080008B2)
141: LCD_WriteReg(R3, 0x1018);
142:
0x08000C38 F2410118 MOVW r1,#0x1018
0x08000C3C 2003 MOVS r0,#0x03
0x08000C3E F7FFFE38 BL.W LCD_WriteReg (0x080008B2)
143: LCD_WriteReg(R7, 0x0173); /* 262K color and display ON */
144: }
0x08000C42 F2401173 MOVW r1,#0x173
0x08000C46 2007 MOVS r0,#0x07
0x08000C48 E166 B 0x08000F18
0x08000C4A 0000 MOVS r0,r0
0x08000C4C 0C00 LSRS r0,r0,#16
0x08000C4E 4001 ANDS r1,r1,r0
0x08000C50 3800 SUBS r0,r0,#0x00
0x08000C52 4000 ANDS r0,r0,r0
0x08000C54 0008 MOVS r0,r1
0x08000C56 2000 MOVS r0,#0x00
0x08000C58 1400 ASRS r0,r0,#16
0x08000C5A 4001 ANDS r1,r1,r0
145: else if(LCDType == LCD_HX8312)
146: {
147: /* Enable the LCD Oscillator ---------------------------------------------*/
0x08000C5C 6840 LDR r0,[r0,#0x04]
0x08000C5E F5A04103 SUB r1,r0,#0x8300
0x08000C62 3912 SUBS r1,r1,#0x12
0x08000C64 D17E BNE 0x08000D64
148: LCD_WriteReg(R1, 0x10);
0x08000C66 2110 MOVS r1,#0x10
0x08000C68 2001 MOVS r0,#0x01
0x08000C6A F7FFFE22 BL.W LCD_WriteReg (0x080008B2)
149: LCD_WriteReg(R0, 0xA0);
0x08000C6E 21A0 MOVS r1,#0xA0
0x08000C70 2000 MOVS r0,#0x00
0x08000C72 F7FFFE1E BL.W LCD_WriteReg (0x080008B2)
150: LCD_WriteReg(R3, 0x01);
0x08000C76 2101 MOVS r1,#0x01
0x08000C78 2003 MOVS r0,#0x03
0x08000C7A F7FFFE1A BL.W LCD_WriteReg (0x080008B2)
151: Delay(1); /* Delay 10 ms */
0x08000C7E 2001 MOVS r0,#0x01
0x08000C80 F7FFFA43 BL.W Delay (0x0800010A)
152: LCD_WriteReg(R3, 0x00);
0x08000C84 2100 MOVS r1,#0x00
0x08000C86 2003 MOVS r0,#0x03
0x08000C88 F7FFFE13 BL.W LCD_WriteReg (0x080008B2)
153: LCD_WriteReg(R43, 0x04);
154:
0x08000C8C 2104 MOVS r1,#0x04
0x08000C8E 202B MOVS r0,#0x2B
0x08000C90 F7FFFE0F BL.W LCD_WriteReg (0x080008B2)
155: LCD_WriteReg(R40, 0x18);
0x08000C94 2118 MOVS r1,#0x18
0x08000C96 2028 MOVS r0,#0x28
0x08000C98 F7FFFE0B BL.W LCD_WriteReg (0x080008B2)
156: LCD_WriteReg(R26, 0x05);
0x08000C9C 2105 MOVS r1,#0x05
0x08000C9E 201A MOVS r0,#0x1A
0x08000CA0 F7FFFE07 BL.W LCD_WriteReg (0x080008B2)
157: LCD_WriteReg(R37, 0x05);
0x08000CA4 2105 MOVS r1,#0x05
0x08000CA6 2025 MOVS r0,#0x25
0x08000CA8 F7FFFE03 BL.W LCD_WriteReg (0x080008B2)
158: LCD_WriteReg(R25, 0x00);
159:
160: /* LCD Power On ----------------------------------------------------------*/
0x08000CAC 2100 MOVS r1,#0x00
0x08000CAE 2019 MOVS r0,#0x19
0x08000CB0 F7FFFDFF BL.W LCD_WriteReg (0x080008B2)
161: LCD_WriteReg(R28, 0x73);
0x08000CB4 2173 MOVS r1,#0x73
0x08000CB6 201C MOVS r0,#0x1C
0x08000CB8 F7FFFDFB BL.W LCD_WriteReg (0x080008B2)
162: LCD_WriteReg(R36, 0x74);
0x08000CBC 2174 MOVS r1,#0x74
0x08000CBE 2024 MOVS r0,#0x24
0x08000CC0 F7FFFDF7 BL.W LCD_WriteReg (0x080008B2)
163: LCD_WriteReg(R30, 0x01);
0x08000CC4 2101 MOVS r1,#0x01
0x08000CC6 201E MOVS r0,#0x1E
0x08000CC8 F7FFFDF3 BL.W LCD_WriteReg (0x080008B2)
164: LCD_WriteReg(R24, 0xC1);
0x08000CCC 21C1 MOVS r1,#0xC1
0x08000CCE 2018 MOVS r0,#0x18
0x08000CD0 F7FFFDEF BL.W LCD_WriteReg (0x080008B2)
165: Delay(1); /* Delay 10 ms */
0x08000CD4 2001 MOVS r0,#0x01
0x08000CD6 F7FFFA18 BL.W Delay (0x0800010A)
166: LCD_WriteReg(R24, 0xE1);
0x08000CDA 21E1 MOVS r1,#0xE1
0x08000CDC 2018 MOVS r0,#0x18
0x08000CDE F7FFFDE8 BL.W LCD_WriteReg (0x080008B2)
167: LCD_WriteReg(R24, 0xF1);
0x08000CE2 21F1 MOVS r1,#0xF1
0x08000CE4 2018 MOVS r0,#0x18
0x08000CE6 F7FFFDE4 BL.W LCD_WriteReg (0x080008B2)
168: Delay(6); /* Delay 60 ms */
0x08000CEA 2006 MOVS r0,#0x06
0x08000CEC F7FFFA0D BL.W Delay (0x0800010A)
169: LCD_WriteReg(R24, 0xF5);
0x08000CF0 21F5 MOVS r1,#0xF5
0x08000CF2 2018 MOVS r0,#0x18
0x08000CF4 F7FFFDDD BL.W LCD_WriteReg (0x080008B2)
170: Delay(6); /* Delay 60 ms */
0x08000CF8 2006 MOVS r0,#0x06
0x08000CFA F7FFFA06 BL.W Delay (0x0800010A)
171: LCD_WriteReg(R27, 0x09);
0x08000CFE 2109 MOVS r1,#0x09
0x08000D00 201B MOVS r0,#0x1B
0x08000D02 F7FFFDD6 BL.W LCD_WriteReg (0x080008B2)
172: Delay(1); /* Delay 10 ms */
0x08000D06 2001 MOVS r0,#0x01
0x08000D08 F7FFF9FF BL.W Delay (0x0800010A)
173: LCD_WriteReg(R31, 0x11);
0x08000D0C 2111 MOVS r1,#0x11
0x08000D0E 201F MOVS r0,#0x1F
0x08000D10 F7FFFDCF BL.W LCD_WriteReg (0x080008B2)
174: LCD_WriteReg(R32, 0x0E);
0x08000D14 210E MOVS r1,#0x0E
0x08000D16 2020 MOVS r0,#0x20
0x08000D18 F7FFFDCB BL.W LCD_WriteReg (0x080008B2)
175: LCD_WriteReg(R30, 0x81);
0x08000D1C 2181 MOVS r1,#0x81
0x08000D1E 201E MOVS r0,#0x1E
0x08000D20 F7FFFDC7 BL.W LCD_WriteReg (0x080008B2)
176: Delay(1); /* Delay 10 ms */
177:
178: /* Chip Set --------------------------------------------------------------*/
0x08000D24 2001 MOVS r0,#0x01
0x08000D26 F7FFF9F0 BL.W Delay (0x0800010A)
179: LCD_WriteReg(R157, 0x00);
0x08000D2A 2100 MOVS r1,#0x00
0x08000D2C 209D MOVS r0,#0x9D
0x08000D2E F7FFFDC0 BL.W LCD_WriteReg (0x080008B2)
180: LCD_WriteReg(R192, 0x00);
181:
0x08000D32 2100 MOVS r1,#0x00
0x08000D34 20C0 MOVS r0,#0xC0
0x08000D36 F7FFFDBC BL.W LCD_WriteReg (0x080008B2)
182: LCD_WriteReg(R14, 0x00);
0x08000D3A 2100 MOVS r1,#0x00
0x08000D3C 200E MOVS r0,#0x0E
0x08000D3E F7FFFDB8 BL.W LCD_WriteReg (0x080008B2)
183: LCD_WriteReg(R15, 0x00);
0x08000D42 2100 MOVS r1,#0x00
0x08000D44 200F MOVS r0,#0x0F
0x08000D46 F7FFFDB4 BL.W LCD_WriteReg (0x080008B2)
184: LCD_WriteReg(R16, 0x00);
0x08000D4A 2100 MOVS r1,#0x00
0x08000D4C 2010 MOVS r0,#0x10
0x08000D4E F7FFFDB0 BL.W LCD_WriteReg (0x080008B2)
185: LCD_WriteReg(R17, 0x00);
0x08000D52 2100 MOVS r1,#0x00
0x08000D54 2011 MOVS r0,#0x11
0x08000D56 F7FFFDAC BL.W LCD_WriteReg (0x080008B2)
186: LCD_WriteReg(R18, 0x00);
0x08000D5A 2100 MOVS r1,#0x00
0x08000D5C 2012 MOVS r0,#0x12
0x08000D5E F7FFFDA8 BL.W LCD_WriteReg (0x080008B2)
187: LCD_WriteReg(R19, 0x00);
0x08000D62 E000 B 0x08000D66
0x08000D64 E0DB B 0x08000F1E
0x08000D66 2100 MOVS r1,#0x00
0x08000D68 2013 MOVS r0,#0x13
0x08000D6A F7FFFDA2 BL.W LCD_WriteReg (0x080008B2)
188: LCD_WriteReg(R20, 0x00);
0x08000D6E 2100 MOVS r1,#0x00
0x08000D70 2014 MOVS r0,#0x14
0x08000D72 F7FFFD9E BL.W LCD_WriteReg (0x080008B2)
189: LCD_WriteReg(R21, 0x00);
0x08000D76 2100 MOVS r1,#0x00
0x08000D78 2015 MOVS r0,#0x15
0x08000D7A F7FFFD9A BL.W LCD_WriteReg (0x080008B2)
190: LCD_WriteReg(R22, 0x00);
0x08000D7E 2100 MOVS r1,#0x00
0x08000D80 2016 MOVS r0,#0x16
0x08000D82 F7FFFD96 BL.W LCD_WriteReg (0x080008B2)
191: LCD_WriteReg(R23, 0x00);
192:
0x08000D86 2100 MOVS r1,#0x00
0x08000D88 2017 MOVS r0,#0x17
0x08000D8A F7FFFD92 BL.W LCD_WriteReg (0x080008B2)
193: LCD_WriteReg(R52, 0x01);
0x08000D8E 2101 MOVS r1,#0x01
0x08000D90 2034 MOVS r0,#0x34
0x08000D92 F7FFFD8E BL.W LCD_WriteReg (0x080008B2)
194: LCD_WriteReg(R53, 0x00);
195:
0x08000D96 2100 MOVS r1,#0x00
0x08000D98 2035 MOVS r0,#0x35
0x08000D9A F7FFFD8A BL.W LCD_WriteReg (0x080008B2)
196: LCD_WriteReg(R75, 0x00);
0x08000D9E 2100 MOVS r1,#0x00
0x08000DA0 204B MOVS r0,#0x4B
0x08000DA2 F7FFFD86 BL.W LCD_WriteReg (0x080008B2)
197: LCD_WriteReg(R76, 0x00);
0x08000DA6 2100 MOVS r1,#0x00
0x08000DA8 204C MOVS r0,#0x4C
0x08000DAA F7FFFD82 BL.W LCD_WriteReg (0x080008B2)
198: LCD_WriteReg(R78, 0x00);
0x08000DAE 2100 MOVS r1,#0x00
0x08000DB0 204E MOVS r0,#0x4E
0x08000DB2 F7FFFD7E BL.W LCD_WriteReg (0x080008B2)
199: LCD_WriteReg(R79, 0x00);
0x08000DB6 2100 MOVS r1,#0x00
0x08000DB8 204F MOVS r0,#0x4F
0x08000DBA F7FFFD7A BL.W LCD_WriteReg (0x080008B2)
200: LCD_WriteReg(R80, 0x00);
201:
0x08000DBE 2100 MOVS r1,#0x00
0x08000DC0 2050 MOVS r0,#0x50
0x08000DC2 F7FFFD76 BL.W LCD_WriteReg (0x080008B2)
202: LCD_WriteReg(R60, 0x00);
0x08000DC6 2100 MOVS r1,#0x00
0x08000DC8 203C MOVS r0,#0x3C
0x08000DCA F7FFFD72 BL.W LCD_WriteReg (0x080008B2)
203: LCD_WriteReg(R61, 0x00);
0x08000DCE 2100 MOVS r1,#0x00
0x08000DD0 203D MOVS r0,#0x3D
0x08000DD2 F7FFFD6E BL.W LCD_WriteReg (0x080008B2)
204: LCD_WriteReg(R62, 0x01);
0x08000DD6 2101 MOVS r1,#0x01
0x08000DD8 203E MOVS r0,#0x3E
0x08000DDA F7FFFD6A BL.W LCD_WriteReg (0x080008B2)
205: LCD_WriteReg(R63, 0x3F);
0x08000DDE 213F MOVS r1,#0x3F
0x08000DE0 4608 MOV r0,r1
0x08000DE2 F7FFFD66 BL.W LCD_WriteReg (0x080008B2)
206: LCD_WriteReg(R64, 0x02);
0x08000DE6 2102 MOVS r1,#0x02
0x08000DE8 2040 MOVS r0,#0x40
0x08000DEA F7FFFD62 BL.W LCD_WriteReg (0x080008B2)
207: LCD_WriteReg(R65, 0x02);
0x08000DEE 2102 MOVS r1,#0x02
0x08000DF0 2041 MOVS r0,#0x41
0x08000DF2 F7FFFD5E BL.W LCD_WriteReg (0x080008B2)
208: LCD_WriteReg(R66, 0x00);
0x08000DF6 2100 MOVS r1,#0x00
0x08000DF8 2042 MOVS r0,#0x42
0x08000DFA F7FFFD5A BL.W LCD_WriteReg (0x080008B2)
209: LCD_WriteReg(R67, 0x00);
0x08000DFE 2100 MOVS r1,#0x00
0x08000E00 2043 MOVS r0,#0x43
0x08000E02 F7FFFD56 BL.W LCD_WriteReg (0x080008B2)
210: LCD_WriteReg(R68, 0x00);
0x08000E06 2100 MOVS r1,#0x00
0x08000E08 2044 MOVS r0,#0x44
0x08000E0A F7FFFD52 BL.W LCD_WriteReg (0x080008B2)
211: LCD_WriteReg(R69, 0x00);
0x08000E0E 2100 MOVS r1,#0x00
0x08000E10 2045 MOVS r0,#0x45
0x08000E12 F7FFFD4E BL.W LCD_WriteReg (0x080008B2)
212: LCD_WriteReg(R70, 0xEF);
0x08000E16 21EF MOVS r1,#0xEF
0x08000E18 2046 MOVS r0,#0x46
0x08000E1A F7FFFD4A BL.W LCD_WriteReg (0x080008B2)
213: LCD_WriteReg(R71, 0x00);
0x08000E1E 2100 MOVS r1,#0x00
0x08000E20 2047 MOVS r0,#0x47
0x08000E22 F7FFFD46 BL.W LCD_WriteReg (0x080008B2)
214: LCD_WriteReg(R72, 0x00);
0x08000E26 2100 MOVS r1,#0x00
0x08000E28 2048 MOVS r0,#0x48
0x08000E2A F7FFFD42 BL.W LCD_WriteReg (0x080008B2)
215: LCD_WriteReg(R73, 0x01);
0x08000E2E 2101 MOVS r1,#0x01
0x08000E30 2049 MOVS r0,#0x49
0x08000E32 F7FFFD3E BL.W LCD_WriteReg (0x080008B2)
216: LCD_WriteReg(R74, 0x3F);
217:
0x08000E36 213F MOVS r1,#0x3F
0x08000E38 204A MOVS r0,#0x4A
0x08000E3A F7FFFD3A BL.W LCD_WriteReg (0x080008B2)
218: LCD_WriteReg(R29, 0x08); /* R29:Gate scan direction setting */
219:
0x08000E3E 2108 MOVS r1,#0x08
0x08000E40 201D MOVS r0,#0x1D
0x08000E42 F7FFFD36 BL.W LCD_WriteReg (0x080008B2)
220: LCD_WriteReg(R134, 0x00);
0x08000E46 2100 MOVS r1,#0x00
0x08000E48 2086 MOVS r0,#0x86
0x08000E4A F7FFFD32 BL.W LCD_WriteReg (0x080008B2)
221: LCD_WriteReg(R135, 0x30);
0x08000E4E 2130 MOVS r1,#0x30
0x08000E50 2087 MOVS r0,#0x87
0x08000E52 F7FFFD2E BL.W LCD_WriteReg (0x080008B2)
222: LCD_WriteReg(R136, 0x02);
0x08000E56 2102 MOVS r1,#0x02
0x08000E58 2088 MOVS r0,#0x88
0x08000E5A F7FFFD2A BL.W LCD_WriteReg (0x080008B2)
223: LCD_WriteReg(R137, 0x05);
224:
0x08000E5E 2105 MOVS r1,#0x05
0x08000E60 2089 MOVS r0,#0x89
0x08000E62 F7FFFD26 BL.W LCD_WriteReg (0x080008B2)
225: LCD_WriteReg(R141, 0x01); /* R141:Register set-up mode for one line clock */
0x08000E66 2101 MOVS r1,#0x01
0x08000E68 208D MOVS r0,#0x8D
0x08000E6A F7FFFD22 BL.W LCD_WriteReg (0x080008B2)
226: LCD_WriteReg(R139, 0x20); /* R139:One line SYSCLK number in one-line */
0x08000E6E 2120 MOVS r1,#0x20
0x08000E70 208B MOVS r0,#0x8B
0x08000E72 F7FFFD1E BL.W LCD_WriteReg (0x080008B2)
227: LCD_WriteReg(R51, 0x01); /* R51:N line inversion setting */
0x08000E76 2101 MOVS r1,#0x01
0x08000E78 2033 MOVS r0,#0x33
0x08000E7A F7FFFD1A BL.W LCD_WriteReg (0x080008B2)
228: LCD_WriteReg(R55, 0x01); /* R55:Scanning method setting */
0x08000E7E 2101 MOVS r1,#0x01
0x08000E80 2037 MOVS r0,#0x37
0x08000E82 F7FFFD16 BL.W LCD_WriteReg (0x080008B2)
229: LCD_WriteReg(R118, 0x00);
230:
231: /* Gamma Set -------------------------------------------------------------*/
0x08000E86 2100 MOVS r1,#0x00
0x08000E88 2076 MOVS r0,#0x76
0x08000E8A F7FFFD12 BL.W LCD_WriteReg (0x080008B2)
232: LCD_WriteReg(R143, 0x10);
0x08000E8E 2110 MOVS r1,#0x10
0x08000E90 208F MOVS r0,#0x8F
0x08000E92 F7FFFD0E BL.W LCD_WriteReg (0x080008B2)
233: LCD_WriteReg(R144, 0x67);
0x08000E96 2167 MOVS r1,#0x67
0x08000E98 2090 MOVS r0,#0x90
0x08000E9A F7FFFD0A BL.W LCD_WriteReg (0x080008B2)
234: LCD_WriteReg(R145, 0x07);
0x08000E9E 2107 MOVS r1,#0x07
0x08000EA0 2091 MOVS r0,#0x91
0x08000EA2 F7FFFD06 BL.W LCD_WriteReg (0x080008B2)
235: LCD_WriteReg(R146, 0x65);
0x08000EA6 2165 MOVS r1,#0x65
0x08000EA8 2092 MOVS r0,#0x92
0x08000EAA F7FFFD02 BL.W LCD_WriteReg (0x080008B2)
236: LCD_WriteReg(R147, 0x07);
0x08000EAE 2107 MOVS r1,#0x07
0x08000EB0 2093 MOVS r0,#0x93
0x08000EB2 F7FFFCFE BL.W LCD_WriteReg (0x080008B2)
237: LCD_WriteReg(R148, 0x01);
0x08000EB6 2101 MOVS r1,#0x01
0x08000EB8 2094 MOVS r0,#0x94
0x08000EBA F7FFFCFA BL.W LCD_WriteReg (0x080008B2)
238: LCD_WriteReg(R149, 0x76);
0x08000EBE 2176 MOVS r1,#0x76
0x08000EC0 2095 MOVS r0,#0x95
0x08000EC2 F7FFFCF6 BL.W LCD_WriteReg (0x080008B2)
239: LCD_WriteReg(R150, 0x56);
0x08000EC6 2156 MOVS r1,#0x56
0x08000EC8 2096 MOVS r0,#0x96
0x08000ECA F7FFFCF2 BL.W LCD_WriteReg (0x080008B2)
240: LCD_WriteReg(R151, 0x00);
0x08000ECE 2100 MOVS r1,#0x00
0x08000ED0 2097 MOVS r0,#0x97
0x08000ED2 F7FFFCEE BL.W LCD_WriteReg (0x080008B2)
241: LCD_WriteReg(R152, 0x06);
0x08000ED6 2106 MOVS r1,#0x06
0x08000ED8 2098 MOVS r0,#0x98
0x08000EDA F7FFFCEA BL.W LCD_WriteReg (0x080008B2)
242: LCD_WriteReg(R153, 0x03);
0x08000EDE 2103 MOVS r1,#0x03
0x08000EE0 2099 MOVS r0,#0x99
0x08000EE2 F7FFFCE6 BL.W LCD_WriteReg (0x080008B2)
243: LCD_WriteReg(R154, 0x00);
244:
245: /* Display On ------------------------------------------------------------*/
0x08000EE6 2100 MOVS r1,#0x00
0x08000EE8 209A MOVS r0,#0x9A
0x08000EEA F7FFFCE2 BL.W LCD_WriteReg (0x080008B2)
246: LCD_WriteReg(R1, 0x50);
0x08000EEE 2150 MOVS r1,#0x50
0x08000EF0 2001 MOVS r0,#0x01
0x08000EF2 F7FFFCDE BL.W LCD_WriteReg (0x080008B2)
247: LCD_WriteReg(R5, 0x04);
248:
0x08000EF6 2104 MOVS r1,#0x04
0x08000EF8 2005 MOVS r0,#0x05
0x08000EFA F7FFFCDA BL.W LCD_WriteReg (0x080008B2)
249: LCD_WriteReg(R0, 0x80);
0x08000EFE 2180 MOVS r1,#0x80
0x08000F00 2000 MOVS r0,#0x00
0x08000F02 F7FFFCD6 BL.W LCD_WriteReg (0x080008B2)
250: LCD_WriteReg(R59, 0x01);
0x08000F06 2101 MOVS r1,#0x01
0x08000F08 203B MOVS r0,#0x3B
0x08000F0A F7FFFCD2 BL.W LCD_WriteReg (0x080008B2)
251: Delay(4); /* Delay 40 ms */
0x08000F0E 2004 MOVS r0,#0x04
0x08000F10 F7FFF8FB BL.W Delay (0x0800010A)
252: LCD_WriteReg(R0, 0x20);
253: }
0x08000F14 2120 MOVS r1,#0x20
0x08000F16 2000 MOVS r0,#0x00
0x08000F18 E8BD4010 POP {r4,lr}
0x08000F1C E4C9 B LCD_WriteReg (0x080008B2)
254: }
0x08000F1E BD10 POP {r4,pc}
956: {
957: u16 tmp = 0;
0x08000F20 B570 PUSH {r4-r6,lr}
958: u8 i = 0;
959:
960: /* SPI2 prescaler: 4 */
0x08000F22 4EFD LDR r6,[pc,#1012] ; @0x08001318
0x08000F24 2400 MOVS r4,#0x00
961: SPI2->CR1 &= 0xFFC7;
0x08000F26 8831 LDRH r1,[r6,#0x00]
0x08000F28 F0210138 BIC r1,r1,#0x38
0x08000F2C 8031 STRH r1,[r6,#0x00]
962: SPI2->CR1 |= 0x0008;
963:
964: /* Write 16-bit Index (then Read Reg) */
0x08000F2E 8831 LDRH r1,[r6,#0x00]
0x08000F30 F0410108 ORR r1,r1,#0x08
0x08000F34 8031 STRH r1,[r6,#0x00]
0x08000F36 F5A66600 SUB r6,r6,#0x800
965: LCD_WriteRegIndex(LCD_Reg);
966:
967: /* Read 16-bit Reg */
968: /* Reset LCD control line(/CS) and Send Start-Byte */
0x08000F3A F7FFFC9A BL.W LCD_WriteRegIndex (0x08000872)
969: LCD_nCS_StartByte(START_BYTE | READ_REG);
970:
971: for(i = 0; i < 5; i++)
972: {
0x08000F3E 2073 MOVS r0,#0x73
0x08000F40 F7FFFC84 BL.W LCD_nCS_StartByte (0x0800084C)
973: SPI_I2S_SendData(SPI2, 0xFF);
0x08000F44 4DF4 LDR r5,[pc,#976] ; @0x08001318
0x08000F46 21FF MOVS r1,#0xFF
0x08000F48 4628 MOV r0,r5
0x08000F4A F000FEDE BL.W SPI_I2S_SendData (0x08001D0A)
974: while(SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_BSY) != RESET)
975: {
976: }
977: /* One byte of invalid dummy data read after the start byte */
0x08000F4E 2180 MOVS r1,#0x80
0x08000F50 4628 MOV r0,r5
0x08000F52 F000FED1 BL.W SPI_I2S_GetFlagStatus (0x08001CF8)
0x08000F56 2800 CMP r0,#0x00
0x08000F58 D1F9 BNE 0x08000F4E
978: while(SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_RXNE) == RESET)
979: {
980: }
0x08000F5A 2101 MOVS r1,#0x01
0x08000F5C 4628 MOV r0,r5
0x08000F5E F000FECB BL.W SPI_I2S_GetFlagStatus (0x08001CF8)
0x08000F62 2800 CMP r0,#0x00
0x08000F64 D0F9 BEQ 0x08000F5A
981: SPI_I2S_ReceiveData(SPI2);
982: }
983:
0x08000F66 4628 MOV r0,r5
0x08000F68 F000FECD BL.W SPI_I2S_ReceiveData (0x08001D06)
971: for(i = 0; i < 5; i++)
972: {
973: SPI_I2S_SendData(SPI2, 0xFF);
974: while(SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_BSY) != RESET)
975: {
976: }
977: /* One byte of invalid dummy data read after the start byte */
978: while(SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_RXNE) == RESET)
979: {
980: }
981: SPI_I2S_ReceiveData(SPI2);
982: }
983:
0x08000F6C 1C64 ADDS r4,r4,#1
0x08000F6E B2E4 UXTB r4,r4
0x08000F70 2C05 CMP r4,#0x05
0x08000F72 D3E8 BCC 0x08000F46
984: SPI_I2S_SendData(SPI2, 0xFF);
985: /* Read upper byte */
0x08000F74 21FF MOVS r1,#0xFF
0x08000F76 4628 MOV r0,r5
0x08000F78 F000FEC7 BL.W SPI_I2S_SendData (0x08001D0A)
986: while(SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_BSY) != RESET)
987: {
988: }
989: /* Read lower byte */
0x08000F7C 2180 MOVS r1,#0x80
0x08000F7E 4628 MOV r0,r5
0x08000F80 F000FEBA BL.W SPI_I2S_GetFlagStatus (0x08001CF8)
0x08000F84 2800 CMP r0,#0x00
0x08000F86 D1F9 BNE 0x08000F7C
990: while(SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_RXNE) == RESET)
991: {
992: }
0x08000F88 2101 MOVS r1,#0x01
0x08000F8A 4628 MOV r0,r5
0x08000F8C F000FEB4 BL.W SPI_I2S_GetFlagStatus (0x08001CF8)
0x08000F90 2800 CMP r0,#0x00
0x08000F92 D0F9 BEQ 0x08000F88
993: tmp = SPI_I2S_ReceiveData(SPI2);
994:
995:
0x08000F94 4628 MOV r0,r5
0x08000F96 F000FEB6 BL.W SPI_I2S_ReceiveData (0x08001D06)
0x08000F9A 4604 MOV r4,r0
996: SPI_I2S_SendData(SPI2, 0xFF);
0x08000F9C 21FF MOVS r1,#0xFF
0x08000F9E 4628 MOV r0,r5
0x08000FA0 F000FEB3 BL.W SPI_I2S_SendData (0x08001D0A)
997: while(SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_BSY) != RESET)
998: {
999: }
1000: /* Read lower byte */
0x08000FA4 2180 MOVS r1,#0x80
0x08000FA6 4628 MOV r0,r5
0x08000FA8 F000FEA6 BL.W SPI_I2S_GetFlagStatus (0x08001CF8)
0x08000FAC 2800 CMP r0,#0x00
0x08000FAE D1F9 BNE 0x08000FA4
1001: while(SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_RXNE) == RESET)
1002: {
1003: }
0x08000FB0 2101 MOVS r1,#0x01
0x08000FB2 4628 MOV r0,r5
0x08000FB4 F000FEA0 BL.W SPI_I2S_GetFlagStatus (0x08001CF8)
0x08000FB8 2800 CMP r0,#0x00
0x08000FBA D0F9 BEQ 0x08000FB0
1004: tmp = ((tmp & 0xFF) << 8) | SPI_I2S_ReceiveData(SPI2);
1005:
0x08000FBC 4628 MOV r0,r5
0x08000FBE F000FEA2 BL.W SPI_I2S_ReceiveData (0x08001D06)
0x08000FC2 B2E1 UXTB r1,r4
0x08000FC4 EA402401 ORR r4,r0,r1,LSL #8
1006: LCD_CtrlLinesWrite(GPIOB, CtrlPin_NCS, Bit_SET);
1007:
1008: /* SPI2 prescaler: 2 */
0x08000FC8 2201 MOVS r2,#0x01
0x08000FCA 2104 MOVS r1,#0x04
0x08000FCC 48D3 LDR r0,[pc,#844] ; @0x0800131C
0x08000FCE F7FFFC3B BL.W LCD_CtrlLinesWrite (0x08000848)
1009: SPI2->CR1 &= 0xFFC7;
1010:
0x08000FD2 F8B60800 LDRH r0,[r6,#0x800]
0x08000FD6 F0200038 BIC r0,r0,#0x38
0x08000FDA F8A60800 STRH r0,[r6,#0x800]
1011: return tmp;
0x08000FDE 4620 MOV r0,r4
1012: }
0x08000FE0 BD70 POP {r4-r6,pc}
264: {
265: /* Setups the LCD */
0x08000FE2 B510 PUSH {r4,lr}
266: LCD_Setup();
267:
268: /* Try to read new LCD controller ID 0x9320 */
0x08000FE4 F7FFFD29 BL.W LCD_Setup (0x08000A3A)
269: if (LCD_ReadReg(R0) == LCD_ILI9320)
270: {
0x08000FE8 2000 MOVS r0,#0x00
0x08000FEA F7FFFF99 BL.W LCD_ReadReg (0x08000F20)
0x08000FEE F2493120 MOVW r1,#0x9320
271: LCDType = LCD_ILI9320;
272: }
273: else
274: {
275: LCDType = LCD_HX8312;
276: /* Setups the LCD */
277: LCD_Setup();
278: }
0x08000FF2 4ACB LDR r2,[pc,#812] ; @0x08001320
0x08000FF4 4288 CMP r0,r1
0x08000FF6 D101 BNE 0x08000FFC
0x08000FF8 6051 STR r1,[r2,#0x04]
279: }
280:
281: /*******************************************************************************
282: * Function Name : LCD_SetTextColor
283: * Description : Sets the Text color.
284: * Input : - Color: specifies the Text color code RGB(5-6-5).
285: * Output : - TextColor: Text color global variable used by LCD_DrawChar
286: * and LCD_DrawPicture functions.
287: * Return : None
288: *******************************************************************************/
289: void LCD_SetTextColor(vu16 Color)
290: {
0x08000FFA BD10 POP {r4,pc}
275: LCDType = LCD_HX8312;
276: /* Setups the LCD */
0x08000FFC F2483012 MOVW r0,#0x8312
0x08001000 6050 STR r0,[r2,#0x04]
277: LCD_Setup();
278: }
279: }
280:
281: /*******************************************************************************
282: * Function Name : LCD_SetTextColor
283: * Description : Sets the Text color.
284: * Input : - Color: specifies the Text color code RGB(5-6-5).
285: * Output : - TextColor: Text color global variable used by LCD_DrawChar
286: * and LCD_DrawPicture functions.
287: * Return : None
288: *******************************************************************************/
289: void LCD_SetTextColor(vu16 Color)
290: {
0x08001002 E8BD4010 POP {r4,lr}
0x08001006 E518 B LCD_Setup (0x08000A3A)
291: TextColor = Color;
0x08001008 49C5 LDR r1,[pc,#788] ; @0x08001320
0x0800100A 8008 STRH r0,[r1,#0x00]
292: }
293:
294: /*******************************************************************************
295: * Function Name : LCD_SetBackColor
296: * Description : Sets the Background color.
297: * Input : - Color: specifies the Background color code RGB(5-6-5).
298: * Output : - BackColor: Background color global variable used by
299: * LCD_DrawChar and LCD_DrawPicture functions.
300: * Return : None
301: *******************************************************************************/
302: void LCD_SetBackColor(vu16 Color)
303: {
0x0800100C 4770 BX lr
304: BackColor = Color;
0x0800100E 49C4 LDR r1,[pc,#784] ; @0x08001320
0x08001010 8048 STRH r0,[r1,#0x02]
305: }
0x08001012 4770 BX lr
359: {
0x08001014 B510 PUSH {r4,lr}
0x08001016 460C MOV r4,r1
360: if(LCDType == LCD_ILI9320)
361: {
0x08001018 49C1 LDR r1,[pc,#772] ; @0x08001320
0x0800101A 684A LDR r2,[r1,#0x04]
0x0800101C F5A24313 SUB r3,r2,#0x9300
0x08001020 3B20 SUBS r3,r3,#0x20
0x08001022 D106 BNE 0x08001032
362: LCD_WriteReg(R32, Xpos);
0x08001024 4601 MOV r1,r0
0x08001026 2020 MOVS r0,#0x20
0x08001028 F7FFFC43 BL.W LCD_WriteReg (0x080008B2)
363: LCD_WriteReg(R33, Ypos);
364: }
0x0800102C 4621 MOV r1,r4
0x0800102E 2021 MOVS r0,#0x21
0x08001030 E00F B 0x08001052
365: else if(LCDType == LCD_HX8312)
366: {
0x08001032 6849 LDR r1,[r1,#0x04]
0x08001034 F5A14203 SUB r2,r1,#0x8300
0x08001038 3A12 SUBS r2,r2,#0x12
0x0800103A D10D BNE 0x08001058
367: LCD_WriteReg(R66, Xpos);
0x0800103C 4601 MOV r1,r0
0x0800103E 2042 MOVS r0,#0x42
0x08001040 F7FFFC37 BL.W LCD_WriteReg (0x080008B2)
368: LCD_WriteReg(R67, ((Ypos & 0x100)>> 8));
0x08001044 F3C42100 UBFX r1,r4,#8,#1
0x08001048 2043 MOVS r0,#0x43
0x0800104A F7FFFC32 BL.W LCD_WriteReg (0x080008B2)
369: LCD_WriteReg(R68, (Ypos & 0xFF));
370: }
0x0800104E B2E1 UXTB r1,r4
0x08001050 2044 MOVS r0,#0x44
0x08001052 E8BD4010 POP {r4,lr}
0x08001056 E42C B LCD_WriteReg (0x080008B2)
371: }
0x08001058 BD10 POP {r4,pc}
1101: {
0x0800105A B570 PUSH {r4-r6,lr}
1102: if(LCDType == LCD_ILI9320)
1103: {
0x0800105C 4EB0 LDR r6,[pc,#704] ; @0x08001320
0x0800105E 4604 MOV r4,r0
0x08001060 6870 LDR r0,[r6,#0x04]
1104: SPI_I2S_SendData(SPI2, RGB_Code >> 8);
0x08001062 4DAD LDR r5,[pc,#692] ; @0x08001318
0x08001064 F5A04113 SUB r1,r0,#0x9300
0x08001068 3920 SUBS r1,r1,#0x20
0x0800106A D113 BNE 0x08001094
0x0800106C 0A21 LSRS r1,r4,#8
0x0800106E 4628 MOV r0,r5
0x08001070 F000FE4B BL.W SPI_I2S_SendData (0x08001D0A)
1105: while(SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_BSY) != RESET)
1106: {
1107: }
0x08001074 2180 MOVS r1,#0x80
0x08001076 4628 MOV r0,r5
0x08001078 F000FE3E BL.W SPI_I2S_GetFlagStatus (0x08001CF8)
0x0800107C 2800 CMP r0,#0x00
0x0800107E D1F9 BNE 0x08001074
1108: SPI_I2S_SendData(SPI2, RGB_Code & 0xFF);
0x08001080 B2E1 UXTB r1,r4
0x08001082 4628 MOV r0,r5
0x08001084 F000FE41 BL.W SPI_I2S_SendData (0x08001D0A)
1109: while(SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_BSY) != RESET)
1110: {
1111: }
1112: }
0x08001088 2180 MOVS r1,#0x80
0x0800108A 4628 MOV r0,r5
0x0800108C F000FE34 BL.W SPI_I2S_GetFlagStatus (0x08001CF8)
0x08001090 2800 CMP r0,#0x00
0x08001092 D1F9 BNE 0x08001088
1113: if(LCDType == LCD_HX8312)
1114: {
0x08001094 6870 LDR r0,[r6,#0x04]
0x08001096 F5A04103 SUB r1,r0,#0x8300
0x0800109A 3912 SUBS r1,r1,#0x12
0x0800109C D122 BNE 0x080010E4
1115: LCD_CtrlLinesWrite(GPIOD, CtrlPin_NWR, Bit_RESET);
0x0800109E 4EA1 LDR r6,[pc,#644] ; @0x08001324
0x080010A0 2200 MOVS r2,#0x00
0x080010A2 F44F4100 MOV r1,#0x8000
0x080010A6 4630 MOV r0,r6
0x080010A8 F7FFFBCE BL.W LCD_CtrlLinesWrite (0x08000848)
1116: LCD_CtrlLinesWrite(GPIOD, CtrlPin_RS, Bit_SET);
0x080010AC 2201 MOVS r2,#0x01
0x080010AE 2180 MOVS r1,#0x80
0x080010B0 4630 MOV r0,r6
0x080010B2 F7FFFBC9 BL.W LCD_CtrlLinesWrite (0x08000848)
1117: LCD_CtrlLinesWrite(GPIOB, CtrlPin_NCS, Bit_RESET);
1118:
0x080010B6 4E99 LDR r6,[pc,#612] ; @0x0800131C
0x080010B8 2200 MOVS r2,#0x00
0x080010BA 2104 MOVS r1,#0x04
0x080010BC 4630 MOV r0,r6
0x080010BE F7FFFBC3 BL.W LCD_CtrlLinesWrite (0x08000848)
1119: SPI_I2S_SendData(SPI2, RGB_Code);
0x080010C2 4621 MOV r1,r4
0x080010C4 4628 MOV r0,r5
0x080010C6 F000FE20 BL.W SPI_I2S_SendData (0x08001D0A)
1120: while(SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_BSY) != RESET)
1121: {
1122: }
1123:
0x080010CA 2180 MOVS r1,#0x80
0x080010CC 4628 MOV r0,r5
0x080010CE F000FE13 BL.W SPI_I2S_GetFlagStatus (0x08001CF8)
0x080010D2 2800 CMP r0,#0x00
0x080010D4 D1F9 BNE 0x080010CA
1124: LCD_CtrlLinesWrite(GPIOB, CtrlPin_NCS, Bit_SET);
1125: }
0x080010D6 4630 MOV r0,r6
0x080010D8 E8BD4070 POP {r4-r6,lr}
0x080010DC 2201 MOVS r2,#0x01
0x080010DE 2104 MOVS r1,#0x04
0x080010E0 F7FFBBB2 B.W LCD_CtrlLinesWrite (0x08000848)
1126: }
1127:
1128: /*******************************************************************************
1129: * Function Name : LCD_PowerOn
1130: * Description : Power on the LCD.
1131: * Input : None
1132: * Output : None
1133: * Return : None
1134: *******************************************************************************/
1135: void LCD_PowerOn(void)
1136: {
0x080010E4 BD70 POP {r4-r6,pc}
1022: {
0x080010E6 B510 PUSH {r4,lr}
1023: LCD_WriteRegIndex(R34); /* Select GRAM Reg */
1024:
1025: /* Reset LCD control line(/CS) and Send Start-Byte */
0x080010E8 2022 MOVS r0,#0x22
0x080010EA F7FFFBC2 BL.W LCD_WriteRegIndex (0x08000872)
1026: LCD_nCS_StartByte(START_BYTE | WRITE_REG);
1027: }
1028:
1029: /*******************************************************************************
1030: * Function Name : LCD_WriteRAMWord
1031: * Description : Writes 1 word to the LCD RAM.
1032: * Input : - RGB_Code: the pixel color in RGB mode (5-6-5).
1033: * Output : None
1034: * Return : None
1035: *******************************************************************************/
1036: void LCD_WriteRAMWord(u16 RGB_Code)
0x080010EE E8BD4010 POP {r4,lr}
0x080010F2 2072 MOVS r0,#0x72
0x080010F4 F7FFBBAA B.W LCD_nCS_StartByte (0x0800084C)
385: {
0x080010F8 E92D4FF7 PUSH {r0-r2,r4-r11,lr}
0x080010FC 4607 MOV r7,r0
0x080010FE 4692 MOV r10,r2
386: u32 index = 0, i = 0;
387: u8 Xaddress = 0;
388:
389: Xaddress = Xpos;
390:
0x08001100 2500 MOVS r5,#0x00
391: LCD_SetCursor(Xaddress, Ypos);
392:
393: for(index = 0; index < 24; index++)
394: {
0x08001102 9901 LDR r1,[sp,#0x04]
0x08001104 F7FFFF86 BL.W LCD_SetCursor (0x08001014)
395: if(LCDType == LCD_ILI9320)
396: {
397: LCD_WriteRAM_Prepare(); /* Prepare to write GRAM */
398: }
399: for(i = 0; i < 16; i++)
400: {
401: if((c[index] & (1 << i)) == 0x00)
402: {
403: LCD_WriteRAM(BackColor);
404: }
405: else
406: {
407: LCD_WriteRAM(TextColor);
408: }
409: }
410: if(LCDType == LCD_ILI9320)
411: {
0x08001108 4E85 LDR r6,[pc,#532] ; @0x08001320
412: LCD_CtrlLinesWrite(GPIOB, CtrlPin_NCS, Bit_SET);
413: }
0x0800110A F8DFB210 LDR.W r11,[pc,#528] ; @0x0800131E
401: if((c[index] & (1 << i)) == 0x00)
402: {
403: LCD_WriteRAM(BackColor);
404: }
405: else
406: {
0x0800110E F04F0901 MOV r9,#0x01
0x08001112 F2493820 MOVW r8,#0x9320
0x08001116 6871 LDR r1,[r6,#0x04]
0x08001118 4541 CMP r1,r8
0x0800111A D101 BNE 0x08001120
397: LCD_WriteRAM_Prepare(); /* Prepare to write GRAM */
398: }
0x0800111C F7FFFFE3 BL.W LCD_WriteRAM_Prepare (0x080010E6)
399: for(i = 0; i < 16; i++)
400: {
401: if((c[index] & (1 << i)) == 0x00)
402: {
403: LCD_WriteRAM(BackColor);
404: }
405: else
406: {
0x08001120 2400 MOVS r4,#0x00
0x08001122 F83A1015 LDRH r1,[r10,r5,LSL #1]
0x08001126 FA09F004 LSL r0,r9,r4
0x0800112A 4201 TST r1,r0
0x0800112C D018 BEQ 0x08001160
407: LCD_WriteRAM(TextColor);
408: }
409: }
0x0800112E 8830 LDRH r0,[r6,#0x00]
0x08001130 F7FFFF93 BL.W LCD_WriteRAM (0x0800105A)
0x08001134 1C64 ADDS r4,r4,#1
0x08001136 2C10 CMP r4,#0x10
0x08001138 D3F3 BCC 0x08001122
410: if(LCDType == LCD_ILI9320)
411: {
0x0800113A 6871 LDR r1,[r6,#0x04]
0x0800113C 4541 CMP r1,r8
0x0800113E D104 BNE 0x0800114A
412: LCD_CtrlLinesWrite(GPIOB, CtrlPin_NCS, Bit_SET);
413: }
0x08001140 2201 MOVS r2,#0x01
0x08001142 2104 MOVS r1,#0x04
0x08001144 4658 MOV r0,r11
0x08001146 F7FFFB7F BL.W LCD_CtrlLinesWrite (0x08000848)
414: Xaddress++;
0x0800114A 1C7F ADDS r7,r7,#1
0x0800114C B2FF UXTB r7,r7
415: LCD_SetCursor(Xaddress, Ypos);
416: }
0x0800114E 4638 MOV r0,r7
0x08001150 9901 LDR r1,[sp,#0x04]
0x08001152 F7FFFF5F BL.W LCD_SetCursor (0x08001014)
393: for(index = 0; index < 24; index++)
394: {
395: if(LCDType == LCD_ILI9320)
396: {
397: LCD_WriteRAM_Prepare(); /* Prepare to write GRAM */
398: }
399: for(i = 0; i < 16; i++)
400: {
401: if((c[index] & (1 << i)) == 0x00)
402: {
403: LCD_WriteRAM(BackColor);
404: }
405: else
406: {
407: LCD_WriteRAM(TextColor);
408: }
409: }
410: if(LCDType == LCD_ILI9320)
411: {
412: LCD_CtrlLinesWrite(GPIOB, CtrlPin_NCS, Bit_SET);
413: }
414: Xaddress++;
415: LCD_SetCursor(Xaddress, Ypos);
416: }
0x08001156 1C6D ADDS r5,r5,#1
0x08001158 2D18 CMP r5,#0x18
0x0800115A D3DC BCC 0x08001116
417: }
418:
419: /*******************************************************************************
420: * Function Name : LCD_DisplayChar
421: * Description : Displays one character (16dots width, 24dots height).
422: * Input : - Line: the Line where to display the character shape .
423: * This parameter can be one of the following values:
424: * - Linex: where x can be 0..9
425: * - Column: start column address.
426: * - Ascii: character ascii code, must be between 0x20 and 0x7E.
427: * Output : None
428: * Return : None
429: *******************************************************************************/
430: void LCD_DisplayChar(u8 Line, u16 Column, u8 Ascii)
431: {
0x0800115C E8BD8FFE POP {r1-r11,pc}
403: LCD_WriteRAM(BackColor);
0x08001160 8870 LDRH r0,[r6,#0x02]
0x08001162 E7E5 B 0x08001130
432: Ascii -= 32;
0x08001164 3A20 SUBS r2,r2,#0x20
0x08001166 B2D2 UXTB r2,r2
433: LCD_DrawChar(Line, Column, &ASCII_Table[Ascii * 24]);
434: }
435:
436: /*******************************************************************************
437: * Function Name : LCD_DisplayStringLine
438: * Description : Displays a maximum of 20 char on the LCD.
439: * Input : - Line: the Line where to display the character shape .
440: * This parameter can be one of the following values:
441: * - Linex: where x can be 0..9
442: * - *ptr: pointer to string to display on LCD.
443: * Output : None
444: * Return : None
445: *******************************************************************************/
446: void LCD_DisplayStringLine(u8 Line, u8 *ptr)
0x08001168 4B6F LDR r3,[pc,#444] ; @0x08001328
0x0800116A EB020242 ADD r2,r2,r2,LSL #1
0x0800116E EB031202 ADD r2,r3,r2,LSL #4
0x08001172 E7C1 B LCD_DrawChar (0x080010F8)
447: {
0x08001174 E92D41F0 PUSH {r4-r8,lr}
0x08001178 4607 MOV r7,r0
0x0800117A 460D MOV r5,r1
448: u32 i = 0;
0x0800117C 2400 MOVS r4,#0x00
449: u16 refcolumn = 319;
450:
451: /* Send the string character by character on lCD */
0x0800117E F240163F MOVW r6,#0x13F
452: while ((*ptr != 0) & (i < 20))
453: {
454: /* Display one character on LCD */
0x08001182 E007 B 0x08001194
455: LCD_DisplayChar(Line, refcolumn, *ptr);
456: /* Decrement the column position by 16 */
0x08001184 4631 MOV r1,r6
0x08001186 4638 MOV r0,r7
0x08001188 F7FFFFEC BL.W LCD_DisplayChar (0x08001164)
457: refcolumn -= 16;
458: /* Point on the next character */
0x0800118C 3E10 SUBS r6,r6,#0x10
459: ptr++;
460: /* Increment the character counter */
0x0800118E 1C6D ADDS r5,r5,#1
0x08001190 B2B6 UXTH r6,r6
461: i++;
462: }
0x08001192 1C64 ADDS r4,r4,#1
0x08001194 782A LDRB r2,[r5,#0x00]
0x08001196 2A00 CMP r2,#0x00
0x08001198 D001 BEQ 0x0800119E
0x0800119A 2C14 CMP r4,#0x14
0x0800119C D3F2 BCC 0x08001184
463: }
464:
465: /*******************************************************************************
466: * Function Name : LCD_SetDisplayWindow
467: * Description : Sets a display window
468: * Input : - Xpos: specifies the X buttom left position.
469: * - Ypos: specifies the Y buttom left position.
470: * - Height: display window height.
471: * - Width: display window width.
472: * Output : None
473: * Return : None
474: *******************************************************************************/
475: void LCD_SetDisplayWindow(u8 Xpos, u16 Ypos, u8 Height, u16 Width)
0x0800119E E8BD81F0 POP {r4-r8,pc}
318: LCD_DisplayStringLine(Line, " ");
319: }
320:
321: /*******************************************************************************
322: * Function Name : LCD_Clear
323: * Description : Clears the hole LCD.
324: * Input : Color: the color of the background.
325: * Output : None
326: * Return : None
327: *******************************************************************************/
328: void LCD_Clear(u16 Color)
0x080011A2 A162 ADR r1,{pc}+2 ; @0x0800132C
0x080011A4 E7E6 B LCD_DisplayStringLine (0x08001174)
329: {
0x080011A6 E92D41F0 PUSH {r4-r8,lr}
0x080011AA 4680 MOV r8,r0
330: u32 index = 0;
331:
0x080011AC 2400 MOVS r4,#0x00
332: LCD_SetCursor(0x00, 0x013F);
333:
0x080011AE F240113F MOVW r1,#0x13F
0x080011B2 4620 MOV r0,r4
0x080011B4 F7FFFF2E BL.W LCD_SetCursor (0x08001014)
334: if(LCDType == LCD_ILI9320)
335: {
0x080011B8 4D59 LDR r5,[pc,#356] ; @0x08001320
0x080011BA 6868 LDR r0,[r5,#0x04]
0x080011BC F2493620 MOVW r6,#0x9320
0x080011C0 42B0 CMP r0,r6
0x080011C2 D101 BNE 0x080011C8
336: LCD_WriteRAM_Prepare(); /* Prepare to write GRAM */
337: }
338:
0x080011C4 F7FFFF8F BL.W LCD_WriteRAM_Prepare (0x080010E6)
339: for(index = 0; index < 76800; index++)
340: {
0x080011C8 F44F3796 MOV r7,#0x12C00
341: LCD_WriteRAM(Color);
342: }
343:
0x080011CC 4640 MOV r0,r8
0x080011CE F7FFFF44 BL.W LCD_WriteRAM (0x0800105A)
0x080011D2 1C64 ADDS r4,r4,#1
0x080011D4 42BC CMP r4,r7
0x080011D6 D3F9 BCC 0x080011CC
344: if(LCDType == LCD_ILI9320)
345: {
0x080011D8 6868 LDR r0,[r5,#0x04]
0x080011DA 42B0 CMP r0,r6
0x080011DC D1DF BNE 0x0800119E
346: LCD_CtrlLinesWrite(GPIOB, CtrlPin_NCS, Bit_SET);
347: }
0x080011DE E8BD41F0 POP {r4-r8,lr}
0x080011E2 2201 MOVS r2,#0x01
0x080011E4 2104 MOVS r1,#0x04
0x080011E6 484D LDR r0,[pc,#308] ; @0x0800131C
0x080011E8 F7FFBB2E B.W LCD_CtrlLinesWrite (0x08000848)
348: }
0x080011EC E7D7 B 0x0800119E
476: {
0x080011EE E92D41F0 PUSH {r4-r8,lr}
0x080011F2 4698 MOV r8,r3
477: if(LCDType == LCD_ILI9320)
478: {
479: /* Horizontal GRAM Start Address */
480: if(Xpos >= Height)
481: {
0x080011F4 4B4A LDR r3,[pc,#296] ; @0x08001320
0x080011F6 4607 MOV r7,r0
0x080011F8 460C MOV r4,r1
0x080011FA 6858 LDR r0,[r3,#0x04]
482: LCD_WriteReg(R80, (Xpos - Height + 1));
483: }
484: else
485: {
486: LCD_WriteReg(R80, 0);
487: }
488: /* Horizontal GRAM End Address */
489: LCD_WriteReg(R81, Xpos);
490: /* Vertical GRAM Start Address */
491: if(Ypos >= Width)
492: {
0x080011FC 1ABE SUBS r6,r7,r2
493: LCD_WriteReg(R82, (Ypos - Width + 1));
494: }
495: else
496: {
0x080011FE EBA40508 SUB r5,r4,r8
0x08001202 1C76 ADDS r6,r6,#1
0x08001204 1C6D ADDS r5,r5,#1
0x08001206 F5A04113 SUB r1,r0,#0x9300
0x0800120A 3920 SUBS r1,r1,#0x20
0x0800120C D116 BNE 0x0800123C
480: if(Xpos >= Height)
481: {
482: LCD_WriteReg(R80, (Xpos - Height + 1));
483: }
484: else
485: {
0x0800120E 4297 CMP r7,r2
0x08001210 D301 BCC 0x08001216
0x08001212 B2B1 UXTH r1,r6
0x08001214 E000 B 0x08001218
486: LCD_WriteReg(R80, 0);
487: }
488: /* Horizontal GRAM End Address */
0x08001216 2100 MOVS r1,#0x00
0x08001218 2050 MOVS r0,#0x50
0x0800121A F7FFFB4A BL.W LCD_WriteReg (0x080008B2)
489: LCD_WriteReg(R81, Xpos);
490: /* Vertical GRAM Start Address */
0x0800121E 4639 MOV r1,r7
0x08001220 2051 MOVS r0,#0x51
0x08001222 F7FFFB46 BL.W LCD_WriteReg (0x080008B2)
491: if(Ypos >= Width)
492: {
0x08001226 4544 CMP r4,r8
0x08001228 D301 BCC 0x0800122E
493: LCD_WriteReg(R82, (Ypos - Width + 1));
494: }
495: else
496: {
0x0800122A B2A9 UXTH r1,r5
0x0800122C E000 B 0x08001230
497: LCD_WriteReg(R82, 0);
498: }
499: /* Vertical GRAM End Address */
0x0800122E 2100 MOVS r1,#0x00
0x08001230 2052 MOVS r0,#0x52
0x08001232 F7FFFB3E BL.W LCD_WriteReg (0x080008B2)
500: LCD_WriteReg(R83, Ypos);
501: }
0x08001236 4621 MOV r1,r4
0x08001238 2053 MOVS r0,#0x53
0x0800123A E024 B 0x08001286
502: else if(LCDType == LCD_HX8312)
503: {
0x0800123C 6858 LDR r0,[r3,#0x04]
0x0800123E F5A04103 SUB r1,r0,#0x8300
0x08001242 3912 SUBS r1,r1,#0x12
0x08001244 D121 BNE 0x0800128A
504: LCD_WriteReg(R1, 0xD0);
0x08001246 21D0 MOVS r1,#0xD0
0x08001248 2001 MOVS r0,#0x01
0x0800124A F7FFFB32 BL.W LCD_WriteReg (0x080008B2)
505: LCD_WriteReg(R5, 0x14);
506:
0x0800124E 2114 MOVS r1,#0x14
0x08001250 2005 MOVS r0,#0x05
0x08001252 F7FFFB2E BL.W LCD_WriteReg (0x080008B2)
507: LCD_WriteReg(R69, (Xpos - Height + 1));
0x08001256 B2B1 UXTH r1,r6
0x08001258 2045 MOVS r0,#0x45
0x0800125A F7FFFB2A BL.W LCD_WriteReg (0x080008B2)
508: LCD_WriteReg(R70, Xpos);
509:
0x0800125E 4639 MOV r1,r7
0x08001260 2046 MOVS r0,#0x46
0x08001262 F7FFFB26 BL.W LCD_WriteReg (0x080008B2)
510: LCD_WriteReg(R71, (((Ypos - Width + 1) & 0x100)>> 8));
0x08001266 F3C52100 UBFX r1,r5,#8,#1
0x0800126A 2047 MOVS r0,#0x47
0x0800126C F7FFFB21 BL.W LCD_WriteReg (0x080008B2)
511: LCD_WriteReg(R72, ((Ypos - Width + 1) & 0xFF));
512:
0x08001270 B2E9 UXTB r1,r5
0x08001272 2048 MOVS r0,#0x48
0x08001274 F7FFFB1D BL.W LCD_WriteReg (0x080008B2)
513: LCD_WriteReg(R73, ((Ypos & 0x100)>> 8));
0x08001278 F3C42100 UBFX r1,r4,#8,#1
0x0800127C 2049 MOVS r0,#0x49
0x0800127E F7FFFB18 BL.W LCD_WriteReg (0x080008B2)
514: LCD_WriteReg(R74, (Ypos & 0xFF));
515: }
516:
0x08001282 B2E1 UXTB r1,r4
0x08001284 204A MOVS r0,#0x4A
0x08001286 F7FFFB14 BL.W LCD_WriteReg (0x080008B2)
517: LCD_SetCursor(Xpos, Ypos);
518: }
519:
520: /*******************************************************************************
521: * Function Name : LCD_WindowModeDisable
522: * Description : Disables LCD Window mode.
523: * Input : None
524: * Output : None
525: * Return : None
526: *******************************************************************************/
527: void LCD_WindowModeDisable(void)
528: {
0x0800128A 4621 MOV r1,r4
0x0800128C 4638 MOV r0,r7
0x0800128E E8BD41F0 POP {r4-r8,lr}
0x08001292 E6BF B LCD_SetCursor (0x08001014)
529: if(LCDType == LCD_ILI9320)
530: {
0x08001294 4822 LDR r0,[pc,#136] ; @0x08001320
528: {
529: if(LCDType == LCD_ILI9320)
530: {
0x08001296 B510 PUSH {r4,lr}
0x08001298 6841 LDR r1,[r0,#0x04]
0x0800129A F5A14213 SUB r2,r1,#0x9300
0x0800129E 3A20 SUBS r2,r2,#0x20
0x080012A0 D10A BNE 0x080012B8
531: LCD_SetDisplayWindow(239, 319, 240, 320);
0x080012A2 F44F73A0 MOV r3,#0x140
0x080012A6 22F0 MOVS r2,#0xF0
0x080012A8 1E59 SUBS r1,r3,#1
0x080012AA 20EF MOVS r0,#0xEF
0x080012AC F7FFFF9F BL.W LCD_SetDisplayWindow (0x080011EE)
532: LCD_WriteReg(R3, 0x1018);
533: }
0x080012B0 F2410118 MOVW r1,#0x1018
0x080012B4 2003 MOVS r0,#0x03
0x080012B6 E00A B 0x080012CE
534: else if(LCDType == LCD_HX8312)
535: {
0x080012B8 6840 LDR r0,[r0,#0x04]
0x080012BA F5A04103 SUB r1,r0,#0x8300
0x080012BE 3912 SUBS r1,r1,#0x12
0x080012C0 D109 BNE 0x080012D6
536: LCD_WriteReg(R1, 0x50);
0x080012C2 2150 MOVS r1,#0x50
0x080012C4 2001 MOVS r0,#0x01
0x080012C6 F7FFFAF4 BL.W LCD_WriteReg (0x080008B2)
537: LCD_WriteReg(R5, 0x04);
538: }
539:
0x080012CA 2104 MOVS r1,#0x04
0x080012CC 2005 MOVS r0,#0x05
0x080012CE E8BD4010 POP {r4,lr}
0x080012D2 F7FFBAEE B.W LCD_WriteReg (0x080008B2)
540: }
0x080012D6 BD10 POP {r4,pc}
1037: {
0x080012D8 B510 PUSH {r4,lr}
0x080012DA 4604 MOV r4,r0
1038: LCD_WriteRAM_Prepare();
1039:
0x080012DC F7FFFF03 BL.W LCD_WriteRAM_Prepare (0x080010E6)
1040: LCD_WriteRAM(RGB_Code);
1041:
0x080012E0 4620 MOV r0,r4
0x080012E2 F7FFFEBA BL.W LCD_WriteRAM (0x0800105A)
1042: LCD_CtrlLinesWrite(GPIOB, CtrlPin_NCS, Bit_SET);
0x080012E6 2201 MOVS r2,#0x01
0x080012E8 E8BD4010 POP {r4,lr}
0x080012EC 2104 MOVS r1,#0x04
0x080012EE 480B LDR r0,[pc,#44] ; @0x0800131C
0x080012F0 F7FFBAAA B.W LCD_CtrlLinesWrite (0x08000848)
554: {
0x080012F4 E92D47F0 PUSH {r4-r10,lr}
0x080012F8 4616 MOV r6,r2
0x080012FA 461F MOV r7,r3
0x080012FC 4605 MOV r5,r0
0x080012FE 468A MOV r10,r1
555: u32 i = 0;
556:
0x08001300 2400 MOVS r4,#0x00
557: LCD_SetCursor(Xpos, Ypos);
558:
559: if(Direction == Horizontal)
560: {
0x08001302 F7FFFE87 BL.W LCD_SetCursor (0x08001014)
561: if(LCDType == LCD_ILI9320)
562: {
563: LCD_WriteRAM_Prepare(); /* Prepare to write GRAM */
564: }
565: for(i = 0; i < Length; i++)
566: {
567: LCD_WriteRAM(TextColor);
568: }
569: if(LCDType == LCD_ILI9320)
570: {
571: LCD_CtrlLinesWrite(GPIOB, CtrlPin_NCS, Bit_SET);
572: }
573: }
574: else
575: {
576: for(i = 0; i < Length; i++)
577: {
578: if(LCDType == LCD_ILI9320)
579: {
580: LCD_WriteRAMWord(TextColor);
581: }
0x08001306 F8DF8018 LDR.W r8,[pc,#24] ; @0x08001322
0x0800130A F2493920 MOVW r9,#0x9320
559: if(Direction == Horizontal)
560: {
561: if(LCDType == LCD_ILI9320)
562: {
563: LCD_WriteRAM_Prepare(); /* Prepare to write GRAM */
564: }
565: for(i = 0; i < Length; i++)
566: {
567: LCD_WriteRAM(TextColor);
568: }
569: if(LCDType == LCD_ILI9320)
570: {
571: LCD_CtrlLinesWrite(GPIOB, CtrlPin_NCS, Bit_SET);
572: }
573: }
574: else
575: {
576: for(i = 0; i < Length; i++)
577: {
578: if(LCDType == LCD_ILI9320)
579: {
580: LCD_WriteRAMWord(TextColor);
581: }
0x0800130E B1CF CBZ r7,0x08001344
582: else if(LCDType == LCD_HX8312)
583: {
0x08001310 F2483712 MOVW r7,#0x8312
576: for(i = 0; i < Length; i++)
577: {
0x08001314 E047 B 0x080013A6
0x08001316 0000 MOVS r0,r0
0x08001318 3800 SUBS r0,r0,#0x00
0x0800131A 4000 ANDS r0,r0,r0
0x0800131C 0C00 LSRS r0,r0,#16
0x0800131E 4001 ANDS r1,r1,r0
0x08001320 0008 MOVS r0,r1
0x08001322 2000 MOVS r0,#0x00
0x08001324 1400 ASRS r0,r0,#16
0x08001326 4001 ANDS r1,r1,r0
0x08001328 1DA8 ADDS r0,r5,#6
0x0800132A 0800 LSRS r0,r0,#0
0x0800132C 2020 MOVS r0,#0x20
0x0800132E 2020 MOVS r0,#0x20
0x08001330 2020 MOVS r0,#0x20
0x08001332 2020 MOVS r0,#0x20
0x08001334 2020 MOVS r0,#0x20
0x08001336 2020 MOVS r0,#0x20
0x08001338 2020 MOVS r0,#0x20
0x0800133A 2020 MOVS r0,#0x20
0x0800133C 2020 MOVS r0,#0x20
0x0800133E 2020 MOVS r0,#0x20
0x08001340 0000 MOVS r0,r0
0x08001342 0000 MOVS r0,r0
561: if(LCDType == LCD_ILI9320)
562: {
0x08001344 F8D80004 LDR r0,[r8,#0x04]
0x08001348 4548 CMP r0,r9
0x0800134A D107 BNE 0x0800135C
563: LCD_WriteRAM_Prepare(); /* Prepare to write GRAM */
564: }
565: for(i = 0; i < Length; i++)
566: {
0x0800134C F7FFFECB BL.W LCD_WriteRAM_Prepare (0x080010E6)
0x08001350 E004 B 0x0800135C
567: LCD_WriteRAM(TextColor);
568: }
0x08001352 F8B80000 LDRH r0,[r8,#0x00]
0x08001356 F7FFFE80 BL.W LCD_WriteRAM (0x0800105A)
565: for(i = 0; i < Length; i++)
566: {
567: LCD_WriteRAM(TextColor);
568: }
0x0800135A 1C64 ADDS r4,r4,#1
0x0800135C 42B4 CMP r4,r6
0x0800135E D3F8 BCC 0x08001352
569: if(LCDType == LCD_ILI9320)
570: {
0x08001360 F8D80004 LDR r0,[r8,#0x04]
0x08001364 4548 CMP r0,r9
0x08001366 D120 BNE 0x080013AA
571: LCD_CtrlLinesWrite(GPIOB, CtrlPin_NCS, Bit_SET);
572: }
573: }
574: else
575: {
576: for(i = 0; i < Length; i++)
577: {
0x08001368 E8BD47F0 POP {r4-r10,lr}
0x0800136C 2201 MOVS r2,#0x01
0x0800136E 2104 MOVS r1,#0x04
0x08001370 48F9 LDR r0,[pc,#996] ; @0x08001758
0x08001372 F7FFBA69 B.W LCD_CtrlLinesWrite (0x08000848)
578: if(LCDType == LCD_ILI9320)
579: {
0x08001376 F8D81004 LDR r1,[r8,#0x04]
0x0800137A 4549 CMP r1,r9
0x0800137C D104 BNE 0x08001388
580: LCD_WriteRAMWord(TextColor);
581: }
0x0800137E F8B80000 LDRH r0,[r8,#0x00]
0x08001382 F7FFFFA9 BL.W LCD_WriteRAMWord (0x080012D8)
0x08001386 E007 B 0x08001398
582: else if(LCDType == LCD_HX8312)
583: {
0x08001388 F8D81004 LDR r1,[r8,#0x04]
0x0800138C 42B9 CMP r1,r7
0x0800138E D103 BNE 0x08001398
584: LCD_WriteRAM(TextColor);
585: }
0x08001390 F8B80000 LDRH r0,[r8,#0x00]
0x08001394 F7FFFE61 BL.W LCD_WriteRAM (0x0800105A)
586: Xpos++;
0x08001398 1C6D ADDS r5,r5,#1
0x0800139A B2ED UXTB r5,r5
587: LCD_SetCursor(Xpos, Ypos);
588: }
589: }
0x0800139C 4651 MOV r1,r10
0x0800139E 4628 MOV r0,r5
0x080013A0 F7FFFE38 BL.W LCD_SetCursor (0x08001014)
576: for(i = 0; i < Length; i++)
577: {
578: if(LCDType == LCD_ILI9320)
579: {
580: LCD_WriteRAMWord(TextColor);
581: }
582: else if(LCDType == LCD_HX8312)
583: {
584: LCD_WriteRAM(TextColor);
585: }
586: Xpos++;
587: LCD_SetCursor(Xpos, Ypos);
588: }
589: }
0x080013A4 1C64 ADDS r4,r4,#1
0x080013A6 42B4 CMP r4,r6
0x080013A8 D3E5 BCC 0x08001376
590: }
591:
592: /*******************************************************************************
593: * Function Name : LCD_DrawRect
594: * Description : Displays a rectangle.
595: * Input : - Xpos: specifies the X position.
596: * - Ypos: specifies the Y position.
597: * - Height: display rectangle height.
598: * - Width: display rectangle width.
599: * Output : None
600: * Return : None
601: *******************************************************************************/
602: void LCD_DrawRect(u8 Xpos, u16 Ypos, u8 Height, u16 Width)
0x080013AA E8BD87F0 POP {r4-r10,pc}
603: {
0x080013AE E92D41F0 PUSH {r4-r8,lr}
0x080013B2 461E MOV r6,r3
0x080013B4 4615 MOV r5,r2
0x080013B6 4604 MOV r4,r0
0x080013B8 460F MOV r7,r1
604: LCD_DrawLine(Xpos, Ypos, Width, Horizontal);
0x080013BA 2300 MOVS r3,#0x00
0x080013BC 4632 MOV r2,r6
0x080013BE F7FFFF99 BL.W LCD_DrawLine (0x080012F4)
605: LCD_DrawLine((Xpos + Height), Ypos, Width, Horizontal);
606:
0x080013C2 1960 ADDS r0,r4,r5
0x080013C4 B2C0 UXTB r0,r0
0x080013C6 2300 MOVS r3,#0x00
0x080013C8 4632 MOV r2,r6
0x080013CA 4639 MOV r1,r7
0x080013CC F7FFFF92 BL.W LCD_DrawLine (0x080012F4)
607: LCD_DrawLine(Xpos, Ypos, Height, Vertical);
0x080013D0 2301 MOVS r3,#0x01
0x080013D2 462A MOV r2,r5
0x080013D4 4639 MOV r1,r7
0x080013D6 4620 MOV r0,r4
0x080013D8 F7FFFF8C BL.W LCD_DrawLine (0x080012F4)
608: LCD_DrawLine(Xpos, (Ypos - Width + 1), Height, Vertical);
609: }
610:
611: /*******************************************************************************
612: * Function Name : LCD_DrawCircle
613: * Description : Displays a circle.
614: * Input : - Xpos: specifies the X position.
615: * - Ypos: specifies the Y position.
616: * - Height: display rectangle height.
617: * - Width: display rectangle width.
618: * Output : None
619: * Return : None
620: *******************************************************************************/
621: void LCD_DrawCircle(u8 Xpos, u16 Ypos, u16 Radius)
0x080013DC 1BB8 SUBS r0,r7,r6
0x080013DE 1C40 ADDS r0,r0,#1
0x080013E0 B281 UXTH r1,r0
0x080013E2 462A MOV r2,r5
0x080013E4 4620 MOV r0,r4
0x080013E6 E8BD41F0 POP {r4-r8,lr}
0x080013EA 2301 MOVS r3,#0x01
0x080013EC E782 B LCD_DrawLine (0x080012F4)
622: {
623: s32 D;/* Decision Variable */
624: u32 CurX;/* Current X Value */
625: u32 CurY;/* Current Y Value */
626:
0x080013EE E92D5FFC PUSH {r2-r12,lr}
0x080013F2 4607 MOV r7,r0
627: D = 3 - (Radius << 1);
0x080013F4 2003 MOVS r0,#0x03
0x080013F6 4688 MOV r8,r1
0x080013F8 EBA00642 SUB r6,r0,r2,LSL #1
628: CurX = 0;
0x080013FC 2400 MOVS r4,#0x00
629: CurY = Radius;
630:
631: while (CurX <= CurY)
632: {
633: LCD_SetCursor(Xpos + CurX, Ypos + CurY);
634: if(LCDType == LCD_ILI9320)
635: {
636: LCD_WriteRAMWord(TextColor);
637: }
0x080013FE 4615 MOV r5,r2
638: else if(LCDType == LCD_HX8312)
639: {
0x08001400 F2483912 MOVW r9,#0x8312
634: if(LCDType == LCD_ILI9320)
635: {
636: LCD_WriteRAMWord(TextColor);
637: }
0x08001404 F8DFA354 LDR.W r10,[pc,#852] ; @0x0800175C
631: while (CurX <= CurY)
632: {
0x08001408 E0CF B 0x080015AA
633: LCD_SetCursor(Xpos + CurX, Ypos + CurY);
0x0800140A EB080005 ADD r0,r8,r5
0x0800140E B281 UXTH r1,r0
0x08001410 9000 STR r0,[sp,#0x00]
0x08001412 1938 ADDS r0,r7,r4
0x08001414 4683 MOV r11,r0
0x08001416 B2C0 UXTB r0,r0
0x08001418 F7FFFDFC BL.W LCD_SetCursor (0x08001014)
634: if(LCDType == LCD_ILI9320)
635: {
636: LCD_WriteRAMWord(TextColor);
637: }
0x0800141C F8DA1004 LDR r1,[r10,#0x04]
0x08001420 F5A14013 SUB r0,r1,#0x9300
0x08001424 3820 SUBS r0,r0,#0x20
638: else if(LCDType == LCD_HX8312)
639: {
0x08001426 4650 MOV r0,r10
0x08001428 D103 BNE 0x08001432
636: LCD_WriteRAMWord(TextColor);
637: }
638: else if(LCDType == LCD_HX8312)
639: {
0x0800142A 8800 LDRH r0,[r0,#0x00]
0x0800142C F7FFFF54 BL.W LCD_WriteRAMWord (0x080012D8)
0x08001430 E005 B 0x0800143E
0x08001432 6842 LDR r2,[r0,#0x04]
0x08001434 454A CMP r2,r9
0x08001436 D102 BNE 0x0800143E
640: LCD_WriteRAM(TextColor);
641: }
0x08001438 8800 LDRH r0,[r0,#0x00]
0x0800143A F7FFFE0E BL.W LCD_WriteRAM (0x0800105A)
642: LCD_SetCursor(Xpos + CurX, Ypos - CurY);
0x0800143E EBA80005 SUB r0,r8,r5
0x08001442 B281 UXTH r1,r0
0x08001444 9001 STR r0,[sp,#0x04]
0x08001446 F00B00FF AND r0,r11,#0xFF
0x0800144A F7FFFDE3 BL.W LCD_SetCursor (0x08001014)
643: if(LCDType == LCD_ILI9320)
644: {
645: LCD_WriteRAMWord(TextColor);
646: }
0x0800144E F8DA1004 LDR r1,[r10,#0x04]
0x08001452 F5A14013 SUB r0,r1,#0x9300
0x08001456 3820 SUBS r0,r0,#0x20
647: else if(LCDType == LCD_HX8312)
648: {
0x08001458 4650 MOV r0,r10
0x0800145A D103 BNE 0x08001464
645: LCD_WriteRAMWord(TextColor);
646: }
647: else if(LCDType == LCD_HX8312)
648: {
0x0800145C 8800 LDRH r0,[r0,#0x00]
0x0800145E F7FFFF3B BL.W LCD_WriteRAMWord (0x080012D8)
0x08001462 E005 B 0x08001470
0x08001464 6842 LDR r2,[r0,#0x04]
0x08001466 454A CMP r2,r9
0x08001468 D102 BNE 0x08001470
649: LCD_WriteRAM(TextColor);
650: }
0x0800146A 8800 LDRH r0,[r0,#0x00]
0x0800146C F7FFFDF5 BL.W LCD_WriteRAM (0x0800105A)
651: LCD_SetCursor(Xpos - CurX, Ypos + CurY);
0x08001470 9800 LDR r0,[sp,#0x00]
0x08001472 B281 UXTH r1,r0
0x08001474 1B38 SUBS r0,r7,r4
0x08001476 4683 MOV r11,r0
0x08001478 B2C0 UXTB r0,r0
0x0800147A F7FFFDCB BL.W LCD_SetCursor (0x08001014)
652: if(LCDType == LCD_ILI9320)
653: {
654: LCD_WriteRAMWord(TextColor);
655: }
0x0800147E F8DA1004 LDR r1,[r10,#0x04]
0x08001482 F5A14013 SUB r0,r1,#0x9300
0x08001486 3820 SUBS r0,r0,#0x20
656: else if(LCDType == LCD_HX8312)
657: {
0x08001488 4650 MOV r0,r10
0x0800148A D103 BNE 0x08001494
654: LCD_WriteRAMWord(TextColor);
655: }
656: else if(LCDType == LCD_HX8312)
657: {
0x0800148C 8800 LDRH r0,[r0,#0x00]
0x0800148E F7FFFF23 BL.W LCD_WriteRAMWord (0x080012D8)
0x08001492 E005 B 0x080014A0
0x08001494 6842 LDR r2,[r0,#0x04]
0x08001496 454A CMP r2,r9
0x08001498 D102 BNE 0x080014A0
658: LCD_WriteRAM(TextColor);
659: }
0x0800149A 8800 LDRH r0,[r0,#0x00]
0x0800149C F7FFFDDD BL.W LCD_WriteRAM (0x0800105A)
660: LCD_SetCursor(Xpos - CurX, Ypos - CurY);
0x080014A0 9801 LDR r0,[sp,#0x04]
0x080014A2 B281 UXTH r1,r0
0x080014A4 F00B00FF AND r0,r11,#0xFF
0x080014A8 F7FFFDB4 BL.W LCD_SetCursor (0x08001014)
661: if(LCDType == LCD_ILI9320)
662: {
663: LCD_WriteRAMWord(TextColor);
664: }
0x080014AC F8DA1004 LDR r1,[r10,#0x04]
0x080014B0 F5A14013 SUB r0,r1,#0x9300
0x080014B4 3820 SUBS r0,r0,#0x20
665: else if(LCDType == LCD_HX8312)
666: {
0x080014B6 4650 MOV r0,r10
0x080014B8 D103 BNE 0x080014C2
663: LCD_WriteRAMWord(TextColor);
664: }
665: else if(LCDType == LCD_HX8312)
666: {
0x080014BA 8800 LDRH r0,[r0,#0x00]
0x080014BC F7FFFF0C BL.W LCD_WriteRAMWord (0x080012D8)
0x080014C0 E005 B 0x080014CE
0x080014C2 6842 LDR r2,[r0,#0x04]
0x080014C4 454A CMP r2,r9
0x080014C6 D102 BNE 0x080014CE
667: LCD_WriteRAM(TextColor);
668: }
0x080014C8 8800 LDRH r0,[r0,#0x00]
0x080014CA F7FFFDC6 BL.W LCD_WriteRAM (0x0800105A)
669: LCD_SetCursor(Xpos + CurY, Ypos + CurX);
0x080014CE EB080004 ADD r0,r8,r4
0x080014D2 B281 UXTH r1,r0
0x080014D4 9000 STR r0,[sp,#0x00]
0x080014D6 1978 ADDS r0,r7,r5
0x080014D8 4683 MOV r11,r0
0x080014DA B2C0 UXTB r0,r0
0x080014DC F7FFFD9A BL.W LCD_SetCursor (0x08001014)
670: if(LCDType == LCD_ILI9320)
671: {
672: LCD_WriteRAMWord(TextColor);
673: }
0x080014E0 F8DA1004 LDR r1,[r10,#0x04]
0x080014E4 F5A14013 SUB r0,r1,#0x9300
0x080014E8 3820 SUBS r0,r0,#0x20
674: else if(LCDType == LCD_HX8312)
675: {
0x080014EA 4650 MOV r0,r10
0x080014EC D103 BNE 0x080014F6
672: LCD_WriteRAMWord(TextColor);
673: }
674: else if(LCDType == LCD_HX8312)
675: {
0x080014EE 8800 LDRH r0,[r0,#0x00]
0x080014F0 F7FFFEF2 BL.W LCD_WriteRAMWord (0x080012D8)
0x080014F4 E005 B 0x08001502
0x080014F6 6842 LDR r2,[r0,#0x04]
0x080014F8 454A CMP r2,r9
0x080014FA D102 BNE 0x08001502
676: LCD_WriteRAM(TextColor);
677: }
0x080014FC 8800 LDRH r0,[r0,#0x00]
0x080014FE F7FFFDAC BL.W LCD_WriteRAM (0x0800105A)
678: LCD_SetCursor(Xpos + CurY, Ypos - CurX);
0x08001502 EBA80004 SUB r0,r8,r4
0x08001506 B281 UXTH r1,r0
0x08001508 9001 STR r0,[sp,#0x04]
0x0800150A F00B00FF AND r0,r11,#0xFF
0x0800150E F7FFFD81 BL.W LCD_SetCursor (0x08001014)
679: if(LCDType == LCD_ILI9320)
680: {
681: LCD_WriteRAMWord(TextColor);
682: }
0x08001512 F8DA1004 LDR r1,[r10,#0x04]
0x08001516 F5A14013 SUB r0,r1,#0x9300
0x0800151A 3820 SUBS r0,r0,#0x20
683: else if(LCDType == LCD_HX8312)
684: {
0x0800151C 4650 MOV r0,r10
0x0800151E D103 BNE 0x08001528
681: LCD_WriteRAMWord(TextColor);
682: }
683: else if(LCDType == LCD_HX8312)
684: {
0x08001520 8800 LDRH r0,[r0,#0x00]
0x08001522 F7FFFED9 BL.W LCD_WriteRAMWord (0x080012D8)
0x08001526 E005 B 0x08001534
0x08001528 6842 LDR r2,[r0,#0x04]
0x0800152A 454A CMP r2,r9
0x0800152C D102 BNE 0x08001534
685: LCD_WriteRAM(TextColor);
686: }
0x0800152E 8800 LDRH r0,[r0,#0x00]
0x08001530 F7FFFD93 BL.W LCD_WriteRAM (0x0800105A)
687: LCD_SetCursor(Xpos - CurY, Ypos + CurX);
0x08001534 9800 LDR r0,[sp,#0x00]
0x08001536 B281 UXTH r1,r0
0x08001538 1B78 SUBS r0,r7,r5
0x0800153A 4683 MOV r11,r0
0x0800153C B2C0 UXTB r0,r0
0x0800153E F7FFFD69 BL.W LCD_SetCursor (0x08001014)
688: if(LCDType == LCD_ILI9320)
689: {
690: LCD_WriteRAMWord(TextColor);
691: }
0x08001542 F8DA1004 LDR r1,[r10,#0x04]
0x08001546 F5A14013 SUB r0,r1,#0x9300
0x0800154A 3820 SUBS r0,r0,#0x20
692: else if(LCDType == LCD_HX8312)
693: {
0x0800154C 4650 MOV r0,r10
0x0800154E D103 BNE 0x08001558
690: LCD_WriteRAMWord(TextColor);
691: }
692: else if(LCDType == LCD_HX8312)
693: {
0x08001550 8800 LDRH r0,[r0,#0x00]
0x08001552 F7FFFEC1 BL.W LCD_WriteRAMWord (0x080012D8)
0x08001556 E005 B 0x08001564
0x08001558 6842 LDR r2,[r0,#0x04]
0x0800155A 454A CMP r2,r9
0x0800155C D102 BNE 0x08001564
694: LCD_WriteRAM(TextColor);
695: }
0x0800155E 8800 LDRH r0,[r0,#0x00]
0x08001560 F7FFFD7B BL.W LCD_WriteRAM (0x0800105A)
696: LCD_SetCursor(Xpos - CurY, Ypos - CurX);
0x08001564 9801 LDR r0,[sp,#0x04]
0x08001566 B281 UXTH r1,r0
0x08001568 F00B00FF AND r0,r11,#0xFF
0x0800156C F7FFFD52 BL.W LCD_SetCursor (0x08001014)
697: if(LCDType == LCD_ILI9320)
698: {
0x08001570 F8DA2004 LDR r2,[r10,#0x04]
0x08001574 4650 MOV r0,r10
0x08001576 F5A24113 SUB r1,r2,#0x9300
0x0800157A 3920 SUBS r1,r1,#0x20
0x0800157C D103 BNE 0x08001586
699: LCD_WriteRAMWord(TextColor);
700: }
0x0800157E 8800 LDRH r0,[r0,#0x00]
0x08001580 F7FFFEAA BL.W LCD_WriteRAMWord (0x080012D8)
0x08001584 E005 B 0x08001592
701: else if(LCDType == LCD_HX8312)
702: {
0x08001586 6842 LDR r2,[r0,#0x04]
0x08001588 454A CMP r2,r9
0x0800158A D102 BNE 0x08001592
703: LCD_WriteRAM(TextColor);
704: }
705:
0x0800158C 8800 LDRH r0,[r0,#0x00]
0x0800158E F7FFFD64 BL.W LCD_WriteRAM (0x0800105A)
706: if (D < 0)
707: {
0x08001592 2E00 CMP r6,#0x00
0x08001594 DA03 BGE 0x0800159E
708: D += (CurX << 2) + 6;
709: }
710: else
711: {
0x08001596 EB060684 ADD r6,r6,r4,LSL #2
0x0800159A 1DB6 ADDS r6,r6,#6
0x0800159C E004 B 0x080015A8
712: D += ((CurX - CurY) << 2) + 10;
0x0800159E 1B60 SUBS r0,r4,r5
0x080015A0 EB060680 ADD r6,r6,r0,LSL #2
0x080015A4 360A ADDS r6,r6,#0x0A
713: CurY--;
714: }
0x080015A6 1E6D SUBS r5,r5,#1
715: CurX++;
716: }
0x080015A8 1C64 ADDS r4,r4,#1
631: while (CurX <= CurY)
0x080015AA 42AC CMP r4,r5
0x080015AC F67FAF2D BLS.W 0x0800140A
717: }
718:
719: /*******************************************************************************
720: * Function Name : LCD_DrawMonoPict
721: * Description : Displays a monocolor picture.
722: * Input : - Pict: pointer to the picture array.
723: * Output : None
724: * Return : None
725: *******************************************************************************/
726: void LCD_DrawMonoPict(uc32 *Pict)
0x080015B0 E8BD9FFC POP {r2-r12,pc}
727: {
0x080015B4 E92D47F0 PUSH {r4-r10,lr}
0x080015B8 4680 MOV r8,r0
728: u32 index = 0, i = 0;
729:
0x080015BA 2500 MOVS r5,#0x00
730: LCD_SetCursor(0, 319);
0x080015BC F240113F MOVW r1,#0x13F
0x080015C0 4628 MOV r0,r5
0x080015C2 F7FFFD27 BL.W LCD_SetCursor (0x08001014)
731: if(LCDType == LCD_ILI9320)
732: {
0x080015C6 4E65 LDR r6,[pc,#404] ; @0x0800175C
0x080015C8 6871 LDR r1,[r6,#0x04]
0x080015CA F2493920 MOVW r9,#0x9320
0x080015CE 4549 CMP r1,r9
0x080015D0 D101 BNE 0x080015D6
733: LCD_WriteRAM_Prepare(); /* Prepare to write GRAM */
734: }
735: for(index = 0; index < 2400; index++)
736: {
737: for(i = 0; i < 32; i++)
738: {
0x080015D2 F7FFFD88 BL.W LCD_WriteRAM_Prepare (0x080010E6)
739: if((Pict[index] & (1 << i)) == 0x00)
740: {
741: LCD_WriteRAM(BackColor);
742: }
743: else
744: {
0x080015D6 2701 MOVS r7,#0x01
735: for(index = 0; index < 2400; index++)
736: {
0x080015D8 F44F6A16 MOV r10,#0x960
737: for(i = 0; i < 32; i++)
738: {
0x080015DC 2400 MOVS r4,#0x00
739: if((Pict[index] & (1 << i)) == 0x00)
740: {
741: LCD_WriteRAM(BackColor);
742: }
743: else
744: {
0x080015DE F8580025 LDR r0,[r8,r5,LSL #2]
0x080015E2 FA07F104 LSL r1,r7,r4
0x080015E6 4208 TST r0,r1
0x080015E8 D012 BEQ 0x08001610
745: LCD_WriteRAM(TextColor);
746: }
747: }
748: }
0x080015EA 8830 LDRH r0,[r6,#0x00]
0x080015EC F7FFFD35 BL.W LCD_WriteRAM (0x0800105A)
737: for(i = 0; i < 32; i++)
738: {
739: if((Pict[index] & (1 << i)) == 0x00)
740: {
741: LCD_WriteRAM(BackColor);
742: }
743: else
744: {
745: LCD_WriteRAM(TextColor);
746: }
747: }
748: }
0x080015F0 1C64 ADDS r4,r4,#1
0x080015F2 2C20 CMP r4,#0x20
0x080015F4 D3F3 BCC 0x080015DE
735: for(index = 0; index < 2400; index++)
736: {
737: for(i = 0; i < 32; i++)
738: {
739: if((Pict[index] & (1 << i)) == 0x00)
740: {
741: LCD_WriteRAM(BackColor);
742: }
743: else
744: {
745: LCD_WriteRAM(TextColor);
746: }
747: }
748: }
0x080015F6 1C6D ADDS r5,r5,#1
0x080015F8 4555 CMP r5,r10
0x080015FA D3EF BCC 0x080015DC
749: if(LCDType == LCD_ILI9320)
750: {
0x080015FC 6871 LDR r1,[r6,#0x04]
0x080015FE 4549 CMP r1,r9
0x08001600 D108 BNE 0x08001614
751: LCD_CtrlLinesWrite(GPIOB, CtrlPin_NCS, Bit_SET);
752: }
0x08001602 E8BD47F0 POP {r4-r10,lr}
0x08001606 2201 MOVS r2,#0x01
0x08001608 2104 MOVS r1,#0x04
0x0800160A 4853 LDR r0,[pc,#332] ; @0x08001758
0x0800160C F7FFB91C B.W LCD_CtrlLinesWrite (0x08000848)
741: LCD_WriteRAM(BackColor);
742: }
743: else
744: {
745: LCD_WriteRAM(TextColor);
746: }
747: }
748: }
749: if(LCDType == LCD_ILI9320)
750: {
751: LCD_CtrlLinesWrite(GPIOB, CtrlPin_NCS, Bit_SET);
752: }
0x08001610 8870 LDRH r0,[r6,#0x02]
0x08001612 E7EB B 0x080015EC
753: }
754:
755: /*******************************************************************************
756: * Function Name : LCD_DrawMonoBMP
757: * Description : Displays a monochrome bitmap.
758: * Input : - BmpAddress: Bmp picture address.
759: * Output : None
760: * Return : None
761: *******************************************************************************/
762: void LCD_DrawMonoBMP(u32 BmpAddress)
0x08001614 E6C9 B 0x080013AA
763: {
764: u32 i, ofs, size, mask;
765: u8 b;
766:
767: /* Read bitmap size */
0x08001616 E92D47F0 PUSH {r4-r10,lr}
768: size = *((u32 *)(BmpAddress + 2));
769:
770: /* get bitmap data address offset */
0x0800161A F8D02002 LDR r2,[r0,#0x02]
771: ofs = *((u32 *)(BmpAddress + 10));
772:
773: size = size - ofs;
774: BmpAddress += ofs;
775:
0x0800161E F8D0100A LDR r1,[r0,#0x0A]
776: if(LCDType == LCD_ILI9320)
777: {
778: /* Set GRAM write direction and BGR = 1 */
779: /* I/D=00 (Horizontal : decrement, Vertical : decrement) */
780: /* AM=1 (address is updated in vertical writing direction) */
0x08001622 4C4E LDR r4,[pc,#312] ; @0x0800175C
773: size = size - ofs;
0x08001624 1A52 SUBS r2,r2,r1
774: BmpAddress += ofs;
775:
0x08001626 1846 ADDS r6,r0,r1
776: if(LCDType == LCD_ILI9320)
777: {
778: /* Set GRAM write direction and BGR = 1 */
779: /* I/D=00 (Horizontal : decrement, Vertical : decrement) */
780: /* AM=1 (address is updated in vertical writing direction) */
0x08001628 6861 LDR r1,[r4,#0x04]
773: size = size - ofs;
774: BmpAddress += ofs;
775:
776: if(LCDType == LCD_ILI9320)
777: {
778: /* Set GRAM write direction and BGR = 1 */
779: /* I/D=00 (Horizontal : decrement, Vertical : decrement) */
780: /* AM=1 (address is updated in vertical writing direction) */
0x0800162A 4691 MOV r9,r2
0x0800162C F2493A20 MOVW r10,#0x9320
0x08001630 4551 CMP r1,r10
0x08001632 D106 BNE 0x08001642
781: LCD_WriteReg(R3, 0x1008);
782:
0x08001634 F2410108 MOVW r1,#0x1008
0x08001638 2003 MOVS r0,#0x03
0x0800163A F7FFF93A BL.W LCD_WriteReg (0x080008B2)
783: LCD_WriteRAM_Prepare(); /* Prepare to write GRAM */
784: }
0x0800163E F7FFFD52 BL.W LCD_WriteRAM_Prepare (0x080010E6)
785: for(i = 0; i < size; i++)
786: {
0x08001642 2500 MOVS r5,#0x00
0x08001644 46A0 MOV r8,r4
0x08001646 E00D B 0x08001664
787: b = *((u8 *)BmpAddress++);
0x08001648 F8167B01 LDRB r7,[r6],#0x01
788: for (mask = 0x80; mask; mask >>= 1)
789: {
0x0800164C 2480 MOVS r4,#0x80
790: if (b & mask)
791: {
792: LCD_WriteRAM(TextColor);
793: }
794: else
795: {
0x0800164E 4227 TST r7,r4
796: LCD_WriteRAM(BackColor);
797: }
798: }
799: }
0x08001650 4640 MOV r0,r8
0x08001652 D001 BEQ 0x08001658
792: LCD_WriteRAM(TextColor);
793: }
794: else
795: {
796: LCD_WriteRAM(BackColor);
797: }
798: }
799: }
0x08001654 8800 LDRH r0,[r0,#0x00]
0x08001656 E000 B 0x0800165A
0x08001658 8840 LDRH r0,[r0,#0x02]
0x0800165A F7FFFCFE BL.W LCD_WriteRAM (0x0800105A)
0x0800165E 0864 LSRS r4,r4,#1
0x08001660 D1F5 BNE 0x0800164E
785: for(i = 0; i < size; i++)
786: {
787: b = *((u8 *)BmpAddress++);
788: for (mask = 0x80; mask; mask >>= 1)
789: {
790: if (b & mask)
791: {
792: LCD_WriteRAM(TextColor);
793: }
794: else
795: {
796: LCD_WriteRAM(BackColor);
797: }
798: }
799: }
0x08001662 1C6D ADDS r5,r5,#1
0x08001664 454D CMP r5,r9
0x08001666 D3EF BCC 0x08001648
800: if(LCDType == LCD_ILI9320)
801: {
0x08001668 F8D81004 LDR r1,[r8,#0x04]
0x0800166C 4551 CMP r1,r10
0x0800166E D10B BNE 0x08001688
802: LCD_CtrlLinesWrite(GPIOB, CtrlPin_NCS, Bit_SET);
803: /* Set GRAM write direction and BGR = 1 */
804: /* I/D = 01 (Horizontal : increment, Vertical : decrement) */
805: /* AM = 1 (address is updated in vertical writing direction) */
0x08001670 2201 MOVS r2,#0x01
0x08001672 2104 MOVS r1,#0x04
0x08001674 4838 LDR r0,[pc,#224] ; @0x08001758
0x08001676 F7FFF8E7 BL.W LCD_CtrlLinesWrite (0x08000848)
806: LCD_WriteReg(R3, 0x1018);
807: }
0x0800167A E8BD47F0 POP {r4-r10,lr}
0x0800167E F2410118 MOVW r1,#0x1018
0x08001682 2003 MOVS r0,#0x03
0x08001684 F7FFB915 B.W LCD_WriteReg (0x080008B2)
808: }
809:
810: /*******************************************************************************
811: * Function Name : LCD_DrawBMP
812: * Description : Displays a bitmap picture loaded in the SPI Flash.
813: * Input : - BmpAddress: Bmp picture address in the SPI Flash.
814: * Output : None
815: * Return : None
816: *******************************************************************************/
817: void LCD_DrawBMP(u32 BmpAddress)
0x08001688 E68F B 0x080013AA
818: {
0x0800168A E92D41FC PUSH {r2-r8,lr}
819: u32 i = 0, size = 0;
820:
821: /* Read bitmap size */
0x0800168E 2700 MOVS r7,#0x00
0x08001690 4604 MOV r4,r0
822: SPI_FLASH_BufferRead((u8*)&size, BmpAddress + 2, 4);
823:
824: /* get bitmap data address offset */
0x08001692 1C81 ADDS r1,r0,#2
0x08001694 9701 STR r7,[sp,#0x04]
0x08001696 2204 MOVS r2,#0x04
0x08001698 4668 MOV r0,sp
0x0800169A 9700 STR r7,[sp,#0x00]
0x0800169C F7FFF858 BL.W SPI_FLASH_BufferRead (0x08000750)
825: SPI_FLASH_BufferRead((u8*)&i, BmpAddress + 10, 4);
826:
0x080016A0 2204 MOVS r2,#0x04
0x080016A2 F104010A ADD r1,r4,#0x0A
0x080016A6 A801 ADD r0,sp,#0x04
0x080016A8 F7FFF852 BL.W SPI_FLASH_BufferRead (0x08000750)
0x080016AC E9DD1000 LDRD r1,r0,[sp,#0]
827: size = (size - i)/2;
828:
0x080016B0 1A09 SUBS r1,r1,r0
0x080016B2 0849 LSRS r1,r1,#1
829: SPI_FLASH_StartReadSequence(BmpAddress + i);
830:
831: /* Disable SPI1 */
0x080016B4 4420 ADD r0,r0,r4
0x080016B6 9100 STR r1,[sp,#0x00]
0x080016B8 F7FFF893 BL.W SPI_FLASH_StartReadSequence (0x080007E2)
832: SPI_Cmd(SPI1, DISABLE);
833: /* SPI in 16-bit mode */
0x080016BC 4E28 LDR r6,[pc,#160] ; @0x08001760
0x080016BE 2100 MOVS r1,#0x00
0x080016C0 4630 MOV r0,r6
0x080016C2 F000FAE1 BL.W SPI_Cmd (0x08001C88)
834: SPI_DataSizeConfig(SPI1, SPI_DataSize_16b);
835:
836: /* Enable SPI1 */
0x080016C6 14F1 ASRS r1,r6,#19
0x080016C8 4630 MOV r0,r6
0x080016CA F000FAE7 BL.W SPI_DataSizeConfig (0x08001C9C)
837: SPI_Cmd(SPI1, ENABLE);
838:
0x080016CE 2101 MOVS r1,#0x01
0x080016D0 4630 MOV r0,r6
0x080016D2 F000FAD9 BL.W SPI_Cmd (0x08001C88)
839: if(LCDType == LCD_ILI9320)
840: {
841: /* Set GRAM write direction and BGR = 1 */
842: /* I/D=00 (Horizontal : decrement, Vertical : decrement) */
843: /* AM=1 (address is updated in vertical writing direction) */
0x080016D6 4C21 LDR r4,[pc,#132] ; @0x0800175C
0x080016D8 6860 LDR r0,[r4,#0x04]
0x080016DA F2493520 MOVW r5,#0x9320
0x080016DE 42A8 CMP r0,r5
0x080016E0 D106 BNE 0x080016F0
844: LCD_WriteReg(R3, 0x1008);
845:
0x080016E2 F2410108 MOVW r1,#0x1008
0x080016E6 2003 MOVS r0,#0x03
0x080016E8 F7FFF8E3 BL.W LCD_WriteReg (0x080008B2)
846: LCD_WriteRAM_Prepare(); /* Prepare to write GRAM */
847: }
848: /* Read bitmap data from SPI Flash and send them to LCD */
849: for(i = 0; i < size; i++)
850: {
0x080016EC F7FFFCFB BL.W LCD_WriteRAM_Prepare (0x080010E6)
851: LCD_WriteRAM(__REV_HalfWord(SPI_FLASH_SendHalfWord(0xA5A5)));
852: }
0x080016F0 9701 STR r7,[sp,#0x04]
0x080016F2 F24A57A5 MOVW r7,#0xA5A5
849: for(i = 0; i < size; i++)
850: {
851: LCD_WriteRAM(__REV_HalfWord(SPI_FLASH_SendHalfWord(0xA5A5)));
852: }
0x080016F6 9801 LDR r0,[sp,#0x04]
0x080016F8 E009 B 0x0800170E
0x080016FA 4638 MOV r0,r7
0x080016FC F7FFF888 BL.W SPI_FLASH_SendHalfWord (0x08000810)
0x08001700 F000F947 BL.W __REV_HalfWord (0x08001992)
0x08001704 F7FFFCA9 BL.W LCD_WriteRAM (0x0800105A)
0x08001708 9801 LDR r0,[sp,#0x04]
0x0800170A 1C40 ADDS r0,r0,#1
0x0800170C 9001 STR r0,[sp,#0x04]
0x0800170E 9900 LDR r1,[sp,#0x00]
0x08001710 4288 CMP r0,r1
0x08001712 D3F2 BCC 0x080016FA
853: if(LCDType == LCD_ILI9320)
854: {
0x08001714 6860 LDR r0,[r4,#0x04]
0x08001716 42A8 CMP r0,r5
0x08001718 D104 BNE 0x08001724
855: LCD_CtrlLinesWrite(GPIOB, CtrlPin_NCS, Bit_SET);
856: }
857:
858: /* Deselect the FLASH: Chip Select high */
0x0800171A 2201 MOVS r2,#0x01
0x0800171C 2104 MOVS r1,#0x04
0x0800171E 480E LDR r0,[pc,#56] ; @0x08001758
0x08001720 F7FFF892 BL.W LCD_CtrlLinesWrite (0x08000848)
859: SPI_FLASH_CS_HIGH();
860:
861: /* Disable SPI1 */
0x08001724 2110 MOVS r1,#0x10
0x08001726 480F LDR r0,[pc,#60] ; @0x08001764
0x08001728 F000F9DD BL.W GPIO_SetBits (0x08001AE6)
862: SPI_Cmd(SPI1, DISABLE);
863: /* SPI in 8-bit mode */
0x0800172C 2100 MOVS r1,#0x00
0x0800172E 4630 MOV r0,r6
0x08001730 F000FAAA BL.W SPI_Cmd (0x08001C88)
864: SPI_DataSizeConfig(SPI1, SPI_DataSize_8b);
865:
866: /* Enable SPI1 */
0x08001734 2100 MOVS r1,#0x00
0x08001736 4630 MOV r0,r6
0x08001738 F000FAB0 BL.W SPI_DataSizeConfig (0x08001C9C)
867: SPI_Cmd(SPI1, ENABLE);
0x0800173C 2101 MOVS r1,#0x01
0x0800173E 4630 MOV r0,r6
0x08001740 F000FAA2 BL.W SPI_Cmd (0x08001C88)
868: if(LCDType == LCD_ILI9320)
869: {
870: /* Set GRAM write direction and BGR = 1 */
871: /* I/D = 01 (Horizontal : increment, Vertical : decrement) */
872: /* AM = 1 (address is updated in vertical writing direction) */
0x08001744 6860 LDR r0,[r4,#0x04]
0x08001746 42A8 CMP r0,r5
0x08001748 D104 BNE 0x08001754
873: LCD_WriteReg(R3, 0x1018);
874: }
0x0800174A F2410118 MOVW r1,#0x1018
0x0800174E 2003 MOVS r0,#0x03
0x08001750 F7FFF8AF BL.W LCD_WriteReg (0x080008B2)
875: }
0x08001754 E8BD81FC POP {r2-r8,pc}
0x08001758 0C00 LSRS r0,r0,#16
0x0800175A 4001 ANDS r1,r1,r0
0x0800175C 0008 MOVS r0,r1
0x0800175E 2000 MOVS r0,#0x00
0x08001760 3000 ADDS r0,r0,#0x00
0x08001762 4001 ANDS r1,r1,r0
0x08001764 0800 LSRS r0,r0,#0
0x08001766 4001 ANDS r1,r1,r0
1137: if(LCDType == LCD_ILI9320)
1138: {
1139: /* Power On sequence ---------------------------------------------------------*/
0x08001768 4865 LDR r0,[pc,#404] ; @0x08001900
1136: {
1137: if(LCDType == LCD_ILI9320)
1138: {
1139: /* Power On sequence ---------------------------------------------------------*/
0x0800176A B510 PUSH {r4,lr}
0x0800176C 6841 LDR r1,[r0,#0x04]
0x0800176E F5A14213 SUB r2,r1,#0x9300
0x08001772 3A20 SUBS r2,r2,#0x20
0x08001774 D13A BNE 0x080017EC
1140: LCD_WriteReg(R16, 0x0000); /* SAP, BT[3:0], AP, DSTB, SLP, STB */
0x08001776 2100 MOVS r1,#0x00
0x08001778 2010 MOVS r0,#0x10
0x0800177A F7FFF89A BL.W LCD_WriteReg (0x080008B2)
1141: LCD_WriteReg(R17, 0x0000); /* DC1[2:0], DC0[2:0], VC[2:0] */
0x0800177E 2100 MOVS r1,#0x00
0x08001780 2011 MOVS r0,#0x11
0x08001782 F7FFF896 BL.W LCD_WriteReg (0x080008B2)
1142: LCD_WriteReg(R18, 0x0000); /* VREG1OUT voltage */
0x08001786 2100 MOVS r1,#0x00
0x08001788 2012 MOVS r0,#0x12
0x0800178A F7FFF892 BL.W LCD_WriteReg (0x080008B2)
1143: LCD_WriteReg(R19, 0x0000); /* VDV[4:0] for VCOM amplitude */
0x0800178E 2100 MOVS r1,#0x00
0x08001790 2013 MOVS r0,#0x13
0x08001792 F7FFF88E BL.W LCD_WriteReg (0x080008B2)
1144: Delay(20); /* Dis-charge capacitor power voltage (200ms) */
0x08001796 2014 MOVS r0,#0x14
0x08001798 F7FEFCB7 BL.W Delay (0x0800010A)
1145: LCD_WriteReg(R16, 0x17B0); /* SAP, BT[3:0], AP, DSTB, SLP, STB */
0x0800179C F24171B0 MOVW r1,#0x17B0
0x080017A0 2010 MOVS r0,#0x10
0x080017A2 F7FFF886 BL.W LCD_WriteReg (0x080008B2)
1146: LCD_WriteReg(R17, 0x0137); /* DC1[2:0], DC0[2:0], VC[2:0] */
0x080017A6 F2401137 MOVW r1,#0x137
0x080017AA 2011 MOVS r0,#0x11
0x080017AC F7FFF881 BL.W LCD_WriteReg (0x080008B2)
1147: Delay(5); /* Delay 50 ms */
0x080017B0 2005 MOVS r0,#0x05
0x080017B2 F7FEFCAA BL.W Delay (0x0800010A)
1148: LCD_WriteReg(R18, 0x0139); /* VREG1OUT voltage */
0x080017B6 F2401139 MOVW r1,#0x139
0x080017BA 2012 MOVS r0,#0x12
0x080017BC F7FFF879 BL.W LCD_WriteReg (0x080008B2)
1149: Delay(5); /* delay 50 ms */
0x080017C0 2005 MOVS r0,#0x05
0x080017C2 F7FEFCA2 BL.W Delay (0x0800010A)
1150: LCD_WriteReg(R19, 0x1d00); /* VDV[4:0] for VCOM amplitude */
0x080017C6 F44F51E8 MOV r1,#0x1D00
0x080017CA 2013 MOVS r0,#0x13
0x080017CC F7FFF871 BL.W LCD_WriteReg (0x080008B2)
1151: LCD_WriteReg(R41, 0x0013); /* VCM[4:0] for VCOMH */
0x080017D0 2113 MOVS r1,#0x13
0x080017D2 2029 MOVS r0,#0x29
0x080017D4 F7FFF86D BL.W LCD_WriteReg (0x080008B2)
1152: Delay(5); /* delay 50 ms */
0x080017D8 2005 MOVS r0,#0x05
0x080017DA F7FEFC96 BL.W Delay (0x0800010A)
1153: LCD_WriteReg(R7, 0x0173); /* 262K color and display ON */
1154: }
0x080017DE E8BD4010 POP {r4,lr}
0x080017E2 F2401173 MOVW r1,#0x173
0x080017E6 2007 MOVS r0,#0x07
0x080017E8 F7FFB863 B.W LCD_WriteReg (0x080008B2)
1155: else if(LCDType == LCD_HX8312)
1156: {
1157: /* Power On Set */
0x080017EC 6840 LDR r0,[r0,#0x04]
0x080017EE F5A04103 SUB r1,r0,#0x8300
0x080017F2 3912 SUBS r1,r1,#0x12
0x080017F4 D13C BNE 0x08001870
1158: LCD_WriteReg(R28, 0x73);
0x080017F6 2173 MOVS r1,#0x73
0x080017F8 201C MOVS r0,#0x1C
0x080017FA F7FFF85A BL.W LCD_WriteReg (0x080008B2)
1159: LCD_WriteReg(R36, 0x74);
0x080017FE 2174 MOVS r1,#0x74
0x08001800 2024 MOVS r0,#0x24
0x08001802 F7FFF856 BL.W LCD_WriteReg (0x080008B2)
1160: LCD_WriteReg(R30, 0x01);
0x08001806 2101 MOVS r1,#0x01
0x08001808 201E MOVS r0,#0x1E
0x0800180A F7FFF852 BL.W LCD_WriteReg (0x080008B2)
1161: LCD_WriteReg(R24, 0xC1);
0x0800180E 21C1 MOVS r1,#0xC1
0x08001810 2018 MOVS r0,#0x18
0x08001812 F7FFF84E BL.W LCD_WriteReg (0x080008B2)
1162: Delay(1); /* Delay 10 ms */
0x08001816 2001 MOVS r0,#0x01
0x08001818 F7FEFC77 BL.W Delay (0x0800010A)
1163: LCD_WriteReg(R24, 0xE1);
0x0800181C 21E1 MOVS r1,#0xE1
0x0800181E 2018 MOVS r0,#0x18
0x08001820 F7FFF847 BL.W LCD_WriteReg (0x080008B2)
1164: LCD_WriteReg(R24, 0xF1);
0x08001824 21F1 MOVS r1,#0xF1
0x08001826 2018 MOVS r0,#0x18
0x08001828 F7FFF843 BL.W LCD_WriteReg (0x080008B2)
1165: Delay(6); /* Delay 60 ms */
0x0800182C 2006 MOVS r0,#0x06
0x0800182E F7FEFC6C BL.W Delay (0x0800010A)
1166: LCD_WriteReg(R24, 0xF5);
0x08001832 21F5 MOVS r1,#0xF5
0x08001834 2018 MOVS r0,#0x18
0x08001836 F7FFF83C BL.W LCD_WriteReg (0x080008B2)
1167: Delay(6); /* Delay 60 ms */
0x0800183A 2006 MOVS r0,#0x06
0x0800183C F7FEFC65 BL.W Delay (0x0800010A)
1168: LCD_WriteReg(R27, 0x09);
0x08001840 2109 MOVS r1,#0x09
0x08001842 201B MOVS r0,#0x1B
0x08001844 F7FFF835 BL.W LCD_WriteReg (0x080008B2)
1169: Delay(1); /* Delay 10 ms */
0x08001848 2001 MOVS r0,#0x01
0x0800184A F7FEFC5E BL.W Delay (0x0800010A)
1170: LCD_WriteReg(R31, 0x11);
0x0800184E 2111 MOVS r1,#0x11
0x08001850 201F MOVS r0,#0x1F
0x08001852 F7FFF82E BL.W LCD_WriteReg (0x080008B2)
1171: LCD_WriteReg(R32, 0x0E);
0x08001856 210E MOVS r1,#0x0E
0x08001858 2020 MOVS r0,#0x20
0x0800185A F7FFF82A BL.W LCD_WriteReg (0x080008B2)
1172: LCD_WriteReg(R30, 0x81);
0x0800185E 2181 MOVS r1,#0x81
0x08001860 201E MOVS r0,#0x1E
0x08001862 F7FFF826 BL.W LCD_WriteReg (0x080008B2)
1173: Delay(1); /* Delay 10 ms */
1174: }
0x08001866 E8BD4010 POP {r4,lr}
0x0800186A 2001 MOVS r0,#0x01
0x0800186C F7FEBC4D B.W Delay (0x0800010A)
1175: }
1176:
1177: /*******************************************************************************
1178: * Function Name : LCD_DisplayOn
1179: * Description : Enables the Display.
1180: * Input : None
1181: * Output : None
1182: * Return : None
1183: *******************************************************************************/
1184: void LCD_DisplayOn(void)
1185: {
0x08001870 BD10 POP {r4,pc}
1186: if(LCDType == LCD_ILI9320)
1187: {
1188: /* Display On */
0x08001872 4823 LDR r0,[pc,#140] ; @0x08001900
1185: {
1186: if(LCDType == LCD_ILI9320)
1187: {
1188: /* Display On */
0x08001874 B510 PUSH {r4,lr}
0x08001876 6841 LDR r1,[r0,#0x04]
0x08001878 F5A14213 SUB r2,r1,#0x9300
0x0800187C 3A20 SUBS r2,r2,#0x20
0x0800187E D103 BNE 0x08001888
1189: LCD_WriteReg(R7, 0x0173); /* 262K color and display ON */
1190: }
0x08001880 F2401173 MOVW r1,#0x173
0x08001884 2007 MOVS r0,#0x07
0x08001886 E019 B 0x080018BC
1191: else if(LCDType == LCD_HX8312)
1192: {
0x08001888 6840 LDR r0,[r0,#0x04]
0x0800188A F5A04103 SUB r1,r0,#0x8300
0x0800188E 3912 SUBS r1,r1,#0x12
0x08001890 D118 BNE 0x080018C4
1193: LCD_WriteReg(R1, 0x50);
0x08001892 2150 MOVS r1,#0x50
0x08001894 2001 MOVS r0,#0x01
0x08001896 F7FFF80C BL.W LCD_WriteReg (0x080008B2)
1194: LCD_WriteReg(R5, 0x04);
1195:
1196: /* Display On */
0x0800189A 2104 MOVS r1,#0x04
0x0800189C 2005 MOVS r0,#0x05
0x0800189E F7FFF808 BL.W LCD_WriteReg (0x080008B2)
1197: LCD_WriteReg(R0, 0x80);
0x080018A2 2180 MOVS r1,#0x80
0x080018A4 2000 MOVS r0,#0x00
0x080018A6 F7FFF804 BL.W LCD_WriteReg (0x080008B2)
1198: LCD_WriteReg(R59, 0x01);
0x080018AA 2101 MOVS r1,#0x01
0x080018AC 203B MOVS r0,#0x3B
0x080018AE F7FFF800 BL.W LCD_WriteReg (0x080008B2)
1199: Delay(4); /* Delay 40 ms */
0x080018B2 2004 MOVS r0,#0x04
0x080018B4 F7FEFC29 BL.W Delay (0x0800010A)
1200: LCD_WriteReg(R0, 0x20);
1201: }
0x080018B8 2120 MOVS r1,#0x20
0x080018BA 2000 MOVS r0,#0x00
0x080018BC E8BD4010 POP {r4,lr}
0x080018C0 F7FEBFF7 B.W LCD_WriteReg (0x080008B2)
1202: }
1203:
1204: /*******************************************************************************
1205: * Function Name : LCD_DisplayOff
1206: * Description : Disables the Display.
1207: * Input : None
1208: * Output : None
1209: * Return : None
1210: *******************************************************************************/
1211: void LCD_DisplayOff(void)
1212: {
0x080018C4 BD10 POP {r4,pc}
1213: if(LCDType == LCD_ILI9320)
1214: {
1215: /* Display Off */
0x080018C6 480E LDRAL r0,[pc,#56] ; @0x08001900
1212: {
1213: if(LCDType == LCD_ILI9320)
1214: {
1215: /* Display Off */
0x080018C8 B510 PUSH {r4,lr}
0x080018CA 6841 LDR r1,[r0,#0x04]
0x080018CC F5A14213 SUB r2,r1,#0x9300
0x080018D0 3A20 SUBS r2,r2,#0x20
0x080018D2 D102 BNE 0x080018DA
1216: LCD_WriteReg(R7, 0x0);
1217: }
0x080018D4 2100 MOVS r1,#0x00
0x080018D6 2007 MOVS r0,#0x07
0x080018D8 E00D B 0x080018F6
1218: else if(LCDType == LCD_HX8312)
1219: {
1220: /* Display Off */
0x080018DA 6840 LDR r0,[r0,#0x04]
0x080018DC F5A04103 SUB r1,r0,#0x8300
0x080018E0 3912 SUBS r1,r1,#0x12
0x080018E2 D10C BNE 0x080018FE
1221: LCD_WriteReg(R0, 0xA0);
0x080018E4 21A0 MOVS r1,#0xA0
0x080018E6 2000 MOVS r0,#0x00
0x080018E8 F7FEFFE3 BL.W LCD_WriteReg (0x080008B2)
1222: Delay(4); /* Delay 40 ms */
0x080018EC 2004 MOVS r0,#0x04
0x080018EE F7FEFC0C BL.W Delay (0x0800010A)
1223: LCD_WriteReg(R59, 0x00);
1224: }
0x080018F2 2100 MOVS r1,#0x00
0x080018F4 203B MOVS r0,#0x3B
0x080018F6 E8BD4010 POP {r4,lr}
0x080018FA F7FEBFDA B.W LCD_WriteReg (0x080008B2)
1225: }
0x080018FE BD10 POPLE {r4,pc}
0x08001900 0008 MOVLE r0,r1
0x08001902 2000 MOVGT r0,#0x00
120: LDR R0, =__main
0x08001904 4805 LDR r0,[pc,#20] ; @0x0800191C
121: BX R0 ;R0=0x080000EC/D
122: ENDP
123:
124:
125: ; Dummy Exception Handlers (infinite loops which can be modified)
126:
127: NMI_Handler PROC
128: EXPORT NMI_Handler [WEAK]
0x08001906 4700 BX r0
129: B .
130: ENDP
131: HardFault_Handler\
132: PROC
133: EXPORT HardFault_Handler [WEAK]
0x08001908 E7FE B NMI_Handler (0x08001908)
134: B .
135: ENDP
136: MemManage_Handler\
137: PROC
138: EXPORT MemManage_Handler [WEAK]
0x0800190A E7FE B HardFault_Handler (0x0800190A)
139: B .
140: ENDP
141: BusFault_Handler\
142: PROC
143: EXPORT BusFault_Handler [WEAK]
0x0800190C E7FE B MemManage_Handler (0x0800190C)
144: B .
145: ENDP
146: UsageFault_Handler\
147: PROC
148: EXPORT UsageFault_Handler [WEAK]
0x0800190E E7FE B BusFault_Handler (0x0800190E)
149: B .
150: ENDP
151: SVC_Handler PROC
152: EXPORT SVC_Handler [WEAK]
0x08001910 E7FE B UsageFault_Handler (0x08001910)
153: B .
154: ENDP
155: DebugMon_Handler\
156: PROC
157: EXPORT DebugMon_Handler [WEAK]
0x08001912 E7FE B SVC_Handler (0x08001912)
158: B .
159: ENDP
160: PendSV_Handler PROC
161: EXPORT PendSV_Handler [WEAK]
0x08001914 E7FE B DebugMon_Handler (0x08001914)
162: B .
163: ENDP
164: SysTick_Handler PROC
165: EXPORT SysTick_Handler [WEAK]
0x08001916 E7FE B PendSV_Handler (0x08001916)
166: B .
0x08001918 E7FE B SysTick_Handler (0x08001918)
259: B .
0x0800191A E7FE B Default_Handler (0x0800191A)
0x0800191C 00ED LSLS r5,r5,#3
0x0800191E 0800 LSRS r0,r0,#0
__WFI:
0x08001920 BF30 WFI
0x08001922 4770 BX lr
__WFE:
0x08001924 BF20 WFE
0x08001926 4770 BX lr
__SEV:
0x08001928 BF40 SEV
0x0800192A 4770 BX lr
__ISB:
0x0800192C F3BF8F6F ISB.W
0x08001930 4770 BX lr
__DSB:
0x08001932 F3BF8F4F DSB.W
0x08001936 4770 BX lr
__DMB:
0x08001938 F3BF8F5F DMB.W
0x0800193C 4770 BX lr
__SVC:
0x0800193E DF01 SVC 0x01
0x08001940 4770 BX lr
__MRS_CONTROL:
0x08001942 F3EF8014 MRS r0,CONTROL
0x08001946 4770 BX lr
__MSR_CONTROL:
0x08001948 F3808814 MSR CONTROL,r0
0x0800194C F3BF8F6F ISB.W
0x08001950 4770 BX lr
__MRS_PSP:
0x08001952 F3EF8009 MRS r0,PSP
0x08001956 4770 BX lr
__MSR_PSP:
0x08001958 F3808809 MSR PSP,r0
0x0800195C 4770 BX lr
__MRS_MSP:
0x0800195E F3EF8008 MRS r0,MSP
0x08001962 4770 BX lr
__MSR_MSP:
0x08001964 F3808808 MSR MSP,r0
0x08001968 4770 BX lr
__RESETPRIMASK:
0x0800196A B662 CPSIE I
0x0800196C 4770 BX lr
__SETPRIMASK:
0x0800196E B672 CPSID I
0x08001970 4770 BX lr
__READ_PRIMASK:
0x08001972 F3EF8010 MRS r0,PRIMASK
0x08001976 4770 BX lr
__SETFAULTMASK:
0x08001978 B671 CPSID F
0x0800197A 4770 BX lr
__RESETFAULTMASK:
0x0800197C B661 CPSIE F
0x0800197E 4770 BX lr
__READ_FAULTMASK:
0x08001980 F3EF8013 MRS r0,FAULTMASK
0x08001984 4770 BX lr
__BASEPRICONFIG:
0x08001986 F3808811 MSR BASEPRI,r0
0x0800198A 4770 BX lr
__GetBASEPRI:
0x0800198C F3EF8012 MRS r0,BASEPRI_MAX
0x08001990 4770 BX lr
__REV_HalfWord:
0x08001992 BA40 REV16 r0,r0
0x08001994 4770 BX lr
__REV_Word:
0x08001996 BA00 REV r0,r0
0x08001998 4770 BX lr
strncmp:
0x0800199A B530 PUSH {r4-r5,lr}
0x0800199C 4605 MOV r5,r0
0x0800199E 2000 MOVS r0,#0x00
0x080019A0 4603 MOV r3,r0
0x080019A2 E000 B 0x080019A6
0x080019A4 1C5B ADDS r3,r3,#1
0x080019A6 4293 CMP r3,r2
0x080019A8 D205 BCS 0x080019B6
0x080019AA 5CEC LDRB r4,[r5,r3]
0x080019AC 5CC8 LDRB r0,[r1,r3]
0x080019AE 1A20 SUBS r0,r4,r0
0x080019B0 D101 BNE 0x080019B6
0x080019B2 2C00 CMP r4,#0x00
0x080019B4 D1F6 BNE 0x080019A4
0x080019B6 BD30 POP {r4-r5,pc}
__scatterload_rt2:
0x080019B8 4C06 LDR r4,[pc,#24] ; @0x080019D4;r4=0x080035E8
0x080019BA 4D07 LDR r5,[pc,#28] ; @0x080019D8;r5=0x08003608
0x080019BC E006 B 0x080019CC
0x080019BE 68E0 LDR r0,[r4,#0x0C];r0=0x08001D8A r0=0x08001D9A
0x080019C0 F0400301 ORR r3,r0,#0x01 ;r3=0x08001D8B r0=0x08001D9B
0x080019C4 E8940007 LDM r4,{r0-r2};r0=0x08003608 r1=0x20000000 r2=0x00000010
;r0=0x08003618 r1=0x20000010 r2=0x00000200
0x080019C8 4798 BLX r3
0x080019CA 3410 ADDS r4,r4,#0x10;R4=0x080035F8
0x080019CC 42AC CMP r4,r5
0x080019CE D3F6 BCC 0x080019BE
0x080019D0 F7FEFB90 BL.W _main_init (0x080000F4)
0x080019D4 35E8 ADDS r5,r5,#0xE8
0x080019D6 0800 LSRS r0,r0,#0
0x080019D8 3608 ADDS r6,r6,#0x08
0x080019DA 0800 LSRS r0,r0,#0
FLASH_PrefetchBufferCmd:
0x080019DC 4904 LDR r1,[pc,#16] ; @0x080019F0
0x080019DE 680A LDR r2,[r1,#0x00]
0x080019E0 F0220210 BIC r2,r2,#0x10
0x080019E4 600A STR r2,[r1,#0x00]
0x080019E6 680A LDR r2,[r1,#0x00]
0x080019E8 4302 ORRS r2,r2,r0
0x080019EA 600A STR r2,[r1,#0x00]
0x080019EC 4770 BX lr
0x080019EE 0000 MOVS r0,r0
0x080019F0 2000 MOVS r0,#0x00
0x080019F2 4002 ANDS r2,r2,r0
FLASH_SetLatency:
0x080019F4 4904 LDR r1,[pc,#16] ; @0x08001A08
0x080019F6 680A LDR r2,[r1,#0x00]
0x080019F8 F0020238 AND r2,r2,#0x38
0x080019FC 600A STR r2,[r1,#0x00]
0x080019FE 680A LDR r2,[r1,#0x00]
0x08001A00 4302 ORRS r2,r2,r0
0x08001A02 600A STR r2,[r1,#0x00]
0x08001A04 4770 BX lr
0x08001A06 0000 MOVS r0,r0
0x08001A08 2000 MOVS r0,#0x00
0x08001A0A 4002 ANDS r2,r2,r0
GPIO_EXTILineConfig:
0x08001A0C B510 PUSH {r4,lr}
0x08001A0E 078A LSLS r2,r1,#30
0x08001A10 F0210403 BIC r4,r1,#0x03
0x08001A14 4906 LDR r1,[pc,#24] ; @0x08001A30
0x08001A16 0F12 LSRS r2,r2,#28
0x08001A18 4421 ADD r1,r1,r4
0x08001A1A 230F MOVS r3,#0x0F
0x08001A1C 688C LDR r4,[r1,#0x08]
0x08001A1E 4093 LSLS r3,r3,r2
0x08001A20 439C BICS r4,r4,r3
0x08001A22 608C STR r4,[r1,#0x08]
0x08001A24 688B LDR r3,[r1,#0x08]
0x08001A26 4090 LSLS r0,r0,r2
0x08001A28 4303 ORRS r3,r3,r0
0x08001A2A 608B STR r3,[r1,#0x08]
0x08001A2C BD10 POP {r4,pc}
0x08001A2E 0000 MOVS r0,r0
0x08001A30 0000 MOVS r0,r0
0x08001A32 4001 ANDS r1,r1,r0
GPIO_Init:
0x08001A34 B5F0 PUSH {r4-r7,lr}
0x08001A36 78CB LDRB r3,[r1,#0x03]
0x08001A38 2200 MOVS r2,#0x00
0x08001A3A 06DC LSLS r4,r3,#27
0x08001A3C F003030F AND r3,r3,#0x0F
0x08001A40 D501 BPL 0x08001A46
0x08001A42 788C LDRB r4,[r1,#0x02]
0x08001A44 4323 ORRS r3,r3,r4
0x08001A46 880C LDRH r4,[r1,#0x00]
0x08001A48 270F MOVS r7,#0x0F
0x08001A4A F0140FFF TST r4,#0xFF
0x08001A4E F04F0C01 MOV r12,#0x01
0x08001A52 D01C BEQ 0x08001A8E
0x08001A54 F8D05000 LDR r5,[r0,#0x00]
0x08001A58 880E LDRH r6,[r1,#0x00]
0x08001A5A FA0CF402 LSL r4,r12,r2
0x08001A5E 4026 ANDS r6,r6,r4
0x08001A60 42A6 CMP r6,r4
0x08001A62 D110 BNE 0x08001A86
0x08001A64 0096 LSLS r6,r2,#2
0x08001A66 FA07FE06 LSL lr,r7,r6
0x08001A6A EA250E0E BIC lr,r5,lr
0x08001A6E FA03F506 LSL r5,r3,r6
0x08001A72 78CE LDRB r6,[r1,#0x03]
0x08001A74 EA45050E ORR r5,r5,lr
0x08001A78 2E28 CMP r6,#0x28
0x08001A7A D100 BNE 0x08001A7E
0x08001A7C 6144 STR r4,[r0,#0x14]
0x08001A7E 78CE LDRB r6,[r1,#0x03]
0x08001A80 2E48 CMP r6,#0x48
0x08001A82 D100 BNE 0x08001A86
0x08001A84 6104 STR r4,[r0,#0x10]
0x08001A86 1C52 ADDS r2,r2,#1
0x08001A88 2A08 CMP r2,#0x08
0x08001A8A D3E5 BCC 0x08001A58
0x08001A8C 6005 STR r5,[r0,#0x00]
0x08001A8E 880A LDRH r2,[r1,#0x00]
0x08001A90 2AFF CMP r2,#0xFF
0x08001A92 D91E BLS 0x08001AD2
0x08001A94 6845 LDR r5,[r0,#0x04]
0x08001A96 2200 MOVS r2,#0x00
0x08001A98 F1020608 ADD r6,r2,#0x08
0x08001A9C FA0CF406 LSL r4,r12,r6
0x08001AA0 880E LDRH r6,[r1,#0x00]
0x08001AA2 4026 ANDS r6,r6,r4
0x08001AA4 42A6 CMP r6,r4
0x08001AA6 D110 BNE 0x08001ACA
0x08001AA8 0096 LSLS r6,r2,#2
0x08001AAA FA07FE06 LSL lr,r7,r6
0x08001AAE EA250E0E BIC lr,r5,lr
0x08001AB2 FA03F506 LSL r5,r3,r6
0x08001AB6 78CE LDRB r6,[r1,#0x03]
0x08001AB8 EA45050E ORR r5,r5,lr
0x08001ABC 2E28 CMP r6,#0x28
0x08001ABE D100 BNE 0x08001AC2
0x08001AC0 6144 STR r4,[r0,#0x14]
0x08001AC2 78CE LDRB r6,[r1,#0x03]
0x08001AC4 2E48 CMP r6,#0x48
0x08001AC6 D100 BNE 0x08001ACA
0x08001AC8 6104 STR r4,[r0,#0x10]
0x08001ACA 1C52 ADDS r2,r2,#1
0x08001ACC 2A08 CMP r2,#0x08
0x08001ACE D3E3 BCC 0x08001A98
0x08001AD0 6045 STR r5,[r0,#0x04]
0x08001AD2 BDF0 POP {r4-r7,pc}
GPIO_ReadInputDataBit:
0x08001AD4 4602 MOV r2,r0
0x08001AD6 6892 LDR r2,[r2,#0x08]
0x08001AD8 2000 MOVS r0,#0x00
0x08001ADA 420A TST r2,r1
0x08001ADC D000 BEQ 0x08001AE0
0x08001ADE 2001 MOVS r0,#0x01
0x08001AE0 4770 BX lr
GPIO_ResetBits:
0x08001AE2 6141 STR r1,[r0,#0x14]
0x08001AE4 4770 BX lr
GPIO_SetBits:
0x08001AE6 6101 STR r1,[r0,#0x10]
0x08001AE8 4770 BX lr
GPIO_WriteBit:
0x08001AEA B10A CBZ r2,0x08001AF0
0x08001AEC 6101 STR r1,[r0,#0x10]
0x08001AEE 4770 BX lr
0x08001AF0 6141 STR r1,[r0,#0x14]
0x08001AF2 4770 BX lr
RCC_ADCCLKConfig:
0x08001AF4 4A03 LDR r2,[pc,#12] ; @0x08001B04
0x08001AF6 6851 LDR r1,[r2,#0x04]
0x08001AF8 F4214140 BIC r1,r1,#0xC000
0x08001AFC 4301 ORRS r1,r1,r0
0x08001AFE 6051 STR r1,[r2,#0x04]
0x08001B00 4770 BX lr
0x08001B02 0000 MOVS r0,r0
0x08001B04 1000 ASRS r0,r0,#0
0x08001B06 4002 ANDS r2,r2,r0
RCC_APB1PeriphClockCmd:
0x08001B08 4A04 LDR r2,[pc,#16] ; @0x08001B1C
0x08001B0A 2900 CMP r1,#0x00
0x08001B0C 69D1 LDR r1,[r2,#0x1C]
0x08001B0E D001 BEQ 0x08001B14
0x08001B10 4301 ORRS r1,r1,r0
0x08001B12 E000 B 0x08001B16
0x08001B14 4381 BICS r1,r1,r0
0x08001B16 61D1 STR r1,[r2,#0x1C]
0x08001B18 4770 BX lr
0x08001B1A 0000 MOVS r0,r0
0x08001B1C 1000 ASRS r0,r0,#0
0x08001B1E 4002 ANDS r2,r2,r0
RCC_APB1PeriphResetCmd:
0x08001B20 4A04 LDR r2,[pc,#16] ; @0x08001B34
0x08001B22 2900 CMP r1,#0x00
0x08001B24 6911 LDR r1,[r2,#0x10]
0x08001B26 D001 BEQ 0x08001B2C
0x08001B28 4301 ORRS r1,r1,r0
0x08001B2A E000 B 0x08001B2E
0x08001B2C 4381 BICS r1,r1,r0
0x08001B2E 6111 STR r1,[r2,#0x10]
0x08001B30 4770 BX lr
0x08001B32 0000 MOVS r0,r0
0x08001B34 1000 ASRS r0,r0,#0
0x08001B36 4002 ANDS r2,r2,r0
RCC_APB2PeriphClockCmd:
0x08001B38 4A04 LDR r2,[pc,#16] ; @0x08001B4C
0x08001B3A 2900 CMP r1,#0x00
0x08001B3C 6991 LDR r1,[r2,#0x18]
0x08001B3E D001 BEQ 0x08001B44
0x08001B40 4301 ORRS r1,r1,r0
0x08001B42 E000 B 0x08001B46
0x08001B44 4381 BICS r1,r1,r0
0x08001B46 6191 STR r1,[r2,#0x18]
0x08001B48 4770 BX lr
0x08001B4A 0000 MOVS r0,r0
0x08001B4C 1000 ASRS r0,r0,#0
0x08001B4E 4002 ANDS r2,r2,r0
RCC_APB2PeriphResetCmd:
0x08001B50 4A04 LDR r2,[pc,#16] ; @0x08001B64
0x08001B52 2900 CMP r1,#0x00
0x08001B54 68D1 LDR r1,[r2,#0x0C]
0x08001B56 D001 BEQ 0x08001B5C
0x08001B58 4301 ORRS r1,r1,r0
0x08001B5A E000 B 0x08001B5E
0x08001B5C 4381 BICS r1,r1,r0
0x08001B5E 60D1 STR r1,[r2,#0x0C]
0x08001B60 4770 BX lr
0x08001B62 0000 MOVS r0,r0
0x08001B64 1000 ASRS r0,r0,#0
0x08001B66 4002 ANDS r2,r2,r0
RCC_DeInit:
0x08001B68 480B LDR r0,[pc,#44] ; @0x08001B98
0x08001B6A 6801 LDR r1,[r0,#0x00]
0x08001B6C F0410101 ORR r1,r1,#0x01
0x08001B70 6001 STR r1,[r0,#0x00]
0x08001B72 6841 LDR r1,[r0,#0x04]
0x08001B74 4A09 LDR r2,[pc,#36] ; @0x08001B9C
0x08001B76 4011 ANDS r1,r1,r2
0x08001B78 6041 STR r1,[r0,#0x04]
0x08001B7A 6801 LDR r1,[r0,#0x00]
0x08001B7C 4A08 LDR r2,[pc,#32] ; @0x08001BA0
0x08001B7E 4011 ANDS r1,r1,r2
0x08001B80 6001 STR r1,[r0,#0x00]
0x08001B82 6801 LDR r1,[r0,#0x00]
0x08001B84 F4212180 BIC r1,r1,#0x40000
0x08001B88 6001 STR r1,[r0,#0x00]
0x08001B8A 6842 LDR r2,[r0,#0x04]
0x08001B8C 2100 MOVS r1,#0x00
0x08001B8E F42202FE BIC r2,r2,#0x7F0000
0x08001B92 6042 STR r2,[r0,#0x04]
0x08001B94 6081 STR r1,[r0,#0x08]
0x08001B96 4770 BX lr
0x08001B98 1000 ASRS r0,r0,#0
0x08001B9A 4002 ANDS r2,r2,r0
0x08001B9C 0000 MOVS r0,r0
0x08001B9E F8FFFFFF LDR pc,[pc,#4095] ; @0x08002BA1
0x08001BA2 FEF64603 MRC2 P6,0x07,r4,C6,C3
0x08001BA6 2000 MOVS r0,#0x00
0x08001BA8 0959 LSRS r1,r3,#5
0x08001BAA 4A09 LDR r2,[pc,#36] ; @0x08001BD0
0x08001BAC 2901 CMP r1,#0x01
0x08001BAE D101 BNE 0x08001BB4
0x08001BB0 6811 LDR r1,[r2,#0x00]
0x08001BB2 E004 B 0x08001BBE
0x08001BB4 2902 CMP r1,#0x02
0x08001BB6 D101 BNE 0x08001BBC
0x08001BB8 6A11 LDR r1,[r2,#0x20]
0x08001BBA E000 B 0x08001BBE
0x08001BBC 6A51 LDR r1,[r2,#0x24]
0x08001BBE F003021F AND r2,r3,#0x1F
0x08001BC2 2301 MOVS r3,#0x01
0x08001BC4 4093 LSLS r3,r3,r2
0x08001BC6 420B TST r3,r1
0x08001BC8 D000 BEQ 0x08001BCC
0x08001BCA 2001 MOVS r0,#0x01
0x08001BCC 4770 BX lr
0x08001BCE 0000 MOVS r0,r0
0x08001BD0 1000 ASRS r0,r0,#0
0x08001BD2 4002 ANDS r2,r2,r0
RCC_GetSYSCLKSource:
0x08001BD4 4802 LDR r0,[pc,#8] ; @0x08001BE0
0x08001BD6 6840 LDR r0,[r0,#0x04]
0x08001BD8 F000000C AND r0,r0,#0x0C
0x08001BDC 4770 BX lr
0x08001BDE 0000 MOVS r0,r0
0x08001BE0 1000 ASRS r0,r0,#0
0x08001BE2 4002 ANDS r2,r2,r0
RCC_HCLKConfig:
0x08001BE4 4A03 LDR r2,[pc,#12] ; @0x08001BF4
0x08001BE6 6851 LDR r1,[r2,#0x04]
0x08001BE8 F02101F0 BIC r1,r1,#0xF0
0x08001BEC 4301 ORRS r1,r1,r0
0x08001BEE 6051 STR r1,[r2,#0x04]
0x08001BF0 4770 BX lr
0x08001BF2 0000 MOVS r0,r0
0x08001BF4 1000 ASRS r0,r0,#0
0x08001BF6 4002 ANDS r2,r2,r0
RCC_HSEConfig:
0x08001BF8 490B LDR r1,[pc,#44] ; @0x08001C28
0x08001BFA 680A LDR r2,[r1,#0x00]
0x08001BFC F4223280 BIC r2,r2,#0x10000
0x08001C00 600A STR r2,[r1,#0x00]
0x08001C02 680A LDR r2,[r1,#0x00]
0x08001C04 F5B03F80 CMP r0,#0x10000
0x08001C08 F4222280 BIC r2,r2,#0x40000
0x08001C0C 600A STR r2,[r1,#0x00]
0x08001C0E D007 BEQ 0x08001C20
0x08001C10 F5B02F80 CMP r0,#0x40000
0x08001C14 D103 BNE 0x08001C1E
0x08001C16 6808 LDR r0,[r1,#0x00]
0x08001C18 F44020A0 ORR r0,r0,#0x50000
0x08001C1C 6008 STR r0,[r1,#0x00]
0x08001C1E 4770 BX lr
0x08001C20 6808 LDR r0,[r1,#0x00]
0x08001C22 F4403080 ORR r0,r0,#0x10000
0x08001C26 E7F9 B 0x08001C1C
0x08001C28 1000 ASRS r0,r0,#0
0x08001C2A 4002 ANDS r2,r2,r0
RCC_PCLK1Config:
0x08001C2C 4A03 LDR r2,[pc,#12] ; @0x08001C3C
0x08001C2E 6851 LDR r1,[r2,#0x04]
0x08001C30 F42161E0 BIC r1,r1,#0x700
0x08001C34 4301 ORRS r1,r1,r0
0x08001C36 6051 STR r1,[r2,#0x04]
0x08001C38 4770 BX lr
0x08001C3A 0000 MOVS r0,r0
0x08001C3C 1000 ASRS r0,r0,#0
0x08001C3E 4002 ANDS r2,r2,r0
RCC_PCLK2Config:
0x08001C40 4A03 LDR r2,[pc,#12] ; @0x08001C50
0x08001C42 6851 LDR r1,[r2,#0x04]
0x08001C44 F4215160 BIC r1,r1,#0x3800
0x08001C48 EA4100C0 ORR r0,r1,r0,LSL #3
0x08001C4C 6050 STR r0,[r2,#0x04]
0x08001C4E 4770 BX lr
0x08001C50 1000 ASRS r0,r0,#0
0x08001C52 4002 ANDS r2,r2,r0
RCC_PLLCmd:
0x08001C54 4901 LDR r1,[pc,#4] ; @0x08001C5C
0x08001C56 6608 STR r0,[r1,#0x60]
0x08001C58 4770 BX lr
0x08001C5A 0000 MOVS r0,r0
0x08001C5C 0000 MOVS r0,r0
0x08001C5E 4242 RSBS r2,r0,#0
RCC_PLLConfig:
0x08001C60 4B03 LDR r3,[pc,#12] ; @0x08001C70
0x08001C62 685A LDR r2,[r3,#0x04]
0x08001C64 4308 ORRS r0,r0,r1
0x08001C66 F422127C BIC r2,r2,#0x3F0000
0x08001C6A 4310 ORRS r0,r0,r2
0x08001C6C 6058 STR r0,[r3,#0x04]
0x08001C6E 4770 BX lr
0x08001C70 1000 ASRS r0,r0,#0
0x08001C72 4002 ANDS r2,r2,r0
RCC_SYSCLKConfig:
0x08001C74 4A03 LDR r2,[pc,#12] ; @0x08001C84
0x08001C76 6851 LDR r1,[r2,#0x04]
0x08001C78 F0210103 BIC r1,r1,#0x03
0x08001C7C 4301 ORRS r1,r1,r0
0x08001C7E 6051 STR r1,[r2,#0x04]
0x08001C80 4770 BX lr
0x08001C82 0000 MOVS r0,r0
0x08001C84 1000 ASRS r0,r0,#0
0x08001C86 4002 ANDS r2,r2,r0
SPI_Cmd:
0x08001C88 2900 CMP r1,#0x00
0x08001C8A 8801 LDRH r1,[r0,#0x00]
0x08001C8C D002 BEQ 0x08001C94
0x08001C8E F0410140 ORR r1,r1,#0x40
0x08001C92 E001 B 0x08001C98
0x08001C94 F0210140 BIC r1,r1,#0x40
0x08001C98 8001 STRH r1,[r0,#0x00]
0x08001C9A 4770 BX lr
SPI_DataSizeConfig:
0x08001C9C 8802 LDRH r2,[r0,#0x00]
0x08001C9E F4226200 BIC r2,r2,#0x800
0x08001CA2 8002 STRH r2,[r0,#0x00]
0x08001CA4 8802 LDRH r2,[r0,#0x00]
0x08001CA6 430A ORRS r2,r2,r1
0x08001CA8 8002 STRH r2,[r0,#0x00]
0x08001CAA 4770 BX lr
SPI_I2S_DeInit:
0x08001CAC 4911 LDR r1,[pc,#68] ; @0x08001CF4
0x08001CAE B510 PUSH {r4,lr}
0x08001CB0 1840 ADDS r0,r0,r1
0x08001CB2 D010 BEQ 0x08001CD6
0x08001CB4 F5B06F80 CMP r0,#0x400
0x08001CB8 D010 BEQ 0x08001CDC
0x08001CBA F5B04F78 CMP r0,#0xF800
0x08001CBE D118 BNE 0x08001CF2
0x08001CC0 2101 MOVS r1,#0x01
0x08001CC2 030C LSLS r4,r1,#12
0x08001CC4 4620 MOV r0,r4
0x08001CC6 F7FFFF43 BL.W RCC_APB2PeriphResetCmd (0x08001B50)
0x08001CCA 4620 MOV r0,r4
0x08001CCC E8BD4010 POP {r4,lr}
0x08001CD0 2100 MOVS r1,#0x00
0x08001CD2 F7FFBF3D B.W RCC_APB2PeriphResetCmd (0x08001B50)
0x08001CD6 2101 MOVS r1,#0x01
0x08001CD8 038C LSLS r4,r1,#14
0x08001CDA E001 B 0x08001CE0
0x08001CDC 2101 MOVS r1,#0x01
0x08001CDE 03CC LSLS r4,r1,#15
0x08001CE0 4620 MOV r0,r4
0x08001CE2 F7FFFF1D BL.W RCC_APB1PeriphResetCmd (0x08001B20)
0x08001CE6 4620 MOV r0,r4
0x08001CE8 E8BD4010 POP {r4,lr}
0x08001CEC 2100 MOVS r1,#0x00
0x08001CEE F7FFBF17 B.W RCC_APB1PeriphResetCmd (0x08001B20)
0x08001CF2 BD10 POP {r4,pc}
0x08001CF4 C800 LDM r0!,{}
0x08001CF6 BFFF ITTTT
SPI_I2S_GetFlagStatus:
0x08001CF8 4602 MOV r2,r0
0x08001CFA 8912 LDRH r2,[r2,#0x08]
0x08001CFC 2000 MOV r0,#0x00
0x08001CFE 420A TST r2,r1
0x08001D00 D000 BEQ 0x08001D04
0x08001D02 2001 MOVS r0,#0x01
0x08001D04 4770 BX lr
SPI_I2S_ReceiveData:
0x08001D06 8980 LDRH r0,[r0,#0x0C]
0x08001D08 4770 BX lr
SPI_I2S_SendData:
0x08001D0A 8181 STRH r1,[r0,#0x0C]
0x08001D0C 4770 BX lr
SPI_Init:
0x08001D0E B570 PUSH {r4-r6,lr}
0x08001D10 8802 LDRH r2,[r0,#0x00]
0x08001D12 880B LDRH r3,[r1,#0x00]
0x08001D14 884E LDRH r6,[r1,#0x02]
0x08001D16 888C LDRH r4,[r1,#0x04]
0x08001D18 88CD LDRH r5,[r1,#0x06]
0x08001D1A 4333 ORRS r3,r3,r6
0x08001D1C 432C ORRS r4,r4,r5
0x08001D1E 890E LDRH r6,[r1,#0x08]
0x08001D20 4323 ORRS r3,r3,r4
0x08001D22 894C LDRH r4,[r1,#0x0A]
0x08001D24 4333 ORRS r3,r3,r6
0x08001D26 898D LDRH r5,[r1,#0x0C]
0x08001D28 4323 ORRS r3,r3,r4
0x08001D2A 89CC LDRH r4,[r1,#0x0E]
0x08001D2C 432B ORRS r3,r3,r5
0x08001D2E F4025241 AND r2,r2,#0x3040
0x08001D32 4323 ORRS r3,r3,r4
0x08001D34 4313 ORRS r3,r3,r2
0x08001D36 8003 STRH r3,[r0,#0x00]
0x08001D38 8B82 LDRH r2,[r0,#0x1C]
0x08001D3A F4226200 BIC r2,r2,#0x800
0x08001D3E 8382 STRH r2,[r0,#0x1C]
0x08001D40 8A09 LDRH r1,[r1,#0x10]
0x08001D42 8201 STRH r1,[r0,#0x10]
0x08001D44 BD70 POP {r4-r6,pc}
SysTick_CounterCmd:
0x08001D46 F04F21E0 MOV r1,#0xE000E000
0x08001D4A 2801 CMP r0,#0x01
0x08001D4C D103 BNE 0x08001D56
0x08001D4E 6908 LDR r0,[r1,#0x10]
0x08001D50 F0400001 ORR r0,r0,#0x01
0x08001D54 E004 B 0x08001D60
0x08001D56 1C80 ADDS r0,r0,#2
0x08001D58 D104 BNE 0x08001D64
0x08001D5A 6908 LDR r0,[r1,#0x10]
0x08001D5C F0200001 BIC r0,r0,#0x01
0x08001D60 6108 STR r0,[r1,#0x10]
0x08001D62 4770 BX lr
0x08001D64 2000 MOVS r0,#0x00
0x08001D66 6188 STR r0,[r1,#0x18]
0x08001D68 4770 BX lr
SysTick_ITConfig:
0x08001D6A F04F21E0 MOV r1,#0xE000E000
0x08001D6E 2800 CMP r0,#0x00
0x08001D70 6908 LDR r0,[r1,#0x10]
0x08001D72 D002 BEQ 0x08001D7A
0x08001D74 F0400002 ORR r0,r0,#0x02
0x08001D78 E001 B 0x08001D7E
0x08001D7A F0200002 BIC r0,r0,#0x02
0x08001D7E 6108 STR r0,[r1,#0x10]
0x08001D80 4770 BX lr
SysTick_SetReload:
0x08001D82 F04F21E0 MOV r1,#0xE000E000
0x08001D86 6148 STR r0,[r1,#0x14]
0x08001D88 4770 BX lr
__scatterload_copy:
0x08001D8A E002 B 0x08001D92
0x08001D8C C808 LDM r0!,{r3}
0x08001D8E 1F12 SUBS r2,r2,#4
0x08001D90 C108 STM r1!,{r3}
0x08001D92 2A00 CMP r2,#0x00
0x08001D94 D1FA BNE 0x08001D8C
0x08001D96 4770 BX lr
__scatterload_null:
0x08001D98 4770 BX lr
__scatterload_zeroinit:
0x08001D9A 2000 MOVS r0,#0x00
0x08001D9C E001 B 0x08001DA2
0x08001D9E C101 STM r1!,{r0}
0x08001DA0 1F12 SUBS r2,r2,#4
0x08001DA2 2A00 CMP r2,#0x00
0x08001DA4 D1FB BNE 0x08001D9E
0x08001DA6 4770 BX lr
0x08001DA8 0000 MOVS r0,r0
0x08001DAA 0000 MOVS r0,r0
0x08001DAC 0000 MOVS r0,r0
0x08001DAE 0000 MOVS r0,r0
0x08001DB0 0000 MOVS r0,r0
0x08001DB2 0000 MOVS r0,r0
0x08001DB4 0000 MOVS r0,r0
0x08001DB6 0000 MOVS r0,r0
0x08001DB8 0000 MOVS r0,r0
0x08001DBA 0000 MOVS r0,r0
0x08001DBC 0000 MOVS r0,r0
0x08001DBE 0000 MOVS r0,r0
0x08001DC0 0000 MOVS r0,r0
0x08001DC2 0000 MOVS r0,r0
0x08001DC4 0000 MOVS r0,r0
0x08001DC6 0000 MOVS r0,r0
0x08001DC8 0000 MOVS r0,r0
0x08001DCA 0000 MOVS r0,r0
0x08001DCC 0000 MOVS r0,r0
0x08001DCE 0000 MOVS r0,r0
0x08001DD0 0000 MOVS r0,r0
0x08001DD2 0000 MOVS r0,r0
0x08001DD4 0000 MOVS r0,r0
0x08001DD6 0000 MOVS r0,r0
0x08001DD8 0000 MOVS r0,r0
0x08001DDA 0180 LSLS r0,r0,#6
0x08001DDC 0180 LSLS r0,r0,#6
0x08001DDE 0180 LSLS r0,r0,#6
0x08001DE0 0180 LSLS r0,r0,#6
0x08001DE2 0180 LSLS r0,r0,#6
0x08001DE4 0180 LSLS r0,r0,#6
0x08001DE6 0180 LSLS r0,r0,#6
0x08001DE8 0180 LSLS r0,r0,#6
0x08001DEA 0180 LSLS r0,r0,#6
0x08001DEC 0180 LSLS r0,r0,#6
0x08001DEE 0180 LSLS r0,r0,#6
0x08001DF0 0180 LSLS r0,r0,#6
0x08001DF2 0180 LSLS r0,r0,#6
0x08001DF4 0000 MOVS r0,r0
0x08001DF6 0000 MOVS r0,r0
0x08001DF8 0180 LSLS r0,r0,#6
0x08001DFA 0180 LSLS r0,r0,#6
0x08001DFC 0000 MOVS r0,r0
0x08001DFE 0000 MOVS r0,r0
0x08001E00 0000 MOVS r0,r0
0x08001E02 0000 MOVS r0,r0
0x08001E04 0000 MOVS r0,r0
0x08001E06 0000 MOVS r0,r0
0x08001E08 0000 MOVS r0,r0
0x08001E0A 0000 MOVS r0,r0
0x08001E0C 00CC LSLS r4,r1,#3
0x08001E0E 00CC LSLS r4,r1,#3
0x08001E10 00CC LSLS r4,r1,#3
0x08001E12 00CC LSLS r4,r1,#3
0x08001E14 00CC LSLS r4,r1,#3
0x08001E16 00CC LSLS r4,r1,#3
0x08001E18 0000 MOVS r0,r0
0x08001E1A 0000 MOVS r0,r0
0x08001E1C 0000 MOVS r0,r0
0x08001E1E 0000 MOVS r0,r0
0x08001E20 0000 MOVS r0,r0
0x08001E22 0000 MOVS r0,r0
0x08001E24 0000 MOVS r0,r0
0x08001E26 0000 MOVS r0,r0
0x08001E28 0000 MOVS r0,r0
0x08001E2A 0000 MOVS r0,r0
0x08001E2C 0000 MOVS r0,r0
0x08001E2E 0000 MOVS r0,r0
0x08001E30 0000 MOVS r0,r0
0x08001E32 0000 MOVS r0,r0
0x08001E34 0000 MOVS r0,r0
0x08001E36 0000 MOVS r0,r0
0x08001E38 0000 MOVS r0,r0
0x08001E3A 0000 MOVS r0,r0
0x08001E3C 0000 MOVS r0,r0
0x08001E3E 0000 MOVS r0,r0
0x08001E40 0000 MOVS r0,r0
0x08001E42 0000 MOVS r0,r0
0x08001E44 0C60 LSRS r0,r4,#17
0x08001E46 0C60 LSRS r0,r4,#17
0x08001E48 0C60 LSRS r0,r4,#17
0x08001E4A 0630 LSLS r0,r6,#24
0x08001E4C 0630 LSLS r0,r6,#24
0x08001E4E 1FFE SUBS r6,r7,#7
0x08001E50 1FFE SUBS r6,r7,#7
0x08001E52 0630 LSLS r0,r6,#24
0x08001E54 0738 LSLS r0,r7,#28
0x08001E56 0318 LSLS r0,r3,#12
0x08001E58 1FFE SUBS r6,r7,#7
0x08001E5A 1FFE SUBS r6,r7,#7
0x08001E5C 0318 LSLS r0,r3,#12
0x08001E5E 0318 LSLS r0,r3,#12
0x08001E60 018C LSLS r4,r1,#6
0x08001E62 018C LSLS r4,r1,#6
0x08001E64 018C LSLS r4,r1,#6
0x08001E66 0000 MOVS r0,r0
0x08001E68 0000 MOVS r0,r0
0x08001E6A 0080 LSLS r0,r0,#2
0x08001E6C 03E0 LSLS r0,r4,#15
0x08001E6E 0FF8 LSRS r0,r7,#31
0x08001E70 0E9C LSRS r4,r3,#26
0x08001E72 1C8C ADDS r4,r1,#2
0x08001E74 188C ADDS r4,r1,r2
0x08001E76 008C LSLS r4,r1,#2
0x08001E78 0098 LSLS r0,r3,#2
0x08001E7A 01F8 LSLS r0,r7,#7
0x08001E7C 07E0 LSLS r0,r4,#31
0x08001E7E 0E80 LSRS r0,r0,#26
0x08001E80 1C80 ADDS r0,r0,#2
0x08001E82 188C ADDS r4,r1,r2
0x08001E84 188C ADDS r4,r1,r2
0x08001E86 189C ADDS r4,r3,r2
0x08001E88 0CB8 LSRS r0,r7,#18
0x08001E8A 0FF0 LSRS r0,r6,#31
0x08001E8C 03E0 LSLS r0,r4,#15
0x08001E8E 0080 LSLS r0,r0,#2
0x08001E90 0080 LSLS r0,r0,#2
0x08001E92 0000 MOVS r0,r0
0x08001E94 0000 MOVS r0,r0
0x08001E96 0000 MOVS r0,r0
0x08001E98 0000 MOVS r0,r0
0x08001E9A 0000 MOVS r0,r0
0x08001E9C 0000 MOVS r0,r0
0x08001E9E 180E ADDS r6,r1,r0
0x08001EA0 0C1B LSRS r3,r3,#16
0x08001EA2 0C11 LSRS r1,r2,#16
0x08001EA4 0611 LSLS r1,r2,#24
0x08001EA6 0611 LSLS r1,r2,#24
0x08001EA8 0311 LSLS r1,r2,#12
0x08001EAA 0311 LSLS r1,r2,#12
0x08001EAC 019B LSLS r3,r3,#6
0x08001EAE 018E LSLS r6,r1,#6
0x08001EB0 38C0 SUBS r0,r0,#0xC0
0x08001EB2 6CC0 LDR r0,[r0,#0x4C]
0x08001EB4 4460 ADD r0,r0,r12
0x08001EB6 4460 ADD r0,r0,r12
0x08001EB8 4430 ADD r0,r0,r6
0x08001EBA 4430 ADD r0,r0,r6
0x08001EBC 4418 ADD r0,r0,r3
0x08001EBE 6C18 LDR r0,[r3,#0x40]
0x08001EC0 380C SUBS r0,r0,#0x0C
0x08001EC2 0000 MOVS r0,r0
0x08001EC4 0000 MOVS r0,r0
0x08001EC6 0000 MOVS r0,r0
0x08001EC8 0000 MOVS r0,r0
0x08001ECA 01E0 LSLS r0,r4,#7
0x08001ECC 03F0 LSLS r0,r6,#15
0x08001ECE 0738 LSLS r0,r7,#28
0x08001ED0 0618 LSLS r0,r3,#24
0x08001ED2 0618 LSLS r0,r3,#24
0x08001ED4 0330 LSLS r0,r6,#12
0x08001ED6 01F0 LSLS r0,r6,#7
0x08001ED8 00F0 LSLS r0,r6,#3
0x08001EDA 00F8 LSLS r0,r7,#3
0x08001EDC 319C ADDS r1,r1,#0x9C
0x08001EDE 330E ADDS r3,r3,#0x0E
0x08001EE0 1E06 SUBS r6,r0,#0
0x08001EE2 1C06 ADDS r6,r0,#0
0x08001EE4 1C06 ADDS r6,r0,#0
0x08001EE6 3F06 SUBS r7,r7,#0x06
0x08001EE8 73FC STRB r4,[r7,#0x0F]
0x08001EEA 21F0 MOVS r1,#0xF0
0x08001EEC 0000 MOVS r0,r0
0x08001EEE 0000 MOVS r0,r0
0x08001EF0 0000 MOVS r0,r0
0x08001EF2 0000 MOVS r0,r0
0x08001EF4 0000 MOVS r0,r0
0x08001EF6 0000 MOVS r0,r0
0x08001EF8 0000 MOVS r0,r0
0x08001EFA 0000 MOVS r0,r0
0x08001EFC 000C MOVS r4,r1
0x08001EFE 000C MOVS r4,r1
0x08001F00 000C MOVS r4,r1
0x08001F02 000C MOVS r4,r1
0x08001F04 000C MOVS r4,r1
0x08001F06 000C MOVS r4,r1
0x08001F08 0000 MOVS r0,r0
0x08001F0A 0000 MOVS r0,r0
0x08001F0C 0000 MOVS r0,r0
0x08001F0E 0000 MOVS r0,r0
0x08001F10 0000 MOVS r0,r0
0x08001F12 0000 MOVS r0,r0
0x08001F14 0000 MOVS r0,r0
0x08001F16 0000 MOVS r0,r0
0x08001F18 0000 MOVS r0,r0
0x08001F1A 0000 MOVS r0,r0
0x08001F1C 0000 MOVS r0,r0
0x08001F1E 0000 MOVS r0,r0
0x08001F20 0000 MOVS r0,r0
0x08001F22 0000 MOVS r0,r0
0x08001F24 0000 MOVS r0,r0
0x08001F26 0000 MOVS r0,r0
0x08001F28 0000 MOVS r0,r0
0x08001F2A 0200 LSLS r0,r0,#8
0x08001F2C 0300 LSLS r0,r0,#12
0x08001F2E 0180 LSLS r0,r0,#6
0x08001F30 00C0 LSLS r0,r0,#3
0x08001F32 00C0 LSLS r0,r0,#3
0x08001F34 0060 LSLS r0,r4,#1
0x08001F36 0060 LSLS r0,r4,#1
0x08001F38 0030 MOVS r0,r6
0x08001F3A 0030 MOVS r0,r6
0x08001F3C 0030 MOVS r0,r6
0x08001F3E 0030 MOVS r0,r6
0x08001F40 0030 MOVS r0,r6
0x08001F42 0030 MOVS r0,r6
0x08001F44 0030 MOVS r0,r6
0x08001F46 0030 MOVS r0,r6
0x08001F48 0060 LSLS r0,r4,#1
0x08001F4A 0060 LSLS r0,r4,#1
0x08001F4C 00C0 LSLS r0,r0,#3
0x08001F4E 00C0 LSLS r0,r0,#3
0x08001F50 0180 LSLS r0,r0,#6
0x08001F52 0300 LSLS r0,r0,#12
0x08001F54 0200 LSLS r0,r0,#8
0x08001F56 0000 MOVS r0,r0
0x08001F58 0000 MOVS r0,r0
0x08001F5A 0020 MOVS r0,r4
0x08001F5C 0060 LSLS r0,r4,#1
0x08001F5E 00C0 LSLS r0,r0,#3
0x08001F60 0180 LSLS r0,r0,#6
0x08001F62 0180 LSLS r0,r0,#6
0x08001F64 0300 LSLS r0,r0,#12
0x08001F66 0300 LSLS r0,r0,#12
0x08001F68 0600 LSLS r0,r0,#24
0x08001F6A 0600 LSLS r0,r0,#24
0x08001F6C 0600 LSLS r0,r0,#24
0x08001F6E 0600 LSLS r0,r0,#24
0x08001F70 0600 LSLS r0,r0,#24
0x08001F72 0600 LSLS r0,r0,#24
0x08001F74 0600 LSLS r0,r0,#24
0x08001F76 0600 LSLS r0,r0,#24
0x08001F78 0300 LSLS r0,r0,#12
0x08001F7A 0300 LSLS r0,r0,#12
0x08001F7C 0180 LSLS r0,r0,#6
0x08001F7E 0180 LSLS r0,r0,#6
0x08001F80 00C0 LSLS r0,r0,#3
0x08001F82 0060 LSLS r0,r4,#1
0x08001F84 0020 MOVS r0,r4
0x08001F86 0000 MOVS r0,r0
0x08001F88 0000 MOVS r0,r0
0x08001F8A 0000 MOVS r0,r0
0x08001F8C 0000 MOVS r0,r0
0x08001F8E 0000 MOVS r0,r0
0x08001F90 0000 MOVS r0,r0
0x08001F92 0000 MOVS r0,r0
0x08001F94 00C0 LSLS r0,r0,#3
0x08001F96 00C0 LSLS r0,r0,#3
0x08001F98 06D8 LSLS r0,r3,#27
0x08001F9A 07F8 LSLS r0,r7,#31
0x08001F9C 01E0 LSLS r0,r4,#7
0x08001F9E 0330 LSLS r0,r6,#12
0x08001FA0 0738 LSLS r0,r7,#28
0x08001FA2 0000 MOVS r0,r0
0x08001FA4 0000 MOVS r0,r0
0x08001FA6 0000 MOVS r0,r0
0x08001FA8 0000 MOVS r0,r0
0x08001FAA 0000 MOVS r0,r0
0x08001FAC 0000 MOVS r0,r0
0x08001FAE 0000 MOVS r0,r0
0x08001FB0 0000 MOVS r0,r0
0x08001FB2 0000 MOVS r0,r0
0x08001FB4 0000 MOVS r0,r0
0x08001FB6 0000 MOVS r0,r0
0x08001FB8 0000 MOVS r0,r0
0x08001FBA 0000 MOVS r0,r0
0x08001FBC 0000 MOVS r0,r0
0x08001FBE 0000 MOVS r0,r0
0x08001FC0 0000 MOVS r0,r0
0x08001FC2 0000 MOVS r0,r0
0x08001FC4 0180 LSLS r0,r0,#6
0x08001FC6 0180 LSLS r0,r0,#6
0x08001FC8 0180 LSLS r0,r0,#6
0x08001FCA 0180 LSLS r0,r0,#6
0x08001FCC 0180 LSLS r0,r0,#6
0x08001FCE 3FFC SUBS r7,r7,#0xFC
0x08001FD0 3FFC SUBS r7,r7,#0xFC
0x08001FD2 0180 LSLS r0,r0,#6
0x08001FD4 0180 LSLS r0,r0,#6
0x08001FD6 0180 LSLS r0,r0,#6
0x08001FD8 0180 LSLS r0,r0,#6
0x08001FDA 0180 LSLS r0,r0,#6
0x08001FDC 0000 MOVS r0,r0
0x08001FDE 0000 MOVS r0,r0
0x08001FE0 0000 MOVS r0,r0
0x08001FE2 0000 MOVS r0,r0
0x08001FE4 0000 MOVS r0,r0
0x08001FE6 0000 MOVS r0,r0
0x08001FE8 0000 MOVS r0,r0
0x08001FEA 0000 MOVS r0,r0
0x08001FEC 0000 MOVS r0,r0
0x08001FEE 0000 MOVS r0,r0
0x08001FF0 0000 MOVS r0,r0
0x08001FF2 0000 MOVS r0,r0
0x08001FF4 0000 MOVS r0,r0
0x08001FF6 0000 MOVS r0,r0
0x08001FF8 0000 MOVS r0,r0
0x08001FFA 0000 MOVS r0,r0
0x08001FFC 0000 MOVS r0,r0
0x08001FFE 0000 MOVS r0,r0
0x08002000 0000 MOVS r0,r0
0x08002002 0000 MOVS r0,r0
0x08002004 0000 MOVS r0,r0
0x08002006 0000 MOVS r0,r0
0x08002008 0000 MOVS r0,r0
0x0800200A 0180 LSLS r0,r0,#6
0x0800200C 0180 LSLS r0,r0,#6
0x0800200E 0100 LSLS r0,r0,#4
0x08000002 2000 MOVS r0,#0x00
0x08000004 1905 ADDS r5,r0,r4
0x08000006 0800 LSRS r0,r0,#0
0x08000008 1909 ADDS r1,r1,r4
0x0800000A 0800 LSRS r0,r0,#0
0x0800000C 190B ADDS r3,r1,r4
0x0800000E 0800 LSRS r0,r0,#0
0x08000010 190D ADDS r5,r1,r4
0x08000012 0800 LSRS r0,r0,#0
0x08000014 190F ADDS r7,r1,r4
0x08000016 0800 LSRS r0,r0,#0
0x08000018 1911 ADDS r1,r2,r4
0x0800001A 0800 LSRS r0,r0,#0
0x0800001C 0000 MOVS r0,r0
0x0800001E 0000 MOVS r0,r0
0x08000020 0000 MOVS r0,r0
0x08000022 0000 MOVS r0,r0
0x08000024 0000 MOVS r0,r0
0x08000026 0000 MOVS r0,r0
0x08000028 0000 MOVS r0,r0
0x0800002A 0000 MOVS r0,r0
0x0800002C 1913 ADDS r3,r2,r4
0x0800002E 0800 LSRS r0,r0,#0
0x08000030 1915 ADDS r5,r2,r4
0x08000032 0800 LSRS r0,r0,#0
0x08000034 0000 MOVS r0,r0
0x08000036 0000 MOVS r0,r0
0x08000038 1917 ADDS r7,r2,r4
0x0800003A 0800 LSRS r0,r0,#0
0x0800003C 0101 LSLS r1,r0,#4
0x0800003E 0800 LSRS r0,r0,#0
0x08000040 191B ADDS r3,r3,r4
0x08000042 0800 LSRS r0,r0,#0
0x08000044 191B ADDS r3,r3,r4
0x08000046 0800 LSRS r0,r0,#0
0x08000048 191B ADDS r3,r3,r4
0x0800004A 0800 LSRS r0,r0,#0
0x0800004C 191B ADDS r3,r3,r4
0x0800004E 0800 LSRS r0,r0,#0
0x08000050 191B ADDS r3,r3,r4
0x08000052 0800 LSRS r0,r0,#0
0x08000054 191B ADDS r3,r3,r4
0x08000056 0800 LSRS r0,r0,#0
0x08000058 191B ADDS r3,r3,r4
0x0800005A 0800 LSRS r0,r0,#0
0x0800005C 191B ADDS r3,r3,r4
0x0800005E 0800 LSRS r0,r0,#0
0x08000060 191B ADDS r3,r3,r4
0x08000062 0800 LSRS r0,r0,#0
0x08000064 191B ADDS r3,r3,r4
0x08000066 0800 LSRS r0,r0,#0
0x08000068 191B ADDS r3,r3,r4
0x0800006A 0800 LSRS r0,r0,#0
0x0800006C 191B ADDS r3,r3,r4
0x0800006E 0800 LSRS r0,r0,#0
0x08000070 191B ADDS r3,r3,r4
0x08000072 0800 LSRS r0,r0,#0
0x08000074 191B ADDS r3,r3,r4
0x08000076 0800 LSRS r0,r0,#0
0x08000078 191B ADDS r3,r3,r4
0x0800007A 0800 LSRS r0,r0,#0
0x0800007C 191B ADDS r3,r3,r4
0x0800007E 0800 LSRS r0,r0,#0
0x08000080 191B ADDS r3,r3,r4
0x08000082 0800 LSRS r0,r0,#0
0x08000084 191B ADDS r3,r3,r4
0x08000086 0800 LSRS r0,r0,#0
0x08000088 191B ADDS r3,r3,r4
0x0800008A 0800 LSRS r0,r0,#0
0x0800008C 191B ADDS r3,r3,r4
0x0800008E 0800 LSRS r0,r0,#0
0x08000090 191B ADDS r3,r3,r4
0x08000092 0800 LSRS r0,r0,#0
0x08000094 191B ADDS r3,r3,r4
0x08000096 0800 LSRS r0,r0,#0
0x08000098 191B ADDS r3,r3,r4
0x0800009A 0800 LSRS r0,r0,#0
0x0800009C 191B ADDS r3,r3,r4
0x0800009E 0800 LSRS r0,r0,#0
0x080000A0 191B ADDS r3,r3,r4
0x080000A2 0800 LSRS r0,r0,#0
0x080000A4 191B ADDS r3,r3,r4
0x080000A6 0800 LSRS r0,r0,#0
0x080000A8 191B ADDS r3,r3,r4
0x080000AA 0800 LSRS r0,r0,#0
0x080000AC 191B ADDS r3,r3,r4
0x080000AE 0800 LSRS r0,r0,#0
0x080000B0 191B ADDS r3,r3,r4
0x080000B2 0800 LSRS r0,r0,#0
0x080000B4 191B ADDS r3,r3,r4
0x080000B6 0800 LSRS r0,r0,#0
0x080000B8 191B ADDS r3,r3,r4
0x080000BA 0800 LSRS r0,r0,#0
0x080000BC 191B ADDS r3,r3,r4
0x080000BE 0800 LSRS r0,r0,#0
0x080000C0 191B ADDS r3,r3,r4
0x080000C2 0800 LSRS r0,r0,#0
0x080000C4 191B ADDS r3,r3,r4
0x080000C6 0800 LSRS r0,r0,#0
0x080000C8 191B ADDS r3,r3,r4
0x080000CA 0800 LSRS r0,r0,#0
0x080000CC 191B ADDS r3,r3,r4
0x080000CE 0800 LSRS r0,r0,#0
0x080000D0 191B ADDS r3,r3,r4
0x080000D2 0800 LSRS r0,r0,#0
0x080000D4 191B ADDS r3,r3,r4
0x080000D6 0800 LSRS r0,r0,#0
0x080000D8 191B ADDS r3,r3,r4
0x080000DA 0800 LSRS r0,r0,#0
0x080000DC 191B ADDS r3,r3,r4
0x080000DE 0800 LSRS r0,r0,#0
0x080000E0 191B ADDS r3,r3,r4
0x080000E2 0800 LSRS r0,r0,#0
0x080000E4 191B ADDS r3,r3,r4
0x080000E6 0800 LSRS r0,r0,#0
0x080000E8 191B ADDS r3,r3,r4
0x080000EA 0800 LSRS r0,r0,#0
_main_stk:
0x080000EC F8DFD00C LDR.W sp,[pc,#12] ; @0x080000FC
_main_scatterload:
0x080000F0 F001FC62 BL.W __scatterload_rt2 (0x080019B8)
_main_init:
0x080000F4 4800 LDR r0,[pc,#0] ; @0x080000F8;r0=0x08000119
0x080000F6 4700 BX r0
0x080000F8 0119 LSLS r1,r3,#4
0x080000FA 0800 LSRS r0,r0,#0
0x080000FC 0210 LSLS r0,r2,#8
0x080000FE 2000 MOVS r0,#0x00
31: TimeTick++;
0x08000100 488D LDR r0,[pc,#564] ; @0x08000338
0x08000102 6801 LDR r1,[r0,#0x00]
0x08000104 1C49 ADDS r1,r1,#1
0x08000106 6001 STR r1,[r0,#0x00]
32: }
33:
34: void Delay (unsigned long tick) {
35: unsigned long timetick;
36:
0x08000108 4770 BX lr
37: timetick = TimeTick;
0x0800010A 498B LDR r1,[pc,#556] ; @0x08000338
0x0800010C 680A LDR r2,[r1,#0x00]
38: while ((TimeTick - timetick) < tick);
0x0800010E 680B LDR r3,[r1,#0x00]
0x08000110 1A9B SUBS r3,r3,r2
0x08000112 4283 CMP r3,r0
0x08000114 D3FB BCC 0x0800010E
39: }
40:
41:
0x08000116 4770 BX lr
42: int main (void) {
43: unsigned long cnt;
44: unsigned char buf[6];
45:
0x08000118 B51C PUSH {r2-r4,lr}
46: SetupClock();
0x0800011A F000F945 BL.W SetupClock (0x080003A8)
47: SetupLED ();
0x0800011E F000F983 BL.W SetupLED (0x08000428)
48: SetupKBD ();
49:
0x08000122 F000F994 BL.W SetupKBD (0x0800044E)
50: SPI_FLASH_Init(); /* Initialize the SPI FLASH driver */
0x08000126 F000F9D5 BL.W SPI_FLASH_Init (0x080004D4)
51: LCD_Init(); /* Initialize the LCD */
0x0800012A F000FF5A BL.W LCD_Init (0x08000FE2)
52: LCD_Clear(White); /* Clear the LCD */
53:
54: /* Display ST Logo (if exists on SPI Flash) */
0x0800012E F64F74FF MOVW r4,#0xFFFF
0x08000132 4620 MOV r0,r4
0x08000134 F001F837 BL.W LCD_Clear (0x080011A6)
55: SPI_FLASH_BufferRead(buf, 0x0064FD00, 6);
0x08000138 4D80 LDR r5,[pc,#512] ; @0x0800033C
0x0800013A 2206 MOVS r2,#0x06
0x0800013C 4629 MOV r1,r5
0x0800013E 4668 MOV r0,sp
0x08000140 F000FB06 BL.W SPI_FLASH_BufferRead (0x08000750)
56: if (strncmp((const char *)buf, "BM\x42\x58\x02\x00", 6) == 0) {
0x08000144 2206 MOVS r2,#0x06
0x08000146 A17E ADR r1,{pc}+2 ; @0x08000340
0x08000148 4668 MOV r0,sp
0x0800014A F001FC26 BL.W strncmp (0x0800199A)
57: LCD_SetDisplayWindow(239, 319, 240, 320);
0x0800014E F44F77A0 MOV r7,#0x140
0x08000152 1E7E SUBS r6,r7,#1
0x08000154 B958 CBNZ r0,0x0800016E
0x08000156 463B MOV r3,r7
0x08000158 22F0 MOVS r2,#0xF0
0x0800015A 4631 MOV r1,r6
0x0800015C 20EF MOVS r0,#0xEF
0x0800015E F001F846 BL.W LCD_SetDisplayWindow (0x080011EE)
58: LCD_DrawBMP(0x0064FD00);
0x08000162 4628 MOV r0,r5
0x08000164 F001FA91 BL.W LCD_DrawBMP (0x0800168A)
59: Delay(100);
60: }
61:
62: /* Display STM32 Slide (if exists on SPI Flash) */
0x08000168 2064 MOVS r0,#0x64
0x0800016A F7FFFFCE BL.W Delay (0x0800010A)
63: SPI_FLASH_BufferRead(buf, 0x00414400, 6);
0x0800016E 4D76 LDR r5,[pc,#472] ; @0x08000348
0x08000170 2206 MOVS r2,#0x06
0x08000172 4629 MOV r1,r5
0x08000174 4668 MOV r0,sp
0x08000176 F000FAEB BL.W SPI_FLASH_BufferRead (0x08000750)
64: if (strncmp((const char *)buf, "BM\x42\x58\x02\x00", 6) == 0) {
0x0800017A 2206 MOVS r2,#0x06
0x0800017C A170 ADR r1,{pc}+4 ; @0x08000340
0x0800017E 4668 MOV r0,sp
0x08000180 F001FC0B BL.W strncmp (0x0800199A)
0x08000184 B958 CBNZ r0,0x0800019E
65: LCD_SetDisplayWindow(239, 319, 240, 320);
0x08000186 463B MOV r3,r7
0x08000188 22F0 MOVS r2,#0xF0
0x0800018A 4631 MOV r1,r6
0x0800018C 20EF MOVS r0,#0xEF
0x0800018E F001F82E BL.W LCD_SetDisplayWindow (0x080011EE)
66: LCD_DrawBMP(0x00414400);
0x08000192 4628 MOV r0,r5
0x08000194 F001FA79 BL.W LCD_DrawBMP (0x0800168A)
67: Delay(200);
68: }
69:
70: /* Display Keil Logo */
0x08000198 20C8 MOVS r0,#0xC8
0x0800019A F7FFFFB6 BL.W Delay (0x0800010A)
71: LCD_Clear(White); /* Clear the LCD */
0x0800019E F64F74FF MOVW r4,#0xFFFF
0x080001A2 4620 MOV r0,r4
0x080001A4 F000FFFF BL.W LCD_Clear (0x080011A6)
72: LCD_SetBackColor(White); /* Set the Back Color */
0x080001A8 4620 MOV r0,r4
0x080001AA F000FF30 BL.W LCD_SetBackColor (0x0800100E)
73: LCD_SetTextColor(0x0238); /* Set the Text Color */
74:
0x080001AE F44F700E MOV r0,#0x238
0x080001B2 F000FF29 BL.W LCD_SetTextColor (0x08001008)
75: LCD_SetDisplayWindow(144, 240, 48, 160);
0x080001B6 23A0 MOVS r3,#0xA0
0x080001B8 2230 MOVS r2,#0x30
0x080001BA 21F0 MOVS r1,#0xF0
0x080001BC 2090 MOVS r0,#0x90
0x080001BE F001F816 BL.W LCD_SetDisplayWindow (0x080011EE)
76: LCD_DrawMonoBMP((u32)Keil_Logo);
0x080001C2 4862 LDR r0,[pc,#392] ; @0x0800034C
0x080001C4 F001FA27 BL.W LCD_DrawMonoBMP (0x08001616)
77: Delay(200);
78:
0x080001C8 20C8 MOVS r0,#0xC8
0x080001CA F7FFFF9E BL.W Delay (0x0800010A)
79: LCD_SetDisplayWindow(239, 319, 240, 320);
0x080001CE 463B MOV r3,r7
0x080001D0 22F0 MOVS r2,#0xF0
0x080001D2 4631 MOV r1,r6
0x080001D4 20EF MOVS r0,#0xEF
0x080001D6 F001F80A BL.W LCD_SetDisplayWindow (0x080011EE)
80: LCD_Clear(White); /* Clear the LCD */
81:
0x080001DA 4620 MOV r0,r4
0x080001DC F000FFE3 BL.W LCD_Clear (0x080011A6)
82: LCD_SetBackColor(Blue); /* Set the Back Color */
0x080001E0 201F MOVS r0,#0x1F
0x080001E2 F000FF14 BL.W LCD_SetBackColor (0x0800100E)
83: LCD_SetTextColor(White); /* Set the Text Color */
0x080001E6 4620 MOV r0,r4
0x080001E8 F000FF0E BL.W LCD_SetTextColor (0x08001008)
84: LCD_DisplayStringLine(Line0, "STM32 Demonstration ");
0x080001EC A158 ADR r1,{pc}+4 ; @0x08000350
0x080001EE 2000 MOVS r0,#0x00
0x080001F0 F000FFC0 BL.W LCD_DisplayStringLine (0x08001174)
85: LCD_SetBackColor(White); /* Set the Back Color */
0x080001F4 4620 MOV r0,r4
0x080001F6 F000FF0A BL.W LCD_SetBackColor (0x0800100E)
86: LCD_SetTextColor(Blue); /* Set the Text Color */
0x080001FA 201F MOVS r0,#0x1F
0x080001FC F000FF04 BL.W LCD_SetTextColor (0x08001008)
87: LCD_DisplayStringLine(Line2, "Designed with RV-MDK");
88:
0x08000200 A159 ADR r1,{pc}+4 ; @0x08000368
0x08000202 2030 MOVS r0,#0x30
0x08000204 F000FFB6 BL.W LCD_DisplayStringLine (0x08001174)
89: LCD_SetBackColor(White); /* Set the Back Color */
0x08000208 4620 MOV r0,r4
0x0800020A F000FF00 BL.W LCD_SetBackColor (0x0800100E)
90: LCD_SetTextColor(Green); /* Set the Text Color */
91:
0x0800020E F44F60FC MOV r0,#0x7E0
0x08000212 F000FEF9 BL.W LCD_SetTextColor (0x08001008)
92: LCD_DisplayStringLine(Line6, " Keyboard Test: ");
93:
94: cnt = 0;
95:
96: for (;;) {
97:
0x08000216 A15A ADR r1,{pc}+2 ; @0x08000380
0x08000218 2090 MOVS r0,#0x90
0x0800021A F000FFAB BL.W LCD_DisplayStringLine (0x08001174)
98: LED_Off(0x0F); /* Turn Off all LEDs */
99: LED_On (1 << (cnt/40)); /* Turn On one LED */
100:
101: if ((cnt & 0x07) == 0) {
102: LCD_SetBackColor(Cyan);
103: LCD_DisplayChar(Line4, 319-2*cnt, ' ');
104: LCD_SetBackColor(White);
105: }
106: if (++cnt == 160) {
107: cnt = 0;
108: LCD_ClearLine(Line4);
109: }
110:
111: LCD_SetTextColor(Red);
112:
113: /* Read "Left" Key */
0x0800021E 4D5E LDR r5,[pc,#376] ; @0x08000398
114: if(!GPIO_ReadInputDataBit(GPIOE, GPIO_Pin_1)) {
115: LCD_DisplayChar(Line8, 319-136, 0x80+9);
116: } else {
117: LCD_DisplayChar(Line8, 319-136, 0x80+8);
118: }
119:
120: /* Read "Right" Key */
121: if(!GPIO_ReadInputDataBit(GPIOE, GPIO_Pin_0)) {
122: LCD_DisplayChar(Line8, 319-168, 0x80+11);
123: } else {
124: LCD_DisplayChar(Line8, 319-168, 0x80+10);
125: }
126:
127: /* Read "Up" Key */
0x08000220 F8DFB178 LDR.W r11,[pc,#376] ; @0x0800039C
128: if(!GPIO_ReadInputDataBit(GPIOD, GPIO_Pin_8)) {
129: LCD_DisplayChar(Line7, 319-152, 0x80+5);
130: } else {
0x08000224 F8DF8178 LDR.W r8,[pc,#376] ; @0x080003A0
94: cnt = 0;
95:
96: for (;;) {
97:
98: LED_Off(0x0F); /* Turn Off all LEDs */
0x08000228 2400 MOVS r4,#0x00
99: LED_On (1 << (cnt/40)); /* Turn On one LED */
100:
0x0800022A F04F0928 MOV r9,#0x28
0x0800022E F04F0A01 MOV r10,#0x01
98: LED_Off(0x0F); /* Turn Off all LEDs */
99: LED_On (1 << (cnt/40)); /* Turn On one LED */
100:
0x08000232 68E8 LDR r0,[r5,#0x0C]
0x08000234 F4207070 BIC r0,r0,#0x3C0
0x08000238 60E8 STR r0,[r5,#0x0C]
0x0800023A FBB4F1F9 UDIV r1,r4,r9
0x0800023E FA0AF001 LSL r0,r10,r1
0x08000242 68E9 LDR r1,[r5,#0x0C]
0x08000244 EA411080 ORR r0,r1,r0,LSL #6
0x08000248 60E8 STR r0,[r5,#0x0C]
101: if ((cnt & 0x07) == 0) {
0x0800024A 0760 LSLS r0,r4,#29
0x0800024C D10F BNE 0x0800026E
102: LCD_SetBackColor(Cyan);
0x0800024E F64770FF MOVW r0,#0x7FFF
0x08000252 F000FEDC BL.W LCD_SetBackColor (0x0800100E)
103: LCD_DisplayChar(Line4, 319-2*cnt, ' ');
0x08000256 4260 RSBS r0,r4,#0
0x08000258 EB060040 ADD r0,r6,r0,LSL #1
0x0800025C B281 UXTH r1,r0
0x0800025E 2220 MOVS r2,#0x20
0x08000260 2060 MOVS r0,#0x60
0x08000262 F000FF7F BL.W LCD_DisplayChar (0x08001164)
104: LCD_SetBackColor(White);
105: }
0x08000266 F64F70FF MOVW r0,#0xFFFF
0x0800026A F000FED0 BL.W LCD_SetBackColor (0x0800100E)
106: if (++cnt == 160) {
0x0800026E 1C64 ADDS r4,r4,#1
0x08000270 2CA0 CMP r4,#0xA0
0x08000272 D103 BNE 0x0800027C
107: cnt = 0;
0x08000274 2400 MOVS r4,#0x00
108: LCD_ClearLine(Line4);
109: }
110:
0x08000276 2060 MOVS r0,#0x60
0x08000278 F000FF93 BL.W LCD_ClearLine (0x080011A2)
111: LCD_SetTextColor(Red);
112:
113: /* Read "Left" Key */
0x0800027C F44F4078 MOV r0,#0xF800
0x08000280 F000FEC2 BL.W LCD_SetTextColor (0x08001008)
114: if(!GPIO_ReadInputDataBit(GPIOE, GPIO_Pin_1)) {
115: LCD_DisplayChar(Line8, 319-136, 0x80+9);
116: } else {
0x08000284 2102 MOVS r1,#0x02
0x08000286 465F MOV r7,r11
0x08000288 4658 MOV r0,r11
0x0800028A F001FC23 BL.W GPIO_ReadInputDataBit (0x08001AD4)
0x0800028E B3F0 CBZ r0,0x0800030E
117: LCD_DisplayChar(Line8, 319-136, 0x80+8);
118: }
119:
120: /* Read "Right" Key */
0x08000290 2288 MOVS r2,#0x88
0x08000292 21B7 MOVS r1,#0xB7
0x08000294 20C0 MOVS r0,#0xC0
0x08000296 F000FF65 BL.W LCD_DisplayChar (0x08001164)
121: if(!GPIO_ReadInputDataBit(GPIOE, GPIO_Pin_0)) {
122: LCD_DisplayChar(Line8, 319-168, 0x80+11);
123: } else {
0x0800029A 2101 MOVS r1,#0x01
0x0800029C 4638 MOV r0,r7
0x0800029E F001FC19 BL.W GPIO_ReadInputDataBit (0x08001AD4)
0x080002A2 B3A8 CBZ r0,0x08000310
124: LCD_DisplayChar(Line8, 319-168, 0x80+10);
125: }
126:
127: /* Read "Up" Key */
0x080002A4 228A MOVS r2,#0x8A
0x080002A6 2197 MOVS r1,#0x97
0x080002A8 20C0 MOVS r0,#0xC0
0x080002AA F000FF5B BL.W LCD_DisplayChar (0x08001164)
128: if(!GPIO_ReadInputDataBit(GPIOD, GPIO_Pin_8)) {
129: LCD_DisplayChar(Line7, 319-152, 0x80+5);
130: } else {
0x080002AE F44F7180 MOV r1,#0x100
0x080002B2 4647 MOV r7,r8
0x080002B4 4640 MOV r0,r8
0x080002B6 F001FC0D BL.W GPIO_ReadInputDataBit (0x08001AD4)
0x080002BA B350 CBZ r0,0x08000312
131: LCD_DisplayChar(Line7, 319-152, 0x80+4);
132: }
133:
134: /* Read "Down" Key */
0x080002BC 2284 MOVS r2,#0x84
0x080002BE 21A7 MOVS r1,#0xA7
0x080002C0 20A8 MOVS r0,#0xA8
0x080002C2 F000FF4F BL.W LCD_DisplayChar (0x08001164)
135: if(!GPIO_ReadInputDataBit(GPIOD, GPIO_Pin_14)) {
136: LCD_DisplayChar(Line9, 319-152, 0x80+7);
137: } else {
0x080002C6 F44F4180 MOV r1,#0x4000
0x080002CA 4638 MOV r0,r7
0x080002CC F001FC02 BL.W GPIO_ReadInputDataBit (0x08001AD4)
0x080002D0 B360 CBZ r0,0x0800032C
138: LCD_DisplayChar(Line9, 319-152, 0x80+6);
139: }
140:
141: /* Read "Sel" Key */
0x080002D2 2286 MOVS r2,#0x86
0x080002D4 21A7 MOVS r1,#0xA7
0x080002D6 20D8 MOVS r0,#0xD8
0x080002D8 F000FF44 BL.W LCD_DisplayChar (0x08001164)
142: if(!GPIO_ReadInputDataBit(GPIOD, GPIO_Pin_12)) {
143: LCD_DisplayChar(Line8, 319-152, 0x80+1);
144: } else {
0x080002DC F44F5180 MOV r1,#0x1000
0x080002E0 4638 MOV r0,r7
0x080002E2 F001FBF7 BL.W GPIO_ReadInputDataBit (0x08001AD4)
0x080002E6 B318 CBZ r0,0x08000330
145: LCD_DisplayChar(Line8, 319-152, 0x80+0);
146: }
147:
0x080002E8 2280 MOVS r2,#0x80
0x080002EA 21A7 MOVS r1,#0xA7
0x080002EC 20C0 MOVS r0,#0xC0
0x080002EE F000FF39 BL.W LCD_DisplayChar (0x08001164)
148: LCD_SetTextColor(Magenta);
149:
150: /* Read "Key" Key */
0x080002F2 F64F001F MOVW r0,#0xF81F
0x080002F6 F000FE87 BL.W LCD_SetTextColor (0x08001008)
151: if(!GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_9)) {
152: LCD_DisplayChar(Line8, 319-206, 0x80+3);
153: } else {
0x080002FA F44F7100 MOV r1,#0x200
0x080002FE 4829 LDR r0,[pc,#164] ; @0x080003A4
0x08000300 F001FBE8 BL.W GPIO_ReadInputDataBit (0x08001AD4)
0x08000304 B1B0 CBZ r0,0x08000334
154: LCD_DisplayChar(Line8, 319-206, 0x80+2);
155: }
156:
0x08000306 2282 MOVS r2,#0x82
0x08000308 2171 MOVS r1,#0x71
0x0800030A 20C0 MOVS r0,#0xC0
0x0800030C E002 B 0x08000314
0x0800030E E007 B 0x08000320
0x08000310 E008 B 0x08000324
0x08000312 E009 B 0x08000328
0x08000314 F000FF26 BL.W LCD_DisplayChar (0x08001164)
157: Delay(5);
0x08000318 2005 MOVS r0,#0x05
0x0800031A F7FFFEF6 BL.W Delay (0x0800010A)
0x0800031E E788 B 0x08000232
115: LCD_DisplayChar(Line8, 319-136, 0x80+9);
116: } else {
117: LCD_DisplayChar(Line8, 319-136, 0x80+8);
118: }
119:
120: /* Read "Right" Key */
121: if(!GPIO_ReadInputDataBit(GPIOE, GPIO_Pin_0)) {
0x08000320 2289 MOVS r2,#0x89
0x08000322 E7B6 B 0x08000292
122: LCD_DisplayChar(Line8, 319-168, 0x80+11);
123: } else {
124: LCD_DisplayChar(Line8, 319-168, 0x80+10);
125: }
126:
127: /* Read "Up" Key */
128: if(!GPIO_ReadInputDataBit(GPIOD, GPIO_Pin_8)) {
0x08000324 228B MOVS r2,#0x8B
0x08000326 E7BE B 0x080002A6
129: LCD_DisplayChar(Line7, 319-152, 0x80+5);
130: } else {
131: LCD_DisplayChar(Line7, 319-152, 0x80+4);
132: }
133:
134: /* Read "Down" Key */
135: if(!GPIO_ReadInputDataBit(GPIOD, GPIO_Pin_14)) {
0x08000328 2285 MOVS r2,#0x85
0x0800032A E7C8 B 0x080002BE
136: LCD_DisplayChar(Line9, 319-152, 0x80+7);
137: } else {
138: LCD_DisplayChar(Line9, 319-152, 0x80+6);
139: }
140:
141: /* Read "Sel" Key */
142: if(!GPIO_ReadInputDataBit(GPIOD, GPIO_Pin_12)) {
0x0800032C 2287 MOVS r2,#0x87
0x0800032E E7D1 B 0x080002D4
143: LCD_DisplayChar(Line8, 319-152, 0x80+1);
144: } else {
145: LCD_DisplayChar(Line8, 319-152, 0x80+0);
146: }
147:
148: LCD_SetTextColor(Magenta);
149:
150: /* Read "Key" Key */
151: if(!GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_9)) {
0x08000330 2281 MOVS r2,#0x81
0x08000332 E7DA B 0x080002EA
152: LCD_DisplayChar(Line8, 319-206, 0x80+3);
0x08000334 2283 MOVS r2,#0x83
0x08000336 E7E7 B 0x08000308
0x08000338 0000 MOVS r0,r0
0x0800033A 2000 MOVS r0,#0x00
0x0800033C FD000064 DCD 0xFD000064 ; ? Undefined
0x08000340 4D42 LDR r5,[pc,#264] ; @0x0800044C
0x08000342 5842 LDR r2,[r0,r1]
0x08000344 0002 MOVS r2,r0
0x08000346 0000 MOVS r0,r0
0x08000348 4400 ADD r0,r0,r0
0x0800034A 0041 LSLS r1,r0,#1
0x0800034C 31E8 ADDS r1,r1,#0xE8
0x0800034E 0800 LSRS r0,r0,#0
0x08000350 5453 STRB r3,[r2,r1]
0x08000352 334D ADDS r3,r3,#0x4D
0x08000354 2032 MOVS r0,#0x32
0x08000356 6544 STR r4,[r0,#0x54]
0x08000358 6F6D LDR r5,[r5,#0x74]
0x0800035A 736E STRB r6,[r5,#0x0D]
0x0800035C 7274 STRB r4,[r6,#0x09]
0x0800035E 7461 STRB r1,[r4,#0x11]
0x08000360 6F69 LDR r1,[r5,#0x74]
0x08000362 206E MOVS r0,#0x6E
0x08000364 0000 MOVS r0,r0
0x08000366 0000 MOVS r0,r0
0x08000368 6544 STR r4,[r0,#0x54]
0x0800036A 6973 LDR r3,[r6,#0x14]
0x0800036C 6E67 LDR r7,[r4,#0x64]
0x0800036E 6465 STR r5,[r4,#0x44]
0x08000370 7720 STRB r0,[r4,#0x1C]
0x08000372 7469 STRB r1,[r5,#0x11]
0x08000374 2068 MOVS r0,#0x68
0x08000376 5652 LDRSB r2,[r2,r1]
0x08000378 4D2D LDR r5,[pc,#180] ; @0x08000430
0x0800037A 4B44 LDR r3,[pc,#272] ; @0x0800048C
0x0800037C 0000 MOVS r0,r0
0x0800037E 0000 MOVS r0,r0
0x08000380 2020 MOVS r0,#0x20
0x08000382 4B20 LDR r3,[pc,#128] ; @0x08000404
0x08000384 7965 LDRB r5,[r4,#0x05]
0x08000386 6F62 LDR r2,[r4,#0x74]
0x08000388 7261 STRB r1,[r4,#0x09]
0x0800038A 2064 MOVS r0,#0x64
0x0800038C 6554 STR r4,[r2,#0x54]
0x0800038E 7473 STRB r3,[r6,#0x11]
0x08000390 203A MOVS r0,#0x3A
0x08000392 2020 MOVS r0,#0x20
0x08000394 0000 MOVS r0,r0
0x08000396 0000 MOVS r0,r0
0x08000398 1000 ASRS r0,r0,#0
0x0800039A 4001 ANDS r1,r1,r0
0x0800039C 1800 ADDS r0,r0,r0
0x0800039E 4001 ANDS r1,r1,r0
0x080003A0 1400 ASRS r0,r0,#16
0x080003A2 4001 ANDS r1,r1,r0
0x080003A4 0C00 LSRS r0,r0,#16
0x080003A6 4001 ANDS r1,r1,r0
15: {
0x080003A8 B510 PUSH {r4,lr}
16: RCC_DeInit (); /* RCC system reset(for debug purpose)*/
0x080003AA F001FBDD BL.W RCC_DeInit (0x08001B68)
17: RCC_HSEConfig (RCC_HSE_ON); /* Enable HSE */
18:
19: /* Wait till HSE is ready */
0x080003AE F44F3480 MOV r4,#0x10000
0x080003B2 4620 MOV r0,r4
0x080003B4 F001FC20 BL.W RCC_HSEConfig (0x08001BF8)
20: while (RCC_GetFlagStatus(RCC_FLAG_HSERDY) == RESET);
21:
0x080003B8 2031 MOVS r0,#0x31
0x080003BA F001FBF3 BL.W RCC_GetFlagStatus (0x08001BA4)
0x080003BE 2800 CMP r0,#0x00
0x080003C0 D0FA BEQ 0x080003B8
22: RCC_HCLKConfig (RCC_SYSCLK_Div1); /* HCLK = SYSCLK */
0x080003C2 2000 MOVS r0,#0x00
0x080003C4 F001FC0E BL.W RCC_HCLKConfig (0x08001BE4)
23: RCC_PCLK2Config (RCC_HCLK_Div1); /* PCLK2 = HCLK */
0x080003C8 2000 MOVS r0,#0x00
0x080003CA F001FC39 BL.W RCC_PCLK2Config (0x08001C40)
24: RCC_PCLK1Config (RCC_HCLK_Div2); /* PCLK1 = HCLK/2 */
0x080003CE F44F6080 MOV r0,#0x400
0x080003D2 F001FC2B BL.W RCC_PCLK1Config (0x08001C2C)
25: RCC_ADCCLKConfig (RCC_PCLK2_Div6); /* ADCCLK = PCLK2/6 */
26:
0x080003D6 F44F4000 MOV r0,#0x8000
0x080003DA F001FB8B BL.W RCC_ADCCLKConfig (0x08001AF4)
27: FLASH_SetLatency(FLASH_Latency_2); /* Flash 2 wait state */
0x080003DE 2002 MOVS r0,#0x02
0x080003E0 F001FB08 BL.W FLASH_SetLatency (0x080019F4)
28: FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);
29:
30: /* PLLCLK = 8MHz * 9 = 72 MHz */
0x080003E4 2010 MOVS r0,#0x10
0x080003E6 F001FAF9 BL.W FLASH_PrefetchBufferCmd (0x080019DC)
31: RCC_PLLConfig (RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);
32:
0x080003EA F44F11E0 MOV r1,#0x1C0000
0x080003EE 4620 MOV r0,r4
0x080003F0 F001FC36 BL.W RCC_PLLConfig (0x08001C60)
33: RCC_PLLCmd (ENABLE); /* Enable PLL */
34:
35: /* Wait till PLL is ready */
0x080003F4 2001 MOVS r0,#0x01
0x080003F6 F001FC2D BL.W RCC_PLLCmd (0x08001C54)
36: while (RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET);
37:
38: /* Select PLL as system clock source */
0x080003FA 2039 MOVS r0,#0x39
0x080003FC F001FBD2 BL.W RCC_GetFlagStatus (0x08001BA4)
0x08000400 2800 CMP r0,#0x00
0x08000402 D0FA BEQ 0x080003FA
39: RCC_SYSCLKConfig (RCC_SYSCLKSource_PLLCLK);
40:
41: /* Wait till PLL is used as system clock source */
0x08000404 2002 MOVS r0,#0x02
0x08000406 F001FC35 BL.W RCC_SYSCLKConfig (0x08001C74)
42: while (RCC_GetSYSCLKSource() != 0x08);
43:
44: /* SysTick event each 10 ms with input clock equal to 9MHz (HCLK/8) */
0x0800040A F001FBE3 BL.W RCC_GetSYSCLKSource (0x08001BD4)
0x0800040E 2808 CMP r0,#0x08
0x08000410 D1FB BNE 0x0800040A
45: SysTick_SetReload(90000);
46:
47: /* Enable the SysTick Counter */
0x08000412 482A LDR r0,[pc,#168] ; @0x080004BC
0x08000414 F001FCB5 BL.W SysTick_SetReload (0x08001D82)
48: SysTick_CounterCmd(SysTick_Counter_Enable);
49:
50: /* Enable SysTick interrupt */
0x08000418 2001 MOVS r0,#0x01
0x0800041A F001FC94 BL.W SysTick_CounterCmd (0x08001D46)
51: SysTick_ITConfig(ENABLE);
52: }
53:
54:
55: GPIO_InitTypeDef GPIO_InitStructure;
56:
0x0800041E E8BD4010 POP {r4,lr}
0x08000422 2001 MOVS r0,#0x01
0x08000424 F001BCA1 B.W SysTick_ITConfig (0x08001D6A)
57: void SetupLED (void) {
58:
59: /* Enable GPIOC clock */
0x08000428 B510 PUSH {r4,lr}
60: RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
61:
62: /* Configure PC6..PC9 as outputs push-pull, max speed 50 MHz */
0x0800042A 2101 MOVS r1,#0x01
0x0800042C 2010 MOVS r0,#0x10
0x0800042E F001FB83 BL.W RCC_APB2PeriphClockCmd (0x08001B38)
63: GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7 |
64: GPIO_Pin_8 | GPIO_Pin_9;
0x08000432 4823 LDR r0,[pc,#140] ; @0x080004C0
0x08000434 F44F7170 MOV r1,#0x3C0
0x08000438 8001 STRH r1,[r0,#0x00]
65: GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
0x0800043A 2110 MOVS r1,#0x10
0x0800043C 70C1 STRB r1,[r0,#0x03]
66: GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
0x0800043E 2103 MOVS r1,#0x03
0x08000440 7081 STRB r1,[r0,#0x02]
67: GPIO_Init(GPIOC, &GPIO_InitStructure);
68: }
69:
0x08000442 4601 MOV r1,r0
0x08000444 E8BD4010 POP {r4,lr}
0x08000448 481E LDR r0,[pc,#120] ; @0x080004C4
0x0800044A F001BAF3 B.W GPIO_Init (0x08001A34)
70: void SetupKBD (void) {
71:
72: /* Enable GPIOB, GPIOD, and GPIOE clocks */
0x0800044E B570 PUSH {r4-r6,lr}
73: RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB |
74: RCC_APB2Periph_GPIOD |
75: RCC_APB2Periph_GPIOE, ENABLE);
76:
77: /* Configure PD.08, PD.12 and PD.14 as input floating */
0x08000450 2101 MOVS r1,#0x01
0x08000452 2068 MOVS r0,#0x68
0x08000454 F001FB70 BL.W RCC_APB2PeriphClockCmd (0x08001B38)
78: GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_12 | GPIO_Pin_14;
0x08000458 4C19 LDR r4,[pc,#100] ; @0x080004C0
0x0800045A F44F40A2 MOV r0,#0x5100
79: GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
0x0800045E 2504 MOVS r5,#0x04
0x08000460 8020 STRH r0,[r4,#0x00]
0x08000462 70E5 STRB r5,[r4,#0x03]
80: GPIO_Init(GPIOD, &GPIO_InitStructure);
81:
82: /* Configure PE.00 and PE.01 as input floating */
0x08000464 4621 MOV r1,r4
0x08000466 4818 LDR r0,[pc,#96] ; @0x080004C8
0x08000468 F001FAE4 BL.W GPIO_Init (0x08001A34)
83: GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1;
0x0800046C 2003 MOVS r0,#0x03
0x0800046E 8020 STRH r0,[r4,#0x00]
84: GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
0x08000470 70E5 STRB r5,[r4,#0x03]
85: GPIO_Init(GPIOE, &GPIO_InitStructure);
86:
87: /* Configure PB.09 as input floating */
0x08000472 4621 MOV r1,r4
0x08000474 4815 LDR r0,[pc,#84] ; @0x080004CC
0x08000476 F001FADD BL.W GPIO_Init (0x08001A34)
88: GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
0x0800047A 01E8 LSLS r0,r5,#7
0x0800047C 8020 STRH r0,[r4,#0x00]
89: GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
0x0800047E 70E5 STRB r5,[r4,#0x03]
90: GPIO_Init(GPIOB, &GPIO_InitStructure);
91:
92: /* RIGHT Button */
0x08000480 4621 MOV r1,r4
0x08000482 4813 LDR r0,[pc,#76] ; @0x080004D0
0x08000484 F001FAD6 BL.W GPIO_Init (0x08001A34)
93: GPIO_EXTILineConfig(GPIO_PortSourceGPIOE, GPIO_PinSource0);
94:
95: /* LEFT Button */
0x08000488 2100 MOVS r1,#0x00
0x0800048A 2004 MOVS r0,#0x04
0x0800048C F001FABE BL.W GPIO_EXTILineConfig (0x08001A0C)
96: GPIO_EXTILineConfig(GPIO_PortSourceGPIOE, GPIO_PinSource1);
97:
98: /* DOWN Button */
0x08000490 2101 MOVS r1,#0x01
0x08000492 2004 MOVS r0,#0x04
0x08000494 F001FABA BL.W GPIO_EXTILineConfig (0x08001A0C)
99: GPIO_EXTILineConfig(GPIO_PortSourceGPIOD, GPIO_PinSource14);
100:
101: /* UP Button */
0x08000498 210E MOVS r1,#0x0E
0x0800049A 2003 MOVS r0,#0x03
0x0800049C F001FAB6 BL.W GPIO_EXTILineConfig (0x08001A0C)
102: GPIO_EXTILineConfig(GPIO_PortSourceGPIOD, GPIO_PinSource8);
103:
104: /* SEL Button */
0x080004A0 2108 MOVS r1,#0x08
0x080004A2 2003 MOVS r0,#0x03
0x080004A4 F001FAB2 BL.W GPIO_EXTILineConfig (0x08001A0C)
105: GPIO_EXTILineConfig(GPIO_PortSourceGPIOD, GPIO_PinSource12);
106:
107: /* KEY Button */
0x080004A8 210C MOVS r1,#0x0C
0x080004AA 2003 MOVS r0,#0x03
0x080004AC F001FAAE BL.W GPIO_EXTILineConfig (0x08001A0C)
108: GPIO_EXTILineConfig(GPIO_PortSourceGPIOB, GPIO_PinSource9);
0x080004B0 E8BD4070 POP {r4-r6,lr}
0x080004B4 2109 MOVS r1,#0x09
0x080004B6 2001 MOVS r0,#0x01
0x080004B8 F001BAA8 B.W GPIO_EXTILineConfig (0x08001A0C)
0x080004BC 5F90 LDRSH r0,[r2,r6]
0x080004BE 0001 MOVS r1,r0
0x080004C0 0004 MOVS r4,r0
0x080004C2 2000 MOVS r0,#0x00
0x080004C4 1000 ASRS r0,r0,#0
0x080004C6 4001 ANDS r1,r1,r0
0x080004C8 1400 ASRS r0,r0,#16
0x080004CA 4001 ANDS r1,r1,r0
0x080004CC 1800 ADDS r0,r0,r0
0x080004CE 4001 ANDS r1,r1,r0
0x080004D0 0C00 LSRS r0,r0,#16
0x080004D2 4001 ANDS r1,r1,r0
55: {
56: SPI_InitTypeDef SPI_InitStructure;
57: GPIO_InitTypeDef GPIO_InitStructure;
58:
59: /* Enable SPI1 and GPIOA clocks */
0x080004D4 B530 PUSH {r4-r5,lr}
0x080004D6 B087 SUB sp,sp,#0x1C
60: RCC_APB2PeriphClockCmd(RCC_APB2Periph_SPI1 | RCC_APB2Periph_GPIOA, ENABLE);
61:
62: /* Configure SPI1 pins: NSS, SCK, MISO and MOSI */
0x080004D8 2101 MOVS r1,#0x01
0x080004DA F2410004 MOVW r0,#0x1004
0x080004DE F001FB2B BL.W RCC_APB2PeriphClockCmd (0x08001B38)
63: GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7;
0x080004E2 20E0 MOVS r0,#0xE0
0x080004E4 F8AD0014 STRH r0,[sp,#0x14]
64: GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
0x080004E8 2403 MOVS r4,#0x03
0x080004EA F88D4016 STRB r4,[sp,#0x16]
65: GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
0x080004EE 2018 MOVS r0,#0x18
66: GPIO_Init(GPIOA, &GPIO_InitStructure);
67:
68: /* Configure PA.4 as Output push-pull, used as Flash Chip select */
0x080004F0 4DD3 LDR r5,[pc,#844] ; @0x08000840
0x080004F2 F88D0017 STRB r0,[sp,#0x17]
0x080004F6 A905 ADD r1,sp,#0x14
0x080004F8 4628 MOV r0,r5
0x080004FA F001FA9B BL.W GPIO_Init (0x08001A34)
69: GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;
0x080004FE 2110 MOVS r1,#0x10
0x08000500 F8AD1014 STRH r1,[sp,#0x14]
70: GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
0x08000504 F88D4016 STRB r4,[sp,#0x16]
71: GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
0x08000508 F88D1017 STRB r1,[sp,#0x17]
72: GPIO_Init(GPIOA, &GPIO_InitStructure);
73:
74: /* Deselect the FLASH: Chip Select high */
0x0800050C A905 ADD r1,sp,#0x14
0x0800050E 4628 MOV r0,r5
0x08000510 F001FA90 BL.W GPIO_Init (0x08001A34)
75: SPI_FLASH_CS_HIGH();
76:
77: /* SPI1 configuration */
0x08000514 2110 MOVS r1,#0x10
0x08000516 4628 MOV r0,r5
0x08000518 F001FAE5 BL.W GPIO_SetBits (0x08001AE6)
78: SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex;
0x0800051C 2000 MOVS r0,#0x00
0x0800051E F8AD0000 STRH r0,[sp,#0x00]
79: SPI_InitStructure.SPI_Mode = SPI_Mode_Master;
0x08000522 F44F7182 MOV r1,#0x104
0x08000526 F8AD1002 STRH r1,[sp,#0x02]
80: SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b;
0x0800052A F8AD0004 STRH r0,[sp,#0x04]
81: SPI_InitStructure.SPI_CPOL = SPI_CPOL_High;
0x0800052E 2102 MOVS r1,#0x02
0x08000530 F8AD1006 STRH r1,[sp,#0x06]
82: SPI_InitStructure.SPI_CPHA = SPI_CPHA_2Edge;
0x08000534 2101 MOVS r1,#0x01
0x08000536 F8AD1008 STRH r1,[sp,#0x08]
83: SPI_InitStructure.SPI_NSS = SPI_NSS_Soft;
0x0800053A 0249 LSLS r1,r1,#9
0x0800053C F8AD100A STRH r1,[sp,#0x0A]
84: SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_4;
0x08000540 2108 MOVS r1,#0x08
0x08000542 F8AD100C STRH r1,[sp,#0x0C]
85: SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB;
0x08000546 F8AD000E STRH r0,[sp,#0x0E]
86: SPI_InitStructure.SPI_CRCPolynomial = 7;
0x0800054A 2007 MOVS r0,#0x07
87: SPI_Init(SPI1, &SPI_InitStructure);
88:
89: /* Enable SPI1 */
0x0800054C 4CBD LDR r4,[pc,#756] ; @0x08000844
0x0800054E F8AD0010 STRH r0,[sp,#0x10]
0x08000552 4669 MOV r1,sp
0x08000554 4620 MOV r0,r4
0x08000556 F001FBDA BL.W SPI_Init (0x08001D0E)
90: SPI_Cmd(SPI1, ENABLE);
0x0800055A 2101 MOVS r1,#0x01
0x0800055C 4620 MOV r0,r4
0x0800055E F001FB93 BL.W SPI_Cmd (0x08001C88)
91: }
0x08000562 B007 ADD sp,sp,#0x1C
0x08000564 BD30 POP {r4-r5,pc}
397: {
398: /* Loop while DR register in not emplty */
0x08000566 B570 PUSH {r4-r6,lr}
399: while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE) == RESET);
400:
401: /* Send byte through the SPI1 peripheral */
0x08000568 4CB6 LDR r4,[pc,#728] ; @0x08000844
0x0800056A 4605 MOV r5,r0
0x0800056C 2102 MOVS r1,#0x02
0x0800056E 4620 MOV r0,r4
0x08000570 F001FBC2 BL.W SPI_I2S_GetFlagStatus (0x08001CF8)
0x08000574 2800 CMP r0,#0x00
0x08000576 D0F9 BEQ 0x0800056C
402: SPI_I2S_SendData(SPI1, byte);
403:
404: /* Wait to receive a byte */
0x08000578 4629 MOV r1,r5
0x0800057A 4620 MOV r0,r4
0x0800057C F001FBC5 BL.W SPI_I2S_SendData (0x08001D0A)
405: while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_RXNE) == RESET);
406:
407: /* Return the byte read from the SPI bus */
0x08000580 2101 MOVS r1,#0x01
0x08000582 4620 MOV r0,r4
0x08000584 F001FBB8 BL.W SPI_I2S_GetFlagStatus (0x08001CF8)
0x08000588 2800 CMP r0,#0x00
0x0800058A D0F9 BEQ 0x08000580
408: return SPI_I2S_ReceiveData(SPI1);
0x0800058C 4620 MOV r0,r4
0x0800058E F001FBBA BL.W SPI_I2S_ReceiveData (0x08001D06)
0x08000592 B2C0 UXTB r0,r0
409: }
0x08000594 BD70 POP {r4-r6,pc}
463: {
464: u8 FLASH_Status = 0;
465:
466: /* Select the FLASH: Chip Select low */
0x08000596 B510 PUSH {r4,lr}
467: SPI_FLASH_CS_LOW();
468:
469: /* Send "Read Status Register" instruction */
0x08000598 4CA9 LDR r4,[pc,#676] ; @0x08000840
0x0800059A 2110 MOVS r1,#0x10
0x0800059C 4620 MOV r0,r4
0x0800059E F001FAA0 BL.W GPIO_ResetBits (0x08001AE2)
470: SPI_FLASH_SendByte(RDSR);
471:
472: /* Loop as long as the memory is busy with a write cycle */
473: do
474: {
475: /* Send a dummy byte to generate the clock needed by the FLASH
476: and put the value of the status register in FLASH_Status variable */
0x080005A2 2005 MOVS r0,#0x05
0x080005A4 F7FFFFDF BL.W SPI_FLASH_SendByte (0x08000566)
477: FLASH_Status = SPI_FLASH_SendByte(Dummy_Byte);
478:
0x080005A8 20A5 MOVS r0,#0xA5
0x080005AA F7FFFFDC BL.W SPI_FLASH_SendByte (0x08000566)
479: } while((FLASH_Status & WIP_Flag) == SET); /* Write in progress */
480:
481: /* Deselect the FLASH: Chip Select high */
0x080005AE 07C0 LSLS r0,r0,#31
0x080005B0 D1FA BNE 0x080005A8
482: SPI_FLASH_CS_HIGH();
0x080005B2 4620 MOV r0,r4
0x080005B4 E8BD4010 POP {r4,lr}
0x080005B8 2110 MOVS r1,#0x10
0x080005BA F001BA94 B.W GPIO_SetBits (0x08001AE6)
442: {
443: /* Select the FLASH: Chip Select low */
0x080005BE B510 PUSH {r4,lr}
444: SPI_FLASH_CS_LOW();
445:
446: /* Send "Write Enable" instruction */
0x080005C0 4C9F LDR r4,[pc,#636] ; @0x08000840
0x080005C2 2110 MOVS r1,#0x10
0x080005C4 4620 MOV r0,r4
0x080005C6 F001FA8C BL.W GPIO_ResetBits (0x08001AE2)
447: SPI_FLASH_SendByte(WREN);
448:
449: /* Deselect the FLASH: Chip Select high */
0x080005CA 2006 MOVS r0,#0x06
0x080005CC F7FFFFCB BL.W SPI_FLASH_SendByte (0x08000566)
450: SPI_FLASH_CS_HIGH();
0x080005D0 4620 MOV r0,r4
0x080005D2 E8BD4010 POP {r4,lr}
0x080005D6 2110 MOVS r1,#0x10
0x080005D8 F001BA85 B.W GPIO_SetBits (0x08001AE6)
101: {
102: /* Send write enable instruction */
0x080005DC B570 PUSH {r4-r6,lr}
0x080005DE 4604 MOV r4,r0
103: SPI_FLASH_WriteEnable();
104:
105: /* Sector Erase */
106: /* Select the FLASH: Chip Select low */
0x080005E0 F7FFFFED BL.W SPI_FLASH_WriteEnable (0x080005BE)
107: SPI_FLASH_CS_LOW();
108: /* Send Sector Erase instruction */
0x080005E4 4D96 LDR r5,[pc,#600] ; @0x08000840
0x080005E6 2110 MOVS r1,#0x10
0x080005E8 4628 MOV r0,r5
0x080005EA F001FA7A BL.W GPIO_ResetBits (0x08001AE2)
109: SPI_FLASH_SendByte(SE);
110: /* Send SectorAddr high nibble address byte */
0x080005EE 20D8 MOVS r0,#0xD8
0x080005F0 F7FFFFB9 BL.W SPI_FLASH_SendByte (0x08000566)
111: SPI_FLASH_SendByte((SectorAddr & 0xFF0000) >> 16);
112: /* Send SectorAddr medium nibble address byte */
0x080005F4 F3C44007 UBFX r0,r4,#16,#8
0x080005F8 F7FFFFB5 BL.W SPI_FLASH_SendByte (0x08000566)
113: SPI_FLASH_SendByte((SectorAddr & 0xFF00) >> 8);
114: /* Send SectorAddr low nibble address byte */
0x080005FC F3C42007 UBFX r0,r4,#8,#8
0x08000600 F7FFFFB1 BL.W SPI_FLASH_SendByte (0x08000566)
115: SPI_FLASH_SendByte(SectorAddr & 0xFF);
116: /* Deselect the FLASH: Chip Select high */
0x08000604 B2E0 UXTB r0,r4
0x08000606 F7FFFFAE BL.W SPI_FLASH_SendByte (0x08000566)
117: SPI_FLASH_CS_HIGH();
118:
119: /* Wait the end of Flash writing */
0x0800060A 2110 MOVS r1,#0x10
0x0800060C 4628 MOV r0,r5
0x0800060E F001FA6A BL.W GPIO_SetBits (0x08001AE6)
120: SPI_FLASH_WaitForWriteEnd();
121: }
122:
123: /*******************************************************************************
124: * Function Name : SPI_FLASH_BulkErase
125: * Description : Erases the entire FLASH.
126: * Input : None
127: * Output : None
128: * Return : None
129: *******************************************************************************/
130: void SPI_FLASH_BulkErase(void)
0x08000612 E8BD4070 POP {r4-r6,lr}
0x08000616 E7BE B SPI_FLASH_WaitForWriteEnd (0x08000596)
131: {
132: /* Send write enable instruction */
0x08000618 B510 PUSH {r4,lr}
133: SPI_FLASH_WriteEnable();
134:
135: /* Bulk Erase */
136: /* Select the FLASH: Chip Select low */
0x0800061A F7FFFFD0 BL.W SPI_FLASH_WriteEnable (0x080005BE)
137: SPI_FLASH_CS_LOW();
138: /* Send Bulk Erase instruction */
0x0800061E 4C88 LDR r4,[pc,#544] ; @0x08000840
0x08000620 2110 MOVS r1,#0x10
0x08000622 4620 MOV r0,r4
0x08000624 F001FA5D BL.W GPIO_ResetBits (0x08001AE2)
139: SPI_FLASH_SendByte(BE);
140: /* Deselect the FLASH: Chip Select high */
0x08000628 20C7 MOVS r0,#0xC7
0x0800062A F7FFFF9C BL.W SPI_FLASH_SendByte (0x08000566)
141: SPI_FLASH_CS_HIGH();
142:
143: /* Wait the end of Flash writing */
0x0800062E 2110 MOVS r1,#0x10
0x08000630 4620 MOV r0,r4
0x08000632 F001FA58 BL.W GPIO_SetBits (0x08001AE6)
144: SPI_FLASH_WaitForWriteEnd();
145: }
146:
147: /*******************************************************************************
148: * Function Name : SPI_FLASH_PageWrite
149: * Description : Writes more than one byte to the FLASH with a single WRITE
150: * cycle(Page WRITE sequence). The number of byte can't exceed
151: * the FLASH page size.
152: * Input : - pBuffer : pointer to the buffer containing the data to be
153: * written to the FLASH.
154: * - WriteAddr : FLASH's internal address to write to.
155: * - NumByteToWrite : number of bytes to write to the FLASH,
156: * must be equal or less than "SPI_FLASH_PageSize" value.
157: * Output : None
158: * Return : None
159: *******************************************************************************/
160: void SPI_FLASH_PageWrite(u8* pBuffer, u32 WriteAddr, u16 NumByteToWrite)
0x08000636 E8BD4010 POP {r4,lr}
0x0800063A E7AC B SPI_FLASH_WaitForWriteEnd (0x08000596)
161: {
162: /* Enable the write access to the FLASH */
0x0800063C E92D41F0 PUSH {r4-r8,lr}
0x08000640 4605 MOV r5,r0
0x08000642 460F MOV r7,r1
0x08000644 4614 MOV r4,r2
163: SPI_FLASH_WriteEnable();
164:
165: /* Select the FLASH: Chip Select low */
0x08000646 F7FFFFBA BL.W SPI_FLASH_WriteEnable (0x080005BE)
166: SPI_FLASH_CS_LOW();
167: /* Send "Write to Memory " instruction */
0x0800064A 4E7D LDR r6,[pc,#500] ; @0x08000840
0x0800064C 2110 MOVS r1,#0x10
0x0800064E 4630 MOV r0,r6
0x08000650 F001FA47 BL.W GPIO_ResetBits (0x08001AE2)
168: SPI_FLASH_SendByte(WRITE);
169: /* Send WriteAddr high nibble address byte to write to */
0x08000654 2002 MOVS r0,#0x02
0x08000656 F7FFFF86 BL.W SPI_FLASH_SendByte (0x08000566)
170: SPI_FLASH_SendByte((WriteAddr & 0xFF0000) >> 16);
171: /* Send WriteAddr medium nibble address byte to write to */
0x0800065A F3C74007 UBFX r0,r7,#16,#8
0x0800065E F7FFFF82 BL.W SPI_FLASH_SendByte (0x08000566)
172: SPI_FLASH_SendByte((WriteAddr & 0xFF00) >> 8);
173: /* Send WriteAddr low nibble address byte to write to */
0x08000662 F3C72007 UBFX r0,r7,#8,#8
0x08000666 F7FFFF7E BL.W SPI_FLASH_SendByte (0x08000566)
174: SPI_FLASH_SendByte(WriteAddr & 0xFF);
175:
176: /* while there is data to be written on the FLASH */
0x0800066A B2F8 UXTB r0,r7
0x0800066C F7FFFF7B BL.W SPI_FLASH_SendByte (0x08000566)
177: while(NumByteToWrite--)
178: {
179: /* Send the current byte */
0x08000670 E003 B 0x0800067A
180: SPI_FLASH_SendByte(*pBuffer);
181: /* Point on the next byte to be written */
0x08000672 7828 LDRB r0,[r5,#0x00]
0x08000674 F7FFFF77 BL.W SPI_FLASH_SendByte (0x08000566)
182: pBuffer++;
183: }
184:
185: /* Deselect the FLASH: Chip Select high */
0x08000678 1C6D ADDS r5,r5,#1
0x0800067A 0020 MOVS r0,r4
0x0800067C F1A40401 SUB r4,r4,#0x01
0x08000680 B2A4 UXTH r4,r4
0x08000682 D1F6 BNE 0x08000672
186: SPI_FLASH_CS_HIGH();
187:
188: /* Wait the end of Flash writing */
0x08000684 2110 MOVS r1,#0x10
0x08000686 4630 MOV r0,r6
0x08000688 F001FA2D BL.W GPIO_SetBits (0x08001AE6)
189: SPI_FLASH_WaitForWriteEnd();
190: }
191:
192: /*******************************************************************************
193: * Function Name : SPI_FLASH_BufferWrite
194: * Description : Writes block of data to the FLASH. In this function, the
195: * number of WRITE cycles are reduced, using Page WRITE sequence.
196: * Input : - pBuffer : pointer to the buffer containing the data to be
197: * written to the FLASH.
198: * - WriteAddr : FLASH's internal address to write to.
199: * - NumByteToWrite : number of bytes to write to the FLASH.
200: * Output : None
201: * Return : None
202: *******************************************************************************/
203: void SPI_FLASH_BufferWrite(u8* pBuffer, u32 WriteAddr, u16 NumByteToWrite)
0x0800068C E8BD41F0 POP {r4-r8,lr}
0x08000690 E781 B SPI_FLASH_WaitForWriteEnd (0x08000596)
204: {
205: u8 NumOfPage = 0, NumOfSingle = 0, Addr = 0, count = 0, temp = 0;
206:
0x08000692 E92D47F0 PUSH {r4-r10,lr}
0x08000696 4606 MOV r6,r0
0x08000698 460D MOV r5,r1
207: Addr = WriteAddr % SPI_FLASH_PageSize;
0x0800069A F01100FF ANDS r0,r1,#0xFF
208: count = SPI_FLASH_PageSize - Addr;
209: NumOfPage = NumByteToWrite / SPI_FLASH_PageSize;
0x0800069E F1C00100 RSB r1,r0,#0x00
0x080006A2 B2CF UXTB r7,r1
210: NumOfSingle = NumByteToWrite % SPI_FLASH_PageSize;
211:
212: if(Addr == 0) /* WriteAddr is SPI_FLASH_PageSize aligned */
213: {
214: if(NumOfPage == 0) /* NumByteToWrite < SPI_FLASH_PageSize */
215: {
216: SPI_FLASH_PageWrite(pBuffer, WriteAddr, NumByteToWrite);
217: }
218: else /* NumByteToWrite > SPI_FLASH_PageSize */
219: {
220: while(NumOfPage--)
221: {
0x080006A4 B2D1 UXTB r1,r2
209: NumOfPage = NumByteToWrite / SPI_FLASH_PageSize;
210: NumOfSingle = NumByteToWrite % SPI_FLASH_PageSize;
211:
212: if(Addr == 0) /* WriteAddr is SPI_FLASH_PageSize aligned */
213: {
214: if(NumOfPage == 0) /* NumByteToWrite < SPI_FLASH_PageSize */
215: {
216: SPI_FLASH_PageWrite(pBuffer, WriteAddr, NumByteToWrite);
217: }
218: else /* NumByteToWrite > SPI_FLASH_PageSize */
219: {
220: while(NumOfPage--)
221: {
0x080006A6 EA4F2412 LSR r4,r2,#8
0x080006AA 4689 MOV r9,r1
222: SPI_FLASH_PageWrite(pBuffer, WriteAddr, SPI_FLASH_PageSize);
223: WriteAddr += SPI_FLASH_PageSize;
224: pBuffer += SPI_FLASH_PageSize;
225: }
226:
227: SPI_FLASH_PageWrite(pBuffer, WriteAddr, NumOfSingle);
228: }
229: }
230: else /* WriteAddr is not SPI_FLASH_PageSize aligned */
231: {
232: if(NumOfPage== 0) /* NumByteToWrite < SPI_FLASH_PageSize */
233: {
234: if(NumOfSingle > count) /* (NumByteToWrite + WriteAddr) > SPI_FLASH_PageSize */
235: {
236: temp = NumOfSingle - count;
237:
238: SPI_FLASH_PageWrite(pBuffer, WriteAddr, count);
0x080006AC F44F7A80 MOV r10,#0x100
212: if(Addr == 0) /* WriteAddr is SPI_FLASH_PageSize aligned */
0x080006B0 D013 BEQ 0x080006DA
207: Addr = WriteAddr % SPI_FLASH_PageSize;
0x080006B2 B2E8 UXTB r0,r5
208: count = SPI_FLASH_PageSize - Addr;
0x080006B4 4240 RSBS r0,r0,#0
0x080006B6 B2C0 UXTB r0,r0
239: WriteAddr += count;
240: pBuffer += count;
241:
242: SPI_FLASH_PageWrite(pBuffer, WriteAddr, temp);
243: }
244: else
245: {
246: SPI_FLASH_PageWrite(pBuffer, WriteAddr, NumByteToWrite);
247: }
248: }
249: else /* NumByteToWrite > SPI_FLASH_PageSize */
250: {
0x080006B8 4428 ADD r0,r0,r5
0x080006BA 4680 MOV r8,r0
232: if(NumOfPage== 0) /* NumByteToWrite < SPI_FLASH_PageSize */
233: {
234: if(NumOfSingle > count) /* (NumByteToWrite + WriteAddr) > SPI_FLASH_PageSize */
235: {
236: temp = NumOfSingle - count;
237:
238: SPI_FLASH_PageWrite(pBuffer, WriteAddr, count);
239: WriteAddr += count;
240: pBuffer += count;
241:
242: SPI_FLASH_PageWrite(pBuffer, WriteAddr, temp);
243: }
244: else
245: {
246: SPI_FLASH_PageWrite(pBuffer, WriteAddr, NumByteToWrite);
247: }
248: }
249: else /* NumByteToWrite > SPI_FLASH_PageSize */
250: {
0x080006BC B31C CBZ r4,0x08000706
251: NumByteToWrite -= count;
0x080006BE 1BD0 SUBS r0,r2,r7
0x080006C0 B280 UXTH r0,r0
252: NumOfPage = NumByteToWrite / SPI_FLASH_PageSize;
0x080006C2 0A04 LSRS r4,r0,#8
253: NumOfSingle = NumByteToWrite % SPI_FLASH_PageSize;
254:
0x080006C4 B2C0 UXTB r0,r0
0x080006C6 4681 MOV r9,r0
255: SPI_FLASH_PageWrite(pBuffer, WriteAddr, count);
256: WriteAddr += count;
0x080006C8 463A MOV r2,r7
0x080006CA 4629 MOV r1,r5
0x080006CC 4630 MOV r0,r6
0x080006CE F7FFFFB5 BL.W SPI_FLASH_PageWrite (0x0800063C)
257: pBuffer += count;
258:
259: while(NumOfPage--)
260: {
261: SPI_FLASH_PageWrite(pBuffer, WriteAddr, SPI_FLASH_PageSize);
262: WriteAddr += SPI_FLASH_PageSize;
0x080006D2 443E ADD r6,r6,r7
0x080006D4 4645 MOV r5,r8
0x080006D6 4657 MOV r7,r10
263: pBuffer += SPI_FLASH_PageSize;
264: }
265:
0x080006D8 E02E B 0x08000738
214: if(NumOfPage == 0) /* NumByteToWrite < SPI_FLASH_PageSize */
215: {
216: SPI_FLASH_PageWrite(pBuffer, WriteAddr, NumByteToWrite);
217: }
218: else /* NumByteToWrite > SPI_FLASH_PageSize */
219: {
220: while(NumOfPage--)
221: {
0x080006DA B17C CBZ r4,0x080006FC
222: SPI_FLASH_PageWrite(pBuffer, WriteAddr, SPI_FLASH_PageSize);
0x080006DC 4657 MOV r7,r10
220: while(NumOfPage--)
221: {
222: SPI_FLASH_PageWrite(pBuffer, WriteAddr, SPI_FLASH_PageSize);
0x080006DE 0020 MOVS r0,r4
0x080006E0 F1A40401 SUB r4,r4,#0x01
0x080006E4 B2E4 UXTB r4,r4
0x080006E6 D00C BEQ 0x08000702
0x080006E8 463A MOV r2,r7
0x080006EA 4629 MOV r1,r5
0x080006EC 4630 MOV r0,r6
0x080006EE F7FFFFA5 BL.W SPI_FLASH_PageWrite (0x0800063C)
223: WriteAddr += SPI_FLASH_PageSize;
0x080006F2 F5057580 ADD r5,r5,#0x100
224: pBuffer += SPI_FLASH_PageSize;
225: }
226:
0x080006F6 F5067680 ADD r6,r6,#0x100
0x080006FA E7F0 B 0x080006DE
216: SPI_FLASH_PageWrite(pBuffer, WriteAddr, NumByteToWrite);
217: }
218: else /* NumByteToWrite > SPI_FLASH_PageSize */
219: {
220: while(NumOfPage--)
221: {
222: SPI_FLASH_PageWrite(pBuffer, WriteAddr, SPI_FLASH_PageSize);
223: WriteAddr += SPI_FLASH_PageSize;
224: pBuffer += SPI_FLASH_PageSize;
225: }
226:
0x080006FC 4629 MOV r1,r5
0x080006FE 4630 MOV r0,r6
0x08000700 E00E B 0x08000720
227: SPI_FLASH_PageWrite(pBuffer, WriteAddr, NumOfSingle);
228: }
229: }
230: else /* WriteAddr is not SPI_FLASH_PageSize aligned */
231: {
232: if(NumOfPage== 0) /* NumByteToWrite < SPI_FLASH_PageSize */
233: {
0x08000702 464A MOV r2,r9
0x08000704 E7FA B 0x080006FC
234: if(NumOfSingle > count) /* (NumByteToWrite + WriteAddr) > SPI_FLASH_PageSize */
235: {
0x08000706 42B9 CMP r1,r7
0x08000708 D9F8 BLS 0x080006FC
236: temp = NumOfSingle - count;
237:
0x0800070A EBA90007 SUB r0,r9,r7
0x0800070E B2C4 UXTB r4,r0
238: SPI_FLASH_PageWrite(pBuffer, WriteAddr, count);
239: WriteAddr += count;
0x08000710 463A MOV r2,r7
0x08000712 4629 MOV r1,r5
0x08000714 4630 MOV r0,r6
0x08000716 F7FFFF91 BL.W SPI_FLASH_PageWrite (0x0800063C)
0x0800071A 4641 MOV r1,r8
240: pBuffer += count;
241:
0x0800071C 19F0 ADDS r0,r6,r7
242: SPI_FLASH_PageWrite(pBuffer, WriteAddr, temp);
243: }
244: else
245: {
0x0800071E 4622 MOV r2,r4
246: SPI_FLASH_PageWrite(pBuffer, WriteAddr, NumByteToWrite);
247: }
248: }
249: else /* NumByteToWrite > SPI_FLASH_PageSize */
250: {
251: NumByteToWrite -= count;
252: NumOfPage = NumByteToWrite / SPI_FLASH_PageSize;
253: NumOfSingle = NumByteToWrite % SPI_FLASH_PageSize;
254:
255: SPI_FLASH_PageWrite(pBuffer, WriteAddr, count);
256: WriteAddr += count;
257: pBuffer += count;
258:
259: while(NumOfPage--)
260: {
0x08000720 E8BD47F0 POP {r4-r10,lr}
0x08000724 E78A B SPI_FLASH_PageWrite (0x0800063C)
261: SPI_FLASH_PageWrite(pBuffer, WriteAddr, SPI_FLASH_PageSize);
0x08000726 463A MOV r2,r7
0x08000728 4629 MOV r1,r5
0x0800072A 4630 MOV r0,r6
0x0800072C F7FFFF86 BL.W SPI_FLASH_PageWrite (0x0800063C)
262: WriteAddr += SPI_FLASH_PageSize;
0x08000730 F5057580 ADD r5,r5,#0x100
263: pBuffer += SPI_FLASH_PageSize;
264: }
265:
0x08000734 F5067680 ADD r6,r6,#0x100
259: while(NumOfPage--)
260: {
261: SPI_FLASH_PageWrite(pBuffer, WriteAddr, SPI_FLASH_PageSize);
262: WriteAddr += SPI_FLASH_PageSize;
263: pBuffer += SPI_FLASH_PageSize;
264: }
265:
0x08000738 0020 MOVS r0,r4
0x0800073A F1A40401 SUB r4,r4,#0x01
0x0800073E B2E4 UXTB r4,r4
0x08000740 D1F1 BNE 0x08000726
266: if(NumOfSingle != 0)
267: {
0x08000742 EA5F0009 MOVS r0,r9
0x08000746 D001 BEQ 0x0800074C
268: SPI_FLASH_PageWrite(pBuffer, WriteAddr, NumOfSingle);
269: }
270: }
271: }
0x08000748 4602 MOV r2,r0
0x0800074A E7D7 B 0x080006FC
272: }
273:
274: /*******************************************************************************
275: * Function Name : SPI_FLASH_BufferRead
276: * Description : Reads a block of data from the FLASH.
277: * Input : - pBuffer : pointer to the buffer that receives the data read
278: * from the FLASH.
279: * - ReadAddr : FLASH's internal address to read from.
280: * - NumByteToRead : number of bytes to read from the FLASH.
281: * Output : None
282: * Return : None
283: *******************************************************************************/
284: void SPI_FLASH_BufferRead(u8* pBuffer, u32 ReadAddr, u16 NumByteToRead)
0x0800074C E8BD87F0 POP {r4-r10,pc}
285: {
286: /* Select the FLASH: Chip Select low */
0x08000750 E92D41F0 PUSH {r4-r8,lr}
287: SPI_FLASH_CS_LOW();
288:
289: /* Send "Read from Memory " instruction */
0x08000754 4E3A LDR r6,[pc,#232] ; @0x08000840
0x08000756 4604 MOV r4,r0
0x08000758 460F MOV r7,r1
0x0800075A 4615 MOV r5,r2
0x0800075C 2110 MOVS r1,#0x10
0x0800075E 4630 MOV r0,r6
0x08000760 F001F9BF BL.W GPIO_ResetBits (0x08001AE2)
290: SPI_FLASH_SendByte(READ);
291:
292: /* Send ReadAddr high nibble address byte to read from */
0x08000764 2003 MOVS r0,#0x03
0x08000766 F7FFFEFE BL.W SPI_FLASH_SendByte (0x08000566)
293: SPI_FLASH_SendByte((ReadAddr & 0xFF0000) >> 16);
294: /* Send ReadAddr medium nibble address byte to read from */
0x0800076A F3C74007 UBFX r0,r7,#16,#8
0x0800076E F7FFFEFA BL.W SPI_FLASH_SendByte (0x08000566)
295: SPI_FLASH_SendByte((ReadAddr& 0xFF00) >> 8);
296: /* Send ReadAddr low nibble address byte to read from */
0x08000772 F3C72007 UBFX r0,r7,#8,#8
0x08000776 F7FFFEF6 BL.W SPI_FLASH_SendByte (0x08000566)
297: SPI_FLASH_SendByte(ReadAddr & 0xFF);
298:
0x0800077A B2F8 UXTB r0,r7
0x0800077C F7FFFEF3 BL.W SPI_FLASH_SendByte (0x08000566)
299: while(NumByteToRead--) /* while there is data to be read */
300: {
301: /* Read a byte from the FLASH */
0x08000780 E004 B 0x0800078C
302: *pBuffer = SPI_FLASH_SendByte(Dummy_Byte);
303: /* Point to the next location where the byte read will be saved */
304: pBuffer++;
305: }
306:
307: /* Deselect the FLASH: Chip Select high */
0x08000782 20A5 MOVS r0,#0xA5
0x08000784 F7FFFEEF BL.W SPI_FLASH_SendByte (0x08000566)
0x08000788 F8040B01 STRB r0,[r4],#0x01
0x0800078C 0028 MOVS r0,r5
0x0800078E F1A50501 SUB r5,r5,#0x01
0x08000792 B2AD UXTH r5,r5
0x08000794 D1F5 BNE 0x08000782
308: SPI_FLASH_CS_HIGH();
309: }
310:
311: /*******************************************************************************
312: * Function Name : SPI_FLASH_ReadID
313: * Description : Reads FLASH identification.
314: * Input : None
315: * Output : None
316: * Return : FLASH identification
317: *******************************************************************************/
318: u32 SPI_FLASH_ReadID(void)
0x08000796 4630 MOV r0,r6
0x08000798 E8BD41F0 POP {r4-r8,lr}
0x0800079C 2110 MOVS r1,#0x10
0x0800079E F001B9A2 B.W GPIO_SetBits (0x08001AE6)
319: {
320: u32 Temp = 0, Temp0 = 0, Temp1 = 0, Temp2 = 0;
321:
322: /* Select the FLASH: Chip Select low */
0x080007A2 E92D41F0 PUSH {r4-r8,lr}
323: SPI_FLASH_CS_LOW();
324:
325: /* Send "RDID " instruction */
0x080007A6 4C26 LDR r4,[pc,#152] ; @0x08000840
0x080007A8 2110 MOVS r1,#0x10
0x080007AA 4620 MOV r0,r4
0x080007AC F001F999 BL.W GPIO_ResetBits (0x08001AE2)
326: SPI_FLASH_SendByte(0x9F);
327:
328: /* Read a byte from the FLASH */
0x080007B0 209F MOVS r0,#0x9F
0x080007B2 F7FFFED8 BL.W SPI_FLASH_SendByte (0x08000566)
329: Temp0 = SPI_FLASH_SendByte(Dummy_Byte);
330:
331: /* Read a byte from the FLASH */
0x080007B6 20A5 MOVS r0,#0xA5
0x080007B8 F7FFFED5 BL.W SPI_FLASH_SendByte (0x08000566)
0x080007BC 4606 MOV r6,r0
332: Temp1 = SPI_FLASH_SendByte(Dummy_Byte);
333:
334: /* Read a byte from the FLASH */
0x080007BE 20A5 MOVS r0,#0xA5
0x080007C0 F7FFFED1 BL.W SPI_FLASH_SendByte (0x08000566)
0x080007C4 4607 MOV r7,r0
335: Temp2 = SPI_FLASH_SendByte(Dummy_Byte);
336:
337: /* Deselect the FLASH: Chip Select high */
0x080007C6 20A5 MOVS r0,#0xA5
0x080007C8 F7FFFECD BL.W SPI_FLASH_SendByte (0x08000566)
0x080007CC 4605 MOV r5,r0
338: SPI_FLASH_CS_HIGH();
339:
0x080007CE 2110 MOVS r1,#0x10
0x080007D0 4620 MOV r0,r4
0x080007D2 F001F988 BL.W GPIO_SetBits (0x08001AE6)
340: Temp = (Temp0 << 16) | (Temp1 << 8) | Temp2;
341:
342: return Temp;
0x080007D6 0430 LSLS r0,r6,#16
0x080007D8 EA402007 ORR r0,r0,r7,LSL #8
0x080007DC 4328 ORRS r0,r0,r5
343: }
344:
345: /*******************************************************************************
346: * Function Name : SPI_FLASH_StartReadSequence
347: * Description : Initiates a read data byte (READ) sequence from the Flash.
348: * This is done by driving the /CS line low to select the device,
349: * then the READ instruction is transmitted followed by 3 bytes
350: * address. This function exit and keep the /CS line low, so the
351: * Flash still being selected. With this technique the whole
352: * content of the Flash is read with a single READ instruction.
353: * Input : - ReadAddr : FLASH's internal address to read from.
354: * Output : None
355: * Return : None
356: *******************************************************************************/
357: void SPI_FLASH_StartReadSequence(u32 ReadAddr)
0x080007DE E8BD81F0 POP {r4-r8,pc}
358: {
359: /* Select the FLASH: Chip Select low */
0x080007E2 B510 PUSH {r4,lr}
0x080007E4 4604 MOV r4,r0
360: SPI_FLASH_CS_LOW();
361:
362: /* Send "Read from Memory " instruction */
0x080007E6 2110 MOVS r1,#0x10
0x080007E8 4815 LDR r0,[pc,#84] ; @0x08000840
0x080007EA F001F97A BL.W GPIO_ResetBits (0x08001AE2)
363: SPI_FLASH_SendByte(READ);
364:
365: /* Send the 24-bit address of the address to read from -----------------------*/
366: /* Send ReadAddr high nibble address byte */
0x080007EE 2003 MOVS r0,#0x03
0x080007F0 F7FFFEB9 BL.W SPI_FLASH_SendByte (0x08000566)
367: SPI_FLASH_SendByte((ReadAddr & 0xFF0000) >> 16);
368: /* Send ReadAddr medium nibble address byte */
0x080007F4 F3C44007 UBFX r0,r4,#16,#8
0x080007F8 F7FFFEB5 BL.W SPI_FLASH_SendByte (0x08000566)
369: SPI_FLASH_SendByte((ReadAddr& 0xFF00) >> 8);
370: /* Send ReadAddr low nibble address byte */
0x080007FC F3C42007 UBFX r0,r4,#8,#8
0x08000800 F7FFFEB1 BL.W SPI_FLASH_SendByte (0x08000566)
371: SPI_FLASH_SendByte(ReadAddr & 0xFF);
372: }
373:
374: /*******************************************************************************
375: * Function Name : SPI_FLASH_ReadByte
376: * Description : Reads a byte from the SPI Flash.
377: * This function must be used only if the Start_Read_Sequence
378: * function has been previously called.
379: * Input : None
380: * Output : None
381: * Return : Byte Read from the SPI Flash.
382: *******************************************************************************/
383: u8 SPI_FLASH_ReadByte(void)
384: {
0x08000804 B2E0 UXTB r0,r4
0x08000806 E8BD4010 POP {r4,lr}
0x0800080A E6AC B SPI_FLASH_SendByte (0x08000566)
385: return (SPI_FLASH_SendByte(Dummy_Byte));
0x0800080C 20A5 MOVS r0,#0xA5
0x0800080E E6AA B SPI_FLASH_SendByte (0x08000566)
420: {
421: /* Loop while DR register in not emplty */
0x08000810 B570 PUSH {r4-r6,lr}
422: while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE) == RESET);
423:
424: /* Send Half Word through the SPI1 peripheral */
0x08000812 4C0C LDR r4,[pc,#48] ; @0x08000844
0x08000814 4605 MOV r5,r0
0x08000816 2102 MOVS r1,#0x02
0x08000818 4620 MOV r0,r4
0x0800081A F001FA6D BL.W SPI_I2S_GetFlagStatus (0x08001CF8)
0x0800081E 2800 CMP r0,#0x00
0x08000820 D0F9 BEQ 0x08000816
425: SPI_I2S_SendData(SPI1, HalfWord);
426:
427: /* Wait to receive a Half Word */
0x08000822 4629 MOV r1,r5
0x08000824 4620 MOV r0,r4
0x08000826 F001FA70 BL.W SPI_I2S_SendData (0x08001D0A)
428: while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_RXNE) == RESET);
429:
430: /* Return the Half Word read from the SPI bus */
0x0800082A 2101 MOVS r1,#0x01
0x0800082C 4620 MOV r0,r4
0x0800082E F001FA63 BL.W SPI_I2S_GetFlagStatus (0x08001CF8)
0x08000832 2800 CMP r0,#0x00
0x08000834 D0F9 BEQ 0x0800082A
431: return SPI_I2S_ReceiveData(SPI1);
0x08000836 4620 MOV r0,r4
0x08000838 E8BD4070 POP {r4-r6,lr}
0x0800083C F001BA63 B.W SPI_I2S_ReceiveData (0x08001D06)
0x08000840 0800 LSRS r0,r0,#0
0x08000842 4001 ANDS r1,r1,r0
0x08000844 3000 ADDS r0,r0,#0x00
0x08000846 4001 ANDS r1,r1,r0
1270: GPIO_WriteBit(GPIOx, CtrlPins, BitVal);
1271: }
1272:
1273: /*******************************************************************************
1274: * Function Name : LCD_SPIConfig
1275: * Description : Configures the SPI2 interface.
1276: * Input : None
1277: * Output : None
1278: * Return : None
1279: *******************************************************************************/
1280: void LCD_SPIConfig(void)
0x08000848 F001B94F B.W GPIO_WriteBit (0x08001AEA)
885: {
0x0800084C B510 PUSH {r4,lr}
0x0800084E 4604 MOV r4,r0
886: LCD_CtrlLinesWrite(GPIOB, CtrlPin_NCS, Bit_RESET);
887:
0x08000850 2200 MOVS r2,#0x00
0x08000852 2104 MOVS r1,#0x04
0x08000854 48FD LDR r0,[pc,#1012] ; @0x08000C4C
0x08000856 F7FFFFF7 BL.W LCD_CtrlLinesWrite (0x08000848)
888: SPI_I2S_SendData(SPI2, Start_Byte);
0x0800085A 4621 MOV r1,r4
0x0800085C 4CFC LDR r4,[pc,#1008] ; @0x08000C50
0x0800085E 4620 MOV r0,r4
0x08000860 F001FA53 BL.W SPI_I2S_SendData (0x08001D0A)
889: while(SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_BSY) != RESET)
890: {
891: }
0x08000864 2180 MOVS r1,#0x80
0x08000866 4620 MOV r0,r4
0x08000868 F001FA46 BL.W SPI_I2S_GetFlagStatus (0x08001CF8)
0x0800086C 2800 CMP r0,#0x00
0x0800086E D1F9 BNE 0x08000864
892: }
893:
894: /*******************************************************************************
895: * Function Name : LCD_WriteRegIndex
896: * Description : Writes index to select the LCD register.
897: * Input : - LCD_Reg: address of the selected register.
898: * Output : None
899: * Return : None
900: *******************************************************************************/
901: void LCD_WriteRegIndex(u8 LCD_Reg)
0x08000870 BD10 POP {r4,pc}
902: {
903: /* Reset LCD control line(/CS) and Send Start-Byte */
0x08000872 B570 PUSH {r4-r6,lr}
0x08000874 4605 MOV r5,r0
904: LCD_nCS_StartByte(START_BYTE | SET_INDEX);
905:
906: /* Write 16-bit Reg Index (High Byte is 0) */
0x08000876 2070 MOVS r0,#0x70
0x08000878 F7FFFFE8 BL.W LCD_nCS_StartByte (0x0800084C)
907: SPI_I2S_SendData(SPI2, 0x00);
0x0800087C 4CF4 LDR r4,[pc,#976] ; @0x08000C50
0x0800087E 2100 MOVS r1,#0x00
0x08000880 4620 MOV r0,r4
0x08000882 F001FA42 BL.W SPI_I2S_SendData (0x08001D0A)
908: while(SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_BSY) != RESET)
909: {
910: }
0x08000886 2180 MOVS r1,#0x80
0x08000888 4620 MOV r0,r4
0x0800088A F001FA35 BL.W SPI_I2S_GetFlagStatus (0x08001CF8)
0x0800088E 2800 CMP r0,#0x00
0x08000890 D1F9 BNE 0x08000886
911: SPI_I2S_SendData(SPI2, LCD_Reg);
0x08000892 4629 MOV r1,r5
0x08000894 4620 MOV r0,r4
0x08000896 F001FA38 BL.W SPI_I2S_SendData (0x08001D0A)
912: while(SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_BSY) != RESET)
913: {
914: }
915:
0x0800089A 2180 MOVS r1,#0x80
0x0800089C 4620 MOV r0,r4
0x0800089E F001FA2B BL.W SPI_I2S_GetFlagStatus (0x08001CF8)
0x080008A2 2800 CMP r0,#0x00
0x080008A4 D1F9 BNE 0x0800089A
916: LCD_CtrlLinesWrite(GPIOB, CtrlPin_NCS, Bit_SET);
0x080008A6 E8BD4070 POP {r4-r6,lr}
0x080008AA 2201 MOVS r2,#0x01
0x080008AC 2104 MOVS r1,#0x04
0x080008AE 48E7 LDR r0,[pc,#924] ; @0x08000C4C
0x080008B0 E7CA B LCD_CtrlLinesWrite (0x08000848)
1081: {
0x080008B2 E92D41F0 PUSH {r4-r8,lr}
1082: if(LCDType == LCD_ILI9320)
1083: {
0x080008B6 4AE7 LDR r2,[pc,#924] ; @0x08000C54
0x080008B8 6853 LDR r3,[r2,#0x04]
945: LCD_CtrlLinesWrite(GPIOB, CtrlPin_NCS, Bit_SET);
0x080008BA 4DE4 LDR r5,[pc,#912] ; @0x08000C4C
936: SPI_I2S_SendData(SPI2, LCD_RegValue>>8);
0x080008BC 4FE4 LDR r7,[pc,#912] ; @0x08000C50
0x080008BE F5A34413 SUB r4,r3,#0x9300
0x080008C2 3C20 SUBS r4,r4,#0x20
0x080008C4 D11A BNE 0x080008FC
1084: LCD_WriteRegILI9320(LCD_Reg, LCD_RegValue);
1085: }
0x080008C6 460C MOV r4,r1
930: LCD_WriteRegIndex(LCD_Reg);
931:
932: /* Write 16-bit Reg */
933: /* Reset LCD control line(/CS) and Send Start-Byte */
0x080008C8 F7FFFFD3 BL.W LCD_WriteRegIndex (0x08000872)
934: LCD_nCS_StartByte(START_BYTE | WRITE_REG);
935:
0x080008CC 2072 MOVS r0,#0x72
0x080008CE F7FFFFBD BL.W LCD_nCS_StartByte (0x0800084C)
936: SPI_I2S_SendData(SPI2, LCD_RegValue>>8);
0x080008D2 0A21 LSRS r1,r4,#8
0x080008D4 4638 MOV r0,r7
0x080008D6 F001FA18 BL.W SPI_I2S_SendData (0x08001D0A)
937: while(SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_BSY) != RESET)
938: {
939: }
0x080008DA 2180 MOVS r1,#0x80
0x080008DC 4638 MOV r0,r7
0x080008DE F001FA0B BL.W SPI_I2S_GetFlagStatus (0x08001CF8)
0x080008E2 2800 CMP r0,#0x00
0x080008E4 D1F9 BNE 0x080008DA
940: SPI_I2S_SendData(SPI2, (LCD_RegValue & 0xFF));
0x080008E6 B2E1 UXTB r1,r4
0x080008E8 4638 MOV r0,r7
0x080008EA F001FA0E BL.W SPI_I2S_SendData (0x08001D0A)
941: while(SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_BSY) != RESET)
0x080008EE 2180 MOVS r1,#0x80
0x080008F0 4638 MOV r0,r7
0x080008F2 F001FA01 BL.W SPI_I2S_GetFlagStatus (0x08001CF8)
0x080008F6 2800 CMP r0,#0x00
0x080008F8 D1F9 BNE 0x080008EE
0x080008FA E023 B 0x08000944
1086: else if(LCDType == LCD_HX8312)
1087: {
0x080008FC 6852 LDR r2,[r2,#0x04]
0x080008FE F5A24303 SUB r3,r2,#0x8300
0x08000902 3B12 SUBS r3,r3,#0x12
0x08000904 D124 BNE 0x08000950
1057: LCD_CtrlLinesWrite(GPIOD, CtrlPin_NWR, Bit_RESET);
0x08000906 F8DF8350 LDR.W r8,[pc,#848] ; @0x08000C5A
1088: LCD_WriteRegHX8312(LCD_Reg, ((u8)LCD_RegValue));
1089: }
0x0800090A 4606 MOV r6,r0
0x0800090C B2CC UXTB r4,r1
0x0800090E 2200 MOVS r2,#0x00
0x08000910 F44F4100 MOV r1,#0x8000
0x08000914 4640 MOV r0,r8
0x08000916 F7FFFF97 BL.W LCD_CtrlLinesWrite (0x08000848)
1058: LCD_CtrlLinesWrite(GPIOD, CtrlPin_RS, Bit_RESET);
0x0800091A 2200 MOVS r2,#0x00
0x0800091C 2180 MOVS r1,#0x80
0x0800091E 4640 MOV r0,r8
0x08000920 F7FFFF92 BL.W LCD_CtrlLinesWrite (0x08000848)
1059: LCD_CtrlLinesWrite(GPIOB, CtrlPin_NCS, Bit_RESET);
1060:
1061: tmp = LCD_Reg << 8;
0x08000924 2200 MOVS r2,#0x00
0x08000926 2104 MOVS r1,#0x04
0x08000928 4628 MOV r0,r5
0x0800092A F7FFFF8D BL.W LCD_CtrlLinesWrite (0x08000848)
1062: tmp |= LCD_RegValue;
1063:
0x0800092E EA442106 ORR r1,r4,r6,LSL #8
1064: SPI_I2S_SendData(SPI2, tmp);
0x08000932 4638 MOV r0,r7
0x08000934 F001F9E9 BL.W SPI_I2S_SendData (0x08001D0A)
1065: while(SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_BSY) != RESET)
1066: {
1067: }
1068:
0x08000938 2180 MOVS r1,#0x80
0x0800093A 4638 MOV r0,r7
0x0800093C F001F9DC BL.W SPI_I2S_GetFlagStatus (0x08001CF8)
0x08000940 2800 CMP r0,#0x00
0x08000942 D1F9 BNE 0x08000938
1069: LCD_CtrlLinesWrite(GPIOB, CtrlPin_NCS, Bit_SET);
1070: }
1071:
1072: /*******************************************************************************
1073: * Function Name : LCD_WriteReg
1074: * Description : Writes to the selected LCD register.
1075: * Input : - LCD_Reg: address of the selected register.
1076: * - LCD_RegValue: value to write to the selected register.
1077: * Output : None
1078: * Return : None
1079: *******************************************************************************/
1080: void LCD_WriteReg(u8 LCD_Reg, u16 LCD_RegValue)
1081: {
1082: if(LCDType == LCD_ILI9320)
1083: {
1084: LCD_WriteRegILI9320(LCD_Reg, LCD_RegValue);
1085: }
1086: else if(LCDType == LCD_HX8312)
1087: {
1088: LCD_WriteRegHX8312(LCD_Reg, ((u8)LCD_RegValue));
1089: }
0x08000944 4628 MOV r0,r5
0x08000946 E8BD41F0 POP {r4-r8,lr}
0x0800094A 2201 MOVS r2,#0x01
0x0800094C 2104 MOVS r1,#0x04
0x0800094E E77B B LCD_CtrlLinesWrite (0x08000848)
1090: }
0x08000950 E8BD81F0 POP {r4-r8,pc}
1281: {
1282: SPI_InitTypeDef SPI_InitStructure;
1283: GPIO_InitTypeDef GPIO_InitStructure;
1284:
1285: /* Enable GPIOB clock */
0x08000954 B510 PUSH {r4,lr}
0x08000956 B086 SUB sp,sp,#0x18
1286: RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
1287:
1288: /* Enable SPI2 clock */
0x08000958 2101 MOVS r1,#0x01
0x0800095A 2008 MOVS r0,#0x08
0x0800095C F001F8EC BL.W RCC_APB2PeriphClockCmd (0x08001B38)
1289: RCC_APB1PeriphClockCmd(RCC_APB1Periph_SPI2, ENABLE);
1290:
1291: /* Configure SPI2 pins: NSS, SCK, MISO and MOSI */
0x08000960 2101 MOVS r1,#0x01
0x08000962 0388 LSLS r0,r1,#14
0x08000964 F001F8D0 BL.W RCC_APB1PeriphClockCmd (0x08001B08)
1292: GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15;
0x08000968 F44F4070 MOV r0,#0xF000
0x0800096C F8AD0014 STRH r0,[sp,#0x14]
1293: GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
0x08000970 2003 MOVS r0,#0x03
0x08000972 F88D0016 STRB r0,[sp,#0x16]
1294: GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
0x08000976 2018 MOVS r0,#0x18
0x08000978 F88D0017 STRB r0,[sp,#0x17]
1295: GPIO_Init(GPIOB, &GPIO_InitStructure);
1296:
0x0800097C A905 ADD r1,sp,#0x14
0x0800097E 48B3 LDR r0,[pc,#716] ; @0x08000C4C
0x08000980 F001F858 BL.W GPIO_Init (0x08001A34)
1297: SPI_I2S_DeInit(SPI2);
1298:
1299: /* SPI2 Config */
0x08000984 4CB2 LDR r4,[pc,#712] ; @0x08000C50
0x08000986 4620 MOV r0,r4
0x08000988 F001F990 BL.W SPI_I2S_DeInit (0x08001CAC)
1300: SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex;
0x0800098C 2100 MOVS r1,#0x00
0x0800098E F8AD1000 STRH r1,[sp,#0x00]
1301: SPI_InitStructure.SPI_Mode = SPI_Mode_Master;
0x08000992 F44F7082 MOV r0,#0x104
0x08000996 F8AD0002 STRH r0,[sp,#0x02]
1302: if(LCDType == LCD_ILI9320)
1303: {
0x0800099A 48AE LDR r0,[pc,#696] ; @0x08000C54
0x0800099C 6842 LDR r2,[r0,#0x04]
0x0800099E F5A24313 SUB r3,r2,#0x9300
0x080009A2 3B20 SUBS r3,r3,#0x20
0x080009A4 D108 BNE 0x080009B8
1304: SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b;
0x080009A6 F8AD1004 STRH r1,[sp,#0x04]
1305: SPI_InitStructure.SPI_CPOL = SPI_CPOL_High;
0x080009AA 2002 MOVS r0,#0x02
0x080009AC F8AD0006 STRH r0,[sp,#0x06]
1306: SPI_InitStructure.SPI_CPHA = SPI_CPHA_2Edge;
1307: }
0x080009B0 2001 MOVS r0,#0x01
0x080009B2 F8AD0008 STRH r0,[sp,#0x08]
0x080009B6 E00C B 0x080009D2
1308: else if(LCDType == LCD_HX8312)
1309: {
0x080009B8 6840 LDR r0,[r0,#0x04]
0x080009BA F5A04203 SUB r2,r0,#0x8300
0x080009BE 3A12 SUBS r2,r2,#0x12
0x080009C0 D107 BNE 0x080009D2
1310: SPI_InitStructure.SPI_DataSize = SPI_DataSize_16b;
0x080009C2 F44F6000 MOV r0,#0x800
0x080009C6 F8AD0004 STRH r0,[sp,#0x04]
1311: SPI_InitStructure.SPI_CPOL = SPI_CPOL_Low;
0x080009CA F8AD1006 STRH r1,[sp,#0x06]
1312: SPI_InitStructure.SPI_CPHA = SPI_CPHA_1Edge;
1313: }
0x080009CE F8AD1008 STRH r1,[sp,#0x08]
1314: SPI_InitStructure.SPI_NSS = SPI_NSS_Soft;
0x080009D2 F44F7000 MOV r0,#0x200
1315: SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_2;
0x080009D6 F8AD100C STRH r1,[sp,#0x0C]
0x080009DA F8AD000A STRH r0,[sp,#0x0A]
1316: SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB;
0x080009DE F8AD100E STRH r1,[sp,#0x0E]
1317: SPI_Init(SPI2, &SPI_InitStructure);
1318:
1319: /* SPI2 enable */
0x080009E2 4669 MOV r1,sp
0x080009E4 4620 MOV r0,r4
0x080009E6 F001F992 BL.W SPI_Init (0x08001D0E)
1320: SPI_Cmd(SPI2, ENABLE);
0x080009EA 2101 MOVS r1,#0x01
0x080009EC 4620 MOV r0,r4
0x080009EE F001F94B BL.W SPI_Cmd (0x08001C88)
1321: }
0x080009F2 B006 ADD sp,sp,#0x18
0x080009F4 BD10 POP {r4,pc}
1235: {
1236: GPIO_InitTypeDef GPIO_InitStructure;
1237:
1238: /* Configure NCS (PB.02) in Output Push-Pull mode */
0x080009F6 B538 PUSH {r3-r5,lr}
1239: GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;
0x080009F8 2004 MOVS r0,#0x04
0x080009FA F8AD0000 STRH r0,[sp,#0x00]
1240: GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
0x080009FE 2003 MOVS r0,#0x03
0x08000A00 F88D0002 STRB r0,[sp,#0x02]
1241: GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
0x08000A04 2010 MOVS r0,#0x10
0x08000A06 F88D0003 STRB r0,[sp,#0x03]
1242: GPIO_Init(GPIOB, &GPIO_InitStructure);
1243:
1244: /* Configure NWR(RNW), RS (PD.15, PD.07) in Output Push-Pull mode */
0x08000A0A 4669 MOV r1,sp
0x08000A0C 488F LDR r0,[pc,#572] ; @0x08000C4C
0x08000A0E F001F811 BL.W GPIO_Init (0x08001A34)
1245: GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7 | GPIO_Pin_15;
0x08000A12 F2480080 MOVW r0,#0x8080
1246: GPIO_Init(GPIOD, &GPIO_InitStructure);
1247:
0x08000A16 4C90 LDR r4,[pc,#576] ; @0x08000C58
0x08000A18 F8AD0000 STRH r0,[sp,#0x00]
0x08000A1C 4669 MOV r1,sp
0x08000A1E 4620 MOV r0,r4
0x08000A20 F001F808 BL.W GPIO_Init (0x08001A34)
1248: LCD_CtrlLinesWrite(GPIOD, CtrlPin_NWR, Bit_SET);
0x08000A24 2201 MOVS r2,#0x01
0x08000A26 03D1 LSLS r1,r2,#15
0x08000A28 4620 MOV r0,r4
0x08000A2A F7FFFF0D BL.W LCD_CtrlLinesWrite (0x08000848)
1249: LCD_CtrlLinesWrite(GPIOD, CtrlPin_RS, Bit_SET);
0x08000A2E 2201 MOVS r2,#0x01
0x08000A30 2180 MOVS r1,#0x80
0x08000A32 4620 MOV r0,r4
0x08000A34 F7FFFF08 BL.W LCD_CtrlLinesWrite (0x08000848)
1250: }
0x08000A38 BD38 POP {r3-r5,pc}
59: {
60: /* Configure the LCD Control pins --------------------------------------------*/
0x08000A3A B510 PUSH {r4,lr}
61: LCD_CtrlLinesConfig();
62:
63: /* Configure the SPI2 interface ----------------------------------------------*/
0x08000A3C F7FFFFDB BL.W LCD_CtrlLinesConfig (0x080009F6)
64: LCD_SPIConfig();
65:
0x08000A40 F7FFFF88 BL.W LCD_SPIConfig (0x08000954)
66: if(LCDType == LCD_ILI9320)
67: {
0x08000A44 4883 LDR r0,[pc,#524] ; @0x08000C54
0x08000A46 6841 LDR r1,[r0,#0x04]
0x08000A48 F5A14213 SUB r2,r1,#0x9300
0x08000A4C 3A20 SUBS r2,r2,#0x20
0x08000A4E D17E BNE 0x08000B4E
68: Delay(5); /* Delay 50 ms */
69: /* Start Initial Sequence ------------------------------------------------*/
0x08000A50 2005 MOVS r0,#0x05
0x08000A52 F7FFFB5A BL.W Delay (0x0800010A)
70: LCD_WriteReg(R229, 0x8000); /* Set the internal vcore voltage */
0x08000A56 F44F4100 MOV r1,#0x8000
0x08000A5A 20E5 MOVS r0,#0xE5
0x08000A5C F7FFFF29 BL.W LCD_WriteReg (0x080008B2)
71: LCD_WriteReg(R0, 0x0001); /* Start internal OSC. */
0x08000A60 2101 MOVS r1,#0x01
0x08000A62 2000 MOVS r0,#0x00
0x08000A64 F7FFFF25 BL.W LCD_WriteReg (0x080008B2)
72: LCD_WriteReg(R1, 0x0100); /* set SS and SM bit */
0x08000A68 F44F7180 MOV r1,#0x100
0x08000A6C 2001 MOVS r0,#0x01
0x08000A6E F7FFFF20 BL.W LCD_WriteReg (0x080008B2)
73: LCD_WriteReg(R2, 0x0700); /* set 1 line inversion */
0x08000A72 F44F61E0 MOV r1,#0x700
0x08000A76 2002 MOVS r0,#0x02
0x08000A78 F7FFFF1B BL.W LCD_WriteReg (0x080008B2)
74: LCD_WriteReg(R3, 0x1030); /* set GRAM write direction and BGR=1. */
0x08000A7C F2410130 MOVW r1,#0x1030
0x08000A80 2003 MOVS r0,#0x03
0x08000A82 F7FFFF16 BL.W LCD_WriteReg (0x080008B2)
75: LCD_WriteReg(R4, 0x0000); /* Resize register */
0x08000A86 2100 MOVS r1,#0x00
0x08000A88 2004 MOVS r0,#0x04
0x08000A8A F7FFFF12 BL.W LCD_WriteReg (0x080008B2)
76: LCD_WriteReg(R8, 0x0202); /* set the back porch and front porch */
0x08000A8E F2402102 MOVW r1,#0x202
0x08000A92 2008 MOVS r0,#0x08
0x08000A94 F7FFFF0D BL.W LCD_WriteReg (0x080008B2)
77: LCD_WriteReg(R9, 0x0000); /* set non-display area refresh cycle ISC[3:0] */
0x08000A98 2100 MOVS r1,#0x00
0x08000A9A 2009 MOVS r0,#0x09
0x08000A9C F7FFFF09 BL.W LCD_WriteReg (0x080008B2)
78: LCD_WriteReg(R10, 0x0000); /* FMARK function */
0x08000AA0 2100 MOVS r1,#0x00
0x08000AA2 200A MOVS r0,#0x0A
0x08000AA4 F7FFFF05 BL.W LCD_WriteReg (0x080008B2)
79: LCD_WriteReg(R12, 0x0000); /* RGB interface setting */
0x08000AA8 2100 MOVS r1,#0x00
0x08000AAA 200C MOVS r0,#0x0C
0x08000AAC F7FFFF01 BL.W LCD_WriteReg (0x080008B2)
80: LCD_WriteReg(R13, 0x0000); /* Frame marker Position */
0x08000AB0 2100 MOVS r1,#0x00
0x08000AB2 200D MOVS r0,#0x0D
0x08000AB4 F7FFFEFD BL.W LCD_WriteReg (0x080008B2)
81: LCD_WriteReg(R15, 0x0000); /* RGB interface polarity */
82:
83: /* Power On sequence -----------------------------------------------------*/
0x08000AB8 2100 MOVS r1,#0x00
0x08000ABA 200F MOVS r0,#0x0F
0x08000ABC F7FFFEF9 BL.W LCD_WriteReg (0x080008B2)
84: LCD_WriteReg(R16, 0x0000); /* SAP, BT[3:0], AP, DSTB, SLP, STB */
0x08000AC0 2100 MOVS r1,#0x00
0x08000AC2 2010 MOVS r0,#0x10
0x08000AC4 F7FFFEF5 BL.W LCD_WriteReg (0x080008B2)
85: LCD_WriteReg(R17, 0x0000); /* DC1[2:0], DC0[2:0], VC[2:0] */
0x08000AC8 2100 MOVS r1,#0x00
0x08000ACA 2011 MOVS r0,#0x11
0x08000ACC F7FFFEF1 BL.W LCD_WriteReg (0x080008B2)
86: LCD_WriteReg(R18, 0x0000); /* VREG1OUT voltage */
0x08000AD0 2100 MOVS r1,#0x00
0x08000AD2 2012 MOVS r0,#0x12
0x08000AD4 F7FFFEED BL.W LCD_WriteReg (0x080008B2)
87: LCD_WriteReg(R19, 0x0000); /* VDV[4:0] for VCOM amplitude */
0x08000AD8 2100 MOVS r1,#0x00
0x08000ADA 2013 MOVS r0,#0x13
0x08000ADC F7FFFEE9 BL.W LCD_WriteReg (0x080008B2)
88: Delay(20); /* Dis-charge capacitor power voltage (200ms) */
0x08000AE0 2014 MOVS r0,#0x14
0x08000AE2 F7FFFB12 BL.W Delay (0x0800010A)
89: LCD_WriteReg(R16, 0x17B0); /* SAP, BT[3:0], AP, DSTB, SLP, STB */
0x08000AE6 F24171B0 MOVW r1,#0x17B0
0x08000AEA 2010 MOVS r0,#0x10
0x08000AEC F7FFFEE1 BL.W LCD_WriteReg (0x080008B2)
90: LCD_WriteReg(R17, 0x0137); /* DC1[2:0], DC0[2:0], VC[2:0] */
0x08000AF0 F2401137 MOVW r1,#0x137
0x08000AF4 2011 MOVS r0,#0x11
0x08000AF6 F7FFFEDC BL.W LCD_WriteReg (0x080008B2)
91: Delay(5); /* Delay 50 ms */
0x08000AFA 2005 MOVS r0,#0x05
0x08000AFC F7FFFB05 BL.W Delay (0x0800010A)
92: LCD_WriteReg(R18, 0x0139); /* VREG1OUT voltage */
0x08000B00 F2401139 MOVW r1,#0x139
0x08000B04 2012 MOVS r0,#0x12
0x08000B06 F7FFFED4 BL.W LCD_WriteReg (0x080008B2)
93: Delay(5); /* Delay 50 ms */
0x08000B0A 2005 MOVS r0,#0x05
0x08000B0C F7FFFAFD BL.W Delay (0x0800010A)
94: LCD_WriteReg(R19, 0x1d00); /* VDV[4:0] for VCOM amplitude */
0x08000B10 F44F51E8 MOV r1,#0x1D00
0x08000B14 2013 MOVS r0,#0x13
0x08000B16 F7FFFECC BL.W LCD_WriteReg (0x080008B2)
95: LCD_WriteReg(R41, 0x0013); /* VCM[4:0] for VCOMH */
0x08000B1A 2113 MOVS r1,#0x13
0x08000B1C 2029 MOVS r0,#0x29
0x08000B1E F7FFFEC8 BL.W LCD_WriteReg (0x080008B2)
96: Delay(5); /* Delay 50 ms */
0x08000B22 2005 MOVS r0,#0x05
0x08000B24 F7FFFAF1 BL.W Delay (0x0800010A)
97: LCD_WriteReg(R32, 0x0000); /* GRAM horizontal Address */
0x08000B28 2100 MOVS r1,#0x00
0x08000B2A 2020 MOVS r0,#0x20
0x08000B2C F7FFFEC1 BL.W LCD_WriteReg (0x080008B2)
98: LCD_WriteReg(R33, 0x0000); /* GRAM Vertical Address */
99:
100: /* Adjust the Gamma Curve ------------------------------------------------*/
0x08000B30 2100 MOVS r1,#0x00
0x08000B32 2021 MOVS r0,#0x21
0x08000B34 F7FFFEBD BL.W LCD_WriteReg (0x080008B2)
101: LCD_WriteReg(R48, 0x0006);
0x08000B38 2106 MOVS r1,#0x06
0x08000B3A 2030 MOVS r0,#0x30
0x08000B3C F7FFFEB9 BL.W LCD_WriteReg (0x080008B2)
102: LCD_WriteReg(R49, 0x0101);
0x08000B40 F2401101 MOVW r1,#0x101
0x08000B44 2031 MOVS r0,#0x31
0x08000B46 F7FFFEB4 BL.W LCD_WriteReg (0x080008B2)
103: LCD_WriteReg(R50, 0x0003);
0x08000B4A 2103 MOVS r1,#0x03
0x08000B4C E000 B 0x08000B50
0x08000B4E E085 B 0x08000C5C
0x08000B50 2032 MOVS r0,#0x32
0x08000B52 F7FFFEAE BL.W LCD_WriteReg (0x080008B2)
104: LCD_WriteReg(R53, 0x0106);
0x08000B56 F44F7183 MOV r1,#0x106
0x08000B5A 2035 MOVS r0,#0x35
0x08000B5C F7FFFEA9 BL.W LCD_WriteReg (0x080008B2)
105: LCD_WriteReg(R54, 0x0b02);
0x08000B60 F6403102 MOVW r1,#0xB02
0x08000B64 2036 MOVS r0,#0x36
0x08000B66 F7FFFEA4 BL.W LCD_WriteReg (0x080008B2)
106: LCD_WriteReg(R55, 0x0302);
0x08000B6A F2403102 MOVW r1,#0x302
0x08000B6E 2037 MOVS r0,#0x37
0x08000B70 F7FFFE9F BL.W LCD_WriteReg (0x080008B2)
107: LCD_WriteReg(R56, 0x0707);
0x08000B74 F2407107 MOVW r1,#0x707
0x08000B78 2038 MOVS r0,#0x38
0x08000B7A F7FFFE9A BL.W LCD_WriteReg (0x080008B2)
108: LCD_WriteReg(R57, 0x0007);
0x08000B7E 2107 MOVS r1,#0x07
0x08000B80 2039 MOVS r0,#0x39
0x08000B82 F7FFFE96 BL.W LCD_WriteReg (0x080008B2)
109: LCD_WriteReg(R60, 0x0600);
0x08000B86 F44F61C0 MOV r1,#0x600
0x08000B8A 203C MOVS r0,#0x3C
0x08000B8C F7FFFE91 BL.W LCD_WriteReg (0x080008B2)
110: LCD_WriteReg(R61, 0x020b);
111:
112: /* Set GRAM area ---------------------------------------------------------*/
0x08000B90 F240210B MOVW r1,#0x20B
0x08000B94 203D MOVS r0,#0x3D
0x08000B96 F7FFFE8C BL.W LCD_WriteReg (0x080008B2)
113: LCD_WriteReg(R80, 0x0000); /* Horizontal GRAM Start Address */
0x08000B9A 2100 MOVS r1,#0x00
0x08000B9C 2050 MOVS r0,#0x50
0x08000B9E F7FFFE88 BL.W LCD_WriteReg (0x080008B2)
114: LCD_WriteReg(R81, 0x00EF); /* Horizontal GRAM End Address */
0x08000BA2 21EF MOVS r1,#0xEF
0x08000BA4 2051 MOVS r0,#0x51
0x08000BA6 F7FFFE84 BL.W LCD_WriteReg (0x080008B2)
115: LCD_WriteReg(R82, 0x0000); /* Vertical GRAM Start Address */
0x08000BAA 2100 MOVS r1,#0x00
0x08000BAC 2052 MOVS r0,#0x52
0x08000BAE F7FFFE80 BL.W LCD_WriteReg (0x080008B2)
116: LCD_WriteReg(R83, 0x013F); /* Vertical GRAM End Address */
117:
0x08000BB2 F240113F MOVW r1,#0x13F
0x08000BB6 2053 MOVS r0,#0x53
0x08000BB8 F7FFFE7B BL.W LCD_WriteReg (0x080008B2)
118: LCD_WriteReg(R96, 0x2700); /* Gate Scan Line */
0x08000BBC F44F511C MOV r1,#0x2700
0x08000BC0 2060 MOVS r0,#0x60
0x08000BC2 F7FFFE76 BL.W LCD_WriteReg (0x080008B2)
119: LCD_WriteReg(R97, 0x0001); /* NDL,VLE, REV */
0x08000BC6 2101 MOVS r1,#0x01
0x08000BC8 2061 MOVS r0,#0x61
0x08000BCA F7FFFE72 BL.W LCD_WriteReg (0x080008B2)
120: LCD_WriteReg(R106, 0x0000); /* set scrolling line */
121:
122: /* Partial Display Control -----------------------------------------------*/
0x08000BCE 2100 MOVS r1,#0x00
0x08000BD0 206A MOVS r0,#0x6A
0x08000BD2 F7FFFE6E BL.W LCD_WriteReg (0x080008B2)
123: LCD_WriteReg(R128, 0x0000);
0x08000BD6 2100 MOVS r1,#0x00
0x08000BD8 2080 MOVS r0,#0x80
0x08000BDA F7FFFE6A BL.W LCD_WriteReg (0x080008B2)
124: LCD_WriteReg(R129, 0x0000);
0x08000BDE 2100 MOVS r1,#0x00
0x08000BE0 2081 MOVS r0,#0x81
0x08000BE2 F7FFFE66 BL.W LCD_WriteReg (0x080008B2)
125: LCD_WriteReg(R130, 0x0000);
0x08000BE6 2100 MOVS r1,#0x00
0x08000BE8 2082 MOVS r0,#0x82
0x08000BEA F7FFFE62 BL.W LCD_WriteReg (0x080008B2)
126: LCD_WriteReg(R131, 0x0000);
0x08000BEE 2100 MOVS r1,#0x00
0x08000BF0 2083 MOVS r0,#0x83
0x08000BF2 F7FFFE5E BL.W LCD_WriteReg (0x080008B2)
127: LCD_WriteReg(R132, 0x0000);
0x08000BF6 2100 MOVS r1,#0x00
0x08000BF8 2084 MOVS r0,#0x84
0x08000BFA F7FFFE5A BL.W LCD_WriteReg (0x080008B2)
128: LCD_WriteReg(R133, 0x0000);
129:
130: /* Panel Control ---------------------------------------------------------*/
0x08000BFE 2100 MOVS r1,#0x00
0x08000C00 2085 MOVS r0,#0x85
0x08000C02 F7FFFE56 BL.W LCD_WriteReg (0x080008B2)
131: LCD_WriteReg(R144, 0x0010);
0x08000C06 2110 MOVS r1,#0x10
0x08000C08 2090 MOVS r0,#0x90
0x08000C0A F7FFFE52 BL.W LCD_WriteReg (0x080008B2)
132: LCD_WriteReg(R146, 0x0000);
0x08000C0E 2100 MOVS r1,#0x00
0x08000C10 2092 MOVS r0,#0x92
0x08000C12 F7FFFE4E BL.W LCD_WriteReg (0x080008B2)
133: LCD_WriteReg(R147, 0x0003);
0x08000C16 2103 MOVS r1,#0x03
0x08000C18 2093 MOVS r0,#0x93
0x08000C1A F7FFFE4A BL.W LCD_WriteReg (0x080008B2)
134: LCD_WriteReg(R149, 0x0110);
0x08000C1E F44F7188 MOV r1,#0x110
0x08000C22 2095 MOVS r0,#0x95
0x08000C24 F7FFFE45 BL.W LCD_WriteReg (0x080008B2)
135: LCD_WriteReg(R151, 0x0000);
0x08000C28 2100 MOVS r1,#0x00
0x08000C2A 2097 MOVS r0,#0x97
0x08000C2C F7FFFE41 BL.W LCD_WriteReg (0x080008B2)
136: LCD_WriteReg(R152, 0x0000);
137:
138: /* Set GRAM write direction and BGR = 1 */
139: /* I/D=01 (Horizontal : increment, Vertical : decrement) */
140: /* AM=1 (address is updated in vertical writing direction) */
0x08000C30 2100 MOVS r1,#0x00
0x08000C32 2098 MOVS r0,#0x98
0x08000C34 F7FFFE3D BL.W LCD_WriteReg (0x080008B2)
141: LCD_WriteReg(R3, 0x1018);
142:
0x08000C38 F2410118 MOVW r1,#0x1018
0x08000C3C 2003 MOVS r0,#0x03
0x08000C3E F7FFFE38 BL.W LCD_WriteReg (0x080008B2)
143: LCD_WriteReg(R7, 0x0173); /* 262K color and display ON */
144: }
0x08000C42 F2401173 MOVW r1,#0x173
0x08000C46 2007 MOVS r0,#0x07
0x08000C48 E166 B 0x08000F18
0x08000C4A 0000 MOVS r0,r0
0x08000C4C 0C00 LSRS r0,r0,#16
0x08000C4E 4001 ANDS r1,r1,r0
0x08000C50 3800 SUBS r0,r0,#0x00
0x08000C52 4000 ANDS r0,r0,r0
0x08000C54 0008 MOVS r0,r1
0x08000C56 2000 MOVS r0,#0x00
0x08000C58 1400 ASRS r0,r0,#16
0x08000C5A 4001 ANDS r1,r1,r0
145: else if(LCDType == LCD_HX8312)
146: {
147: /* Enable the LCD Oscillator ---------------------------------------------*/
0x08000C5C 6840 LDR r0,[r0,#0x04]
0x08000C5E F5A04103 SUB r1,r0,#0x8300
0x08000C62 3912 SUBS r1,r1,#0x12
0x08000C64 D17E BNE 0x08000D64
148: LCD_WriteReg(R1, 0x10);
0x08000C66 2110 MOVS r1,#0x10
0x08000C68 2001 MOVS r0,#0x01
0x08000C6A F7FFFE22 BL.W LCD_WriteReg (0x080008B2)
149: LCD_WriteReg(R0, 0xA0);
0x08000C6E 21A0 MOVS r1,#0xA0
0x08000C70 2000 MOVS r0,#0x00
0x08000C72 F7FFFE1E BL.W LCD_WriteReg (0x080008B2)
150: LCD_WriteReg(R3, 0x01);
0x08000C76 2101 MOVS r1,#0x01
0x08000C78 2003 MOVS r0,#0x03
0x08000C7A F7FFFE1A BL.W LCD_WriteReg (0x080008B2)
151: Delay(1); /* Delay 10 ms */
0x08000C7E 2001 MOVS r0,#0x01
0x08000C80 F7FFFA43 BL.W Delay (0x0800010A)
152: LCD_WriteReg(R3, 0x00);
0x08000C84 2100 MOVS r1,#0x00
0x08000C86 2003 MOVS r0,#0x03
0x08000C88 F7FFFE13 BL.W LCD_WriteReg (0x080008B2)
153: LCD_WriteReg(R43, 0x04);
154:
0x08000C8C 2104 MOVS r1,#0x04
0x08000C8E 202B MOVS r0,#0x2B
0x08000C90 F7FFFE0F BL.W LCD_WriteReg (0x080008B2)
155: LCD_WriteReg(R40, 0x18);
0x08000C94 2118 MOVS r1,#0x18
0x08000C96 2028 MOVS r0,#0x28
0x08000C98 F7FFFE0B BL.W LCD_WriteReg (0x080008B2)
156: LCD_WriteReg(R26, 0x05);
0x08000C9C 2105 MOVS r1,#0x05
0x08000C9E 201A MOVS r0,#0x1A
0x08000CA0 F7FFFE07 BL.W LCD_WriteReg (0x080008B2)
157: LCD_WriteReg(R37, 0x05);
0x08000CA4 2105 MOVS r1,#0x05
0x08000CA6 2025 MOVS r0,#0x25
0x08000CA8 F7FFFE03 BL.W LCD_WriteReg (0x080008B2)
158: LCD_WriteReg(R25, 0x00);
159:
160: /* LCD Power On ----------------------------------------------------------*/
0x08000CAC 2100 MOVS r1,#0x00
0x08000CAE 2019 MOVS r0,#0x19
0x08000CB0 F7FFFDFF BL.W LCD_WriteReg (0x080008B2)
161: LCD_WriteReg(R28, 0x73);
0x08000CB4 2173 MOVS r1,#0x73
0x08000CB6 201C MOVS r0,#0x1C
0x08000CB8 F7FFFDFB BL.W LCD_WriteReg (0x080008B2)
162: LCD_WriteReg(R36, 0x74);
0x08000CBC 2174 MOVS r1,#0x74
0x08000CBE 2024 MOVS r0,#0x24
0x08000CC0 F7FFFDF7 BL.W LCD_WriteReg (0x080008B2)
163: LCD_WriteReg(R30, 0x01);
0x08000CC4 2101 MOVS r1,#0x01
0x08000CC6 201E MOVS r0,#0x1E
0x08000CC8 F7FFFDF3 BL.W LCD_WriteReg (0x080008B2)
164: LCD_WriteReg(R24, 0xC1);
0x08000CCC 21C1 MOVS r1,#0xC1
0x08000CCE 2018 MOVS r0,#0x18
0x08000CD0 F7FFFDEF BL.W LCD_WriteReg (0x080008B2)
165: Delay(1); /* Delay 10 ms */
0x08000CD4 2001 MOVS r0,#0x01
0x08000CD6 F7FFFA18 BL.W Delay (0x0800010A)
166: LCD_WriteReg(R24, 0xE1);
0x08000CDA 21E1 MOVS r1,#0xE1
0x08000CDC 2018 MOVS r0,#0x18
0x08000CDE F7FFFDE8 BL.W LCD_WriteReg (0x080008B2)
167: LCD_WriteReg(R24, 0xF1);
0x08000CE2 21F1 MOVS r1,#0xF1
0x08000CE4 2018 MOVS r0,#0x18
0x08000CE6 F7FFFDE4 BL.W LCD_WriteReg (0x080008B2)
168: Delay(6); /* Delay 60 ms */
0x08000CEA 2006 MOVS r0,#0x06
0x08000CEC F7FFFA0D BL.W Delay (0x0800010A)
169: LCD_WriteReg(R24, 0xF5);
0x08000CF0 21F5 MOVS r1,#0xF5
0x08000CF2 2018 MOVS r0,#0x18
0x08000CF4 F7FFFDDD BL.W LCD_WriteReg (0x080008B2)
170: Delay(6); /* Delay 60 ms */
0x08000CF8 2006 MOVS r0,#0x06
0x08000CFA F7FFFA06 BL.W Delay (0x0800010A)
171: LCD_WriteReg(R27, 0x09);
0x08000CFE 2109 MOVS r1,#0x09
0x08000D00 201B MOVS r0,#0x1B
0x08000D02 F7FFFDD6 BL.W LCD_WriteReg (0x080008B2)
172: Delay(1); /* Delay 10 ms */
0x08000D06 2001 MOVS r0,#0x01
0x08000D08 F7FFF9FF BL.W Delay (0x0800010A)
173: LCD_WriteReg(R31, 0x11);
0x08000D0C 2111 MOVS r1,#0x11
0x08000D0E 201F MOVS r0,#0x1F
0x08000D10 F7FFFDCF BL.W LCD_WriteReg (0x080008B2)
174: LCD_WriteReg(R32, 0x0E);
0x08000D14 210E MOVS r1,#0x0E
0x08000D16 2020 MOVS r0,#0x20
0x08000D18 F7FFFDCB BL.W LCD_WriteReg (0x080008B2)
175: LCD_WriteReg(R30, 0x81);
0x08000D1C 2181 MOVS r1,#0x81
0x08000D1E 201E MOVS r0,#0x1E
0x08000D20 F7FFFDC7 BL.W LCD_WriteReg (0x080008B2)
176: Delay(1); /* Delay 10 ms */
177:
178: /* Chip Set --------------------------------------------------------------*/
0x08000D24 2001 MOVS r0,#0x01
0x08000D26 F7FFF9F0 BL.W Delay (0x0800010A)
179: LCD_WriteReg(R157, 0x00);
0x08000D2A 2100 MOVS r1,#0x00
0x08000D2C 209D MOVS r0,#0x9D
0x08000D2E F7FFFDC0 BL.W LCD_WriteReg (0x080008B2)
180: LCD_WriteReg(R192, 0x00);
181:
0x08000D32 2100 MOVS r1,#0x00
0x08000D34 20C0 MOVS r0,#0xC0
0x08000D36 F7FFFDBC BL.W LCD_WriteReg (0x080008B2)
182: LCD_WriteReg(R14, 0x00);
0x08000D3A 2100 MOVS r1,#0x00
0x08000D3C 200E MOVS r0,#0x0E
0x08000D3E F7FFFDB8 BL.W LCD_WriteReg (0x080008B2)
183: LCD_WriteReg(R15, 0x00);
0x08000D42 2100 MOVS r1,#0x00
0x08000D44 200F MOVS r0,#0x0F
0x08000D46 F7FFFDB4 BL.W LCD_WriteReg (0x080008B2)
184: LCD_WriteReg(R16, 0x00);
0x08000D4A 2100 MOVS r1,#0x00
0x08000D4C 2010 MOVS r0,#0x10
0x08000D4E F7FFFDB0 BL.W LCD_WriteReg (0x080008B2)
185: LCD_WriteReg(R17, 0x00);
0x08000D52 2100 MOVS r1,#0x00
0x08000D54 2011 MOVS r0,#0x11
0x08000D56 F7FFFDAC BL.W LCD_WriteReg (0x080008B2)
186: LCD_WriteReg(R18, 0x00);
0x08000D5A 2100 MOVS r1,#0x00
0x08000D5C 2012 MOVS r0,#0x12
0x08000D5E F7FFFDA8 BL.W LCD_WriteReg (0x080008B2)
187: LCD_WriteReg(R19, 0x00);
0x08000D62 E000 B 0x08000D66
0x08000D64 E0DB B 0x08000F1E
0x08000D66 2100 MOVS r1,#0x00
0x08000D68 2013 MOVS r0,#0x13
0x08000D6A F7FFFDA2 BL.W LCD_WriteReg (0x080008B2)
188: LCD_WriteReg(R20, 0x00);
0x08000D6E 2100 MOVS r1,#0x00
0x08000D70 2014 MOVS r0,#0x14
0x08000D72 F7FFFD9E BL.W LCD_WriteReg (0x080008B2)
189: LCD_WriteReg(R21, 0x00);
0x08000D76 2100 MOVS r1,#0x00
0x08000D78 2015 MOVS r0,#0x15
0x08000D7A F7FFFD9A BL.W LCD_WriteReg (0x080008B2)
190: LCD_WriteReg(R22, 0x00);
0x08000D7E 2100 MOVS r1,#0x00
0x08000D80 2016 MOVS r0,#0x16
0x08000D82 F7FFFD96 BL.W LCD_WriteReg (0x080008B2)
191: LCD_WriteReg(R23, 0x00);
192:
0x08000D86 2100 MOVS r1,#0x00
0x08000D88 2017 MOVS r0,#0x17
0x08000D8A F7FFFD92 BL.W LCD_WriteReg (0x080008B2)
193: LCD_WriteReg(R52, 0x01);
0x08000D8E 2101 MOVS r1,#0x01
0x08000D90 2034 MOVS r0,#0x34
0x08000D92 F7FFFD8E BL.W LCD_WriteReg (0x080008B2)
194: LCD_WriteReg(R53, 0x00);
195:
0x08000D96 2100 MOVS r1,#0x00
0x08000D98 2035 MOVS r0,#0x35
0x08000D9A F7FFFD8A BL.W LCD_WriteReg (0x080008B2)
196: LCD_WriteReg(R75, 0x00);
0x08000D9E 2100 MOVS r1,#0x00
0x08000DA0 204B MOVS r0,#0x4B
0x08000DA2 F7FFFD86 BL.W LCD_WriteReg (0x080008B2)
197: LCD_WriteReg(R76, 0x00);
0x08000DA6 2100 MOVS r1,#0x00
0x08000DA8 204C MOVS r0,#0x4C
0x08000DAA F7FFFD82 BL.W LCD_WriteReg (0x080008B2)
198: LCD_WriteReg(R78, 0x00);
0x08000DAE 2100 MOVS r1,#0x00
0x08000DB0 204E MOVS r0,#0x4E
0x08000DB2 F7FFFD7E BL.W LCD_WriteReg (0x080008B2)
199: LCD_WriteReg(R79, 0x00);
0x08000DB6 2100 MOVS r1,#0x00
0x08000DB8 204F MOVS r0,#0x4F
0x08000DBA F7FFFD7A BL.W LCD_WriteReg (0x080008B2)
200: LCD_WriteReg(R80, 0x00);
201:
0x08000DBE 2100 MOVS r1,#0x00
0x08000DC0 2050 MOVS r0,#0x50
0x08000DC2 F7FFFD76 BL.W LCD_WriteReg (0x080008B2)
202: LCD_WriteReg(R60, 0x00);
0x08000DC6 2100 MOVS r1,#0x00
0x08000DC8 203C MOVS r0,#0x3C
0x08000DCA F7FFFD72 BL.W LCD_WriteReg (0x080008B2)
203: LCD_WriteReg(R61, 0x00);
0x08000DCE 2100 MOVS r1,#0x00
0x08000DD0 203D MOVS r0,#0x3D
0x08000DD2 F7FFFD6E BL.W LCD_WriteReg (0x080008B2)
204: LCD_WriteReg(R62, 0x01);
0x08000DD6 2101 MOVS r1,#0x01
0x08000DD8 203E MOVS r0,#0x3E
0x08000DDA F7FFFD6A BL.W LCD_WriteReg (0x080008B2)
205: LCD_WriteReg(R63, 0x3F);
0x08000DDE 213F MOVS r1,#0x3F
0x08000DE0 4608 MOV r0,r1
0x08000DE2 F7FFFD66 BL.W LCD_WriteReg (0x080008B2)
206: LCD_WriteReg(R64, 0x02);
0x08000DE6 2102 MOVS r1,#0x02
0x08000DE8 2040 MOVS r0,#0x40
0x08000DEA F7FFFD62 BL.W LCD_WriteReg (0x080008B2)
207: LCD_WriteReg(R65, 0x02);
0x08000DEE 2102 MOVS r1,#0x02
0x08000DF0 2041 MOVS r0,#0x41
0x08000DF2 F7FFFD5E BL.W LCD_WriteReg (0x080008B2)
208: LCD_WriteReg(R66, 0x00);
0x08000DF6 2100 MOVS r1,#0x00
0x08000DF8 2042 MOVS r0,#0x42
0x08000DFA F7FFFD5A BL.W LCD_WriteReg (0x080008B2)
209: LCD_WriteReg(R67, 0x00);
0x08000DFE 2100 MOVS r1,#0x00
0x08000E00 2043 MOVS r0,#0x43
0x08000E02 F7FFFD56 BL.W LCD_WriteReg (0x080008B2)
210: LCD_WriteReg(R68, 0x00);
0x08000E06 2100 MOVS r1,#0x00
0x08000E08 2044 MOVS r0,#0x44
0x08000E0A F7FFFD52 BL.W LCD_WriteReg (0x080008B2)
211: LCD_WriteReg(R69, 0x00);
0x08000E0E 2100 MOVS r1,#0x00
0x08000E10 2045 MOVS r0,#0x45
0x08000E12 F7FFFD4E BL.W LCD_WriteReg (0x080008B2)
212: LCD_WriteReg(R70, 0xEF);
0x08000E16 21EF MOVS r1,#0xEF
0x08000E18 2046 MOVS r0,#0x46
0x08000E1A F7FFFD4A BL.W LCD_WriteReg (0x080008B2)
213: LCD_WriteReg(R71, 0x00);
0x08000E1E 2100 MOVS r1,#0x00
0x08000E20 2047 MOVS r0,#0x47
0x08000E22 F7FFFD46 BL.W LCD_WriteReg (0x080008B2)
214: LCD_WriteReg(R72, 0x00);
0x08000E26 2100 MOVS r1,#0x00
0x08000E28 2048 MOVS r0,#0x48
0x08000E2A F7FFFD42 BL.W LCD_WriteReg (0x080008B2)
215: LCD_WriteReg(R73, 0x01);
0x08000E2E 2101 MOVS r1,#0x01
0x08000E30 2049 MOVS r0,#0x49
0x08000E32 F7FFFD3E BL.W LCD_WriteReg (0x080008B2)
216: LCD_WriteReg(R74, 0x3F);
217:
0x08000E36 213F MOVS r1,#0x3F
0x08000E38 204A MOVS r0,#0x4A
0x08000E3A F7FFFD3A BL.W LCD_WriteReg (0x080008B2)
218: LCD_WriteReg(R29, 0x08); /* R29:Gate scan direction setting */
219:
0x08000E3E 2108 MOVS r1,#0x08
0x08000E40 201D MOVS r0,#0x1D
0x08000E42 F7FFFD36 BL.W LCD_WriteReg (0x080008B2)
220: LCD_WriteReg(R134, 0x00);
0x08000E46 2100 MOVS r1,#0x00
0x08000E48 2086 MOVS r0,#0x86
0x08000E4A F7FFFD32 BL.W LCD_WriteReg (0x080008B2)
221: LCD_WriteReg(R135, 0x30);
0x08000E4E 2130 MOVS r1,#0x30
0x08000E50 2087 MOVS r0,#0x87
0x08000E52 F7FFFD2E BL.W LCD_WriteReg (0x080008B2)
222: LCD_WriteReg(R136, 0x02);
0x08000E56 2102 MOVS r1,#0x02
0x08000E58 2088 MOVS r0,#0x88
0x08000E5A F7FFFD2A BL.W LCD_WriteReg (0x080008B2)
223: LCD_WriteReg(R137, 0x05);
224:
0x08000E5E 2105 MOVS r1,#0x05
0x08000E60 2089 MOVS r0,#0x89
0x08000E62 F7FFFD26 BL.W LCD_WriteReg (0x080008B2)
225: LCD_WriteReg(R141, 0x01); /* R141:Register set-up mode for one line clock */
0x08000E66 2101 MOVS r1,#0x01
0x08000E68 208D MOVS r0,#0x8D
0x08000E6A F7FFFD22 BL.W LCD_WriteReg (0x080008B2)
226: LCD_WriteReg(R139, 0x20); /* R139:One line SYSCLK number in one-line */
0x08000E6E 2120 MOVS r1,#0x20
0x08000E70 208B MOVS r0,#0x8B
0x08000E72 F7FFFD1E BL.W LCD_WriteReg (0x080008B2)
227: LCD_WriteReg(R51, 0x01); /* R51:N line inversion setting */
0x08000E76 2101 MOVS r1,#0x01
0x08000E78 2033 MOVS r0,#0x33
0x08000E7A F7FFFD1A BL.W LCD_WriteReg (0x080008B2)
228: LCD_WriteReg(R55, 0x01); /* R55:Scanning method setting */
0x08000E7E 2101 MOVS r1,#0x01
0x08000E80 2037 MOVS r0,#0x37
0x08000E82 F7FFFD16 BL.W LCD_WriteReg (0x080008B2)
229: LCD_WriteReg(R118, 0x00);
230:
231: /* Gamma Set -------------------------------------------------------------*/
0x08000E86 2100 MOVS r1,#0x00
0x08000E88 2076 MOVS r0,#0x76
0x08000E8A F7FFFD12 BL.W LCD_WriteReg (0x080008B2)
232: LCD_WriteReg(R143, 0x10);
0x08000E8E 2110 MOVS r1,#0x10
0x08000E90 208F MOVS r0,#0x8F
0x08000E92 F7FFFD0E BL.W LCD_WriteReg (0x080008B2)
233: LCD_WriteReg(R144, 0x67);
0x08000E96 2167 MOVS r1,#0x67
0x08000E98 2090 MOVS r0,#0x90
0x08000E9A F7FFFD0A BL.W LCD_WriteReg (0x080008B2)
234: LCD_WriteReg(R145, 0x07);
0x08000E9E 2107 MOVS r1,#0x07
0x08000EA0 2091 MOVS r0,#0x91
0x08000EA2 F7FFFD06 BL.W LCD_WriteReg (0x080008B2)
235: LCD_WriteReg(R146, 0x65);
0x08000EA6 2165 MOVS r1,#0x65
0x08000EA8 2092 MOVS r0,#0x92
0x08000EAA F7FFFD02 BL.W LCD_WriteReg (0x080008B2)
236: LCD_WriteReg(R147, 0x07);
0x08000EAE 2107 MOVS r1,#0x07
0x08000EB0 2093 MOVS r0,#0x93
0x08000EB2 F7FFFCFE BL.W LCD_WriteReg (0x080008B2)
237: LCD_WriteReg(R148, 0x01);
0x08000EB6 2101 MOVS r1,#0x01
0x08000EB8 2094 MOVS r0,#0x94
0x08000EBA F7FFFCFA BL.W LCD_WriteReg (0x080008B2)
238: LCD_WriteReg(R149, 0x76);
0x08000EBE 2176 MOVS r1,#0x76
0x08000EC0 2095 MOVS r0,#0x95
0x08000EC2 F7FFFCF6 BL.W LCD_WriteReg (0x080008B2)
239: LCD_WriteReg(R150, 0x56);
0x08000EC6 2156 MOVS r1,#0x56
0x08000EC8 2096 MOVS r0,#0x96
0x08000ECA F7FFFCF2 BL.W LCD_WriteReg (0x080008B2)
240: LCD_WriteReg(R151, 0x00);
0x08000ECE 2100 MOVS r1,#0x00
0x08000ED0 2097 MOVS r0,#0x97
0x08000ED2 F7FFFCEE BL.W LCD_WriteReg (0x080008B2)
241: LCD_WriteReg(R152, 0x06);
0x08000ED6 2106 MOVS r1,#0x06
0x08000ED8 2098 MOVS r0,#0x98
0x08000EDA F7FFFCEA BL.W LCD_WriteReg (0x080008B2)
242: LCD_WriteReg(R153, 0x03);
0x08000EDE 2103 MOVS r1,#0x03
0x08000EE0 2099 MOVS r0,#0x99
0x08000EE2 F7FFFCE6 BL.W LCD_WriteReg (0x080008B2)
243: LCD_WriteReg(R154, 0x00);
244:
245: /* Display On ------------------------------------------------------------*/
0x08000EE6 2100 MOVS r1,#0x00
0x08000EE8 209A MOVS r0,#0x9A
0x08000EEA F7FFFCE2 BL.W LCD_WriteReg (0x080008B2)
246: LCD_WriteReg(R1, 0x50);
0x08000EEE 2150 MOVS r1,#0x50
0x08000EF0 2001 MOVS r0,#0x01
0x08000EF2 F7FFFCDE BL.W LCD_WriteReg (0x080008B2)
247: LCD_WriteReg(R5, 0x04);
248:
0x08000EF6 2104 MOVS r1,#0x04
0x08000EF8 2005 MOVS r0,#0x05
0x08000EFA F7FFFCDA BL.W LCD_WriteReg (0x080008B2)
249: LCD_WriteReg(R0, 0x80);
0x08000EFE 2180 MOVS r1,#0x80
0x08000F00 2000 MOVS r0,#0x00
0x08000F02 F7FFFCD6 BL.W LCD_WriteReg (0x080008B2)
250: LCD_WriteReg(R59, 0x01);
0x08000F06 2101 MOVS r1,#0x01
0x08000F08 203B MOVS r0,#0x3B
0x08000F0A F7FFFCD2 BL.W LCD_WriteReg (0x080008B2)
251: Delay(4); /* Delay 40 ms */
0x08000F0E 2004 MOVS r0,#0x04
0x08000F10 F7FFF8FB BL.W Delay (0x0800010A)
252: LCD_WriteReg(R0, 0x20);
253: }
0x08000F14 2120 MOVS r1,#0x20
0x08000F16 2000 MOVS r0,#0x00
0x08000F18 E8BD4010 POP {r4,lr}
0x08000F1C E4C9 B LCD_WriteReg (0x080008B2)
254: }
0x08000F1E BD10 POP {r4,pc}
956: {
957: u16 tmp = 0;
0x08000F20 B570 PUSH {r4-r6,lr}
958: u8 i = 0;
959:
960: /* SPI2 prescaler: 4 */
0x08000F22 4EFD LDR r6,[pc,#1012] ; @0x08001318
0x08000F24 2400 MOVS r4,#0x00
961: SPI2->CR1 &= 0xFFC7;
0x08000F26 8831 LDRH r1,[r6,#0x00]
0x08000F28 F0210138 BIC r1,r1,#0x38
0x08000F2C 8031 STRH r1,[r6,#0x00]
962: SPI2->CR1 |= 0x0008;
963:
964: /* Write 16-bit Index (then Read Reg) */
0x08000F2E 8831 LDRH r1,[r6,#0x00]
0x08000F30 F0410108 ORR r1,r1,#0x08
0x08000F34 8031 STRH r1,[r6,#0x00]
0x08000F36 F5A66600 SUB r6,r6,#0x800
965: LCD_WriteRegIndex(LCD_Reg);
966:
967: /* Read 16-bit Reg */
968: /* Reset LCD control line(/CS) and Send Start-Byte */
0x08000F3A F7FFFC9A BL.W LCD_WriteRegIndex (0x08000872)
969: LCD_nCS_StartByte(START_BYTE | READ_REG);
970:
971: for(i = 0; i < 5; i++)
972: {
0x08000F3E 2073 MOVS r0,#0x73
0x08000F40 F7FFFC84 BL.W LCD_nCS_StartByte (0x0800084C)
973: SPI_I2S_SendData(SPI2, 0xFF);
0x08000F44 4DF4 LDR r5,[pc,#976] ; @0x08001318
0x08000F46 21FF MOVS r1,#0xFF
0x08000F48 4628 MOV r0,r5
0x08000F4A F000FEDE BL.W SPI_I2S_SendData (0x08001D0A)
974: while(SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_BSY) != RESET)
975: {
976: }
977: /* One byte of invalid dummy data read after the start byte */
0x08000F4E 2180 MOVS r1,#0x80
0x08000F50 4628 MOV r0,r5
0x08000F52 F000FED1 BL.W SPI_I2S_GetFlagStatus (0x08001CF8)
0x08000F56 2800 CMP r0,#0x00
0x08000F58 D1F9 BNE 0x08000F4E
978: while(SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_RXNE) == RESET)
979: {
980: }
0x08000F5A 2101 MOVS r1,#0x01
0x08000F5C 4628 MOV r0,r5
0x08000F5E F000FECB BL.W SPI_I2S_GetFlagStatus (0x08001CF8)
0x08000F62 2800 CMP r0,#0x00
0x08000F64 D0F9 BEQ 0x08000F5A
981: SPI_I2S_ReceiveData(SPI2);
982: }
983:
0x08000F66 4628 MOV r0,r5
0x08000F68 F000FECD BL.W SPI_I2S_ReceiveData (0x08001D06)
971: for(i = 0; i < 5; i++)
972: {
973: SPI_I2S_SendData(SPI2, 0xFF);
974: while(SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_BSY) != RESET)
975: {
976: }
977: /* One byte of invalid dummy data read after the start byte */
978: while(SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_RXNE) == RESET)
979: {
980: }
981: SPI_I2S_ReceiveData(SPI2);
982: }
983:
0x08000F6C 1C64 ADDS r4,r4,#1
0x08000F6E B2E4 UXTB r4,r4
0x08000F70 2C05 CMP r4,#0x05
0x08000F72 D3E8 BCC 0x08000F46
984: SPI_I2S_SendData(SPI2, 0xFF);
985: /* Read upper byte */
0x08000F74 21FF MOVS r1,#0xFF
0x08000F76 4628 MOV r0,r5
0x08000F78 F000FEC7 BL.W SPI_I2S_SendData (0x08001D0A)
986: while(SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_BSY) != RESET)
987: {
988: }
989: /* Read lower byte */
0x08000F7C 2180 MOVS r1,#0x80
0x08000F7E 4628 MOV r0,r5
0x08000F80 F000FEBA BL.W SPI_I2S_GetFlagStatus (0x08001CF8)
0x08000F84 2800 CMP r0,#0x00
0x08000F86 D1F9 BNE 0x08000F7C
990: while(SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_RXNE) == RESET)
991: {
992: }
0x08000F88 2101 MOVS r1,#0x01
0x08000F8A 4628 MOV r0,r5
0x08000F8C F000FEB4 BL.W SPI_I2S_GetFlagStatus (0x08001CF8)
0x08000F90 2800 CMP r0,#0x00
0x08000F92 D0F9 BEQ 0x08000F88
993: tmp = SPI_I2S_ReceiveData(SPI2);
994:
995:
0x08000F94 4628 MOV r0,r5
0x08000F96 F000FEB6 BL.W SPI_I2S_ReceiveData (0x08001D06)
0x08000F9A 4604 MOV r4,r0
996: SPI_I2S_SendData(SPI2, 0xFF);
0x08000F9C 21FF MOVS r1,#0xFF
0x08000F9E 4628 MOV r0,r5
0x08000FA0 F000FEB3 BL.W SPI_I2S_SendData (0x08001D0A)
997: while(SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_BSY) != RESET)
998: {
999: }
1000: /* Read lower byte */
0x08000FA4 2180 MOVS r1,#0x80
0x08000FA6 4628 MOV r0,r5
0x08000FA8 F000FEA6 BL.W SPI_I2S_GetFlagStatus (0x08001CF8)
0x08000FAC 2800 CMP r0,#0x00
0x08000FAE D1F9 BNE 0x08000FA4
1001: while(SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_RXNE) == RESET)
1002: {
1003: }
0x08000FB0 2101 MOVS r1,#0x01
0x08000FB2 4628 MOV r0,r5
0x08000FB4 F000FEA0 BL.W SPI_I2S_GetFlagStatus (0x08001CF8)
0x08000FB8 2800 CMP r0,#0x00
0x08000FBA D0F9 BEQ 0x08000FB0
1004: tmp = ((tmp & 0xFF) << 8) | SPI_I2S_ReceiveData(SPI2);
1005:
0x08000FBC 4628 MOV r0,r5
0x08000FBE F000FEA2 BL.W SPI_I2S_ReceiveData (0x08001D06)
0x08000FC2 B2E1 UXTB r1,r4
0x08000FC4 EA402401 ORR r4,r0,r1,LSL #8
1006: LCD_CtrlLinesWrite(GPIOB, CtrlPin_NCS, Bit_SET);
1007:
1008: /* SPI2 prescaler: 2 */
0x08000FC8 2201 MOVS r2,#0x01
0x08000FCA 2104 MOVS r1,#0x04
0x08000FCC 48D3 LDR r0,[pc,#844] ; @0x0800131C
0x08000FCE F7FFFC3B BL.W LCD_CtrlLinesWrite (0x08000848)
1009: SPI2->CR1 &= 0xFFC7;
1010:
0x08000FD2 F8B60800 LDRH r0,[r6,#0x800]
0x08000FD6 F0200038 BIC r0,r0,#0x38
0x08000FDA F8A60800 STRH r0,[r6,#0x800]
1011: return tmp;
0x08000FDE 4620 MOV r0,r4
1012: }
0x08000FE0 BD70 POP {r4-r6,pc}
264: {
265: /* Setups the LCD */
0x08000FE2 B510 PUSH {r4,lr}
266: LCD_Setup();
267:
268: /* Try to read new LCD controller ID 0x9320 */
0x08000FE4 F7FFFD29 BL.W LCD_Setup (0x08000A3A)
269: if (LCD_ReadReg(R0) == LCD_ILI9320)
270: {
0x08000FE8 2000 MOVS r0,#0x00
0x08000FEA F7FFFF99 BL.W LCD_ReadReg (0x08000F20)
0x08000FEE F2493120 MOVW r1,#0x9320
271: LCDType = LCD_ILI9320;
272: }
273: else
274: {
275: LCDType = LCD_HX8312;
276: /* Setups the LCD */
277: LCD_Setup();
278: }
0x08000FF2 4ACB LDR r2,[pc,#812] ; @0x08001320
0x08000FF4 4288 CMP r0,r1
0x08000FF6 D101 BNE 0x08000FFC
0x08000FF8 6051 STR r1,[r2,#0x04]
279: }
280:
281: /*******************************************************************************
282: * Function Name : LCD_SetTextColor
283: * Description : Sets the Text color.
284: * Input : - Color: specifies the Text color code RGB(5-6-5).
285: * Output : - TextColor: Text color global variable used by LCD_DrawChar
286: * and LCD_DrawPicture functions.
287: * Return : None
288: *******************************************************************************/
289: void LCD_SetTextColor(vu16 Color)
290: {
0x08000FFA BD10 POP {r4,pc}
275: LCDType = LCD_HX8312;
276: /* Setups the LCD */
0x08000FFC F2483012 MOVW r0,#0x8312
0x08001000 6050 STR r0,[r2,#0x04]
277: LCD_Setup();
278: }
279: }
280:
281: /*******************************************************************************
282: * Function Name : LCD_SetTextColor
283: * Description : Sets the Text color.
284: * Input : - Color: specifies the Text color code RGB(5-6-5).
285: * Output : - TextColor: Text color global variable used by LCD_DrawChar
286: * and LCD_DrawPicture functions.
287: * Return : None
288: *******************************************************************************/
289: void LCD_SetTextColor(vu16 Color)
290: {
0x08001002 E8BD4010 POP {r4,lr}
0x08001006 E518 B LCD_Setup (0x08000A3A)
291: TextColor = Color;
0x08001008 49C5 LDR r1,[pc,#788] ; @0x08001320
0x0800100A 8008 STRH r0,[r1,#0x00]
292: }
293:
294: /*******************************************************************************
295: * Function Name : LCD_SetBackColor
296: * Description : Sets the Background color.
297: * Input : - Color: specifies the Background color code RGB(5-6-5).
298: * Output : - BackColor: Background color global variable used by
299: * LCD_DrawChar and LCD_DrawPicture functions.
300: * Return : None
301: *******************************************************************************/
302: void LCD_SetBackColor(vu16 Color)
303: {
0x0800100C 4770 BX lr
304: BackColor = Color;
0x0800100E 49C4 LDR r1,[pc,#784] ; @0x08001320
0x08001010 8048 STRH r0,[r1,#0x02]
305: }
0x08001012 4770 BX lr
359: {
0x08001014 B510 PUSH {r4,lr}
0x08001016 460C MOV r4,r1
360: if(LCDType == LCD_ILI9320)
361: {
0x08001018 49C1 LDR r1,[pc,#772] ; @0x08001320
0x0800101A 684A LDR r2,[r1,#0x04]
0x0800101C F5A24313 SUB r3,r2,#0x9300
0x08001020 3B20 SUBS r3,r3,#0x20
0x08001022 D106 BNE 0x08001032
362: LCD_WriteReg(R32, Xpos);
0x08001024 4601 MOV r1,r0
0x08001026 2020 MOVS r0,#0x20
0x08001028 F7FFFC43 BL.W LCD_WriteReg (0x080008B2)
363: LCD_WriteReg(R33, Ypos);
364: }
0x0800102C 4621 MOV r1,r4
0x0800102E 2021 MOVS r0,#0x21
0x08001030 E00F B 0x08001052
365: else if(LCDType == LCD_HX8312)
366: {
0x08001032 6849 LDR r1,[r1,#0x04]
0x08001034 F5A14203 SUB r2,r1,#0x8300
0x08001038 3A12 SUBS r2,r2,#0x12
0x0800103A D10D BNE 0x08001058
367: LCD_WriteReg(R66, Xpos);
0x0800103C 4601 MOV r1,r0
0x0800103E 2042 MOVS r0,#0x42
0x08001040 F7FFFC37 BL.W LCD_WriteReg (0x080008B2)
368: LCD_WriteReg(R67, ((Ypos & 0x100)>> 8));
0x08001044 F3C42100 UBFX r1,r4,#8,#1
0x08001048 2043 MOVS r0,#0x43
0x0800104A F7FFFC32 BL.W LCD_WriteReg (0x080008B2)
369: LCD_WriteReg(R68, (Ypos & 0xFF));
370: }
0x0800104E B2E1 UXTB r1,r4
0x08001050 2044 MOVS r0,#0x44
0x08001052 E8BD4010 POP {r4,lr}
0x08001056 E42C B LCD_WriteReg (0x080008B2)
371: }
0x08001058 BD10 POP {r4,pc}
1101: {
0x0800105A B570 PUSH {r4-r6,lr}
1102: if(LCDType == LCD_ILI9320)
1103: {
0x0800105C 4EB0 LDR r6,[pc,#704] ; @0x08001320
0x0800105E 4604 MOV r4,r0
0x08001060 6870 LDR r0,[r6,#0x04]
1104: SPI_I2S_SendData(SPI2, RGB_Code >> 8);
0x08001062 4DAD LDR r5,[pc,#692] ; @0x08001318
0x08001064 F5A04113 SUB r1,r0,#0x9300
0x08001068 3920 SUBS r1,r1,#0x20
0x0800106A D113 BNE 0x08001094
0x0800106C 0A21 LSRS r1,r4,#8
0x0800106E 4628 MOV r0,r5
0x08001070 F000FE4B BL.W SPI_I2S_SendData (0x08001D0A)
1105: while(SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_BSY) != RESET)
1106: {
1107: }
0x08001074 2180 MOVS r1,#0x80
0x08001076 4628 MOV r0,r5
0x08001078 F000FE3E BL.W SPI_I2S_GetFlagStatus (0x08001CF8)
0x0800107C 2800 CMP r0,#0x00
0x0800107E D1F9 BNE 0x08001074
1108: SPI_I2S_SendData(SPI2, RGB_Code & 0xFF);
0x08001080 B2E1 UXTB r1,r4
0x08001082 4628 MOV r0,r5
0x08001084 F000FE41 BL.W SPI_I2S_SendData (0x08001D0A)
1109: while(SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_BSY) != RESET)
1110: {
1111: }
1112: }
0x08001088 2180 MOVS r1,#0x80
0x0800108A 4628 MOV r0,r5
0x0800108C F000FE34 BL.W SPI_I2S_GetFlagStatus (0x08001CF8)
0x08001090 2800 CMP r0,#0x00
0x08001092 D1F9 BNE 0x08001088
1113: if(LCDType == LCD_HX8312)
1114: {
0x08001094 6870 LDR r0,[r6,#0x04]
0x08001096 F5A04103 SUB r1,r0,#0x8300
0x0800109A 3912 SUBS r1,r1,#0x12
0x0800109C D122 BNE 0x080010E4
1115: LCD_CtrlLinesWrite(GPIOD, CtrlPin_NWR, Bit_RESET);
0x0800109E 4EA1 LDR r6,[pc,#644] ; @0x08001324
0x080010A0 2200 MOVS r2,#0x00
0x080010A2 F44F4100 MOV r1,#0x8000
0x080010A6 4630 MOV r0,r6
0x080010A8 F7FFFBCE BL.W LCD_CtrlLinesWrite (0x08000848)
1116: LCD_CtrlLinesWrite(GPIOD, CtrlPin_RS, Bit_SET);
0x080010AC 2201 MOVS r2,#0x01
0x080010AE 2180 MOVS r1,#0x80
0x080010B0 4630 MOV r0,r6
0x080010B2 F7FFFBC9 BL.W LCD_CtrlLinesWrite (0x08000848)
1117: LCD_CtrlLinesWrite(GPIOB, CtrlPin_NCS, Bit_RESET);
1118:
0x080010B6 4E99 LDR r6,[pc,#612] ; @0x0800131C
0x080010B8 2200 MOVS r2,#0x00
0x080010BA 2104 MOVS r1,#0x04
0x080010BC 4630 MOV r0,r6
0x080010BE F7FFFBC3 BL.W LCD_CtrlLinesWrite (0x08000848)
1119: SPI_I2S_SendData(SPI2, RGB_Code);
0x080010C2 4621 MOV r1,r4
0x080010C4 4628 MOV r0,r5
0x080010C6 F000FE20 BL.W SPI_I2S_SendData (0x08001D0A)
1120: while(SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_BSY) != RESET)
1121: {
1122: }
1123:
0x080010CA 2180 MOVS r1,#0x80
0x080010CC 4628 MOV r0,r5
0x080010CE F000FE13 BL.W SPI_I2S_GetFlagStatus (0x08001CF8)
0x080010D2 2800 CMP r0,#0x00
0x080010D4 D1F9 BNE 0x080010CA
1124: LCD_CtrlLinesWrite(GPIOB, CtrlPin_NCS, Bit_SET);
1125: }
0x080010D6 4630 MOV r0,r6
0x080010D8 E8BD4070 POP {r4-r6,lr}
0x080010DC 2201 MOVS r2,#0x01
0x080010DE 2104 MOVS r1,#0x04
0x080010E0 F7FFBBB2 B.W LCD_CtrlLinesWrite (0x08000848)
1126: }
1127:
1128: /*******************************************************************************
1129: * Function Name : LCD_PowerOn
1130: * Description : Power on the LCD.
1131: * Input : None
1132: * Output : None
1133: * Return : None
1134: *******************************************************************************/
1135: void LCD_PowerOn(void)
1136: {
0x080010E4 BD70 POP {r4-r6,pc}
1022: {
0x080010E6 B510 PUSH {r4,lr}
1023: LCD_WriteRegIndex(R34); /* Select GRAM Reg */
1024:
1025: /* Reset LCD control line(/CS) and Send Start-Byte */
0x080010E8 2022 MOVS r0,#0x22
0x080010EA F7FFFBC2 BL.W LCD_WriteRegIndex (0x08000872)
1026: LCD_nCS_StartByte(START_BYTE | WRITE_REG);
1027: }
1028:
1029: /*******************************************************************************
1030: * Function Name : LCD_WriteRAMWord
1031: * Description : Writes 1 word to the LCD RAM.
1032: * Input : - RGB_Code: the pixel color in RGB mode (5-6-5).
1033: * Output : None
1034: * Return : None
1035: *******************************************************************************/
1036: void LCD_WriteRAMWord(u16 RGB_Code)
0x080010EE E8BD4010 POP {r4,lr}
0x080010F2 2072 MOVS r0,#0x72
0x080010F4 F7FFBBAA B.W LCD_nCS_StartByte (0x0800084C)
385: {
0x080010F8 E92D4FF7 PUSH {r0-r2,r4-r11,lr}
0x080010FC 4607 MOV r7,r0
0x080010FE 4692 MOV r10,r2
386: u32 index = 0, i = 0;
387: u8 Xaddress = 0;
388:
389: Xaddress = Xpos;
390:
0x08001100 2500 MOVS r5,#0x00
391: LCD_SetCursor(Xaddress, Ypos);
392:
393: for(index = 0; index < 24; index++)
394: {
0x08001102 9901 LDR r1,[sp,#0x04]
0x08001104 F7FFFF86 BL.W LCD_SetCursor (0x08001014)
395: if(LCDType == LCD_ILI9320)
396: {
397: LCD_WriteRAM_Prepare(); /* Prepare to write GRAM */
398: }
399: for(i = 0; i < 16; i++)
400: {
401: if((c[index] & (1 << i)) == 0x00)
402: {
403: LCD_WriteRAM(BackColor);
404: }
405: else
406: {
407: LCD_WriteRAM(TextColor);
408: }
409: }
410: if(LCDType == LCD_ILI9320)
411: {
0x08001108 4E85 LDR r6,[pc,#532] ; @0x08001320
412: LCD_CtrlLinesWrite(GPIOB, CtrlPin_NCS, Bit_SET);
413: }
0x0800110A F8DFB210 LDR.W r11,[pc,#528] ; @0x0800131E
401: if((c[index] & (1 << i)) == 0x00)
402: {
403: LCD_WriteRAM(BackColor);
404: }
405: else
406: {
0x0800110E F04F0901 MOV r9,#0x01
0x08001112 F2493820 MOVW r8,#0x9320
0x08001116 6871 LDR r1,[r6,#0x04]
0x08001118 4541 CMP r1,r8
0x0800111A D101 BNE 0x08001120
397: LCD_WriteRAM_Prepare(); /* Prepare to write GRAM */
398: }
0x0800111C F7FFFFE3 BL.W LCD_WriteRAM_Prepare (0x080010E6)
399: for(i = 0; i < 16; i++)
400: {
401: if((c[index] & (1 << i)) == 0x00)
402: {
403: LCD_WriteRAM(BackColor);
404: }
405: else
406: {
0x08001120 2400 MOVS r4,#0x00
0x08001122 F83A1015 LDRH r1,[r10,r5,LSL #1]
0x08001126 FA09F004 LSL r0,r9,r4
0x0800112A 4201 TST r1,r0
0x0800112C D018 BEQ 0x08001160
407: LCD_WriteRAM(TextColor);
408: }
409: }
0x0800112E 8830 LDRH r0,[r6,#0x00]
0x08001130 F7FFFF93 BL.W LCD_WriteRAM (0x0800105A)
0x08001134 1C64 ADDS r4,r4,#1
0x08001136 2C10 CMP r4,#0x10
0x08001138 D3F3 BCC 0x08001122
410: if(LCDType == LCD_ILI9320)
411: {
0x0800113A 6871 LDR r1,[r6,#0x04]
0x0800113C 4541 CMP r1,r8
0x0800113E D104 BNE 0x0800114A
412: LCD_CtrlLinesWrite(GPIOB, CtrlPin_NCS, Bit_SET);
413: }
0x08001140 2201 MOVS r2,#0x01
0x08001142 2104 MOVS r1,#0x04
0x08001144 4658 MOV r0,r11
0x08001146 F7FFFB7F BL.W LCD_CtrlLinesWrite (0x08000848)
414: Xaddress++;
0x0800114A 1C7F ADDS r7,r7,#1
0x0800114C B2FF UXTB r7,r7
415: LCD_SetCursor(Xaddress, Ypos);
416: }
0x0800114E 4638 MOV r0,r7
0x08001150 9901 LDR r1,[sp,#0x04]
0x08001152 F7FFFF5F BL.W LCD_SetCursor (0x08001014)
393: for(index = 0; index < 24; index++)
394: {
395: if(LCDType == LCD_ILI9320)
396: {
397: LCD_WriteRAM_Prepare(); /* Prepare to write GRAM */
398: }
399: for(i = 0; i < 16; i++)
400: {
401: if((c[index] & (1 << i)) == 0x00)
402: {
403: LCD_WriteRAM(BackColor);
404: }
405: else
406: {
407: LCD_WriteRAM(TextColor);
408: }
409: }
410: if(LCDType == LCD_ILI9320)
411: {
412: LCD_CtrlLinesWrite(GPIOB, CtrlPin_NCS, Bit_SET);
413: }
414: Xaddress++;
415: LCD_SetCursor(Xaddress, Ypos);
416: }
0x08001156 1C6D ADDS r5,r5,#1
0x08001158 2D18 CMP r5,#0x18
0x0800115A D3DC BCC 0x08001116
417: }
418:
419: /*******************************************************************************
420: * Function Name : LCD_DisplayChar
421: * Description : Displays one character (16dots width, 24dots height).
422: * Input : - Line: the Line where to display the character shape .
423: * This parameter can be one of the following values:
424: * - Linex: where x can be 0..9
425: * - Column: start column address.
426: * - Ascii: character ascii code, must be between 0x20 and 0x7E.
427: * Output : None
428: * Return : None
429: *******************************************************************************/
430: void LCD_DisplayChar(u8 Line, u16 Column, u8 Ascii)
431: {
0x0800115C E8BD8FFE POP {r1-r11,pc}
403: LCD_WriteRAM(BackColor);
0x08001160 8870 LDRH r0,[r6,#0x02]
0x08001162 E7E5 B 0x08001130
432: Ascii -= 32;
0x08001164 3A20 SUBS r2,r2,#0x20
0x08001166 B2D2 UXTB r2,r2
433: LCD_DrawChar(Line, Column, &ASCII_Table[Ascii * 24]);
434: }
435:
436: /*******************************************************************************
437: * Function Name : LCD_DisplayStringLine
438: * Description : Displays a maximum of 20 char on the LCD.
439: * Input : - Line: the Line where to display the character shape .
440: * This parameter can be one of the following values:
441: * - Linex: where x can be 0..9
442: * - *ptr: pointer to string to display on LCD.
443: * Output : None
444: * Return : None
445: *******************************************************************************/
446: void LCD_DisplayStringLine(u8 Line, u8 *ptr)
0x08001168 4B6F LDR r3,[pc,#444] ; @0x08001328
0x0800116A EB020242 ADD r2,r2,r2,LSL #1
0x0800116E EB031202 ADD r2,r3,r2,LSL #4
0x08001172 E7C1 B LCD_DrawChar (0x080010F8)
447: {
0x08001174 E92D41F0 PUSH {r4-r8,lr}
0x08001178 4607 MOV r7,r0
0x0800117A 460D MOV r5,r1
448: u32 i = 0;
0x0800117C 2400 MOVS r4,#0x00
449: u16 refcolumn = 319;
450:
451: /* Send the string character by character on lCD */
0x0800117E F240163F MOVW r6,#0x13F
452: while ((*ptr != 0) & (i < 20))
453: {
454: /* Display one character on LCD */
0x08001182 E007 B 0x08001194
455: LCD_DisplayChar(Line, refcolumn, *ptr);
456: /* Decrement the column position by 16 */
0x08001184 4631 MOV r1,r6
0x08001186 4638 MOV r0,r7
0x08001188 F7FFFFEC BL.W LCD_DisplayChar (0x08001164)
457: refcolumn -= 16;
458: /* Point on the next character */
0x0800118C 3E10 SUBS r6,r6,#0x10
459: ptr++;
460: /* Increment the character counter */
0x0800118E 1C6D ADDS r5,r5,#1
0x08001190 B2B6 UXTH r6,r6
461: i++;
462: }
0x08001192 1C64 ADDS r4,r4,#1
0x08001194 782A LDRB r2,[r5,#0x00]
0x08001196 2A00 CMP r2,#0x00
0x08001198 D001 BEQ 0x0800119E
0x0800119A 2C14 CMP r4,#0x14
0x0800119C D3F2 BCC 0x08001184
463: }
464:
465: /*******************************************************************************
466: * Function Name : LCD_SetDisplayWindow
467: * Description : Sets a display window
468: * Input : - Xpos: specifies the X buttom left position.
469: * - Ypos: specifies the Y buttom left position.
470: * - Height: display window height.
471: * - Width: display window width.
472: * Output : None
473: * Return : None
474: *******************************************************************************/
475: void LCD_SetDisplayWindow(u8 Xpos, u16 Ypos, u8 Height, u16 Width)
0x0800119E E8BD81F0 POP {r4-r8,pc}
318: LCD_DisplayStringLine(Line, " ");
319: }
320:
321: /*******************************************************************************
322: * Function Name : LCD_Clear
323: * Description : Clears the hole LCD.
324: * Input : Color: the color of the background.
325: * Output : None
326: * Return : None
327: *******************************************************************************/
328: void LCD_Clear(u16 Color)
0x080011A2 A162 ADR r1,{pc}+2 ; @0x0800132C
0x080011A4 E7E6 B LCD_DisplayStringLine (0x08001174)
329: {
0x080011A6 E92D41F0 PUSH {r4-r8,lr}
0x080011AA 4680 MOV r8,r0
330: u32 index = 0;
331:
0x080011AC 2400 MOVS r4,#0x00
332: LCD_SetCursor(0x00, 0x013F);
333:
0x080011AE F240113F MOVW r1,#0x13F
0x080011B2 4620 MOV r0,r4
0x080011B4 F7FFFF2E BL.W LCD_SetCursor (0x08001014)
334: if(LCDType == LCD_ILI9320)
335: {
0x080011B8 4D59 LDR r5,[pc,#356] ; @0x08001320
0x080011BA 6868 LDR r0,[r5,#0x04]
0x080011BC F2493620 MOVW r6,#0x9320
0x080011C0 42B0 CMP r0,r6
0x080011C2 D101 BNE 0x080011C8
336: LCD_WriteRAM_Prepare(); /* Prepare to write GRAM */
337: }
338:
0x080011C4 F7FFFF8F BL.W LCD_WriteRAM_Prepare (0x080010E6)
339: for(index = 0; index < 76800; index++)
340: {
0x080011C8 F44F3796 MOV r7,#0x12C00
341: LCD_WriteRAM(Color);
342: }
343:
0x080011CC 4640 MOV r0,r8
0x080011CE F7FFFF44 BL.W LCD_WriteRAM (0x0800105A)
0x080011D2 1C64 ADDS r4,r4,#1
0x080011D4 42BC CMP r4,r7
0x080011D6 D3F9 BCC 0x080011CC
344: if(LCDType == LCD_ILI9320)
345: {
0x080011D8 6868 LDR r0,[r5,#0x04]
0x080011DA 42B0 CMP r0,r6
0x080011DC D1DF BNE 0x0800119E
346: LCD_CtrlLinesWrite(GPIOB, CtrlPin_NCS, Bit_SET);
347: }
0x080011DE E8BD41F0 POP {r4-r8,lr}
0x080011E2 2201 MOVS r2,#0x01
0x080011E4 2104 MOVS r1,#0x04
0x080011E6 484D LDR r0,[pc,#308] ; @0x0800131C
0x080011E8 F7FFBB2E B.W LCD_CtrlLinesWrite (0x08000848)
348: }
0x080011EC E7D7 B 0x0800119E
476: {
0x080011EE E92D41F0 PUSH {r4-r8,lr}
0x080011F2 4698 MOV r8,r3
477: if(LCDType == LCD_ILI9320)
478: {
479: /* Horizontal GRAM Start Address */
480: if(Xpos >= Height)
481: {
0x080011F4 4B4A LDR r3,[pc,#296] ; @0x08001320
0x080011F6 4607 MOV r7,r0
0x080011F8 460C MOV r4,r1
0x080011FA 6858 LDR r0,[r3,#0x04]
482: LCD_WriteReg(R80, (Xpos - Height + 1));
483: }
484: else
485: {
486: LCD_WriteReg(R80, 0);
487: }
488: /* Horizontal GRAM End Address */
489: LCD_WriteReg(R81, Xpos);
490: /* Vertical GRAM Start Address */
491: if(Ypos >= Width)
492: {
0x080011FC 1ABE SUBS r6,r7,r2
493: LCD_WriteReg(R82, (Ypos - Width + 1));
494: }
495: else
496: {
0x080011FE EBA40508 SUB r5,r4,r8
0x08001202 1C76 ADDS r6,r6,#1
0x08001204 1C6D ADDS r5,r5,#1
0x08001206 F5A04113 SUB r1,r0,#0x9300
0x0800120A 3920 SUBS r1,r1,#0x20
0x0800120C D116 BNE 0x0800123C
480: if(Xpos >= Height)
481: {
482: LCD_WriteReg(R80, (Xpos - Height + 1));
483: }
484: else
485: {
0x0800120E 4297 CMP r7,r2
0x08001210 D301 BCC 0x08001216
0x08001212 B2B1 UXTH r1,r6
0x08001214 E000 B 0x08001218
486: LCD_WriteReg(R80, 0);
487: }
488: /* Horizontal GRAM End Address */
0x08001216 2100 MOVS r1,#0x00
0x08001218 2050 MOVS r0,#0x50
0x0800121A F7FFFB4A BL.W LCD_WriteReg (0x080008B2)
489: LCD_WriteReg(R81, Xpos);
490: /* Vertical GRAM Start Address */
0x0800121E 4639 MOV r1,r7
0x08001220 2051 MOVS r0,#0x51
0x08001222 F7FFFB46 BL.W LCD_WriteReg (0x080008B2)
491: if(Ypos >= Width)
492: {
0x08001226 4544 CMP r4,r8
0x08001228 D301 BCC 0x0800122E
493: LCD_WriteReg(R82, (Ypos - Width + 1));
494: }
495: else
496: {
0x0800122A B2A9 UXTH r1,r5
0x0800122C E000 B 0x08001230
497: LCD_WriteReg(R82, 0);
498: }
499: /* Vertical GRAM End Address */
0x0800122E 2100 MOVS r1,#0x00
0x08001230 2052 MOVS r0,#0x52
0x08001232 F7FFFB3E BL.W LCD_WriteReg (0x080008B2)
500: LCD_WriteReg(R83, Ypos);
501: }
0x08001236 4621 MOV r1,r4
0x08001238 2053 MOVS r0,#0x53
0x0800123A E024 B 0x08001286
502: else if(LCDType == LCD_HX8312)
503: {
0x0800123C 6858 LDR r0,[r3,#0x04]
0x0800123E F5A04103 SUB r1,r0,#0x8300
0x08001242 3912 SUBS r1,r1,#0x12
0x08001244 D121 BNE 0x0800128A
504: LCD_WriteReg(R1, 0xD0);
0x08001246 21D0 MOVS r1,#0xD0
0x08001248 2001 MOVS r0,#0x01
0x0800124A F7FFFB32 BL.W LCD_WriteReg (0x080008B2)
505: LCD_WriteReg(R5, 0x14);
506:
0x0800124E 2114 MOVS r1,#0x14
0x08001250 2005 MOVS r0,#0x05
0x08001252 F7FFFB2E BL.W LCD_WriteReg (0x080008B2)
507: LCD_WriteReg(R69, (Xpos - Height + 1));
0x08001256 B2B1 UXTH r1,r6
0x08001258 2045 MOVS r0,#0x45
0x0800125A F7FFFB2A BL.W LCD_WriteReg (0x080008B2)
508: LCD_WriteReg(R70, Xpos);
509:
0x0800125E 4639 MOV r1,r7
0x08001260 2046 MOVS r0,#0x46
0x08001262 F7FFFB26 BL.W LCD_WriteReg (0x080008B2)
510: LCD_WriteReg(R71, (((Ypos - Width + 1) & 0x100)>> 8));
0x08001266 F3C52100 UBFX r1,r5,#8,#1
0x0800126A 2047 MOVS r0,#0x47
0x0800126C F7FFFB21 BL.W LCD_WriteReg (0x080008B2)
511: LCD_WriteReg(R72, ((Ypos - Width + 1) & 0xFF));
512:
0x08001270 B2E9 UXTB r1,r5
0x08001272 2048 MOVS r0,#0x48
0x08001274 F7FFFB1D BL.W LCD_WriteReg (0x080008B2)
513: LCD_WriteReg(R73, ((Ypos & 0x100)>> 8));
0x08001278 F3C42100 UBFX r1,r4,#8,#1
0x0800127C 2049 MOVS r0,#0x49
0x0800127E F7FFFB18 BL.W LCD_WriteReg (0x080008B2)
514: LCD_WriteReg(R74, (Ypos & 0xFF));
515: }
516:
0x08001282 B2E1 UXTB r1,r4
0x08001284 204A MOVS r0,#0x4A
0x08001286 F7FFFB14 BL.W LCD_WriteReg (0x080008B2)
517: LCD_SetCursor(Xpos, Ypos);
518: }
519:
520: /*******************************************************************************
521: * Function Name : LCD_WindowModeDisable
522: * Description : Disables LCD Window mode.
523: * Input : None
524: * Output : None
525: * Return : None
526: *******************************************************************************/
527: void LCD_WindowModeDisable(void)
528: {
0x0800128A 4621 MOV r1,r4
0x0800128C 4638 MOV r0,r7
0x0800128E E8BD41F0 POP {r4-r8,lr}
0x08001292 E6BF B LCD_SetCursor (0x08001014)
529: if(LCDType == LCD_ILI9320)
530: {
0x08001294 4822 LDR r0,[pc,#136] ; @0x08001320
528: {
529: if(LCDType == LCD_ILI9320)
530: {
0x08001296 B510 PUSH {r4,lr}
0x08001298 6841 LDR r1,[r0,#0x04]
0x0800129A F5A14213 SUB r2,r1,#0x9300
0x0800129E 3A20 SUBS r2,r2,#0x20
0x080012A0 D10A BNE 0x080012B8
531: LCD_SetDisplayWindow(239, 319, 240, 320);
0x080012A2 F44F73A0 MOV r3,#0x140
0x080012A6 22F0 MOVS r2,#0xF0
0x080012A8 1E59 SUBS r1,r3,#1
0x080012AA 20EF MOVS r0,#0xEF
0x080012AC F7FFFF9F BL.W LCD_SetDisplayWindow (0x080011EE)
532: LCD_WriteReg(R3, 0x1018);
533: }
0x080012B0 F2410118 MOVW r1,#0x1018
0x080012B4 2003 MOVS r0,#0x03
0x080012B6 E00A B 0x080012CE
534: else if(LCDType == LCD_HX8312)
535: {
0x080012B8 6840 LDR r0,[r0,#0x04]
0x080012BA F5A04103 SUB r1,r0,#0x8300
0x080012BE 3912 SUBS r1,r1,#0x12
0x080012C0 D109 BNE 0x080012D6
536: LCD_WriteReg(R1, 0x50);
0x080012C2 2150 MOVS r1,#0x50
0x080012C4 2001 MOVS r0,#0x01
0x080012C6 F7FFFAF4 BL.W LCD_WriteReg (0x080008B2)
537: LCD_WriteReg(R5, 0x04);
538: }
539:
0x080012CA 2104 MOVS r1,#0x04
0x080012CC 2005 MOVS r0,#0x05
0x080012CE E8BD4010 POP {r4,lr}
0x080012D2 F7FFBAEE B.W LCD_WriteReg (0x080008B2)
540: }
0x080012D6 BD10 POP {r4,pc}
1037: {
0x080012D8 B510 PUSH {r4,lr}
0x080012DA 4604 MOV r4,r0
1038: LCD_WriteRAM_Prepare();
1039:
0x080012DC F7FFFF03 BL.W LCD_WriteRAM_Prepare (0x080010E6)
1040: LCD_WriteRAM(RGB_Code);
1041:
0x080012E0 4620 MOV r0,r4
0x080012E2 F7FFFEBA BL.W LCD_WriteRAM (0x0800105A)
1042: LCD_CtrlLinesWrite(GPIOB, CtrlPin_NCS, Bit_SET);
0x080012E6 2201 MOVS r2,#0x01
0x080012E8 E8BD4010 POP {r4,lr}
0x080012EC 2104 MOVS r1,#0x04
0x080012EE 480B LDR r0,[pc,#44] ; @0x0800131C
0x080012F0 F7FFBAAA B.W LCD_CtrlLinesWrite (0x08000848)
554: {
0x080012F4 E92D47F0 PUSH {r4-r10,lr}
0x080012F8 4616 MOV r6,r2
0x080012FA 461F MOV r7,r3
0x080012FC 4605 MOV r5,r0
0x080012FE 468A MOV r10,r1
555: u32 i = 0;
556:
0x08001300 2400 MOVS r4,#0x00
557: LCD_SetCursor(Xpos, Ypos);
558:
559: if(Direction == Horizontal)
560: {
0x08001302 F7FFFE87 BL.W LCD_SetCursor (0x08001014)
561: if(LCDType == LCD_ILI9320)
562: {
563: LCD_WriteRAM_Prepare(); /* Prepare to write GRAM */
564: }
565: for(i = 0; i < Length; i++)
566: {
567: LCD_WriteRAM(TextColor);
568: }
569: if(LCDType == LCD_ILI9320)
570: {
571: LCD_CtrlLinesWrite(GPIOB, CtrlPin_NCS, Bit_SET);
572: }
573: }
574: else
575: {
576: for(i = 0; i < Length; i++)
577: {
578: if(LCDType == LCD_ILI9320)
579: {
580: LCD_WriteRAMWord(TextColor);
581: }
0x08001306 F8DF8018 LDR.W r8,[pc,#24] ; @0x08001322
0x0800130A F2493920 MOVW r9,#0x9320
559: if(Direction == Horizontal)
560: {
561: if(LCDType == LCD_ILI9320)
562: {
563: LCD_WriteRAM_Prepare(); /* Prepare to write GRAM */
564: }
565: for(i = 0; i < Length; i++)
566: {
567: LCD_WriteRAM(TextColor);
568: }
569: if(LCDType == LCD_ILI9320)
570: {
571: LCD_CtrlLinesWrite(GPIOB, CtrlPin_NCS, Bit_SET);
572: }
573: }
574: else
575: {
576: for(i = 0; i < Length; i++)
577: {
578: if(LCDType == LCD_ILI9320)
579: {
580: LCD_WriteRAMWord(TextColor);
581: }
0x0800130E B1CF CBZ r7,0x08001344
582: else if(LCDType == LCD_HX8312)
583: {
0x08001310 F2483712 MOVW r7,#0x8312
576: for(i = 0; i < Length; i++)
577: {
0x08001314 E047 B 0x080013A6
0x08001316 0000 MOVS r0,r0
0x08001318 3800 SUBS r0,r0,#0x00
0x0800131A 4000 ANDS r0,r0,r0
0x0800131C 0C00 LSRS r0,r0,#16
0x0800131E 4001 ANDS r1,r1,r0
0x08001320 0008 MOVS r0,r1
0x08001322 2000 MOVS r0,#0x00
0x08001324 1400 ASRS r0,r0,#16
0x08001326 4001 ANDS r1,r1,r0
0x08001328 1DA8 ADDS r0,r5,#6
0x0800132A 0800 LSRS r0,r0,#0
0x0800132C 2020 MOVS r0,#0x20
0x0800132E 2020 MOVS r0,#0x20
0x08001330 2020 MOVS r0,#0x20
0x08001332 2020 MOVS r0,#0x20
0x08001334 2020 MOVS r0,#0x20
0x08001336 2020 MOVS r0,#0x20
0x08001338 2020 MOVS r0,#0x20
0x0800133A 2020 MOVS r0,#0x20
0x0800133C 2020 MOVS r0,#0x20
0x0800133E 2020 MOVS r0,#0x20
0x08001340 0000 MOVS r0,r0
0x08001342 0000 MOVS r0,r0
561: if(LCDType == LCD_ILI9320)
562: {
0x08001344 F8D80004 LDR r0,[r8,#0x04]
0x08001348 4548 CMP r0,r9
0x0800134A D107 BNE 0x0800135C
563: LCD_WriteRAM_Prepare(); /* Prepare to write GRAM */
564: }
565: for(i = 0; i < Length; i++)
566: {
0x0800134C F7FFFECB BL.W LCD_WriteRAM_Prepare (0x080010E6)
0x08001350 E004 B 0x0800135C
567: LCD_WriteRAM(TextColor);
568: }
0x08001352 F8B80000 LDRH r0,[r8,#0x00]
0x08001356 F7FFFE80 BL.W LCD_WriteRAM (0x0800105A)
565: for(i = 0; i < Length; i++)
566: {
567: LCD_WriteRAM(TextColor);
568: }
0x0800135A 1C64 ADDS r4,r4,#1
0x0800135C 42B4 CMP r4,r6
0x0800135E D3F8 BCC 0x08001352
569: if(LCDType == LCD_ILI9320)
570: {
0x08001360 F8D80004 LDR r0,[r8,#0x04]
0x08001364 4548 CMP r0,r9
0x08001366 D120 BNE 0x080013AA
571: LCD_CtrlLinesWrite(GPIOB, CtrlPin_NCS, Bit_SET);
572: }
573: }
574: else
575: {
576: for(i = 0; i < Length; i++)
577: {
0x08001368 E8BD47F0 POP {r4-r10,lr}
0x0800136C 2201 MOVS r2,#0x01
0x0800136E 2104 MOVS r1,#0x04
0x08001370 48F9 LDR r0,[pc,#996] ; @0x08001758
0x08001372 F7FFBA69 B.W LCD_CtrlLinesWrite (0x08000848)
578: if(LCDType == LCD_ILI9320)
579: {
0x08001376 F8D81004 LDR r1,[r8,#0x04]
0x0800137A 4549 CMP r1,r9
0x0800137C D104 BNE 0x08001388
580: LCD_WriteRAMWord(TextColor);
581: }
0x0800137E F8B80000 LDRH r0,[r8,#0x00]
0x08001382 F7FFFFA9 BL.W LCD_WriteRAMWord (0x080012D8)
0x08001386 E007 B 0x08001398
582: else if(LCDType == LCD_HX8312)
583: {
0x08001388 F8D81004 LDR r1,[r8,#0x04]
0x0800138C 42B9 CMP r1,r7
0x0800138E D103 BNE 0x08001398
584: LCD_WriteRAM(TextColor);
585: }
0x08001390 F8B80000 LDRH r0,[r8,#0x00]
0x08001394 F7FFFE61 BL.W LCD_WriteRAM (0x0800105A)
586: Xpos++;
0x08001398 1C6D ADDS r5,r5,#1
0x0800139A B2ED UXTB r5,r5
587: LCD_SetCursor(Xpos, Ypos);
588: }
589: }
0x0800139C 4651 MOV r1,r10
0x0800139E 4628 MOV r0,r5
0x080013A0 F7FFFE38 BL.W LCD_SetCursor (0x08001014)
576: for(i = 0; i < Length; i++)
577: {
578: if(LCDType == LCD_ILI9320)
579: {
580: LCD_WriteRAMWord(TextColor);
581: }
582: else if(LCDType == LCD_HX8312)
583: {
584: LCD_WriteRAM(TextColor);
585: }
586: Xpos++;
587: LCD_SetCursor(Xpos, Ypos);
588: }
589: }
0x080013A4 1C64 ADDS r4,r4,#1
0x080013A6 42B4 CMP r4,r6
0x080013A8 D3E5 BCC 0x08001376
590: }
591:
592: /*******************************************************************************
593: * Function Name : LCD_DrawRect
594: * Description : Displays a rectangle.
595: * Input : - Xpos: specifies the X position.
596: * - Ypos: specifies the Y position.
597: * - Height: display rectangle height.
598: * - Width: display rectangle width.
599: * Output : None
600: * Return : None
601: *******************************************************************************/
602: void LCD_DrawRect(u8 Xpos, u16 Ypos, u8 Height, u16 Width)
0x080013AA E8BD87F0 POP {r4-r10,pc}
603: {
0x080013AE E92D41F0 PUSH {r4-r8,lr}
0x080013B2 461E MOV r6,r3
0x080013B4 4615 MOV r5,r2
0x080013B6 4604 MOV r4,r0
0x080013B8 460F MOV r7,r1
604: LCD_DrawLine(Xpos, Ypos, Width, Horizontal);
0x080013BA 2300 MOVS r3,#0x00
0x080013BC 4632 MOV r2,r6
0x080013BE F7FFFF99 BL.W LCD_DrawLine (0x080012F4)
605: LCD_DrawLine((Xpos + Height), Ypos, Width, Horizontal);
606:
0x080013C2 1960 ADDS r0,r4,r5
0x080013C4 B2C0 UXTB r0,r0
0x080013C6 2300 MOVS r3,#0x00
0x080013C8 4632 MOV r2,r6
0x080013CA 4639 MOV r1,r7
0x080013CC F7FFFF92 BL.W LCD_DrawLine (0x080012F4)
607: LCD_DrawLine(Xpos, Ypos, Height, Vertical);
0x080013D0 2301 MOVS r3,#0x01
0x080013D2 462A MOV r2,r5
0x080013D4 4639 MOV r1,r7
0x080013D6 4620 MOV r0,r4
0x080013D8 F7FFFF8C BL.W LCD_DrawLine (0x080012F4)
608: LCD_DrawLine(Xpos, (Ypos - Width + 1), Height, Vertical);
609: }
610:
611: /*******************************************************************************
612: * Function Name : LCD_DrawCircle
613: * Description : Displays a circle.
614: * Input : - Xpos: specifies the X position.
615: * - Ypos: specifies the Y position.
616: * - Height: display rectangle height.
617: * - Width: display rectangle width.
618: * Output : None
619: * Return : None
620: *******************************************************************************/
621: void LCD_DrawCircle(u8 Xpos, u16 Ypos, u16 Radius)
0x080013DC 1BB8 SUBS r0,r7,r6
0x080013DE 1C40 ADDS r0,r0,#1
0x080013E0 B281 UXTH r1,r0
0x080013E2 462A MOV r2,r5
0x080013E4 4620 MOV r0,r4
0x080013E6 E8BD41F0 POP {r4-r8,lr}
0x080013EA 2301 MOVS r3,#0x01
0x080013EC E782 B LCD_DrawLine (0x080012F4)
622: {
623: s32 D;/* Decision Variable */
624: u32 CurX;/* Current X Value */
625: u32 CurY;/* Current Y Value */
626:
0x080013EE E92D5FFC PUSH {r2-r12,lr}
0x080013F2 4607 MOV r7,r0
627: D = 3 - (Radius << 1);
0x080013F4 2003 MOVS r0,#0x03
0x080013F6 4688 MOV r8,r1
0x080013F8 EBA00642 SUB r6,r0,r2,LSL #1
628: CurX = 0;
0x080013FC 2400 MOVS r4,#0x00
629: CurY = Radius;
630:
631: while (CurX <= CurY)
632: {
633: LCD_SetCursor(Xpos + CurX, Ypos + CurY);
634: if(LCDType == LCD_ILI9320)
635: {
636: LCD_WriteRAMWord(TextColor);
637: }
0x080013FE 4615 MOV r5,r2
638: else if(LCDType == LCD_HX8312)
639: {
0x08001400 F2483912 MOVW r9,#0x8312
634: if(LCDType == LCD_ILI9320)
635: {
636: LCD_WriteRAMWord(TextColor);
637: }
0x08001404 F8DFA354 LDR.W r10,[pc,#852] ; @0x0800175C
631: while (CurX <= CurY)
632: {
0x08001408 E0CF B 0x080015AA
633: LCD_SetCursor(Xpos + CurX, Ypos + CurY);
0x0800140A EB080005 ADD r0,r8,r5
0x0800140E B281 UXTH r1,r0
0x08001410 9000 STR r0,[sp,#0x00]
0x08001412 1938 ADDS r0,r7,r4
0x08001414 4683 MOV r11,r0
0x08001416 B2C0 UXTB r0,r0
0x08001418 F7FFFDFC BL.W LCD_SetCursor (0x08001014)
634: if(LCDType == LCD_ILI9320)
635: {
636: LCD_WriteRAMWord(TextColor);
637: }
0x0800141C F8DA1004 LDR r1,[r10,#0x04]
0x08001420 F5A14013 SUB r0,r1,#0x9300
0x08001424 3820 SUBS r0,r0,#0x20
638: else if(LCDType == LCD_HX8312)
639: {
0x08001426 4650 MOV r0,r10
0x08001428 D103 BNE 0x08001432
636: LCD_WriteRAMWord(TextColor);
637: }
638: else if(LCDType == LCD_HX8312)
639: {
0x0800142A 8800 LDRH r0,[r0,#0x00]
0x0800142C F7FFFF54 BL.W LCD_WriteRAMWord (0x080012D8)
0x08001430 E005 B 0x0800143E
0x08001432 6842 LDR r2,[r0,#0x04]
0x08001434 454A CMP r2,r9
0x08001436 D102 BNE 0x0800143E
640: LCD_WriteRAM(TextColor);
641: }
0x08001438 8800 LDRH r0,[r0,#0x00]
0x0800143A F7FFFE0E BL.W LCD_WriteRAM (0x0800105A)
642: LCD_SetCursor(Xpos + CurX, Ypos - CurY);
0x0800143E EBA80005 SUB r0,r8,r5
0x08001442 B281 UXTH r1,r0
0x08001444 9001 STR r0,[sp,#0x04]
0x08001446 F00B00FF AND r0,r11,#0xFF
0x0800144A F7FFFDE3 BL.W LCD_SetCursor (0x08001014)
643: if(LCDType == LCD_ILI9320)
644: {
645: LCD_WriteRAMWord(TextColor);
646: }
0x0800144E F8DA1004 LDR r1,[r10,#0x04]
0x08001452 F5A14013 SUB r0,r1,#0x9300
0x08001456 3820 SUBS r0,r0,#0x20
647: else if(LCDType == LCD_HX8312)
648: {
0x08001458 4650 MOV r0,r10
0x0800145A D103 BNE 0x08001464
645: LCD_WriteRAMWord(TextColor);
646: }
647: else if(LCDType == LCD_HX8312)
648: {
0x0800145C 8800 LDRH r0,[r0,#0x00]
0x0800145E F7FFFF3B BL.W LCD_WriteRAMWord (0x080012D8)
0x08001462 E005 B 0x08001470
0x08001464 6842 LDR r2,[r0,#0x04]
0x08001466 454A CMP r2,r9
0x08001468 D102 BNE 0x08001470
649: LCD_WriteRAM(TextColor);
650: }
0x0800146A 8800 LDRH r0,[r0,#0x00]
0x0800146C F7FFFDF5 BL.W LCD_WriteRAM (0x0800105A)
651: LCD_SetCursor(Xpos - CurX, Ypos + CurY);
0x08001470 9800 LDR r0,[sp,#0x00]
0x08001472 B281 UXTH r1,r0
0x08001474 1B38 SUBS r0,r7,r4
0x08001476 4683 MOV r11,r0
0x08001478 B2C0 UXTB r0,r0
0x0800147A F7FFFDCB BL.W LCD_SetCursor (0x08001014)
652: if(LCDType == LCD_ILI9320)
653: {
654: LCD_WriteRAMWord(TextColor);
655: }
0x0800147E F8DA1004 LDR r1,[r10,#0x04]
0x08001482 F5A14013 SUB r0,r1,#0x9300
0x08001486 3820 SUBS r0,r0,#0x20
656: else if(LCDType == LCD_HX8312)
657: {
0x08001488 4650 MOV r0,r10
0x0800148A D103 BNE 0x08001494
654: LCD_WriteRAMWord(TextColor);
655: }
656: else if(LCDType == LCD_HX8312)
657: {
0x0800148C 8800 LDRH r0,[r0,#0x00]
0x0800148E F7FFFF23 BL.W LCD_WriteRAMWord (0x080012D8)
0x08001492 E005 B 0x080014A0
0x08001494 6842 LDR r2,[r0,#0x04]
0x08001496 454A CMP r2,r9
0x08001498 D102 BNE 0x080014A0
658: LCD_WriteRAM(TextColor);
659: }
0x0800149A 8800 LDRH r0,[r0,#0x00]
0x0800149C F7FFFDDD BL.W LCD_WriteRAM (0x0800105A)
660: LCD_SetCursor(Xpos - CurX, Ypos - CurY);
0x080014A0 9801 LDR r0,[sp,#0x04]
0x080014A2 B281 UXTH r1,r0
0x080014A4 F00B00FF AND r0,r11,#0xFF
0x080014A8 F7FFFDB4 BL.W LCD_SetCursor (0x08001014)
661: if(LCDType == LCD_ILI9320)
662: {
663: LCD_WriteRAMWord(TextColor);
664: }
0x080014AC F8DA1004 LDR r1,[r10,#0x04]
0x080014B0 F5A14013 SUB r0,r1,#0x9300
0x080014B4 3820 SUBS r0,r0,#0x20
665: else if(LCDType == LCD_HX8312)
666: {
0x080014B6 4650 MOV r0,r10
0x080014B8 D103 BNE 0x080014C2
663: LCD_WriteRAMWord(TextColor);
664: }
665: else if(LCDType == LCD_HX8312)
666: {
0x080014BA 8800 LDRH r0,[r0,#0x00]
0x080014BC F7FFFF0C BL.W LCD_WriteRAMWord (0x080012D8)
0x080014C0 E005 B 0x080014CE
0x080014C2 6842 LDR r2,[r0,#0x04]
0x080014C4 454A CMP r2,r9
0x080014C6 D102 BNE 0x080014CE
667: LCD_WriteRAM(TextColor);
668: }
0x080014C8 8800 LDRH r0,[r0,#0x00]
0x080014CA F7FFFDC6 BL.W LCD_WriteRAM (0x0800105A)
669: LCD_SetCursor(Xpos + CurY, Ypos + CurX);
0x080014CE EB080004 ADD r0,r8,r4
0x080014D2 B281 UXTH r1,r0
0x080014D4 9000 STR r0,[sp,#0x00]
0x080014D6 1978 ADDS r0,r7,r5
0x080014D8 4683 MOV r11,r0
0x080014DA B2C0 UXTB r0,r0
0x080014DC F7FFFD9A BL.W LCD_SetCursor (0x08001014)
670: if(LCDType == LCD_ILI9320)
671: {
672: LCD_WriteRAMWord(TextColor);
673: }
0x080014E0 F8DA1004 LDR r1,[r10,#0x04]
0x080014E4 F5A14013 SUB r0,r1,#0x9300
0x080014E8 3820 SUBS r0,r0,#0x20
674: else if(LCDType == LCD_HX8312)
675: {
0x080014EA 4650 MOV r0,r10
0x080014EC D103 BNE 0x080014F6
672: LCD_WriteRAMWord(TextColor);
673: }
674: else if(LCDType == LCD_HX8312)
675: {
0x080014EE 8800 LDRH r0,[r0,#0x00]
0x080014F0 F7FFFEF2 BL.W LCD_WriteRAMWord (0x080012D8)
0x080014F4 E005 B 0x08001502
0x080014F6 6842 LDR r2,[r0,#0x04]
0x080014F8 454A CMP r2,r9
0x080014FA D102 BNE 0x08001502
676: LCD_WriteRAM(TextColor);
677: }
0x080014FC 8800 LDRH r0,[r0,#0x00]
0x080014FE F7FFFDAC BL.W LCD_WriteRAM (0x0800105A)
678: LCD_SetCursor(Xpos + CurY, Ypos - CurX);
0x08001502 EBA80004 SUB r0,r8,r4
0x08001506 B281 UXTH r1,r0
0x08001508 9001 STR r0,[sp,#0x04]
0x0800150A F00B00FF AND r0,r11,#0xFF
0x0800150E F7FFFD81 BL.W LCD_SetCursor (0x08001014)
679: if(LCDType == LCD_ILI9320)
680: {
681: LCD_WriteRAMWord(TextColor);
682: }
0x08001512 F8DA1004 LDR r1,[r10,#0x04]
0x08001516 F5A14013 SUB r0,r1,#0x9300
0x0800151A 3820 SUBS r0,r0,#0x20
683: else if(LCDType == LCD_HX8312)
684: {
0x0800151C 4650 MOV r0,r10
0x0800151E D103 BNE 0x08001528
681: LCD_WriteRAMWord(TextColor);
682: }
683: else if(LCDType == LCD_HX8312)
684: {
0x08001520 8800 LDRH r0,[r0,#0x00]
0x08001522 F7FFFED9 BL.W LCD_WriteRAMWord (0x080012D8)
0x08001526 E005 B 0x08001534
0x08001528 6842 LDR r2,[r0,#0x04]
0x0800152A 454A CMP r2,r9
0x0800152C D102 BNE 0x08001534
685: LCD_WriteRAM(TextColor);
686: }
0x0800152E 8800 LDRH r0,[r0,#0x00]
0x08001530 F7FFFD93 BL.W LCD_WriteRAM (0x0800105A)
687: LCD_SetCursor(Xpos - CurY, Ypos + CurX);
0x08001534 9800 LDR r0,[sp,#0x00]
0x08001536 B281 UXTH r1,r0
0x08001538 1B78 SUBS r0,r7,r5
0x0800153A 4683 MOV r11,r0
0x0800153C B2C0 UXTB r0,r0
0x0800153E F7FFFD69 BL.W LCD_SetCursor (0x08001014)
688: if(LCDType == LCD_ILI9320)
689: {
690: LCD_WriteRAMWord(TextColor);
691: }
0x08001542 F8DA1004 LDR r1,[r10,#0x04]
0x08001546 F5A14013 SUB r0,r1,#0x9300
0x0800154A 3820 SUBS r0,r0,#0x20
692: else if(LCDType == LCD_HX8312)
693: {
0x0800154C 4650 MOV r0,r10
0x0800154E D103 BNE 0x08001558
690: LCD_WriteRAMWord(TextColor);
691: }
692: else if(LCDType == LCD_HX8312)
693: {
0x08001550 8800 LDRH r0,[r0,#0x00]
0x08001552 F7FFFEC1 BL.W LCD_WriteRAMWord (0x080012D8)
0x08001556 E005 B 0x08001564
0x08001558 6842 LDR r2,[r0,#0x04]
0x0800155A 454A CMP r2,r9
0x0800155C D102 BNE 0x08001564
694: LCD_WriteRAM(TextColor);
695: }
0x0800155E 8800 LDRH r0,[r0,#0x00]
0x08001560 F7FFFD7B BL.W LCD_WriteRAM (0x0800105A)
696: LCD_SetCursor(Xpos - CurY, Ypos - CurX);
0x08001564 9801 LDR r0,[sp,#0x04]
0x08001566 B281 UXTH r1,r0
0x08001568 F00B00FF AND r0,r11,#0xFF
0x0800156C F7FFFD52 BL.W LCD_SetCursor (0x08001014)
697: if(LCDType == LCD_ILI9320)
698: {
0x08001570 F8DA2004 LDR r2,[r10,#0x04]
0x08001574 4650 MOV r0,r10
0x08001576 F5A24113 SUB r1,r2,#0x9300
0x0800157A 3920 SUBS r1,r1,#0x20
0x0800157C D103 BNE 0x08001586
699: LCD_WriteRAMWord(TextColor);
700: }
0x0800157E 8800 LDRH r0,[r0,#0x00]
0x08001580 F7FFFEAA BL.W LCD_WriteRAMWord (0x080012D8)
0x08001584 E005 B 0x08001592
701: else if(LCDType == LCD_HX8312)
702: {
0x08001586 6842 LDR r2,[r0,#0x04]
0x08001588 454A CMP r2,r9
0x0800158A D102 BNE 0x08001592
703: LCD_WriteRAM(TextColor);
704: }
705:
0x0800158C 8800 LDRH r0,[r0,#0x00]
0x0800158E F7FFFD64 BL.W LCD_WriteRAM (0x0800105A)
706: if (D < 0)
707: {
0x08001592 2E00 CMP r6,#0x00
0x08001594 DA03 BGE 0x0800159E
708: D += (CurX << 2) + 6;
709: }
710: else
711: {
0x08001596 EB060684 ADD r6,r6,r4,LSL #2
0x0800159A 1DB6 ADDS r6,r6,#6
0x0800159C E004 B 0x080015A8
712: D += ((CurX - CurY) << 2) + 10;
0x0800159E 1B60 SUBS r0,r4,r5
0x080015A0 EB060680 ADD r6,r6,r0,LSL #2
0x080015A4 360A ADDS r6,r6,#0x0A
713: CurY--;
714: }
0x080015A6 1E6D SUBS r5,r5,#1
715: CurX++;
716: }
0x080015A8 1C64 ADDS r4,r4,#1
631: while (CurX <= CurY)
0x080015AA 42AC CMP r4,r5
0x080015AC F67FAF2D BLS.W 0x0800140A
717: }
718:
719: /*******************************************************************************
720: * Function Name : LCD_DrawMonoPict
721: * Description : Displays a monocolor picture.
722: * Input : - Pict: pointer to the picture array.
723: * Output : None
724: * Return : None
725: *******************************************************************************/
726: void LCD_DrawMonoPict(uc32 *Pict)
0x080015B0 E8BD9FFC POP {r2-r12,pc}
727: {
0x080015B4 E92D47F0 PUSH {r4-r10,lr}
0x080015B8 4680 MOV r8,r0
728: u32 index = 0, i = 0;
729:
0x080015BA 2500 MOVS r5,#0x00
730: LCD_SetCursor(0, 319);
0x080015BC F240113F MOVW r1,#0x13F
0x080015C0 4628 MOV r0,r5
0x080015C2 F7FFFD27 BL.W LCD_SetCursor (0x08001014)
731: if(LCDType == LCD_ILI9320)
732: {
0x080015C6 4E65 LDR r6,[pc,#404] ; @0x0800175C
0x080015C8 6871 LDR r1,[r6,#0x04]
0x080015CA F2493920 MOVW r9,#0x9320
0x080015CE 4549 CMP r1,r9
0x080015D0 D101 BNE 0x080015D6
733: LCD_WriteRAM_Prepare(); /* Prepare to write GRAM */
734: }
735: for(index = 0; index < 2400; index++)
736: {
737: for(i = 0; i < 32; i++)
738: {
0x080015D2 F7FFFD88 BL.W LCD_WriteRAM_Prepare (0x080010E6)
739: if((Pict[index] & (1 << i)) == 0x00)
740: {
741: LCD_WriteRAM(BackColor);
742: }
743: else
744: {
0x080015D6 2701 MOVS r7,#0x01
735: for(index = 0; index < 2400; index++)
736: {
0x080015D8 F44F6A16 MOV r10,#0x960
737: for(i = 0; i < 32; i++)
738: {
0x080015DC 2400 MOVS r4,#0x00
739: if((Pict[index] & (1 << i)) == 0x00)
740: {
741: LCD_WriteRAM(BackColor);
742: }
743: else
744: {
0x080015DE F8580025 LDR r0,[r8,r5,LSL #2]
0x080015E2 FA07F104 LSL r1,r7,r4
0x080015E6 4208 TST r0,r1
0x080015E8 D012 BEQ 0x08001610
745: LCD_WriteRAM(TextColor);
746: }
747: }
748: }
0x080015EA 8830 LDRH r0,[r6,#0x00]
0x080015EC F7FFFD35 BL.W LCD_WriteRAM (0x0800105A)
737: for(i = 0; i < 32; i++)
738: {
739: if((Pict[index] & (1 << i)) == 0x00)
740: {
741: LCD_WriteRAM(BackColor);
742: }
743: else
744: {
745: LCD_WriteRAM(TextColor);
746: }
747: }
748: }
0x080015F0 1C64 ADDS r4,r4,#1
0x080015F2 2C20 CMP r4,#0x20
0x080015F4 D3F3 BCC 0x080015DE
735: for(index = 0; index < 2400; index++)
736: {
737: for(i = 0; i < 32; i++)
738: {
739: if((Pict[index] & (1 << i)) == 0x00)
740: {
741: LCD_WriteRAM(BackColor);
742: }
743: else
744: {
745: LCD_WriteRAM(TextColor);
746: }
747: }
748: }
0x080015F6 1C6D ADDS r5,r5,#1
0x080015F8 4555 CMP r5,r10
0x080015FA D3EF BCC 0x080015DC
749: if(LCDType == LCD_ILI9320)
750: {
0x080015FC 6871 LDR r1,[r6,#0x04]
0x080015FE 4549 CMP r1,r9
0x08001600 D108 BNE 0x08001614
751: LCD_CtrlLinesWrite(GPIOB, CtrlPin_NCS, Bit_SET);
752: }
0x08001602 E8BD47F0 POP {r4-r10,lr}
0x08001606 2201 MOVS r2,#0x01
0x08001608 2104 MOVS r1,#0x04
0x0800160A 4853 LDR r0,[pc,#332] ; @0x08001758
0x0800160C F7FFB91C B.W LCD_CtrlLinesWrite (0x08000848)
741: LCD_WriteRAM(BackColor);
742: }
743: else
744: {
745: LCD_WriteRAM(TextColor);
746: }
747: }
748: }
749: if(LCDType == LCD_ILI9320)
750: {
751: LCD_CtrlLinesWrite(GPIOB, CtrlPin_NCS, Bit_SET);
752: }
0x08001610 8870 LDRH r0,[r6,#0x02]
0x08001612 E7EB B 0x080015EC
753: }
754:
755: /*******************************************************************************
756: * Function Name : LCD_DrawMonoBMP
757: * Description : Displays a monochrome bitmap.
758: * Input : - BmpAddress: Bmp picture address.
759: * Output : None
760: * Return : None
761: *******************************************************************************/
762: void LCD_DrawMonoBMP(u32 BmpAddress)
0x08001614 E6C9 B 0x080013AA
763: {
764: u32 i, ofs, size, mask;
765: u8 b;
766:
767: /* Read bitmap size */
0x08001616 E92D47F0 PUSH {r4-r10,lr}
768: size = *((u32 *)(BmpAddress + 2));
769:
770: /* get bitmap data address offset */
0x0800161A F8D02002 LDR r2,[r0,#0x02]
771: ofs = *((u32 *)(BmpAddress + 10));
772:
773: size = size - ofs;
774: BmpAddress += ofs;
775:
0x0800161E F8D0100A LDR r1,[r0,#0x0A]
776: if(LCDType == LCD_ILI9320)
777: {
778: /* Set GRAM write direction and BGR = 1 */
779: /* I/D=00 (Horizontal : decrement, Vertical : decrement) */
780: /* AM=1 (address is updated in vertical writing direction) */
0x08001622 4C4E LDR r4,[pc,#312] ; @0x0800175C
773: size = size - ofs;
0x08001624 1A52 SUBS r2,r2,r1
774: BmpAddress += ofs;
775:
0x08001626 1846 ADDS r6,r0,r1
776: if(LCDType == LCD_ILI9320)
777: {
778: /* Set GRAM write direction and BGR = 1 */
779: /* I/D=00 (Horizontal : decrement, Vertical : decrement) */
780: /* AM=1 (address is updated in vertical writing direction) */
0x08001628 6861 LDR r1,[r4,#0x04]
773: size = size - ofs;
774: BmpAddress += ofs;
775:
776: if(LCDType == LCD_ILI9320)
777: {
778: /* Set GRAM write direction and BGR = 1 */
779: /* I/D=00 (Horizontal : decrement, Vertical : decrement) */
780: /* AM=1 (address is updated in vertical writing direction) */
0x0800162A 4691 MOV r9,r2
0x0800162C F2493A20 MOVW r10,#0x9320
0x08001630 4551 CMP r1,r10
0x08001632 D106 BNE 0x08001642
781: LCD_WriteReg(R3, 0x1008);
782:
0x08001634 F2410108 MOVW r1,#0x1008
0x08001638 2003 MOVS r0,#0x03
0x0800163A F7FFF93A BL.W LCD_WriteReg (0x080008B2)
783: LCD_WriteRAM_Prepare(); /* Prepare to write GRAM */
784: }
0x0800163E F7FFFD52 BL.W LCD_WriteRAM_Prepare (0x080010E6)
785: for(i = 0; i < size; i++)
786: {
0x08001642 2500 MOVS r5,#0x00
0x08001644 46A0 MOV r8,r4
0x08001646 E00D B 0x08001664
787: b = *((u8 *)BmpAddress++);
0x08001648 F8167B01 LDRB r7,[r6],#0x01
788: for (mask = 0x80; mask; mask >>= 1)
789: {
0x0800164C 2480 MOVS r4,#0x80
790: if (b & mask)
791: {
792: LCD_WriteRAM(TextColor);
793: }
794: else
795: {
0x0800164E 4227 TST r7,r4
796: LCD_WriteRAM(BackColor);
797: }
798: }
799: }
0x08001650 4640 MOV r0,r8
0x08001652 D001 BEQ 0x08001658
792: LCD_WriteRAM(TextColor);
793: }
794: else
795: {
796: LCD_WriteRAM(BackColor);
797: }
798: }
799: }
0x08001654 8800 LDRH r0,[r0,#0x00]
0x08001656 E000 B 0x0800165A
0x08001658 8840 LDRH r0,[r0,#0x02]
0x0800165A F7FFFCFE BL.W LCD_WriteRAM (0x0800105A)
0x0800165E 0864 LSRS r4,r4,#1
0x08001660 D1F5 BNE 0x0800164E
785: for(i = 0; i < size; i++)
786: {
787: b = *((u8 *)BmpAddress++);
788: for (mask = 0x80; mask; mask >>= 1)
789: {
790: if (b & mask)
791: {
792: LCD_WriteRAM(TextColor);
793: }
794: else
795: {
796: LCD_WriteRAM(BackColor);
797: }
798: }
799: }
0x08001662 1C6D ADDS r5,r5,#1
0x08001664 454D CMP r5,r9
0x08001666 D3EF BCC 0x08001648
800: if(LCDType == LCD_ILI9320)
801: {
0x08001668 F8D81004 LDR r1,[r8,#0x04]
0x0800166C 4551 CMP r1,r10
0x0800166E D10B BNE 0x08001688
802: LCD_CtrlLinesWrite(GPIOB, CtrlPin_NCS, Bit_SET);
803: /* Set GRAM write direction and BGR = 1 */
804: /* I/D = 01 (Horizontal : increment, Vertical : decrement) */
805: /* AM = 1 (address is updated in vertical writing direction) */
0x08001670 2201 MOVS r2,#0x01
0x08001672 2104 MOVS r1,#0x04
0x08001674 4838 LDR r0,[pc,#224] ; @0x08001758
0x08001676 F7FFF8E7 BL.W LCD_CtrlLinesWrite (0x08000848)
806: LCD_WriteReg(R3, 0x1018);
807: }
0x0800167A E8BD47F0 POP {r4-r10,lr}
0x0800167E F2410118 MOVW r1,#0x1018
0x08001682 2003 MOVS r0,#0x03
0x08001684 F7FFB915 B.W LCD_WriteReg (0x080008B2)
808: }
809:
810: /*******************************************************************************
811: * Function Name : LCD_DrawBMP
812: * Description : Displays a bitmap picture loaded in the SPI Flash.
813: * Input : - BmpAddress: Bmp picture address in the SPI Flash.
814: * Output : None
815: * Return : None
816: *******************************************************************************/
817: void LCD_DrawBMP(u32 BmpAddress)
0x08001688 E68F B 0x080013AA
818: {
0x0800168A E92D41FC PUSH {r2-r8,lr}
819: u32 i = 0, size = 0;
820:
821: /* Read bitmap size */
0x0800168E 2700 MOVS r7,#0x00
0x08001690 4604 MOV r4,r0
822: SPI_FLASH_BufferRead((u8*)&size, BmpAddress + 2, 4);
823:
824: /* get bitmap data address offset */
0x08001692 1C81 ADDS r1,r0,#2
0x08001694 9701 STR r7,[sp,#0x04]
0x08001696 2204 MOVS r2,#0x04
0x08001698 4668 MOV r0,sp
0x0800169A 9700 STR r7,[sp,#0x00]
0x0800169C F7FFF858 BL.W SPI_FLASH_BufferRead (0x08000750)
825: SPI_FLASH_BufferRead((u8*)&i, BmpAddress + 10, 4);
826:
0x080016A0 2204 MOVS r2,#0x04
0x080016A2 F104010A ADD r1,r4,#0x0A
0x080016A6 A801 ADD r0,sp,#0x04
0x080016A8 F7FFF852 BL.W SPI_FLASH_BufferRead (0x08000750)
0x080016AC E9DD1000 LDRD r1,r0,[sp,#0]
827: size = (size - i)/2;
828:
0x080016B0 1A09 SUBS r1,r1,r0
0x080016B2 0849 LSRS r1,r1,#1
829: SPI_FLASH_StartReadSequence(BmpAddress + i);
830:
831: /* Disable SPI1 */
0x080016B4 4420 ADD r0,r0,r4
0x080016B6 9100 STR r1,[sp,#0x00]
0x080016B8 F7FFF893 BL.W SPI_FLASH_StartReadSequence (0x080007E2)
832: SPI_Cmd(SPI1, DISABLE);
833: /* SPI in 16-bit mode */
0x080016BC 4E28 LDR r6,[pc,#160] ; @0x08001760
0x080016BE 2100 MOVS r1,#0x00
0x080016C0 4630 MOV r0,r6
0x080016C2 F000FAE1 BL.W SPI_Cmd (0x08001C88)
834: SPI_DataSizeConfig(SPI1, SPI_DataSize_16b);
835:
836: /* Enable SPI1 */
0x080016C6 14F1 ASRS r1,r6,#19
0x080016C8 4630 MOV r0,r6
0x080016CA F000FAE7 BL.W SPI_DataSizeConfig (0x08001C9C)
837: SPI_Cmd(SPI1, ENABLE);
838:
0x080016CE 2101 MOVS r1,#0x01
0x080016D0 4630 MOV r0,r6
0x080016D2 F000FAD9 BL.W SPI_Cmd (0x08001C88)
839: if(LCDType == LCD_ILI9320)
840: {
841: /* Set GRAM write direction and BGR = 1 */
842: /* I/D=00 (Horizontal : decrement, Vertical : decrement) */
843: /* AM=1 (address is updated in vertical writing direction) */
0x080016D6 4C21 LDR r4,[pc,#132] ; @0x0800175C
0x080016D8 6860 LDR r0,[r4,#0x04]
0x080016DA F2493520 MOVW r5,#0x9320
0x080016DE 42A8 CMP r0,r5
0x080016E0 D106 BNE 0x080016F0
844: LCD_WriteReg(R3, 0x1008);
845:
0x080016E2 F2410108 MOVW r1,#0x1008
0x080016E6 2003 MOVS r0,#0x03
0x080016E8 F7FFF8E3 BL.W LCD_WriteReg (0x080008B2)
846: LCD_WriteRAM_Prepare(); /* Prepare to write GRAM */
847: }
848: /* Read bitmap data from SPI Flash and send them to LCD */
849: for(i = 0; i < size; i++)
850: {
0x080016EC F7FFFCFB BL.W LCD_WriteRAM_Prepare (0x080010E6)
851: LCD_WriteRAM(__REV_HalfWord(SPI_FLASH_SendHalfWord(0xA5A5)));
852: }
0x080016F0 9701 STR r7,[sp,#0x04]
0x080016F2 F24A57A5 MOVW r7,#0xA5A5
849: for(i = 0; i < size; i++)
850: {
851: LCD_WriteRAM(__REV_HalfWord(SPI_FLASH_SendHalfWord(0xA5A5)));
852: }
0x080016F6 9801 LDR r0,[sp,#0x04]
0x080016F8 E009 B 0x0800170E
0x080016FA 4638 MOV r0,r7
0x080016FC F7FFF888 BL.W SPI_FLASH_SendHalfWord (0x08000810)
0x08001700 F000F947 BL.W __REV_HalfWord (0x08001992)
0x08001704 F7FFFCA9 BL.W LCD_WriteRAM (0x0800105A)
0x08001708 9801 LDR r0,[sp,#0x04]
0x0800170A 1C40 ADDS r0,r0,#1
0x0800170C 9001 STR r0,[sp,#0x04]
0x0800170E 9900 LDR r1,[sp,#0x00]
0x08001710 4288 CMP r0,r1
0x08001712 D3F2 BCC 0x080016FA
853: if(LCDType == LCD_ILI9320)
854: {
0x08001714 6860 LDR r0,[r4,#0x04]
0x08001716 42A8 CMP r0,r5
0x08001718 D104 BNE 0x08001724
855: LCD_CtrlLinesWrite(GPIOB, CtrlPin_NCS, Bit_SET);
856: }
857:
858: /* Deselect the FLASH: Chip Select high */
0x0800171A 2201 MOVS r2,#0x01
0x0800171C 2104 MOVS r1,#0x04
0x0800171E 480E LDR r0,[pc,#56] ; @0x08001758
0x08001720 F7FFF892 BL.W LCD_CtrlLinesWrite (0x08000848)
859: SPI_FLASH_CS_HIGH();
860:
861: /* Disable SPI1 */
0x08001724 2110 MOVS r1,#0x10
0x08001726 480F LDR r0,[pc,#60] ; @0x08001764
0x08001728 F000F9DD BL.W GPIO_SetBits (0x08001AE6)
862: SPI_Cmd(SPI1, DISABLE);
863: /* SPI in 8-bit mode */
0x0800172C 2100 MOVS r1,#0x00
0x0800172E 4630 MOV r0,r6
0x08001730 F000FAAA BL.W SPI_Cmd (0x08001C88)
864: SPI_DataSizeConfig(SPI1, SPI_DataSize_8b);
865:
866: /* Enable SPI1 */
0x08001734 2100 MOVS r1,#0x00
0x08001736 4630 MOV r0,r6
0x08001738 F000FAB0 BL.W SPI_DataSizeConfig (0x08001C9C)
867: SPI_Cmd(SPI1, ENABLE);
0x0800173C 2101 MOVS r1,#0x01
0x0800173E 4630 MOV r0,r6
0x08001740 F000FAA2 BL.W SPI_Cmd (0x08001C88)
868: if(LCDType == LCD_ILI9320)
869: {
870: /* Set GRAM write direction and BGR = 1 */
871: /* I/D = 01 (Horizontal : increment, Vertical : decrement) */
872: /* AM = 1 (address is updated in vertical writing direction) */
0x08001744 6860 LDR r0,[r4,#0x04]
0x08001746 42A8 CMP r0,r5
0x08001748 D104 BNE 0x08001754
873: LCD_WriteReg(R3, 0x1018);
874: }
0x0800174A F2410118 MOVW r1,#0x1018
0x0800174E 2003 MOVS r0,#0x03
0x08001750 F7FFF8AF BL.W LCD_WriteReg (0x080008B2)
875: }
0x08001754 E8BD81FC POP {r2-r8,pc}
0x08001758 0C00 LSRS r0,r0,#16
0x0800175A 4001 ANDS r1,r1,r0
0x0800175C 0008 MOVS r0,r1
0x0800175E 2000 MOVS r0,#0x00
0x08001760 3000 ADDS r0,r0,#0x00
0x08001762 4001 ANDS r1,r1,r0
0x08001764 0800 LSRS r0,r0,#0
0x08001766 4001 ANDS r1,r1,r0
1137: if(LCDType == LCD_ILI9320)
1138: {
1139: /* Power On sequence ---------------------------------------------------------*/
0x08001768 4865 LDR r0,[pc,#404] ; @0x08001900
1136: {
1137: if(LCDType == LCD_ILI9320)
1138: {
1139: /* Power On sequence ---------------------------------------------------------*/
0x0800176A B510 PUSH {r4,lr}
0x0800176C 6841 LDR r1,[r0,#0x04]
0x0800176E F5A14213 SUB r2,r1,#0x9300
0x08001772 3A20 SUBS r2,r2,#0x20
0x08001774 D13A BNE 0x080017EC
1140: LCD_WriteReg(R16, 0x0000); /* SAP, BT[3:0], AP, DSTB, SLP, STB */
0x08001776 2100 MOVS r1,#0x00
0x08001778 2010 MOVS r0,#0x10
0x0800177A F7FFF89A BL.W LCD_WriteReg (0x080008B2)
1141: LCD_WriteReg(R17, 0x0000); /* DC1[2:0], DC0[2:0], VC[2:0] */
0x0800177E 2100 MOVS r1,#0x00
0x08001780 2011 MOVS r0,#0x11
0x08001782 F7FFF896 BL.W LCD_WriteReg (0x080008B2)
1142: LCD_WriteReg(R18, 0x0000); /* VREG1OUT voltage */
0x08001786 2100 MOVS r1,#0x00
0x08001788 2012 MOVS r0,#0x12
0x0800178A F7FFF892 BL.W LCD_WriteReg (0x080008B2)
1143: LCD_WriteReg(R19, 0x0000); /* VDV[4:0] for VCOM amplitude */
0x0800178E 2100 MOVS r1,#0x00
0x08001790 2013 MOVS r0,#0x13
0x08001792 F7FFF88E BL.W LCD_WriteReg (0x080008B2)
1144: Delay(20); /* Dis-charge capacitor power voltage (200ms) */
0x08001796 2014 MOVS r0,#0x14
0x08001798 F7FEFCB7 BL.W Delay (0x0800010A)
1145: LCD_WriteReg(R16, 0x17B0); /* SAP, BT[3:0], AP, DSTB, SLP, STB */
0x0800179C F24171B0 MOVW r1,#0x17B0
0x080017A0 2010 MOVS r0,#0x10
0x080017A2 F7FFF886 BL.W LCD_WriteReg (0x080008B2)
1146: LCD_WriteReg(R17, 0x0137); /* DC1[2:0], DC0[2:0], VC[2:0] */
0x080017A6 F2401137 MOVW r1,#0x137
0x080017AA 2011 MOVS r0,#0x11
0x080017AC F7FFF881 BL.W LCD_WriteReg (0x080008B2)
1147: Delay(5); /* Delay 50 ms */
0x080017B0 2005 MOVS r0,#0x05
0x080017B2 F7FEFCAA BL.W Delay (0x0800010A)
1148: LCD_WriteReg(R18, 0x0139); /* VREG1OUT voltage */
0x080017B6 F2401139 MOVW r1,#0x139
0x080017BA 2012 MOVS r0,#0x12
0x080017BC F7FFF879 BL.W LCD_WriteReg (0x080008B2)
1149: Delay(5); /* delay 50 ms */
0x080017C0 2005 MOVS r0,#0x05
0x080017C2 F7FEFCA2 BL.W Delay (0x0800010A)
1150: LCD_WriteReg(R19, 0x1d00); /* VDV[4:0] for VCOM amplitude */
0x080017C6 F44F51E8 MOV r1,#0x1D00
0x080017CA 2013 MOVS r0,#0x13
0x080017CC F7FFF871 BL.W LCD_WriteReg (0x080008B2)
1151: LCD_WriteReg(R41, 0x0013); /* VCM[4:0] for VCOMH */
0x080017D0 2113 MOVS r1,#0x13
0x080017D2 2029 MOVS r0,#0x29
0x080017D4 F7FFF86D BL.W LCD_WriteReg (0x080008B2)
1152: Delay(5); /* delay 50 ms */
0x080017D8 2005 MOVS r0,#0x05
0x080017DA F7FEFC96 BL.W Delay (0x0800010A)
1153: LCD_WriteReg(R7, 0x0173); /* 262K color and display ON */
1154: }
0x080017DE E8BD4010 POP {r4,lr}
0x080017E2 F2401173 MOVW r1,#0x173
0x080017E6 2007 MOVS r0,#0x07
0x080017E8 F7FFB863 B.W LCD_WriteReg (0x080008B2)
1155: else if(LCDType == LCD_HX8312)
1156: {
1157: /* Power On Set */
0x080017EC 6840 LDR r0,[r0,#0x04]
0x080017EE F5A04103 SUB r1,r0,#0x8300
0x080017F2 3912 SUBS r1,r1,#0x12
0x080017F4 D13C BNE 0x08001870
1158: LCD_WriteReg(R28, 0x73);
0x080017F6 2173 MOVS r1,#0x73
0x080017F8 201C MOVS r0,#0x1C
0x080017FA F7FFF85A BL.W LCD_WriteReg (0x080008B2)
1159: LCD_WriteReg(R36, 0x74);
0x080017FE 2174 MOVS r1,#0x74
0x08001800 2024 MOVS r0,#0x24
0x08001802 F7FFF856 BL.W LCD_WriteReg (0x080008B2)
1160: LCD_WriteReg(R30, 0x01);
0x08001806 2101 MOVS r1,#0x01
0x08001808 201E MOVS r0,#0x1E
0x0800180A F7FFF852 BL.W LCD_WriteReg (0x080008B2)
1161: LCD_WriteReg(R24, 0xC1);
0x0800180E 21C1 MOVS r1,#0xC1
0x08001810 2018 MOVS r0,#0x18
0x08001812 F7FFF84E BL.W LCD_WriteReg (0x080008B2)
1162: Delay(1); /* Delay 10 ms */
0x08001816 2001 MOVS r0,#0x01
0x08001818 F7FEFC77 BL.W Delay (0x0800010A)
1163: LCD_WriteReg(R24, 0xE1);
0x0800181C 21E1 MOVS r1,#0xE1
0x0800181E 2018 MOVS r0,#0x18
0x08001820 F7FFF847 BL.W LCD_WriteReg (0x080008B2)
1164: LCD_WriteReg(R24, 0xF1);
0x08001824 21F1 MOVS r1,#0xF1
0x08001826 2018 MOVS r0,#0x18
0x08001828 F7FFF843 BL.W LCD_WriteReg (0x080008B2)
1165: Delay(6); /* Delay 60 ms */
0x0800182C 2006 MOVS r0,#0x06
0x0800182E F7FEFC6C BL.W Delay (0x0800010A)
1166: LCD_WriteReg(R24, 0xF5);
0x08001832 21F5 MOVS r1,#0xF5
0x08001834 2018 MOVS r0,#0x18
0x08001836 F7FFF83C BL.W LCD_WriteReg (0x080008B2)
1167: Delay(6); /* Delay 60 ms */
0x0800183A 2006 MOVS r0,#0x06
0x0800183C F7FEFC65 BL.W Delay (0x0800010A)
1168: LCD_WriteReg(R27, 0x09);
0x08001840 2109 MOVS r1,#0x09
0x08001842 201B MOVS r0,#0x1B
0x08001844 F7FFF835 BL.W LCD_WriteReg (0x080008B2)
1169: Delay(1); /* Delay 10 ms */
0x08001848 2001 MOVS r0,#0x01
0x0800184A F7FEFC5E BL.W Delay (0x0800010A)
1170: LCD_WriteReg(R31, 0x11);
0x0800184E 2111 MOVS r1,#0x11
0x08001850 201F MOVS r0,#0x1F
0x08001852 F7FFF82E BL.W LCD_WriteReg (0x080008B2)
1171: LCD_WriteReg(R32, 0x0E);
0x08001856 210E MOVS r1,#0x0E
0x08001858 2020 MOVS r0,#0x20
0x0800185A F7FFF82A BL.W LCD_WriteReg (0x080008B2)
1172: LCD_WriteReg(R30, 0x81);
0x0800185E 2181 MOVS r1,#0x81
0x08001860 201E MOVS r0,#0x1E
0x08001862 F7FFF826 BL.W LCD_WriteReg (0x080008B2)
1173: Delay(1); /* Delay 10 ms */
1174: }
0x08001866 E8BD4010 POP {r4,lr}
0x0800186A 2001 MOVS r0,#0x01
0x0800186C F7FEBC4D B.W Delay (0x0800010A)
1175: }
1176:
1177: /*******************************************************************************
1178: * Function Name : LCD_DisplayOn
1179: * Description : Enables the Display.
1180: * Input : None
1181: * Output : None
1182: * Return : None
1183: *******************************************************************************/
1184: void LCD_DisplayOn(void)
1185: {
0x08001870 BD10 POP {r4,pc}
1186: if(LCDType == LCD_ILI9320)
1187: {
1188: /* Display On */
0x08001872 4823 LDR r0,[pc,#140] ; @0x08001900
1185: {
1186: if(LCDType == LCD_ILI9320)
1187: {
1188: /* Display On */
0x08001874 B510 PUSH {r4,lr}
0x08001876 6841 LDR r1,[r0,#0x04]
0x08001878 F5A14213 SUB r2,r1,#0x9300
0x0800187C 3A20 SUBS r2,r2,#0x20
0x0800187E D103 BNE 0x08001888
1189: LCD_WriteReg(R7, 0x0173); /* 262K color and display ON */
1190: }
0x08001880 F2401173 MOVW r1,#0x173
0x08001884 2007 MOVS r0,#0x07
0x08001886 E019 B 0x080018BC
1191: else if(LCDType == LCD_HX8312)
1192: {
0x08001888 6840 LDR r0,[r0,#0x04]
0x0800188A F5A04103 SUB r1,r0,#0x8300
0x0800188E 3912 SUBS r1,r1,#0x12
0x08001890 D118 BNE 0x080018C4
1193: LCD_WriteReg(R1, 0x50);
0x08001892 2150 MOVS r1,#0x50
0x08001894 2001 MOVS r0,#0x01
0x08001896 F7FFF80C BL.W LCD_WriteReg (0x080008B2)
1194: LCD_WriteReg(R5, 0x04);
1195:
1196: /* Display On */
0x0800189A 2104 MOVS r1,#0x04
0x0800189C 2005 MOVS r0,#0x05
0x0800189E F7FFF808 BL.W LCD_WriteReg (0x080008B2)
1197: LCD_WriteReg(R0, 0x80);
0x080018A2 2180 MOVS r1,#0x80
0x080018A4 2000 MOVS r0,#0x00
0x080018A6 F7FFF804 BL.W LCD_WriteReg (0x080008B2)
1198: LCD_WriteReg(R59, 0x01);
0x080018AA 2101 MOVS r1,#0x01
0x080018AC 203B MOVS r0,#0x3B
0x080018AE F7FFF800 BL.W LCD_WriteReg (0x080008B2)
1199: Delay(4); /* Delay 40 ms */
0x080018B2 2004 MOVS r0,#0x04
0x080018B4 F7FEFC29 BL.W Delay (0x0800010A)
1200: LCD_WriteReg(R0, 0x20);
1201: }
0x080018B8 2120 MOVS r1,#0x20
0x080018BA 2000 MOVS r0,#0x00
0x080018BC E8BD4010 POP {r4,lr}
0x080018C0 F7FEBFF7 B.W LCD_WriteReg (0x080008B2)
1202: }
1203:
1204: /*******************************************************************************
1205: * Function Name : LCD_DisplayOff
1206: * Description : Disables the Display.
1207: * Input : None
1208: * Output : None
1209: * Return : None
1210: *******************************************************************************/
1211: void LCD_DisplayOff(void)
1212: {
0x080018C4 BD10 POP {r4,pc}
1213: if(LCDType == LCD_ILI9320)
1214: {
1215: /* Display Off */
0x080018C6 480E LDRAL r0,[pc,#56] ; @0x08001900
1212: {
1213: if(LCDType == LCD_ILI9320)
1214: {
1215: /* Display Off */
0x080018C8 B510 PUSH {r4,lr}
0x080018CA 6841 LDR r1,[r0,#0x04]
0x080018CC F5A14213 SUB r2,r1,#0x9300
0x080018D0 3A20 SUBS r2,r2,#0x20
0x080018D2 D102 BNE 0x080018DA
1216: LCD_WriteReg(R7, 0x0);
1217: }
0x080018D4 2100 MOVS r1,#0x00
0x080018D6 2007 MOVS r0,#0x07
0x080018D8 E00D B 0x080018F6
1218: else if(LCDType == LCD_HX8312)
1219: {
1220: /* Display Off */
0x080018DA 6840 LDR r0,[r0,#0x04]
0x080018DC F5A04103 SUB r1,r0,#0x8300
0x080018E0 3912 SUBS r1,r1,#0x12
0x080018E2 D10C BNE 0x080018FE
1221: LCD_WriteReg(R0, 0xA0);
0x080018E4 21A0 MOVS r1,#0xA0
0x080018E6 2000 MOVS r0,#0x00
0x080018E8 F7FEFFE3 BL.W LCD_WriteReg (0x080008B2)
1222: Delay(4); /* Delay 40 ms */
0x080018EC 2004 MOVS r0,#0x04
0x080018EE F7FEFC0C BL.W Delay (0x0800010A)
1223: LCD_WriteReg(R59, 0x00);
1224: }
0x080018F2 2100 MOVS r1,#0x00
0x080018F4 203B MOVS r0,#0x3B
0x080018F6 E8BD4010 POP {r4,lr}
0x080018FA F7FEBFDA B.W LCD_WriteReg (0x080008B2)
1225: }
0x080018FE BD10 POPLE {r4,pc}
0x08001900 0008 MOVLE r0,r1
0x08001902 2000 MOVGT r0,#0x00
120: LDR R0, =__main
0x08001904 4805 LDR r0,[pc,#20] ; @0x0800191C
121: BX R0 ;R0=0x080000EC/D
122: ENDP
123:
124:
125: ; Dummy Exception Handlers (infinite loops which can be modified)
126:
127: NMI_Handler PROC
128: EXPORT NMI_Handler [WEAK]
0x08001906 4700 BX r0
129: B .
130: ENDP
131: HardFault_Handler\
132: PROC
133: EXPORT HardFault_Handler [WEAK]
0x08001908 E7FE B NMI_Handler (0x08001908)
134: B .
135: ENDP
136: MemManage_Handler\
137: PROC
138: EXPORT MemManage_Handler [WEAK]
0x0800190A E7FE B HardFault_Handler (0x0800190A)
139: B .
140: ENDP
141: BusFault_Handler\
142: PROC
143: EXPORT BusFault_Handler [WEAK]
0x0800190C E7FE B MemManage_Handler (0x0800190C)
144: B .
145: ENDP
146: UsageFault_Handler\
147: PROC
148: EXPORT UsageFault_Handler [WEAK]
0x0800190E E7FE B BusFault_Handler (0x0800190E)
149: B .
150: ENDP
151: SVC_Handler PROC
152: EXPORT SVC_Handler [WEAK]
0x08001910 E7FE B UsageFault_Handler (0x08001910)
153: B .
154: ENDP
155: DebugMon_Handler\
156: PROC
157: EXPORT DebugMon_Handler [WEAK]
0x08001912 E7FE B SVC_Handler (0x08001912)
158: B .
159: ENDP
160: PendSV_Handler PROC
161: EXPORT PendSV_Handler [WEAK]
0x08001914 E7FE B DebugMon_Handler (0x08001914)
162: B .
163: ENDP
164: SysTick_Handler PROC
165: EXPORT SysTick_Handler [WEAK]
0x08001916 E7FE B PendSV_Handler (0x08001916)
166: B .
0x08001918 E7FE B SysTick_Handler (0x08001918)
259: B .
0x0800191A E7FE B Default_Handler (0x0800191A)
0x0800191C 00ED LSLS r5,r5,#3
0x0800191E 0800 LSRS r0,r0,#0
__WFI:
0x08001920 BF30 WFI
0x08001922 4770 BX lr
__WFE:
0x08001924 BF20 WFE
0x08001926 4770 BX lr
__SEV:
0x08001928 BF40 SEV
0x0800192A 4770 BX lr
__ISB:
0x0800192C F3BF8F6F ISB.W
0x08001930 4770 BX lr
__DSB:
0x08001932 F3BF8F4F DSB.W
0x08001936 4770 BX lr
__DMB:
0x08001938 F3BF8F5F DMB.W
0x0800193C 4770 BX lr
__SVC:
0x0800193E DF01 SVC 0x01
0x08001940 4770 BX lr
__MRS_CONTROL:
0x08001942 F3EF8014 MRS r0,CONTROL
0x08001946 4770 BX lr
__MSR_CONTROL:
0x08001948 F3808814 MSR CONTROL,r0
0x0800194C F3BF8F6F ISB.W
0x08001950 4770 BX lr
__MRS_PSP:
0x08001952 F3EF8009 MRS r0,PSP
0x08001956 4770 BX lr
__MSR_PSP:
0x08001958 F3808809 MSR PSP,r0
0x0800195C 4770 BX lr
__MRS_MSP:
0x0800195E F3EF8008 MRS r0,MSP
0x08001962 4770 BX lr
__MSR_MSP:
0x08001964 F3808808 MSR MSP,r0
0x08001968 4770 BX lr
__RESETPRIMASK:
0x0800196A B662 CPSIE I
0x0800196C 4770 BX lr
__SETPRIMASK:
0x0800196E B672 CPSID I
0x08001970 4770 BX lr
__READ_PRIMASK:
0x08001972 F3EF8010 MRS r0,PRIMASK
0x08001976 4770 BX lr
__SETFAULTMASK:
0x08001978 B671 CPSID F
0x0800197A 4770 BX lr
__RESETFAULTMASK:
0x0800197C B661 CPSIE F
0x0800197E 4770 BX lr
__READ_FAULTMASK:
0x08001980 F3EF8013 MRS r0,FAULTMASK
0x08001984 4770 BX lr
__BASEPRICONFIG:
0x08001986 F3808811 MSR BASEPRI,r0
0x0800198A 4770 BX lr
__GetBASEPRI:
0x0800198C F3EF8012 MRS r0,BASEPRI_MAX
0x08001990 4770 BX lr
__REV_HalfWord:
0x08001992 BA40 REV16 r0,r0
0x08001994 4770 BX lr
__REV_Word:
0x08001996 BA00 REV r0,r0
0x08001998 4770 BX lr
strncmp:
0x0800199A B530 PUSH {r4-r5,lr}
0x0800199C 4605 MOV r5,r0
0x0800199E 2000 MOVS r0,#0x00
0x080019A0 4603 MOV r3,r0
0x080019A2 E000 B 0x080019A6
0x080019A4 1C5B ADDS r3,r3,#1
0x080019A6 4293 CMP r3,r2
0x080019A8 D205 BCS 0x080019B6
0x080019AA 5CEC LDRB r4,[r5,r3]
0x080019AC 5CC8 LDRB r0,[r1,r3]
0x080019AE 1A20 SUBS r0,r4,r0
0x080019B0 D101 BNE 0x080019B6
0x080019B2 2C00 CMP r4,#0x00
0x080019B4 D1F6 BNE 0x080019A4
0x080019B6 BD30 POP {r4-r5,pc}
__scatterload_rt2:
0x080019B8 4C06 LDR r4,[pc,#24] ; @0x080019D4;r4=0x080035E8
0x080019BA 4D07 LDR r5,[pc,#28] ; @0x080019D8;r5=0x08003608
0x080019BC E006 B 0x080019CC
0x080019BE 68E0 LDR r0,[r4,#0x0C];r0=0x08001D8A r0=0x08001D9A
0x080019C0 F0400301 ORR r3,r0,#0x01 ;r3=0x08001D8B r0=0x08001D9B
0x080019C4 E8940007 LDM r4,{r0-r2};r0=0x08003608 r1=0x20000000 r2=0x00000010
;r0=0x08003618 r1=0x20000010 r2=0x00000200
0x080019C8 4798 BLX r3
0x080019CA 3410 ADDS r4,r4,#0x10;R4=0x080035F8
0x080019CC 42AC CMP r4,r5
0x080019CE D3F6 BCC 0x080019BE
0x080019D0 F7FEFB90 BL.W _main_init (0x080000F4)
0x080019D4 35E8 ADDS r5,r5,#0xE8
0x080019D6 0800 LSRS r0,r0,#0
0x080019D8 3608 ADDS r6,r6,#0x08
0x080019DA 0800 LSRS r0,r0,#0
FLASH_PrefetchBufferCmd:
0x080019DC 4904 LDR r1,[pc,#16] ; @0x080019F0
0x080019DE 680A LDR r2,[r1,#0x00]
0x080019E0 F0220210 BIC r2,r2,#0x10
0x080019E4 600A STR r2,[r1,#0x00]
0x080019E6 680A LDR r2,[r1,#0x00]
0x080019E8 4302 ORRS r2,r2,r0
0x080019EA 600A STR r2,[r1,#0x00]
0x080019EC 4770 BX lr
0x080019EE 0000 MOVS r0,r0
0x080019F0 2000 MOVS r0,#0x00
0x080019F2 4002 ANDS r2,r2,r0
FLASH_SetLatency:
0x080019F4 4904 LDR r1,[pc,#16] ; @0x08001A08
0x080019F6 680A LDR r2,[r1,#0x00]
0x080019F8 F0020238 AND r2,r2,#0x38
0x080019FC 600A STR r2,[r1,#0x00]
0x080019FE 680A LDR r2,[r1,#0x00]
0x08001A00 4302 ORRS r2,r2,r0
0x08001A02 600A STR r2,[r1,#0x00]
0x08001A04 4770 BX lr
0x08001A06 0000 MOVS r0,r0
0x08001A08 2000 MOVS r0,#0x00
0x08001A0A 4002 ANDS r2,r2,r0
GPIO_EXTILineConfig:
0x08001A0C B510 PUSH {r4,lr}
0x08001A0E 078A LSLS r2,r1,#30
0x08001A10 F0210403 BIC r4,r1,#0x03
0x08001A14 4906 LDR r1,[pc,#24] ; @0x08001A30
0x08001A16 0F12 LSRS r2,r2,#28
0x08001A18 4421 ADD r1,r1,r4
0x08001A1A 230F MOVS r3,#0x0F
0x08001A1C 688C LDR r4,[r1,#0x08]
0x08001A1E 4093 LSLS r3,r3,r2
0x08001A20 439C BICS r4,r4,r3
0x08001A22 608C STR r4,[r1,#0x08]
0x08001A24 688B LDR r3,[r1,#0x08]
0x08001A26 4090 LSLS r0,r0,r2
0x08001A28 4303 ORRS r3,r3,r0
0x08001A2A 608B STR r3,[r1,#0x08]
0x08001A2C BD10 POP {r4,pc}
0x08001A2E 0000 MOVS r0,r0
0x08001A30 0000 MOVS r0,r0
0x08001A32 4001 ANDS r1,r1,r0
GPIO_Init:
0x08001A34 B5F0 PUSH {r4-r7,lr}
0x08001A36 78CB LDRB r3,[r1,#0x03]
0x08001A38 2200 MOVS r2,#0x00
0x08001A3A 06DC LSLS r4,r3,#27
0x08001A3C F003030F AND r3,r3,#0x0F
0x08001A40 D501 BPL 0x08001A46
0x08001A42 788C LDRB r4,[r1,#0x02]
0x08001A44 4323 ORRS r3,r3,r4
0x08001A46 880C LDRH r4,[r1,#0x00]
0x08001A48 270F MOVS r7,#0x0F
0x08001A4A F0140FFF TST r4,#0xFF
0x08001A4E F04F0C01 MOV r12,#0x01
0x08001A52 D01C BEQ 0x08001A8E
0x08001A54 F8D05000 LDR r5,[r0,#0x00]
0x08001A58 880E LDRH r6,[r1,#0x00]
0x08001A5A FA0CF402 LSL r4,r12,r2
0x08001A5E 4026 ANDS r6,r6,r4
0x08001A60 42A6 CMP r6,r4
0x08001A62 D110 BNE 0x08001A86
0x08001A64 0096 LSLS r6,r2,#2
0x08001A66 FA07FE06 LSL lr,r7,r6
0x08001A6A EA250E0E BIC lr,r5,lr
0x08001A6E FA03F506 LSL r5,r3,r6
0x08001A72 78CE LDRB r6,[r1,#0x03]
0x08001A74 EA45050E ORR r5,r5,lr
0x08001A78 2E28 CMP r6,#0x28
0x08001A7A D100 BNE 0x08001A7E
0x08001A7C 6144 STR r4,[r0,#0x14]
0x08001A7E 78CE LDRB r6,[r1,#0x03]
0x08001A80 2E48 CMP r6,#0x48
0x08001A82 D100 BNE 0x08001A86
0x08001A84 6104 STR r4,[r0,#0x10]
0x08001A86 1C52 ADDS r2,r2,#1
0x08001A88 2A08 CMP r2,#0x08
0x08001A8A D3E5 BCC 0x08001A58
0x08001A8C 6005 STR r5,[r0,#0x00]
0x08001A8E 880A LDRH r2,[r1,#0x00]
0x08001A90 2AFF CMP r2,#0xFF
0x08001A92 D91E BLS 0x08001AD2
0x08001A94 6845 LDR r5,[r0,#0x04]
0x08001A96 2200 MOVS r2,#0x00
0x08001A98 F1020608 ADD r6,r2,#0x08
0x08001A9C FA0CF406 LSL r4,r12,r6
0x08001AA0 880E LDRH r6,[r1,#0x00]
0x08001AA2 4026 ANDS r6,r6,r4
0x08001AA4 42A6 CMP r6,r4
0x08001AA6 D110 BNE 0x08001ACA
0x08001AA8 0096 LSLS r6,r2,#2
0x08001AAA FA07FE06 LSL lr,r7,r6
0x08001AAE EA250E0E BIC lr,r5,lr
0x08001AB2 FA03F506 LSL r5,r3,r6
0x08001AB6 78CE LDRB r6,[r1,#0x03]
0x08001AB8 EA45050E ORR r5,r5,lr
0x08001ABC 2E28 CMP r6,#0x28
0x08001ABE D100 BNE 0x08001AC2
0x08001AC0 6144 STR r4,[r0,#0x14]
0x08001AC2 78CE LDRB r6,[r1,#0x03]
0x08001AC4 2E48 CMP r6,#0x48
0x08001AC6 D100 BNE 0x08001ACA
0x08001AC8 6104 STR r4,[r0,#0x10]
0x08001ACA 1C52 ADDS r2,r2,#1
0x08001ACC 2A08 CMP r2,#0x08
0x08001ACE D3E3 BCC 0x08001A98
0x08001AD0 6045 STR r5,[r0,#0x04]
0x08001AD2 BDF0 POP {r4-r7,pc}
GPIO_ReadInputDataBit:
0x08001AD4 4602 MOV r2,r0
0x08001AD6 6892 LDR r2,[r2,#0x08]
0x08001AD8 2000 MOVS r0,#0x00
0x08001ADA 420A TST r2,r1
0x08001ADC D000 BEQ 0x08001AE0
0x08001ADE 2001 MOVS r0,#0x01
0x08001AE0 4770 BX lr
GPIO_ResetBits:
0x08001AE2 6141 STR r1,[r0,#0x14]
0x08001AE4 4770 BX lr
GPIO_SetBits:
0x08001AE6 6101 STR r1,[r0,#0x10]
0x08001AE8 4770 BX lr
GPIO_WriteBit:
0x08001AEA B10A CBZ r2,0x08001AF0
0x08001AEC 6101 STR r1,[r0,#0x10]
0x08001AEE 4770 BX lr
0x08001AF0 6141 STR r1,[r0,#0x14]
0x08001AF2 4770 BX lr
RCC_ADCCLKConfig:
0x08001AF4 4A03 LDR r2,[pc,#12] ; @0x08001B04
0x08001AF6 6851 LDR r1,[r2,#0x04]
0x08001AF8 F4214140 BIC r1,r1,#0xC000
0x08001AFC 4301 ORRS r1,r1,r0
0x08001AFE 6051 STR r1,[r2,#0x04]
0x08001B00 4770 BX lr
0x08001B02 0000 MOVS r0,r0
0x08001B04 1000 ASRS r0,r0,#0
0x08001B06 4002 ANDS r2,r2,r0
RCC_APB1PeriphClockCmd:
0x08001B08 4A04 LDR r2,[pc,#16] ; @0x08001B1C
0x08001B0A 2900 CMP r1,#0x00
0x08001B0C 69D1 LDR r1,[r2,#0x1C]
0x08001B0E D001 BEQ 0x08001B14
0x08001B10 4301 ORRS r1,r1,r0
0x08001B12 E000 B 0x08001B16
0x08001B14 4381 BICS r1,r1,r0
0x08001B16 61D1 STR r1,[r2,#0x1C]
0x08001B18 4770 BX lr
0x08001B1A 0000 MOVS r0,r0
0x08001B1C 1000 ASRS r0,r0,#0
0x08001B1E 4002 ANDS r2,r2,r0
RCC_APB1PeriphResetCmd:
0x08001B20 4A04 LDR r2,[pc,#16] ; @0x08001B34
0x08001B22 2900 CMP r1,#0x00
0x08001B24 6911 LDR r1,[r2,#0x10]
0x08001B26 D001 BEQ 0x08001B2C
0x08001B28 4301 ORRS r1,r1,r0
0x08001B2A E000 B 0x08001B2E
0x08001B2C 4381 BICS r1,r1,r0
0x08001B2E 6111 STR r1,[r2,#0x10]
0x08001B30 4770 BX lr
0x08001B32 0000 MOVS r0,r0
0x08001B34 1000 ASRS r0,r0,#0
0x08001B36 4002 ANDS r2,r2,r0
RCC_APB2PeriphClockCmd:
0x08001B38 4A04 LDR r2,[pc,#16] ; @0x08001B4C
0x08001B3A 2900 CMP r1,#0x00
0x08001B3C 6991 LDR r1,[r2,#0x18]
0x08001B3E D001 BEQ 0x08001B44
0x08001B40 4301 ORRS r1,r1,r0
0x08001B42 E000 B 0x08001B46
0x08001B44 4381 BICS r1,r1,r0
0x08001B46 6191 STR r1,[r2,#0x18]
0x08001B48 4770 BX lr
0x08001B4A 0000 MOVS r0,r0
0x08001B4C 1000 ASRS r0,r0,#0
0x08001B4E 4002 ANDS r2,r2,r0
RCC_APB2PeriphResetCmd:
0x08001B50 4A04 LDR r2,[pc,#16] ; @0x08001B64
0x08001B52 2900 CMP r1,#0x00
0x08001B54 68D1 LDR r1,[r2,#0x0C]
0x08001B56 D001 BEQ 0x08001B5C
0x08001B58 4301 ORRS r1,r1,r0
0x08001B5A E000 B 0x08001B5E
0x08001B5C 4381 BICS r1,r1,r0
0x08001B5E 60D1 STR r1,[r2,#0x0C]
0x08001B60 4770 BX lr
0x08001B62 0000 MOVS r0,r0
0x08001B64 1000 ASRS r0,r0,#0
0x08001B66 4002 ANDS r2,r2,r0
RCC_DeInit:
0x08001B68 480B LDR r0,[pc,#44] ; @0x08001B98
0x08001B6A 6801 LDR r1,[r0,#0x00]
0x08001B6C F0410101 ORR r1,r1,#0x01
0x08001B70 6001 STR r1,[r0,#0x00]
0x08001B72 6841 LDR r1,[r0,#0x04]
0x08001B74 4A09 LDR r2,[pc,#36] ; @0x08001B9C
0x08001B76 4011 ANDS r1,r1,r2
0x08001B78 6041 STR r1,[r0,#0x04]
0x08001B7A 6801 LDR r1,[r0,#0x00]
0x08001B7C 4A08 LDR r2,[pc,#32] ; @0x08001BA0
0x08001B7E 4011 ANDS r1,r1,r2
0x08001B80 6001 STR r1,[r0,#0x00]
0x08001B82 6801 LDR r1,[r0,#0x00]
0x08001B84 F4212180 BIC r1,r1,#0x40000
0x08001B88 6001 STR r1,[r0,#0x00]
0x08001B8A 6842 LDR r2,[r0,#0x04]
0x08001B8C 2100 MOVS r1,#0x00
0x08001B8E F42202FE BIC r2,r2,#0x7F0000
0x08001B92 6042 STR r2,[r0,#0x04]
0x08001B94 6081 STR r1,[r0,#0x08]
0x08001B96 4770 BX lr
0x08001B98 1000 ASRS r0,r0,#0
0x08001B9A 4002 ANDS r2,r2,r0
0x08001B9C 0000 MOVS r0,r0
0x08001B9E F8FFFFFF LDR pc,[pc,#4095] ; @0x08002BA1
0x08001BA2 FEF64603 MRC2 P6,0x07,r4,C6,C3
0x08001BA6 2000 MOVS r0,#0x00
0x08001BA8 0959 LSRS r1,r3,#5
0x08001BAA 4A09 LDR r2,[pc,#36] ; @0x08001BD0
0x08001BAC 2901 CMP r1,#0x01
0x08001BAE D101 BNE 0x08001BB4
0x08001BB0 6811 LDR r1,[r2,#0x00]
0x08001BB2 E004 B 0x08001BBE
0x08001BB4 2902 CMP r1,#0x02
0x08001BB6 D101 BNE 0x08001BBC
0x08001BB8 6A11 LDR r1,[r2,#0x20]
0x08001BBA E000 B 0x08001BBE
0x08001BBC 6A51 LDR r1,[r2,#0x24]
0x08001BBE F003021F AND r2,r3,#0x1F
0x08001BC2 2301 MOVS r3,#0x01
0x08001BC4 4093 LSLS r3,r3,r2
0x08001BC6 420B TST r3,r1
0x08001BC8 D000 BEQ 0x08001BCC
0x08001BCA 2001 MOVS r0,#0x01
0x08001BCC 4770 BX lr
0x08001BCE 0000 MOVS r0,r0
0x08001BD0 1000 ASRS r0,r0,#0
0x08001BD2 4002 ANDS r2,r2,r0
RCC_GetSYSCLKSource:
0x08001BD4 4802 LDR r0,[pc,#8] ; @0x08001BE0
0x08001BD6 6840 LDR r0,[r0,#0x04]
0x08001BD8 F000000C AND r0,r0,#0x0C
0x08001BDC 4770 BX lr
0x08001BDE 0000 MOVS r0,r0
0x08001BE0 1000 ASRS r0,r0,#0
0x08001BE2 4002 ANDS r2,r2,r0
RCC_HCLKConfig:
0x08001BE4 4A03 LDR r2,[pc,#12] ; @0x08001BF4
0x08001BE6 6851 LDR r1,[r2,#0x04]
0x08001BE8 F02101F0 BIC r1,r1,#0xF0
0x08001BEC 4301 ORRS r1,r1,r0
0x08001BEE 6051 STR r1,[r2,#0x04]
0x08001BF0 4770 BX lr
0x08001BF2 0000 MOVS r0,r0
0x08001BF4 1000 ASRS r0,r0,#0
0x08001BF6 4002 ANDS r2,r2,r0
RCC_HSEConfig:
0x08001BF8 490B LDR r1,[pc,#44] ; @0x08001C28
0x08001BFA 680A LDR r2,[r1,#0x00]
0x08001BFC F4223280 BIC r2,r2,#0x10000
0x08001C00 600A STR r2,[r1,#0x00]
0x08001C02 680A LDR r2,[r1,#0x00]
0x08001C04 F5B03F80 CMP r0,#0x10000
0x08001C08 F4222280 BIC r2,r2,#0x40000
0x08001C0C 600A STR r2,[r1,#0x00]
0x08001C0E D007 BEQ 0x08001C20
0x08001C10 F5B02F80 CMP r0,#0x40000
0x08001C14 D103 BNE 0x08001C1E
0x08001C16 6808 LDR r0,[r1,#0x00]
0x08001C18 F44020A0 ORR r0,r0,#0x50000
0x08001C1C 6008 STR r0,[r1,#0x00]
0x08001C1E 4770 BX lr
0x08001C20 6808 LDR r0,[r1,#0x00]
0x08001C22 F4403080 ORR r0,r0,#0x10000
0x08001C26 E7F9 B 0x08001C1C
0x08001C28 1000 ASRS r0,r0,#0
0x08001C2A 4002 ANDS r2,r2,r0
RCC_PCLK1Config:
0x08001C2C 4A03 LDR r2,[pc,#12] ; @0x08001C3C
0x08001C2E 6851 LDR r1,[r2,#0x04]
0x08001C30 F42161E0 BIC r1,r1,#0x700
0x08001C34 4301 ORRS r1,r1,r0
0x08001C36 6051 STR r1,[r2,#0x04]
0x08001C38 4770 BX lr
0x08001C3A 0000 MOVS r0,r0
0x08001C3C 1000 ASRS r0,r0,#0
0x08001C3E 4002 ANDS r2,r2,r0
RCC_PCLK2Config:
0x08001C40 4A03 LDR r2,[pc,#12] ; @0x08001C50
0x08001C42 6851 LDR r1,[r2,#0x04]
0x08001C44 F4215160 BIC r1,r1,#0x3800
0x08001C48 EA4100C0 ORR r0,r1,r0,LSL #3
0x08001C4C 6050 STR r0,[r2,#0x04]
0x08001C4E 4770 BX lr
0x08001C50 1000 ASRS r0,r0,#0
0x08001C52 4002 ANDS r2,r2,r0
RCC_PLLCmd:
0x08001C54 4901 LDR r1,[pc,#4] ; @0x08001C5C
0x08001C56 6608 STR r0,[r1,#0x60]
0x08001C58 4770 BX lr
0x08001C5A 0000 MOVS r0,r0
0x08001C5C 0000 MOVS r0,r0
0x08001C5E 4242 RSBS r2,r0,#0
RCC_PLLConfig:
0x08001C60 4B03 LDR r3,[pc,#12] ; @0x08001C70
0x08001C62 685A LDR r2,[r3,#0x04]
0x08001C64 4308 ORRS r0,r0,r1
0x08001C66 F422127C BIC r2,r2,#0x3F0000
0x08001C6A 4310 ORRS r0,r0,r2
0x08001C6C 6058 STR r0,[r3,#0x04]
0x08001C6E 4770 BX lr
0x08001C70 1000 ASRS r0,r0,#0
0x08001C72 4002 ANDS r2,r2,r0
RCC_SYSCLKConfig:
0x08001C74 4A03 LDR r2,[pc,#12] ; @0x08001C84
0x08001C76 6851 LDR r1,[r2,#0x04]
0x08001C78 F0210103 BIC r1,r1,#0x03
0x08001C7C 4301 ORRS r1,r1,r0
0x08001C7E 6051 STR r1,[r2,#0x04]
0x08001C80 4770 BX lr
0x08001C82 0000 MOVS r0,r0
0x08001C84 1000 ASRS r0,r0,#0
0x08001C86 4002 ANDS r2,r2,r0
SPI_Cmd:
0x08001C88 2900 CMP r1,#0x00
0x08001C8A 8801 LDRH r1,[r0,#0x00]
0x08001C8C D002 BEQ 0x08001C94
0x08001C8E F0410140 ORR r1,r1,#0x40
0x08001C92 E001 B 0x08001C98
0x08001C94 F0210140 BIC r1,r1,#0x40
0x08001C98 8001 STRH r1,[r0,#0x00]
0x08001C9A 4770 BX lr
SPI_DataSizeConfig:
0x08001C9C 8802 LDRH r2,[r0,#0x00]
0x08001C9E F4226200 BIC r2,r2,#0x800
0x08001CA2 8002 STRH r2,[r0,#0x00]
0x08001CA4 8802 LDRH r2,[r0,#0x00]
0x08001CA6 430A ORRS r2,r2,r1
0x08001CA8 8002 STRH r2,[r0,#0x00]
0x08001CAA 4770 BX lr
SPI_I2S_DeInit:
0x08001CAC 4911 LDR r1,[pc,#68] ; @0x08001CF4
0x08001CAE B510 PUSH {r4,lr}
0x08001CB0 1840 ADDS r0,r0,r1
0x08001CB2 D010 BEQ 0x08001CD6
0x08001CB4 F5B06F80 CMP r0,#0x400
0x08001CB8 D010 BEQ 0x08001CDC
0x08001CBA F5B04F78 CMP r0,#0xF800
0x08001CBE D118 BNE 0x08001CF2
0x08001CC0 2101 MOVS r1,#0x01
0x08001CC2 030C LSLS r4,r1,#12
0x08001CC4 4620 MOV r0,r4
0x08001CC6 F7FFFF43 BL.W RCC_APB2PeriphResetCmd (0x08001B50)
0x08001CCA 4620 MOV r0,r4
0x08001CCC E8BD4010 POP {r4,lr}
0x08001CD0 2100 MOVS r1,#0x00
0x08001CD2 F7FFBF3D B.W RCC_APB2PeriphResetCmd (0x08001B50)
0x08001CD6 2101 MOVS r1,#0x01
0x08001CD8 038C LSLS r4,r1,#14
0x08001CDA E001 B 0x08001CE0
0x08001CDC 2101 MOVS r1,#0x01
0x08001CDE 03CC LSLS r4,r1,#15
0x08001CE0 4620 MOV r0,r4
0x08001CE2 F7FFFF1D BL.W RCC_APB1PeriphResetCmd (0x08001B20)
0x08001CE6 4620 MOV r0,r4
0x08001CE8 E8BD4010 POP {r4,lr}
0x08001CEC 2100 MOVS r1,#0x00
0x08001CEE F7FFBF17 B.W RCC_APB1PeriphResetCmd (0x08001B20)
0x08001CF2 BD10 POP {r4,pc}
0x08001CF4 C800 LDM r0!,{}
0x08001CF6 BFFF ITTTT
SPI_I2S_GetFlagStatus:
0x08001CF8 4602 MOV r2,r0
0x08001CFA 8912 LDRH r2,[r2,#0x08]
0x08001CFC 2000 MOV r0,#0x00
0x08001CFE 420A TST r2,r1
0x08001D00 D000 BEQ 0x08001D04
0x08001D02 2001 MOVS r0,#0x01
0x08001D04 4770 BX lr
SPI_I2S_ReceiveData:
0x08001D06 8980 LDRH r0,[r0,#0x0C]
0x08001D08 4770 BX lr
SPI_I2S_SendData:
0x08001D0A 8181 STRH r1,[r0,#0x0C]
0x08001D0C 4770 BX lr
SPI_Init:
0x08001D0E B570 PUSH {r4-r6,lr}
0x08001D10 8802 LDRH r2,[r0,#0x00]
0x08001D12 880B LDRH r3,[r1,#0x00]
0x08001D14 884E LDRH r6,[r1,#0x02]
0x08001D16 888C LDRH r4,[r1,#0x04]
0x08001D18 88CD LDRH r5,[r1,#0x06]
0x08001D1A 4333 ORRS r3,r3,r6
0x08001D1C 432C ORRS r4,r4,r5
0x08001D1E 890E LDRH r6,[r1,#0x08]
0x08001D20 4323 ORRS r3,r3,r4
0x08001D22 894C LDRH r4,[r1,#0x0A]
0x08001D24 4333 ORRS r3,r3,r6
0x08001D26 898D LDRH r5,[r1,#0x0C]
0x08001D28 4323 ORRS r3,r3,r4
0x08001D2A 89CC LDRH r4,[r1,#0x0E]
0x08001D2C 432B ORRS r3,r3,r5
0x08001D2E F4025241 AND r2,r2,#0x3040
0x08001D32 4323 ORRS r3,r3,r4
0x08001D34 4313 ORRS r3,r3,r2
0x08001D36 8003 STRH r3,[r0,#0x00]
0x08001D38 8B82 LDRH r2,[r0,#0x1C]
0x08001D3A F4226200 BIC r2,r2,#0x800
0x08001D3E 8382 STRH r2,[r0,#0x1C]
0x08001D40 8A09 LDRH r1,[r1,#0x10]
0x08001D42 8201 STRH r1,[r0,#0x10]
0x08001D44 BD70 POP {r4-r6,pc}
SysTick_CounterCmd:
0x08001D46 F04F21E0 MOV r1,#0xE000E000
0x08001D4A 2801 CMP r0,#0x01
0x08001D4C D103 BNE 0x08001D56
0x08001D4E 6908 LDR r0,[r1,#0x10]
0x08001D50 F0400001 ORR r0,r0,#0x01
0x08001D54 E004 B 0x08001D60
0x08001D56 1C80 ADDS r0,r0,#2
0x08001D58 D104 BNE 0x08001D64
0x08001D5A 6908 LDR r0,[r1,#0x10]
0x08001D5C F0200001 BIC r0,r0,#0x01
0x08001D60 6108 STR r0,[r1,#0x10]
0x08001D62 4770 BX lr
0x08001D64 2000 MOVS r0,#0x00
0x08001D66 6188 STR r0,[r1,#0x18]
0x08001D68 4770 BX lr
SysTick_ITConfig:
0x08001D6A F04F21E0 MOV r1,#0xE000E000
0x08001D6E 2800 CMP r0,#0x00
0x08001D70 6908 LDR r0,[r1,#0x10]
0x08001D72 D002 BEQ 0x08001D7A
0x08001D74 F0400002 ORR r0,r0,#0x02
0x08001D78 E001 B 0x08001D7E
0x08001D7A F0200002 BIC r0,r0,#0x02
0x08001D7E 6108 STR r0,[r1,#0x10]
0x08001D80 4770 BX lr
SysTick_SetReload:
0x08001D82 F04F21E0 MOV r1,#0xE000E000
0x08001D86 6148 STR r0,[r1,#0x14]
0x08001D88 4770 BX lr
__scatterload_copy:
0x08001D8A E002 B 0x08001D92
0x08001D8C C808 LDM r0!,{r3}
0x08001D8E 1F12 SUBS r2,r2,#4
0x08001D90 C108 STM r1!,{r3}
0x08001D92 2A00 CMP r2,#0x00
0x08001D94 D1FA BNE 0x08001D8C
0x08001D96 4770 BX lr
__scatterload_null:
0x08001D98 4770 BX lr
__scatterload_zeroinit:
0x08001D9A 2000 MOVS r0,#0x00
0x08001D9C E001 B 0x08001DA2
0x08001D9E C101 STM r1!,{r0}
0x08001DA0 1F12 SUBS r2,r2,#4
0x08001DA2 2A00 CMP r2,#0x00
0x08001DA4 D1FB BNE 0x08001D9E
0x08001DA6 4770 BX lr
0x08001DA8 0000 MOVS r0,r0
0x08001DAA 0000 MOVS r0,r0
0x08001DAC 0000 MOVS r0,r0
0x08001DAE 0000 MOVS r0,r0
0x08001DB0 0000 MOVS r0,r0
0x08001DB2 0000 MOVS r0,r0
0x08001DB4 0000 MOVS r0,r0
0x08001DB6 0000 MOVS r0,r0
0x08001DB8 0000 MOVS r0,r0
0x08001DBA 0000 MOVS r0,r0
0x08001DBC 0000 MOVS r0,r0
0x08001DBE 0000 MOVS r0,r0
0x08001DC0 0000 MOVS r0,r0
0x08001DC2 0000 MOVS r0,r0
0x08001DC4 0000 MOVS r0,r0
0x08001DC6 0000 MOVS r0,r0
0x08001DC8 0000 MOVS r0,r0
0x08001DCA 0000 MOVS r0,r0
0x08001DCC 0000 MOVS r0,r0
0x08001DCE 0000 MOVS r0,r0
0x08001DD0 0000 MOVS r0,r0
0x08001DD2 0000 MOVS r0,r0
0x08001DD4 0000 MOVS r0,r0
0x08001DD6 0000 MOVS r0,r0
0x08001DD8 0000 MOVS r0,r0
0x08001DDA 0180 LSLS r0,r0,#6
0x08001DDC 0180 LSLS r0,r0,#6
0x08001DDE 0180 LSLS r0,r0,#6
0x08001DE0 0180 LSLS r0,r0,#6
0x08001DE2 0180 LSLS r0,r0,#6
0x08001DE4 0180 LSLS r0,r0,#6
0x08001DE6 0180 LSLS r0,r0,#6
0x08001DE8 0180 LSLS r0,r0,#6
0x08001DEA 0180 LSLS r0,r0,#6
0x08001DEC 0180 LSLS r0,r0,#6
0x08001DEE 0180 LSLS r0,r0,#6
0x08001DF0 0180 LSLS r0,r0,#6
0x08001DF2 0180 LSLS r0,r0,#6
0x08001DF4 0000 MOVS r0,r0
0x08001DF6 0000 MOVS r0,r0
0x08001DF8 0180 LSLS r0,r0,#6
0x08001DFA 0180 LSLS r0,r0,#6
0x08001DFC 0000 MOVS r0,r0
0x08001DFE 0000 MOVS r0,r0
0x08001E00 0000 MOVS r0,r0
0x08001E02 0000 MOVS r0,r0
0x08001E04 0000 MOVS r0,r0
0x08001E06 0000 MOVS r0,r0
0x08001E08 0000 MOVS r0,r0
0x08001E0A 0000 MOVS r0,r0
0x08001E0C 00CC LSLS r4,r1,#3
0x08001E0E 00CC LSLS r4,r1,#3
0x08001E10 00CC LSLS r4,r1,#3
0x08001E12 00CC LSLS r4,r1,#3
0x08001E14 00CC LSLS r4,r1,#3
0x08001E16 00CC LSLS r4,r1,#3
0x08001E18 0000 MOVS r0,r0
0x08001E1A 0000 MOVS r0,r0
0x08001E1C 0000 MOVS r0,r0
0x08001E1E 0000 MOVS r0,r0
0x08001E20 0000 MOVS r0,r0
0x08001E22 0000 MOVS r0,r0
0x08001E24 0000 MOVS r0,r0
0x08001E26 0000 MOVS r0,r0
0x08001E28 0000 MOVS r0,r0
0x08001E2A 0000 MOVS r0,r0
0x08001E2C 0000 MOVS r0,r0
0x08001E2E 0000 MOVS r0,r0
0x08001E30 0000 MOVS r0,r0
0x08001E32 0000 MOVS r0,r0
0x08001E34 0000 MOVS r0,r0
0x08001E36 0000 MOVS r0,r0
0x08001E38 0000 MOVS r0,r0
0x08001E3A 0000 MOVS r0,r0
0x08001E3C 0000 MOVS r0,r0
0x08001E3E 0000 MOVS r0,r0
0x08001E40 0000 MOVS r0,r0
0x08001E42 0000 MOVS r0,r0
0x08001E44 0C60 LSRS r0,r4,#17
0x08001E46 0C60 LSRS r0,r4,#17
0x08001E48 0C60 LSRS r0,r4,#17
0x08001E4A 0630 LSLS r0,r6,#24
0x08001E4C 0630 LSLS r0,r6,#24
0x08001E4E 1FFE SUBS r6,r7,#7
0x08001E50 1FFE SUBS r6,r7,#7
0x08001E52 0630 LSLS r0,r6,#24
0x08001E54 0738 LSLS r0,r7,#28
0x08001E56 0318 LSLS r0,r3,#12
0x08001E58 1FFE SUBS r6,r7,#7
0x08001E5A 1FFE SUBS r6,r7,#7
0x08001E5C 0318 LSLS r0,r3,#12
0x08001E5E 0318 LSLS r0,r3,#12
0x08001E60 018C LSLS r4,r1,#6
0x08001E62 018C LSLS r4,r1,#6
0x08001E64 018C LSLS r4,r1,#6
0x08001E66 0000 MOVS r0,r0
0x08001E68 0000 MOVS r0,r0
0x08001E6A 0080 LSLS r0,r0,#2
0x08001E6C 03E0 LSLS r0,r4,#15
0x08001E6E 0FF8 LSRS r0,r7,#31
0x08001E70 0E9C LSRS r4,r3,#26
0x08001E72 1C8C ADDS r4,r1,#2
0x08001E74 188C ADDS r4,r1,r2
0x08001E76 008C LSLS r4,r1,#2
0x08001E78 0098 LSLS r0,r3,#2
0x08001E7A 01F8 LSLS r0,r7,#7
0x08001E7C 07E0 LSLS r0,r4,#31
0x08001E7E 0E80 LSRS r0,r0,#26
0x08001E80 1C80 ADDS r0,r0,#2
0x08001E82 188C ADDS r4,r1,r2
0x08001E84 188C ADDS r4,r1,r2
0x08001E86 189C ADDS r4,r3,r2
0x08001E88 0CB8 LSRS r0,r7,#18
0x08001E8A 0FF0 LSRS r0,r6,#31
0x08001E8C 03E0 LSLS r0,r4,#15
0x08001E8E 0080 LSLS r0,r0,#2
0x08001E90 0080 LSLS r0,r0,#2
0x08001E92 0000 MOVS r0,r0
0x08001E94 0000 MOVS r0,r0
0x08001E96 0000 MOVS r0,r0
0x08001E98 0000 MOVS r0,r0
0x08001E9A 0000 MOVS r0,r0
0x08001E9C 0000 MOVS r0,r0
0x08001E9E 180E ADDS r6,r1,r0
0x08001EA0 0C1B LSRS r3,r3,#16
0x08001EA2 0C11 LSRS r1,r2,#16
0x08001EA4 0611 LSLS r1,r2,#24
0x08001EA6 0611 LSLS r1,r2,#24
0x08001EA8 0311 LSLS r1,r2,#12
0x08001EAA 0311 LSLS r1,r2,#12
0x08001EAC 019B LSLS r3,r3,#6
0x08001EAE 018E LSLS r6,r1,#6
0x08001EB0 38C0 SUBS r0,r0,#0xC0
0x08001EB2 6CC0 LDR r0,[r0,#0x4C]
0x08001EB4 4460 ADD r0,r0,r12
0x08001EB6 4460 ADD r0,r0,r12
0x08001EB8 4430 ADD r0,r0,r6
0x08001EBA 4430 ADD r0,r0,r6
0x08001EBC 4418 ADD r0,r0,r3
0x08001EBE 6C18 LDR r0,[r3,#0x40]
0x08001EC0 380C SUBS r0,r0,#0x0C
0x08001EC2 0000 MOVS r0,r0
0x08001EC4 0000 MOVS r0,r0
0x08001EC6 0000 MOVS r0,r0
0x08001EC8 0000 MOVS r0,r0
0x08001ECA 01E0 LSLS r0,r4,#7
0x08001ECC 03F0 LSLS r0,r6,#15
0x08001ECE 0738 LSLS r0,r7,#28
0x08001ED0 0618 LSLS r0,r3,#24
0x08001ED2 0618 LSLS r0,r3,#24
0x08001ED4 0330 LSLS r0,r6,#12
0x08001ED6 01F0 LSLS r0,r6,#7
0x08001ED8 00F0 LSLS r0,r6,#3
0x08001EDA 00F8 LSLS r0,r7,#3
0x08001EDC 319C ADDS r1,r1,#0x9C
0x08001EDE 330E ADDS r3,r3,#0x0E
0x08001EE0 1E06 SUBS r6,r0,#0
0x08001EE2 1C06 ADDS r6,r0,#0
0x08001EE4 1C06 ADDS r6,r0,#0
0x08001EE6 3F06 SUBS r7,r7,#0x06
0x08001EE8 73FC STRB r4,[r7,#0x0F]
0x08001EEA 21F0 MOVS r1,#0xF0
0x08001EEC 0000 MOVS r0,r0
0x08001EEE 0000 MOVS r0,r0
0x08001EF0 0000 MOVS r0,r0
0x08001EF2 0000 MOVS r0,r0
0x08001EF4 0000 MOVS r0,r0
0x08001EF6 0000 MOVS r0,r0
0x08001EF8 0000 MOVS r0,r0
0x08001EFA 0000 MOVS r0,r0
0x08001EFC 000C MOVS r4,r1
0x08001EFE 000C MOVS r4,r1
0x08001F00 000C MOVS r4,r1
0x08001F02 000C MOVS r4,r1
0x08001F04 000C MOVS r4,r1
0x08001F06 000C MOVS r4,r1
0x08001F08 0000 MOVS r0,r0
0x08001F0A 0000 MOVS r0,r0
0x08001F0C 0000 MOVS r0,r0
0x08001F0E 0000 MOVS r0,r0
0x08001F10 0000 MOVS r0,r0
0x08001F12 0000 MOVS r0,r0
0x08001F14 0000 MOVS r0,r0
0x08001F16 0000 MOVS r0,r0
0x08001F18 0000 MOVS r0,r0
0x08001F1A 0000 MOVS r0,r0
0x08001F1C 0000 MOVS r0,r0
0x08001F1E 0000 MOVS r0,r0
0x08001F20 0000 MOVS r0,r0
0x08001F22 0000 MOVS r0,r0
0x08001F24 0000 MOVS r0,r0
0x08001F26 0000 MOVS r0,r0
0x08001F28 0000 MOVS r0,r0
0x08001F2A 0200 LSLS r0,r0,#8
0x08001F2C 0300 LSLS r0,r0,#12
0x08001F2E 0180 LSLS r0,r0,#6
0x08001F30 00C0 LSLS r0,r0,#3
0x08001F32 00C0 LSLS r0,r0,#3
0x08001F34 0060 LSLS r0,r4,#1
0x08001F36 0060 LSLS r0,r4,#1
0x08001F38 0030 MOVS r0,r6
0x08001F3A 0030 MOVS r0,r6
0x08001F3C 0030 MOVS r0,r6
0x08001F3E 0030 MOVS r0,r6
0x08001F40 0030 MOVS r0,r6
0x08001F42 0030 MOVS r0,r6
0x08001F44 0030 MOVS r0,r6
0x08001F46 0030 MOVS r0,r6
0x08001F48 0060 LSLS r0,r4,#1
0x08001F4A 0060 LSLS r0,r4,#1
0x08001F4C 00C0 LSLS r0,r0,#3
0x08001F4E 00C0 LSLS r0,r0,#3
0x08001F50 0180 LSLS r0,r0,#6
0x08001F52 0300 LSLS r0,r0,#12
0x08001F54 0200 LSLS r0,r0,#8
0x08001F56 0000 MOVS r0,r0
0x08001F58 0000 MOVS r0,r0
0x08001F5A 0020 MOVS r0,r4
0x08001F5C 0060 LSLS r0,r4,#1
0x08001F5E 00C0 LSLS r0,r0,#3
0x08001F60 0180 LSLS r0,r0,#6
0x08001F62 0180 LSLS r0,r0,#6
0x08001F64 0300 LSLS r0,r0,#12
0x08001F66 0300 LSLS r0,r0,#12
0x08001F68 0600 LSLS r0,r0,#24
0x08001F6A 0600 LSLS r0,r0,#24
0x08001F6C 0600 LSLS r0,r0,#24
0x08001F6E 0600 LSLS r0,r0,#24
0x08001F70 0600 LSLS r0,r0,#24
0x08001F72 0600 LSLS r0,r0,#24
0x08001F74 0600 LSLS r0,r0,#24
0x08001F76 0600 LSLS r0,r0,#24
0x08001F78 0300 LSLS r0,r0,#12
0x08001F7A 0300 LSLS r0,r0,#12
0x08001F7C 0180 LSLS r0,r0,#6
0x08001F7E 0180 LSLS r0,r0,#6
0x08001F80 00C0 LSLS r0,r0,#3
0x08001F82 0060 LSLS r0,r4,#1
0x08001F84 0020 MOVS r0,r4
0x08001F86 0000 MOVS r0,r0
0x08001F88 0000 MOVS r0,r0
0x08001F8A 0000 MOVS r0,r0
0x08001F8C 0000 MOVS r0,r0
0x08001F8E 0000 MOVS r0,r0
0x08001F90 0000 MOVS r0,r0
0x08001F92 0000 MOVS r0,r0
0x08001F94 00C0 LSLS r0,r0,#3
0x08001F96 00C0 LSLS r0,r0,#3
0x08001F98 06D8 LSLS r0,r3,#27
0x08001F9A 07F8 LSLS r0,r7,#31
0x08001F9C 01E0 LSLS r0,r4,#7
0x08001F9E 0330 LSLS r0,r6,#12
0x08001FA0 0738 LSLS r0,r7,#28
0x08001FA2 0000 MOVS r0,r0
0x08001FA4 0000 MOVS r0,r0
0x08001FA6 0000 MOVS r0,r0
0x08001FA8 0000 MOVS r0,r0
0x08001FAA 0000 MOVS r0,r0
0x08001FAC 0000 MOVS r0,r0
0x08001FAE 0000 MOVS r0,r0
0x08001FB0 0000 MOVS r0,r0
0x08001FB2 0000 MOVS r0,r0
0x08001FB4 0000 MOVS r0,r0
0x08001FB6 0000 MOVS r0,r0
0x08001FB8 0000 MOVS r0,r0
0x08001FBA 0000 MOVS r0,r0
0x08001FBC 0000 MOVS r0,r0
0x08001FBE 0000 MOVS r0,r0
0x08001FC0 0000 MOVS r0,r0
0x08001FC2 0000 MOVS r0,r0
0x08001FC4 0180 LSLS r0,r0,#6
0x08001FC6 0180 LSLS r0,r0,#6
0x08001FC8 0180 LSLS r0,r0,#6
0x08001FCA 0180 LSLS r0,r0,#6
0x08001FCC 0180 LSLS r0,r0,#6
0x08001FCE 3FFC SUBS r7,r7,#0xFC
0x08001FD0 3FFC SUBS r7,r7,#0xFC
0x08001FD2 0180 LSLS r0,r0,#6
0x08001FD4 0180 LSLS r0,r0,#6
0x08001FD6 0180 LSLS r0,r0,#6
0x08001FD8 0180 LSLS r0,r0,#6
0x08001FDA 0180 LSLS r0,r0,#6
0x08001FDC 0000 MOVS r0,r0
0x08001FDE 0000 MOVS r0,r0
0x08001FE0 0000 MOVS r0,r0
0x08001FE2 0000 MOVS r0,r0
0x08001FE4 0000 MOVS r0,r0
0x08001FE6 0000 MOVS r0,r0
0x08001FE8 0000 MOVS r0,r0
0x08001FEA 0000 MOVS r0,r0
0x08001FEC 0000 MOVS r0,r0
0x08001FEE 0000 MOVS r0,r0
0x08001FF0 0000 MOVS r0,r0
0x08001FF2 0000 MOVS r0,r0
0x08001FF4 0000 MOVS r0,r0
0x08001FF6 0000 MOVS r0,r0
0x08001FF8 0000 MOVS r0,r0
0x08001FFA 0000 MOVS r0,r0
0x08001FFC 0000 MOVS r0,r0
0x08001FFE 0000 MOVS r0,r0
0x08002000 0000 MOVS r0,r0
0x08002002 0000 MOVS r0,r0
0x08002004 0000 MOVS r0,r0
0x08002006 0000 MOVS r0,r0
0x08002008 0000 MOVS r0,r0
0x0800200A 0180 LSLS r0,r0,#6
0x0800200C 0180 LSLS r0,r0,#6
0x0800200E 0100 LSLS r0,r0,#4
0x08002010 0100 LSLS r0,r0,#4
0x08002012 0080 LSLS r0,r0,#2
0x08002014 0000 MOVS r0,r0
0x08002016 0000 MOVS r0,r0
0x08002018 0000 MOVS r0,r0
0x0800201A 0000 MOVS r0,r0
0x0800201C 0000 MOVS r0,r0
0x0800201E 0000 MOVS r0,r0
0x08002020 0000 MOVS r0,r0
0x08002022 0000 MOVS r0,r0
0x08002024 0000 MOVS r0,r0
0x08002026 0000 MOVS r0,r0
0x08002028 0000 MOVS r0,r0
0x0800202A 0000 MOVS r0,r0
0x0800202C 0000 MOVS r0,r0
0x0800202E 0000 MOVS r0,r0
0x08002030 07E0 LSLS r0,r4,#31
0x08002032 07E0 LSLS r0,r4,#31
0x08002034 0000 MOVS r0,r0
0x08002036 0000 MOVS r0,r0
0x08002038 0000 MOVS r0,r0
0x0800203A 0000 MOVS r0,r0
0x0800203C 0000 MOVS r0,r0
0x0800203E 0000 MOVS r0,r0
0x08002040 0000 MOVS r0,r0
0x08002042 0000 MOVS r0,r0
0x08002044 0000 MOVS r0,r0
0x08002046 0000 MOVS r0,r0
0x08002048 0000 MOVS r0,r0
0x0800204A 0000 MOVS r0,r0
0x0800204C 0000 MOVS r0,r0
0x0800204E 0000 MOVS r0,r0
0x08002050 0000 MOVS r0,r0
0x08002052 0000 MOVS r0,r0
0x08002054 0000 MOVS r0,r0
0x08002056 0000 MOVS r0,r0
0x08002058 0000 MOVS r0,r0
0x0800205A 0000 MOVS r0,r0
0x0800205C 0000 MOVS r0,r0
0x0800205E 0000 MOVS r0,r0
0x08002060 0000 MOVS r0,r0
0x08002062 0000 MOVS r0,r0
0x08002064 0000 MOVS r0,r0
0x08002066 0000 MOVS r0,r0
0x08002068 0000 MOVS r0,r0
0x0800206A 00C0 LSLS r0,r0,#3
0x0800206C 00C0 LSLS r0,r0,#3
0x0800206E 0000 MOVS r0,r0
0x08002070 0000 MOVS r0,r0
0x08002072 0000 MOVS r0,r0
0x08002074 0000 MOVS r0,r0
0x08002076 0000 MOVS r0,r0
0x08002078 0000 MOVS r0,r0
0x0800207A 0C00 LSRS r0,r0,#16
0x0800207C 0C00 LSRS r0,r0,#16
0x0800207E 0600 LSLS r0,r0,#24
0x08002080 0600 LSLS r0,r0,#24
0x08002082 0600 LSLS r0,r0,#24
0x08002084 0300 LSLS r0,r0,#12
0x08002086 0300 LSLS r0,r0,#12
0x08002088 0300 LSLS r0,r0,#12
0x0800208A 0380 LSLS r0,r0,#14
0x0800208C 0180 LSLS r0,r0,#6
0x0800208E 0180 LSLS r0,r0,#6
0x08002090 0180 LSLS r0,r0,#6
0x08002092 00C0 LSLS r0,r0,#3
0x08002094 00C0 LSLS r0,r0,#3
0x08002096 00C0 LSLS r0,r0,#3
0x08002098 0060 LSLS r0,r4,#1
0x0800209A 0060 LSLS r0,r4,#1
0x0800209C 0000 MOVS r0,r0
0x0800209E 0000 MOVS r0,r0
0x080020A0 0000 MOVS r0,r0
0x080020A2 0000 MOVS r0,r0
0x080020A4 0000 MOVS r0,r0
0x080020A6 0000 MOVS r0,r0
0x080020A8 0000 MOVS r0,r0
0x080020AA 03E0 LSLS r0,r4,#15
0x080020AC 07F0 LSLS r0,r6,#31
0x080020AE 0E38 LSRS r0,r7,#24
0x080020B0 0C18 LSRS r0,r3,#16
0x080020B2 180C ADDS r4,r1,r0
0x080020B4 180C ADDS r4,r1,r0
0x080020B6 180C ADDS r4,r1,r0
0x080020B8 180C ADDS r4,r1,r0
0x080020BA 180C ADDS r4,r1,r0
0x080020BC 180C ADDS r4,r1,r0
0x080020BE 180C ADDS r4,r1,r0
0x080020C0 180C ADDS r4,r1,r0
0x080020C2 180C ADDS r4,r1,r0
0x080020C4 0C18 LSRS r0,r3,#16
0x080020C6 0E38 LSRS r0,r7,#24
0x080020C8 07F0 LSLS r0,r6,#31
0x080020CA 03E0 LSLS r0,r4,#15
0x080020CC 0000 MOVS r0,r0
0x080020CE 0000 MOVS r0,r0
0x080020D0 0000 MOVS r0,r0
0x080020D2 0000 MOVS r0,r0
0x080020D4 0000 MOVS r0,r0
0x080020D6 0000 MOVS r0,r0
0x080020D8 0000 MOVS r0,r0
0x080020DA 0100 LSLS r0,r0,#4
0x080020DC 0180 LSLS r0,r0,#6
0x080020DE 01C0 LSLS r0,r0,#7
0x080020E0 01F0 LSLS r0,r6,#7
0x080020E2 0198 LSLS r0,r3,#6
0x080020E4 0188 LSLS r0,r1,#6
0x080020E6 0180 LSLS r0,r0,#6
0x080020E8 0180 LSLS r0,r0,#6
0x080020EA 0180 LSLS r0,r0,#6
0x080020EC 0180 LSLS r0,r0,#6
0x080020EE 0180 LSLS r0,r0,#6
0x080020F0 0180 LSLS r0,r0,#6
0x080020F2 0180 LSLS r0,r0,#6
0x080020F4 0180 LSLS r0,r0,#6
0x080020F6 0180 LSLS r0,r0,#6
0x080020F8 0180 LSLS r0,r0,#6
0x080020FA 0180 LSLS r0,r0,#6
0x080020FC 0000 MOVS r0,r0
0x080020FE 0000 MOVS r0,r0
0x08002100 0000 MOVS r0,r0
0x08002102 0000 MOVS r0,r0
0x08002104 0000 MOVS r0,r0
0x08002106 0000 MOVS r0,r0
0x08002108 0000 MOVS r0,r0
0x0800210A 03E0 LSLS r0,r4,#15
0x0800210C 0FF8 LSRS r0,r7,#31
0x0800210E 0C18 LSRS r0,r3,#16
0x08002110 180C ADDS r4,r1,r0
0x08002112 180C ADDS r4,r1,r0
0x08002114 1800 ADDS r0,r0,r0
0x08002116 1800 ADDS r0,r0,r0
0x08002118 0C00 LSRS r0,r0,#16
0x0800211A 0600 LSLS r0,r0,#24
0x0800211C 0300 LSLS r0,r0,#12
0x0800211E 0180 LSLS r0,r0,#6
0x08002120 00C0 LSLS r0,r0,#3
0x08002122 0060 LSLS r0,r4,#1
0x08002124 0030 MOVS r0,r6
0x08002126 0018 MOVS r0,r3
0x08002128 1FFC SUBS r4,r7,#7
0x0800212A 1FFC SUBS r4,r7,#7
0x0800212C 0000 MOVS r0,r0
0x0800212E 0000 MOVS r0,r0
0x08002130 0000 MOVS r0,r0
0x08002132 0000 MOVS r0,r0
0x08002134 0000 MOVS r0,r0
0x08002136 0000 MOVS r0,r0
0x08002138 0000 MOVS r0,r0
0x0800213A 01E0 LSLS r0,r4,#7
0x0800213C 07F8 LSLS r0,r7,#31
0x0800213E 0E18 LSRS r0,r3,#24
0x08002140 0C0C LSRS r4,r1,#16
0x08002142 0C0C LSRS r4,r1,#16
0x08002144 0C00 LSRS r0,r0,#16
0x08002146 0600 LSLS r0,r0,#24
0x08002148 03C0 LSLS r0,r0,#15
0x0800214A 07C0 LSLS r0,r0,#31
0x0800214C 0C00 LSRS r0,r0,#16
0x0800214E 1800 ADDS r0,r0,r0
0x08002150 1800 ADDS r0,r0,r0
0x08002152 180C ADDS r4,r1,r0
0x08002154 180C ADDS r4,r1,r0
0x08002156 0C18 LSRS r0,r3,#16
0x08002158 07F8 LSLS r0,r7,#31
0x0800215A 03E0 LSLS r0,r4,#15
0x0800215C 0000 MOVS r0,r0
0x0800215E 0000 MOVS r0,r0
0x08002160 0000 MOVS r0,r0
0x08002162 0000 MOVS r0,r0
0x08002164 0000 MOVS r0,r0
0x08002166 0000 MOVS r0,r0
0x08002168 0000 MOVS r0,r0
0x0800216A 0C00 LSRS r0,r0,#16
0x0800216C 0E00 LSRS r0,r0,#24
0x0800216E 0F00 LSRS r0,r0,#28
0x08002170 0F00 LSRS r0,r0,#28
0x08002172 0D80 LSRS r0,r0,#22
0x08002174 0CC0 LSRS r0,r0,#19
0x08002176 0C60 LSRS r0,r4,#17
0x08002178 0C60 LSRS r0,r4,#17
0x0800217A 0C30 LSRS r0,r6,#16
0x0800217C 0C18 LSRS r0,r3,#16
0x0800217E 0C0C LSRS r4,r1,#16
0x08002180 3FFC SUBS r7,r7,#0xFC
0x08002182 3FFC SUBS r7,r7,#0xFC
0x08002184 0C00 LSRS r0,r0,#16
0x08002186 0C00 LSRS r0,r0,#16
0x08002188 0C00 LSRS r0,r0,#16
0x0800218A 0C00 LSRS r0,r0,#16
0x0800218C 0000 MOVS r0,r0
0x0800218E 0000 MOVS r0,r0
0x08002190 0000 MOVS r0,r0
0x08002192 0000 MOVS r0,r0
0x08002194 0000 MOVS r0,r0
0x08002196 0000 MOVS r0,r0
0x08002198 0000 MOVS r0,r0
0x0800219A 0FF8 LSRS r0,r7,#31
0x0800219C 0FF8 LSRS r0,r7,#31
0x0800219E 0018 MOVS r0,r3
0x080021A0 0018 MOVS r0,r3
0x080021A2 000C MOVS r4,r1
0x080021A4 03EC LSLS r4,r5,#15
0x080021A6 07FC LSLS r4,r7,#31
0x080021A8 0E1C LSRS r4,r3,#24
0x080021AA 1C00 ADDS r0,r0,#0
0x080021AC 1800 ADDS r0,r0,r0
0x080021AE 1800 ADDS r0,r0,r0
0x080021B0 1800 ADDS r0,r0,r0
0x080021B2 180C ADDS r4,r1,r0
0x080021B4 0C1C LSRS r4,r3,#16
0x080021B6 0E18 LSRS r0,r3,#24
0x080021B8 07F8 LSLS r0,r7,#31
0x080021BA 03E0 LSLS r0,r4,#15
0x080021BC 0000 MOVS r0,r0
0x080021BE 0000 MOVS r0,r0
0x080021C0 0000 MOVS r0,r0
0x080021C2 0000 MOVS r0,r0
0x080021C4 0000 MOVS r0,r0
0x080021C6 0000 MOVS r0,r0
0x080021C8 0000 MOVS r0,r0
0x080021CA 07C0 LSLS r0,r0,#31
0x080021CC 0FF0 LSRS r0,r6,#31
0x080021CE 1C38 ADDS r0,r7,#0
0x080021D0 1818 ADDS r0,r3,r0
0x080021D2 0018 MOVS r0,r3
0x080021D4 000C MOVS r4,r1
0x080021D6 03CC LSLS r4,r1,#15
0x080021D8 0FEC LSRS r4,r5,#31
0x080021DA 0E3C LSRS r4,r7,#24
0x080021DC 1C1C ADDS r4,r3,#0
0x080021DE 180C ADDS r4,r1,r0
0x080021E0 180C ADDS r4,r1,r0
0x080021E2 180C ADDS r4,r1,r0
0x080021E4 1C18 ADDS r0,r3,#0
0x080021E6 0E38 LSRS r0,r7,#24
0x080021E8 07F0 LSLS r0,r6,#31
0x080021EA 03E0 LSLS r0,r4,#15
0x080021EC 0000 MOVS r0,r0
0x080021EE 0000 MOVS r0,r0
0x080021F0 0000 MOVS r0,r0
0x080021F2 0000 MOVS r0,r0
0x080021F4 0000 MOVS r0,r0
0x080021F6 0000 MOVS r0,r0
0x080021F8 0000 MOVS r0,r0
0x080021FA 1FFC SUBS r4,r7,#7
0x080021FC 1FFC SUBS r4,r7,#7
0x080021FE 0C00 LSRS r0,r0,#16
0x08002200 0600 LSLS r0,r0,#24
0x08002202 0600 LSLS r0,r0,#24
0x08002204 0300 LSLS r0,r0,#12
0x08002206 0380 LSLS r0,r0,#14
0x08002208 0180 LSLS r0,r0,#6
0x0800220A 01C0 LSLS r0,r0,#7
0x0800220C 00C0 LSLS r0,r0,#3
0x0800220E 00E0 LSLS r0,r4,#3
0x08002210 0060 LSLS r0,r4,#1
0x08002212 0060 LSLS r0,r4,#1
0x08002214 0070 LSLS r0,r6,#1
0x08002216 0030 MOVS r0,r6
0x08002218 0030 MOVS r0,r6
0x0800221A 0030 MOVS r0,r6
0x0800221C 0000 MOVS r0,r0
0x0800221E 0000 MOVS r0,r0
0x08002220 0000 MOVS r0,r0
0x08002222 0000 MOVS r0,r0
0x08002224 0000 MOVS r0,r0
0x08002226 0000 MOVS r0,r0
0x08002228 0000 MOVS r0,r0
0x0800222A 03E0 LSLS r0,r4,#15
0x0800222C 07F0 LSLS r0,r6,#31
0x0800222E 0E38 LSRS r0,r7,#24
0x08002230 0C18 LSRS r0,r3,#16
0x08002232 0C18 LSRS r0,r3,#16
0x08002234 0C18 LSRS r0,r3,#16
0x08002236 0638 LSLS r0,r7,#24
0x08002238 07F0 LSLS r0,r6,#31
0x0800223A 07F0 LSLS r0,r6,#31
0x0800223C 0C18 LSRS r0,r3,#16
0x0800223E 180C ADDS r4,r1,r0
0x08002240 180C ADDS r4,r1,r0
0x08002242 180C ADDS r4,r1,r0
0x08002244 180C ADDS r4,r1,r0
0x08002246 0C38 LSRS r0,r7,#16
0x08002248 0FF8 LSRS r0,r7,#31
0x0800224A 03E0 LSLS r0,r4,#15
0x0800224C 0000 MOVS r0,r0
0x0800224E 0000 MOVS r0,r0
0x08002250 0000 MOVS r0,r0
0x08002252 0000 MOVS r0,r0
0x08002254 0000 MOVS r0,r0
0x08002256 0000 MOVS r0,r0
0x08002258 0000 MOVS r0,r0
0x0800225A 03E0 LSLS r0,r4,#15
0x0800225C 07F0 LSLS r0,r6,#31
0x0800225E 0E38 LSRS r0,r7,#24
0x08002260 0C1C LSRS r4,r3,#16
0x08002262 180C ADDS r4,r1,r0
0x08002264 180C ADDS r4,r1,r0
0x08002266 180C ADDS r4,r1,r0
0x08002268 1C1C ADDS r4,r3,#0
0x0800226A 1E38 SUBS r0,r7,#0
0x0800226C 1BF8 SUBS r0,r7,r7
0x0800226E 19E0 ADDS r0,r4,r7
0x08002270 1800 ADDS r0,r0,r0
0x08002272 0C00 LSRS r0,r0,#16
0x08002274 0C00 LSRS r0,r0,#16
0x08002276 0E1C LSRS r4,r3,#24
0x08002278 07F8 LSLS r0,r7,#31
0x0800227A 01F0 LSLS r0,r6,#7
0x0800227C 0000 MOVS r0,r0
0x0800227E 0000 MOVS r0,r0
0x08002280 0000 MOVS r0,r0
0x08002282 0000 MOVS r0,r0
0x08002284 0000 MOVS r0,r0
0x08002286 0000 MOVS r0,r0
0x08002288 0000 MOVS r0,r0
0x0800228A 0000 MOVS r0,r0
0x0800228C 0000 MOVS r0,r0
0x0800228E 0000 MOVS r0,r0
0x08002290 0000 MOVS r0,r0
0x08002292 0000 MOVS r0,r0
0x08002294 0180 LSLS r0,r0,#6
0x08002296 0180 LSLS r0,r0,#6
0x08002298 0000 MOVS r0,r0
0x0800229A 0000 MOVS r0,r0
0x0800229C 0000 MOVS r0,r0
0x0800229E 0000 MOVS r0,r0
0x080022A0 0000 MOVS r0,r0
0x080022A2 0000 MOVS r0,r0
0x080022A4 0000 MOVS r0,r0
0x080022A6 0000 MOVS r0,r0
0x080022A8 0180 LSLS r0,r0,#6
0x080022AA 0180 LSLS r0,r0,#6
0x080022AC 0000 MOVS r0,r0
0x080022AE 0000 MOVS r0,r0
0x080022B0 0000 MOVS r0,r0
0x080022B2 0000 MOVS r0,r0
0x080022B4 0000 MOVS r0,r0
0x080022B6 0000 MOVS r0,r0
0x080022B8 0000 MOVS r0,r0
0x080022BA 0000 MOVS r0,r0
0x080022BC 0000 MOVS r0,r0
0x080022BE 0000 MOVS r0,r0
0x080022C0 0000 MOVS r0,r0
0x080022C2 0000 MOVS r0,r0
0x080022C4 0180 LSLS r0,r0,#6
0x080022C6 0180 LSLS r0,r0,#6
0x080022C8 0000 MOVS r0,r0
0x080022CA 0000 MOVS r0,r0
0x080022CC 0000 MOVS r0,r0
0x080022CE 0000 MOVS r0,r0
0x080022D0 0000 MOVS r0,r0
0x080022D2 0000 MOVS r0,r0
0x080022D4 0000 MOVS r0,r0
0x080022D6 0000 MOVS r0,r0
0x080022D8 0180 LSLS r0,r0,#6
0x080022DA 0180 LSLS r0,r0,#6
0x080022DC 0100 LSLS r0,r0,#4
0x080022DE 0100 LSLS r0,r0,#4
0x080022E0 0080 LSLS r0,r0,#2
0x080022E2 0000 MOVS r0,r0
0x080022E4 0000 MOVS r0,r0
0x080022E6 0000 MOVS r0,r0
0x080022E8 0000 MOVS r0,r0
0x080022EA 0000 MOVS r0,r0
0x080022EC 0000 MOVS r0,r0
0x080022EE 0000 MOVS r0,r0
0x080022F0 0000 MOVS r0,r0
0x080022F2 0000 MOVS r0,r0
0x080022F4 0000 MOVS r0,r0
0x080022F6 0000 MOVS r0,r0
0x080022F8 1000 ASRS r0,r0,#0
0x080022FA 1C00 ADDS r0,r0,#0
0x080022FC 0F80 LSRS r0,r0,#30
0x080022FE 03E0 LSLS r0,r4,#15
0x08002300 00F8 LSLS r0,r7,#3
0x08002302 0018 MOVS r0,r3
0x08002304 00F8 LSLS r0,r7,#3
0x08002306 03E0 LSLS r0,r4,#15
0x08002308 0F80 LSRS r0,r0,#30
0x0800230A 1C00 ADDS r0,r0,#0
0x0800230C 1000 ASRS r0,r0,#0
0x0800230E 0000 MOVS r0,r0
0x08002310 0000 MOVS r0,r0
0x08002312 0000 MOVS r0,r0
0x08002314 0000 MOVS r0,r0
0x08002316 0000 MOVS r0,r0
0x08002318 0000 MOVS r0,r0
0x0800231A 0000 MOVS r0,r0
0x0800231C 0000 MOVS r0,r0
0x0800231E 0000 MOVS r0,r0
0x08002320 0000 MOVS r0,r0
0x08002322 0000 MOVS r0,r0
0x08002324 0000 MOVS r0,r0
0x08002326 0000 MOVS r0,r0
0x08002328 1FF8 SUBS r0,r7,#7
0x0800232A 0000 MOVS r0,r0
0x0800232C 0000 MOVS r0,r0
0x0800232E 0000 MOVS r0,r0
0x08002330 1FF8 SUBS r0,r7,#7
0x08002332 0000 MOVS r0,r0
0x08002334 0000 MOVS r0,r0
0x08002336 0000 MOVS r0,r0
0x08002338 0000 MOVS r0,r0
0x0800233A 0000 MOVS r0,r0
0x0800233C 0000 MOVS r0,r0
0x0800233E 0000 MOVS r0,r0
0x08002340 0000 MOVS r0,r0
0x08002342 0000 MOVS r0,r0
0x08002344 0000 MOVS r0,r0
0x08002346 0000 MOVS r0,r0
0x08002348 0000 MOVS r0,r0
0x0800234A 0000 MOVS r0,r0
0x0800234C 0000 MOVS r0,r0
0x0800234E 0000 MOVS r0,r0
0x08002350 0000 MOVS r0,r0
0x08002352 0000 MOVS r0,r0
0x08002354 0000 MOVS r0,r0
0x08002356 0000 MOVS r0,r0
0x08002358 0008 MOVS r0,r1
0x0800235A 0038 MOVS r0,r7
0x0800235C 01F0 LSLS r0,r6,#7
0x0800235E 07C0 LSLS r0,r0,#31
0x08002360 1F00 SUBS r0,r0,#4
0x08002362 1800 ADDS r0,r0,r0
0x08002364 1F00 SUBS r0,r0,#4
0x08002366 07C0 LSLS r0,r0,#31
0x08002368 01F0 LSLS r0,r6,#7
0x0800236A 0038 MOVS r0,r7
0x0800236C 0008 MOVS r0,r1
0x0800236E 0000 MOVS r0,r0
0x08002370 0000 MOVS r0,r0
0x08002372 0000 MOVS r0,r0
0x08002374 0000 MOVS r0,r0
0x08002376 0000 MOVS r0,r0
0x08002378 0000 MOVS r0,r0
0x0800237A 03E0 LSLS r0,r4,#15
0x0800237C 0FF8 LSRS r0,r7,#31
0x0800237E 0C18 LSRS r0,r3,#16
0x08002380 180C ADDS r4,r1,r0
0x08002382 180C ADDS r4,r1,r0
0x08002384 1800 ADDS r0,r0,r0
0x08002386 0C00 LSRS r0,r0,#16
0x08002388 0600 LSLS r0,r0,#24
0x0800238A 0300 LSLS r0,r0,#12
0x0800238C 0180 LSLS r0,r0,#6
0x0800238E 00C0 LSLS r0,r0,#3
0x08002390 00C0 LSLS r0,r0,#3
0x08002392 00C0 LSLS r0,r0,#3
0x08002394 0000 MOVS r0,r0
0x08002396 0000 MOVS r0,r0
0x08002398 00C0 LSLS r0,r0,#3
0x0800239A 00C0 LSLS r0,r0,#3
0x0800239C 0000 MOVS r0,r0
0x0800239E 0000 MOVS r0,r0
0x080023A0 0000 MOVS r0,r0
0x080023A2 0000 MOVS r0,r0
0x080023A4 0000 MOVS r0,r0
0x080023A6 0000 MOVS r0,r0
0x080023A8 0000 MOVS r0,r0
0x080023AA 0000 MOVS r0,r0
0x080023AC 07E0 LSLS r0,r4,#31
0x080023AE 1818 ADDS r0,r3,r0
0x080023B0 2004 MOVS r0,#0x04
0x080023B2 29C2 CMP r1,#0xC2
0x080023B4 4A22 LDR r2,[pc,#136] ; @0x08002440
0x080023B6 4411 ADD r1,r1,r2
0x080023B8 4409 ADD r1,r1,r1
0x080023BA 4409 ADD r1,r1,r1
0x080023BC 4409 ADD r1,r1,r1
0x080023BE 2209 MOVS r2,#0x09
0x080023C0 1311 ASRS r1,r2,#12
0x080023C2 0CE2 LSRS r2,r4,#19
0x080023C4 4002 ANDS r2,r2,r0
0x080023C6 2004 MOVS r0,#0x04
0x080023C8 1818 ADDS r0,r3,r0
0x080023CA 07E0 LSLS r0,r4,#31
0x080023CC 0000 MOVS r0,r0
0x080023CE 0000 MOVS r0,r0
0x080023D0 0000 MOVS r0,r0
0x080023D2 0000 MOVS r0,r0
0x080023D4 0000 MOVS r0,r0
0x080023D6 0000 MOVS r0,r0
0x080023D8 0000 MOVS r0,r0
0x080023DA 0380 LSLS r0,r0,#14
0x080023DC 0380 LSLS r0,r0,#14
0x080023DE 06C0 LSLS r0,r0,#27
0x080023E0 06C0 LSLS r0,r0,#27
0x080023E2 06C0 LSLS r0,r0,#27
0x080023E4 0C60 LSRS r0,r4,#17
0x080023E6 0C60 LSRS r0,r4,#17
0x080023E8 1830 ADDS r0,r6,r0
0x080023EA 1830 ADDS r0,r6,r0
0x080023EC 1830 ADDS r0,r6,r0
0x080023EE 3FF8 SUBS r7,r7,#0xF8
0x080023F0 3FF8 SUBS r7,r7,#0xF8
0x080023F2 701C STRB r4,[r3,#0x00]
0x080023F4 600C STR r4,[r1,#0x00]
0x080023F6 600C STR r4,[r1,#0x00]
0x080023F8 C006 STM r0!,{r1-r2}
0x080023FA C006 STM r0!,{r1-r2}
0x080023FC 0000 MOVS r0,r0
0x080023FE 0000 MOVS r0,r0
0x08002400 0000 MOVS r0,r0
0x08002402 0000 MOVS r0,r0
0x08002404 0000 MOVS r0,r0
0x08002406 0000 MOVS r0,r0
0x08002408 0000 MOVS r0,r0
0x0800240A 03FC LSLS r4,r7,#15
0x0800240C 0FFC LSRS r4,r7,#31
0x0800240E 0C0C LSRS r4,r1,#16
0x08002410 180C ADDS r4,r1,r0
0x08002412 180C ADDS r4,r1,r0
0x08002414 180C ADDS r4,r1,r0
0x08002416 0C0C LSRS r4,r1,#16
0x08002418 07FC LSLS r4,r7,#31
0x0800241A 0FFC LSRS r4,r7,#31
0x0800241C 180C ADDS r4,r1,r0
0x0800241E 300C ADDS r0,r0,#0x0C
0x08002420 300C ADDS r0,r0,#0x0C
0x08002422 300C ADDS r0,r0,#0x0C
0x08002424 300C ADDS r0,r0,#0x0C
0x08002426 180C ADDS r4,r1,r0
0x08002428 1FFC SUBS r4,r7,#7
0x0800242A 07FC LSLS r4,r7,#31
0x0800242C 0000 MOVS r0,r0
0x0800242E 0000 MOVS r0,r0
0x08002430 0000 MOVS r0,r0
0x08002432 0000 MOVS r0,r0
0x08002434 0000 MOVS r0,r0
0x08002436 0000 MOVS r0,r0
0x08002438 0000 MOVS r0,r0
0x0800243A 07C0 LSLS r0,r0,#31
0x0800243C 1FF0 SUBS r0,r6,#7
0x0800243E 3838 SUBS r0,r0,#0x38
0x08002440 301C ADDS r0,r0,#0x1C
0x08002442 700C STRB r4,[r1,#0x00]
0x08002444 6006 STR r6,[r0,#0x00]
0x08002446 0006 MOVS r6,r0
0x08002448 0006 MOVS r6,r0
0x0800244A 0006 MOVS r6,r0
0x0800244C 0006 MOVS r6,r0
0x0800244E 0006 MOVS r6,r0
0x08002450 0006 MOVS r6,r0
0x08002452 6006 STR r6,[r0,#0x00]
0x08002454 700C STRB r4,[r1,#0x00]
0x08002456 301C ADDS r0,r0,#0x1C
0x08002458 1FF0 SUBS r0,r6,#7
0x0800245A 07E0 LSLS r0,r4,#31
0x0800245C 0000 MOVS r0,r0
0x0800245E 0000 MOVS r0,r0
0x08002460 0000 MOVS r0,r0
0x08002462 0000 MOVS r0,r0
0x08002464 0000 MOVS r0,r0
0x08002466 0000 MOVS r0,r0
0x08002468 0000 MOVS r0,r0
0x0800246A 03FE LSLS r6,r7,#15
0x0800246C 0FFE LSRS r6,r7,#31
0x0800246E 0E06 LSRS r6,r0,#24
0x08002470 1806 ADDS r6,r0,r0
0x08002472 1806 ADDS r6,r0,r0
0x08002474 3006 ADDS r0,r0,#0x06
0x08002476 3006 ADDS r0,r0,#0x06
0x08002478 3006 ADDS r0,r0,#0x06
0x0800247A 3006 ADDS r0,r0,#0x06
0x0800247C 3006 ADDS r0,r0,#0x06
0x0800247E 3006 ADDS r0,r0,#0x06
0x08002480 3006 ADDS r0,r0,#0x06
0x08002482 1806 ADDS r6,r0,r0
0x08002484 1806 ADDS r6,r0,r0
0x08002486 0E06 LSRS r6,r0,#24
0x08002488 0FFE LSRS r6,r7,#31
0x0800248A 03FE LSLS r6,r7,#15
0x0800248C 0000 MOVS r0,r0
0x0800248E 0000 MOVS r0,r0
0x08002490 0000 MOVS r0,r0
0x08002492 0000 MOVS r0,r0
0x08002494 0000 MOVS r0,r0
0x08002496 0000 MOVS r0,r0
0x08002498 0000 MOVS r0,r0
0x0800249A 3FFC SUBS r7,r7,#0xFC
0x0800249C 3FFC SUBS r7,r7,#0xFC
0x0800249E 000C MOVS r4,r1
0x080024A0 000C MOVS r4,r1
0x080024A2 000C MOVS r4,r1
0x080024A4 000C MOVS r4,r1
0x080024A6 000C MOVS r4,r1
0x080024A8 1FFC SUBS r4,r7,#7
0x080024AA 1FFC SUBS r4,r7,#7
0x080024AC 000C MOVS r4,r1
0x080024AE 000C MOVS r4,r1
0x080024B0 000C MOVS r4,r1
0x080024B2 000C MOVS r4,r1
0x080024B4 000C MOVS r4,r1
0x080024B6 000C MOVS r4,r1
0x080024B8 3FFC SUBS r7,r7,#0xFC
0x080024BA 3FFC SUBS r7,r7,#0xFC
0x080024BC 0000 MOVS r0,r0
0x080024BE 0000 MOVS r0,r0
0x080024C0 0000 MOVS r0,r0
0x080024C2 0000 MOVS r0,r0
0x080024C4 0000 MOVS r0,r0
0x080024C6 0000 MOVS r0,r0
0x080024C8 0000 MOVS r0,r0
0x080024CA 3FF8 SUBS r7,r7,#0xF8
0x080024CC 3FF8 SUBS r7,r7,#0xF8
0x080024CE 0018 MOVS r0,r3
0x080024D0 0018 MOVS r0,r3
0x080024D2 0018 MOVS r0,r3
0x080024D4 0018 MOVS r0,r3
0x080024D6 0018 MOVS r0,r3
0x080024D8 1FF8 SUBS r0,r7,#7
0x080024DA 1FF8 SUBS r0,r7,#7
0x080024DC 0018 MOVS r0,r3
0x080024DE 0018 MOVS r0,r3
0x080024E0 0018 MOVS r0,r3
0x080024E2 0018 MOVS r0,r3
0x080024E4 0018 MOVS r0,r3
0x080024E6 0018 MOVS r0,r3
0x080024E8 0018 MOVS r0,r3
0x080024EA 0018 MOVS r0,r3
0x080024EC 0000 MOVS r0,r0
0x080024EE 0000 MOVS r0,r0
0x080024F0 0000 MOVS r0,r0
0x080024F2 0000 MOVS r0,r0
0x080024F4 0000 MOVS r0,r0
0x080024F6 0000 MOVS r0,r0
0x080024F8 0000 MOVS r0,r0
0x080024FA 0FE0 LSRS r0,r4,#31
0x080024FC 3FF8 SUBS r7,r7,#0xF8
0x080024FE 783C LDRB r4,[r7,#0x00]
0x08002500 600E STR r6,[r1,#0x00]
0x08002502 E006 B 0x08002512
0x08002504 C007 STM r0!,{r0-r2}
0x08002506 0003 MOVS r3,r0
0x08002508 0003 MOVS r3,r0
0x0800250A FE03FE03 CDP2 P14,0x00,pc,C3,C3
0x0800250E C003 STM r0!,{r0-r1}
0x08002510 C007 STM r0!,{r0-r2}
0x08002512 C006 STM r0!,{r1-r2}
0x08002514 C00E STM r0!,{r1-r3}
0x08002516 F03C3FF8 BICS pc,r12,#0xF8F8F8F8
0x0800251A 0FE0 LSRS r0,r4,#31
0x0800251C 0000 MOVS r0,r0
0x0800251E 0000 MOVS r0,r0
0x08002520 0000 MOVS r0,r0
0x08002522 0000 MOVS r0,r0
0x08002524 0000 MOVS r0,r0
0x08002526 0000 MOVS r0,r0
0x08002528 0000 MOVS r0,r0
0x0800252A 300C ADDS r0,r0,#0x0C
0x0800252C 300C ADDS r0,r0,#0x0C
0x0800252E 300C ADDS r0,r0,#0x0C
0x08002530 300C ADDS r0,r0,#0x0C
0x08002532 300C ADDS r0,r0,#0x0C
0x08002534 300C ADDS r0,r0,#0x0C
0x08002536 300C ADDS r0,r0,#0x0C
0x08002538 3FFC SUBS r7,r7,#0xFC
0x0800253A 3FFC SUBS r7,r7,#0xFC
0x0800253C 300C ADDS r0,r0,#0x0C
0x0800253E 300C ADDS r0,r0,#0x0C
0x08002540 300C ADDS r0,r0,#0x0C
0x08002542 300C ADDS r0,r0,#0x0C
0x08002544 300C ADDS r0,r0,#0x0C
0x08002546 300C ADDS r0,r0,#0x0C
0x08002548 300C ADDS r0,r0,#0x0C
0x0800254A 300C ADDS r0,r0,#0x0C
0x0800254C 0000 MOVS r0,r0
0x0800254E 0000 MOVS r0,r0
0x08002550 0000 MOVS r0,r0
0x08002552 0000 MOVS r0,r0
0x08002554 0000 MOVS r0,r0
0x08002556 0000 MOVS r0,r0
0x08002558 0000 MOVS r0,r0
0x0800255A 0180 LSLS r0,r0,#6
0x0800255C 0180 LSLS r0,r0,#6
0x0800255E 0180 LSLS r0,r0,#6
0x08002560 0180 LSLS r0,r0,#6
0x08002562 0180 LSLS r0,r0,#6
0x08002564 0180 LSLS r0,r0,#6
0x08002566 0180 LSLS r0,r0,#6
0x08002568 0180 LSLS r0,r0,#6
0x0800256A 0180 LSLS r0,r0,#6
0x0800256C 0180 LSLS r0,r0,#6
0x0800256E 0180 LSLS r0,r0,#6
0x08002570 0180 LSLS r0,r0,#6
0x08002572 0180 LSLS r0,r0,#6
0x08002574 0180 LSLS r0,r0,#6
0x08002576 0180 LSLS r0,r0,#6
0x08002578 0180 LSLS r0,r0,#6
0x0800257A 0180 LSLS r0,r0,#6
0x0800257C 0000 MOVS r0,r0
0x0800257E 0000 MOVS r0,r0
0x08002580 0000 MOVS r0,r0
0x08002582 0000 MOVS r0,r0
0x08002584 0000 MOVS r0,r0
0x08002586 0000 MOVS r0,r0
0x08002588 0000 MOVS r0,r0
0x0800258A 0600 LSLS r0,r0,#24
0x0800258C 0600 LSLS r0,r0,#24
0x0800258E 0600 LSLS r0,r0,#24
0x08002590 0600 LSLS r0,r0,#24
0x08002592 0600 LSLS r0,r0,#24
0x08002594 0600 LSLS r0,r0,#24
0x08002596 0600 LSLS r0,r0,#24
0x08002598 0600 LSLS r0,r0,#24
0x0800259A 0600 LSLS r0,r0,#24
0x0800259C 0600 LSLS r0,r0,#24
0x0800259E 0600 LSLS r0,r0,#24
0x080025A0 0600 LSLS r0,r0,#24
0x080025A2 0618 LSLS r0,r3,#24
0x080025A4 0618 LSLS r0,r3,#24
0x080025A6 0738 LSLS r0,r7,#28
0x080025A8 03F0 LSLS r0,r6,#15
0x080025AA 01E0 LSLS r0,r4,#7
0x080025AC 0000 MOVS r0,r0
0x080025AE 0000 MOVS r0,r0
0x080025B0 0000 MOVS r0,r0
0x080025B2 0000 MOVS r0,r0
0x080025B4 0000 MOVS r0,r0
0x080025B6 0000 MOVS r0,r0
0x080025B8 0000 MOVS r0,r0
0x080025BA 3006 ADDS r0,r0,#0x06
0x080025BC 1806 ADDS r6,r0,r0
0x080025BE 0C06 LSRS r6,r0,#16
0x080025C0 0606 LSLS r6,r0,#24
0x080025C2 0306 LSLS r6,r0,#12
0x080025C4 0186 LSLS r6,r0,#6
0x080025C6 00C6 LSLS r6,r0,#3
0x080025C8 0066 LSLS r6,r4,#1
0x080025CA 0076 LSLS r6,r6,#1
0x080025CC 00DE LSLS r6,r3,#3
0x080025CE 018E LSLS r6,r1,#6
0x080025D0 0306 LSLS r6,r0,#12
0x080025D2 0606 LSLS r6,r0,#24
0x080025D4 0C06 LSRS r6,r0,#16
0x080025D6 1806 ADDS r6,r0,r0
0x080025D8 3006 ADDS r0,r0,#0x06
0x080025DA 6006 STR r6,[r0,#0x00]
0x080025DC 0000 MOVS r0,r0
0x080025DE 0000 MOVS r0,r0
0x080025E0 0000 MOVS r0,r0
0x080025E2 0000 MOVS r0,r0
0x080025E4 0000 MOVS r0,r0
0x080025E6 0000 MOVS r0,r0
0x080025E8 0000 MOVS r0,r0
0x080025EA 0018 MOVS r0,r3
0x080025EC 0018 MOVS r0,r3
0x080025EE 0018 MOVS r0,r3
0x080025F0 0018 MOVS r0,r3
0x080025F2 0018 MOVS r0,r3
0x080025F4 0018 MOVS r0,r3
0x080025F6 0018 MOVS r0,r3
0x080025F8 0018 MOVS r0,r3
0x080025FA 0018 MOVS r0,r3
0x080025FC 0018 MOVS r0,r3
0x080025FE 0018 MOVS r0,r3
0x08002600 0018 MOVS r0,r3
0x08002602 0018 MOVS r0,r3
0x08002604 0018 MOVS r0,r3
0x08002606 0018 MOVS r0,r3
0x08002608 1FF8 SUBS r0,r7,#7
0x0800260A 1FF8 SUBS r0,r7,#7
0x0800260C 0000 MOVS r0,r0
0x0800260E 0000 MOVS r0,r0
0x08002610 0000 MOVS r0,r0
0x08002612 0000 MOVS r0,r0
0x08002614 0000 MOVS r0,r0
0x08002616 0000 MOVS r0,r0
0x08002618 0000 MOVS r0,r0
0x0800261A E00E B 0x0800263A
0x0800261C F01EF01E BL.W 0x0842065C
0x08002620 F01ED836 BL.W 0x08820690
0x08002624 D836 BHI 0x08002694
0x08002626 D836 BHI 0x08002696
0x08002628 D836 BHI 0x08002698
0x0800262A CC66 LDM r4!,{r1-r2,r5-r6}
0x0800262C CC66 LDM r4!,{r1-r2,r5-r6}
0x0800262E CC66 LDM r4!,{r1-r2,r5-r6}
0x08002630 C6C6 STM r6!,{r1-r2,r6-r7}
0x08002632 C6C6 STM r6!,{r1-r2,r6-r7}
0x08002634 C6C6 STM r6!,{r1-r2,r6-r7}
0x08002636 C6C6 STM r6!,{r1-r2,r6-r7}
0x08002638 C386 STM r3!,{r1-r2,r7}
0x0800263A C386 STM r3!,{r1-r2,r7}
0x0800263C 0000 MOVS r0,r0
0x0800263E 0000 MOVS r0,r0
0x08002640 0000 MOVS r0,r0
0x08002642 0000 MOVS r0,r0
0x08002644 0000 MOVS r0,r0
0x08002646 0000 MOVS r0,r0
0x08002648 0000 MOVS r0,r0
0x0800264A 300C ADDS r0,r0,#0x0C
0x0800264C 301C ADDS r0,r0,#0x1C
0x0800264E 303C ADDS r0,r0,#0x3C
0x08002650 303C ADDS r0,r0,#0x3C
0x08002652 306C ADDS r0,r0,#0x6C
0x08002654 306C ADDS r0,r0,#0x6C
0x08002656 30CC ADDS r0,r0,#0xCC
0x08002658 30CC ADDS r0,r0,#0xCC
0x0800265A 318C ADDS r1,r1,#0x8C
0x0800265C 330C ADDS r3,r3,#0x0C
0x0800265E 330C ADDS r3,r3,#0x0C
0x08002660 360C ADDS r6,r6,#0x0C
0x08002662 360C ADDS r6,r6,#0x0C
0x08002664 3C0C SUBS r4,r4,#0x0C
0x08002666 3C0C SUBS r4,r4,#0x0C
0x08002668 380C SUBS r0,r0,#0x0C
0x0800266A 300C ADDS r0,r0,#0x0C
0x0800266C 0000 MOVS r0,r0
0x0800266E 0000 MOVS r0,r0
0x08002670 0000 MOVS r0,r0
0x08002672 0000 MOVS r0,r0
0x08002674 0000 MOVS r0,r0
0x08002676 0000 MOVS r0,r0
0x08002678 0000 MOVS r0,r0
0x0800267A 07E0 LSLS r0,r4,#31
0x0800267C 1FF8 SUBS r0,r7,#7
0x0800267E 381C SUBS r0,r0,#0x1C
0x08002680 700E STRB r6,[r1,#0x00]
0x08002682 6006 STR r6,[r0,#0x00]
0x08002684 C003 STM r0!,{r0-r1}
0x08002686 C003 STM r0!,{r0-r1}
0x08002688 C003 STM r0!,{r0-r1}
0x0800268A C003 STM r0!,{r0-r1}
0x0800268C C003 STM r0!,{r0-r1}
0x0800268E C003 STM r0!,{r0-r1}
0x08002690 C003 STM r0!,{r0-r1}
0x08002692 6006 STR r6,[r0,#0x00]
0x08002694 700E STRB r6,[r1,#0x00]
0x08002696 381C SUBS r0,r0,#0x1C
0x08002698 1FF8 SUBS r0,r7,#7
0x0800269A 07E0 LSLS r0,r4,#31
0x0800269C 0000 MOVS r0,r0
0x0800269E 0000 MOVS r0,r0
0x080026A0 0000 MOVS r0,r0
0x080026A2 0000 MOVS r0,r0
0x080026A4 0000 MOVS r0,r0
0x080026A6 0000 MOVS r0,r0
0x080026A8 0000 MOVS r0,r0
0x080026AA 0FFC LSRS r4,r7,#31
0x080026AC 1FFC SUBS r4,r7,#7
0x080026AE 380C SUBS r0,r0,#0x0C
0x080026B0 300C ADDS r0,r0,#0x0C
0x080026B2 300C ADDS r0,r0,#0x0C
0x080026B4 300C ADDS r0,r0,#0x0C
0x080026B6 300C ADDS r0,r0,#0x0C
0x080026B8 180C ADDS r4,r1,r0
0x080026BA 1FFC SUBS r4,r7,#7
0x080026BC 07FC LSLS r4,r7,#31
0x080026BE 000C MOVS r4,r1
0x080026C0 000C MOVS r4,r1
0x080026C2 000C MOVS r4,r1
0x080026C4 000C MOVS r4,r1
0x080026C6 000C MOVS r4,r1
0x080026C8 000C MOVS r4,r1
0x080026CA 000C MOVS r4,r1
0x080026CC 0000 MOVS r0,r0
0x080026CE 0000 MOVS r0,r0
0x080026D0 0000 MOVS r0,r0
0x080026D2 0000 MOVS r0,r0
0x080026D4 0000 MOVS r0,r0
0x080026D6 0000 MOVS r0,r0
0x080026D8 0000 MOVS r0,r0
0x080026DA 07E0 LSLS r0,r4,#31
0x080026DC 1FF8 SUBS r0,r7,#7
0x080026DE 381C SUBS r0,r0,#0x1C
0x080026E0 700E STRB r6,[r1,#0x00]
0x080026E2 6006 STR r6,[r0,#0x00]
0x080026E4 E003 B 0x080026EE
0x080026E6 C003 STM r0!,{r0-r1}
0x080026E8 C003 STM r0!,{r0-r1}
0x080026EA C003 STM r0!,{r0-r1}
0x080026EC C003 STM r0!,{r0-r1}
0x080026EE C003 STM r0!,{r0-r1}
0x080026F0 E007 B 0x08002702
0x080026F2 6306 STR r6,[r0,#0x30]
0x080026F4 3F0E SUBS r7,r7,#0x0E
0x080026F6 3C1C SUBS r4,r4,#0x1C
0x080026F8 3FF8 SUBS r7,r7,#0xF8
0x080026FA F7E0C000 DCD 0xF7E0C000 ; ? Undefined
0x080026FE 0000 MOVS r0,r0
0x08002700 0000 MOVS r0,r0
0x08002702 0000 MOVS r0,r0
0x08002704 0000 MOVS r0,r0
0x08002706 0000 MOVS r0,r0
0x08002708 0000 MOVS r0,r0
0x0800270A 0FFE LSRS r6,r7,#31
0x0800270C 1FFE SUBS r6,r7,#7
0x0800270E 3806 SUBS r0,r0,#0x06
0x08002710 3006 ADDS r0,r0,#0x06
0x08002712 3006 ADDS r0,r0,#0x06
0x08002714 3006 ADDS r0,r0,#0x06
0x08002716 3806 SUBS r0,r0,#0x06
0x08002718 1FFE SUBS r6,r7,#7
0x0800271A 07FE LSLS r6,r7,#31
0x0800271C 0306 LSLS r6,r0,#12
0x0800271E 0606 LSLS r6,r0,#24
0x08002720 0C06 LSRS r6,r0,#16
0x08002722 1806 ADDS r6,r0,r0
0x08002724 1806 ADDS r6,r0,r0
0x08002726 3006 ADDS r0,r0,#0x06
0x08002728 3006 ADDS r0,r0,#0x06
0x0800272A 6006 STR r6,[r0,#0x00]
0x0800272C 0000 MOVS r0,r0
0x0800272E 0000 MOVS r0,r0
0x08002730 0000 MOVS r0,r0
0x08002732 0000 MOVS r0,r0
0x08002734 0000 MOVS r0,r0
0x08002736 0000 MOVS r0,r0
0x08002738 0000 MOVS r0,r0
0x0800273A 03E0 LSLS r0,r4,#15
0x0800273C 0FF8 LSRS r0,r7,#31
0x0800273E 0C1C LSRS r4,r3,#16
0x08002740 180C ADDS r4,r1,r0
0x08002742 180C ADDS r4,r1,r0
0x08002744 000C MOVS r4,r1
0x08002746 001C MOVS r4,r3
0x08002748 03F8 LSLS r0,r7,#15
0x0800274A 0FE0 LSRS r0,r4,#31
0x0800274C 1E00 SUBS r0,r0,#0
0x0800274E 3800 SUBS r0,r0,#0x00
0x08002750 3006 ADDS r0,r0,#0x06
0x08002752 3006 ADDS r0,r0,#0x06
0x08002754 300E ADDS r0,r0,#0x0E
0x08002756 1C1C ADDS r4,r3,#0
0x08002758 0FF8 LSRS r0,r7,#31
0x0800275A 07E0 LSLS r0,r4,#31
0x0800275C 0000 MOVS r0,r0
0x0800275E 0000 MOVS r0,r0
0x08002760 0000 MOVS r0,r0
0x08002762 0000 MOVS r0,r0
0x08002764 0000 MOVS r0,r0
0x08002766 0000 MOVS r0,r0
0x08002768 0000 MOVS r0,r0
0x0800276A 7FFE LDRB r6,[r7,#0x1F]
0x0800276C 7FFE LDRB r6,[r7,#0x1F]
0x0800276E 0180 LSLS r0,r0,#6
0x08002770 0180 LSLS r0,r0,#6
0x08002772 0180 LSLS r0,r0,#6
0x08002774 0180 LSLS r0,r0,#6
0x08002776 0180 LSLS r0,r0,#6
0x08002778 0180 LSLS r0,r0,#6
0x0800277A 0180 LSLS r0,r0,#6
0x0800277C 0180 LSLS r0,r0,#6
0x0800277E 0180 LSLS r0,r0,#6
0x08002780 0180 LSLS r0,r0,#6
0x08002782 0180 LSLS r0,r0,#6
0x08002784 0180 LSLS r0,r0,#6
0x08002786 0180 LSLS r0,r0,#6
0x08002788 0180 LSLS r0,r0,#6
0x0800278A 0180 LSLS r0,r0,#6
0x0800278C 0000 MOVS r0,r0
0x0800278E 0000 MOVS r0,r0
0x08002790 0000 MOVS r0,r0
0x08002792 0000 MOVS r0,r0
0x08002794 0000 MOVS r0,r0
0x08002796 0000 MOVS r0,r0
0x08002798 0000 MOVS r0,r0
0x0800279A 300C ADDS r0,r0,#0x0C
0x0800279C 300C ADDS r0,r0,#0x0C
0x0800279E 300C ADDS r0,r0,#0x0C
0x080027A0 300C ADDS r0,r0,#0x0C
0x080027A2 300C ADDS r0,r0,#0x0C
0x080027A4 300C ADDS r0,r0,#0x0C
0x080027A6 300C ADDS r0,r0,#0x0C
0x080027A8 300C ADDS r0,r0,#0x0C
0x080027AA 300C ADDS r0,r0,#0x0C
0x080027AC 300C ADDS r0,r0,#0x0C
0x080027AE 300C ADDS r0,r0,#0x0C
0x080027B0 300C ADDS r0,r0,#0x0C
0x080027B2 300C ADDS r0,r0,#0x0C
0x080027B4 300C ADDS r0,r0,#0x0C
0x080027B6 1818 ADDS r0,r3,r0
0x080027B8 1FF8 SUBS r0,r7,#7
0x080027BA 07E0 LSLS r0,r4,#31
0x080027BC 0000 MOVS r0,r0
0x080027BE 0000 MOVS r0,r0
0x080027C0 0000 MOVS r0,r0
0x080027C2 0000 MOVS r0,r0
0x080027C4 0000 MOVS r0,r0
0x080027C6 0000 MOVS r0,r0
0x080027C8 0000 MOVS r0,r0
0x080027CA 6003 STR r3,[r0,#0x00]
0x080027CC 3006 ADDS r0,r0,#0x06
0x080027CE 3006 ADDS r0,r0,#0x06
0x080027D0 3006 ADDS r0,r0,#0x06
0x080027D2 180C ADDS r4,r1,r0
0x080027D4 180C ADDS r4,r1,r0
0x080027D6 180C ADDS r4,r1,r0
0x080027D8 0C18 LSRS r0,r3,#16
0x080027DA 0C18 LSRS r0,r3,#16
0x080027DC 0E38 LSRS r0,r7,#24
0x080027DE 0630 LSLS r0,r6,#24
0x080027E0 0630 LSLS r0,r6,#24
0x080027E2 0770 LSLS r0,r6,#29
0x080027E4 0360 LSLS r0,r4,#13
0x080027E6 0360 LSLS r0,r4,#13
0x080027E8 01C0 LSLS r0,r0,#7
0x080027EA 01C0 LSLS r0,r0,#7
0x080027EC 0000 MOVS r0,r0
0x080027EE 0000 MOVS r0,r0
0x080027F0 0000 MOVS r0,r0
0x080027F2 0000 MOVS r0,r0
0x080027F4 0000 MOVS r0,r0
0x080027F6 0000 MOVS r0,r0
0x080027F8 0000 MOVS r0,r0
0x080027FA 6003 STR r3,[r0,#0x00]
0x080027FC 61C3 STR r3,[r0,#0x1C]
0x080027FE 61C3 STR r3,[r0,#0x1C]
0x08002800 61C3 STR r3,[r0,#0x1C]
0x08002802 3366 ADDS r3,r3,#0x66
0x08002804 3366 ADDS r3,r3,#0x66
0x08002806 3366 ADDS r3,r3,#0x66
0x08002808 3366 ADDS r3,r3,#0x66
0x0800280A 3366 ADDS r3,r3,#0x66
0x0800280C 3366 ADDS r3,r3,#0x66
0x0800280E 1B6C SUBS r4,r5,r5
0x08002810 1B6C SUBS r4,r5,r5
0x08002812 1B6C SUBS r4,r5,r5
0x08002814 1A2C SUBS r4,r5,r0
0x08002816 1E3C SUBS r4,r7,#0
0x08002818 0E38 LSRS r0,r7,#24
0x0800281A 0E38 LSRS r0,r7,#24
0x0800281C 0000 MOVS r0,r0
0x0800281E 0000 MOVS r0,r0
0x08002820 0000 MOVS r0,r0
0x08002822 0000 MOVS r0,r0
0x08002824 0000 MOVS r0,r0
0x08002826 0000 MOVS r0,r0
0x08002828 0000 MOVS r0,r0
0x0800282A E00F B 0x0800284C
0x0800282C 700C STRB r4,[r1,#0x00]
0x0800282E 3018 ADDS r0,r0,#0x18
0x08002830 1830 ADDS r0,r6,r0
0x08002832 0C70 LSRS r0,r6,#17
0x08002834 0E60 LSRS r0,r4,#25
0x08002836 07C0 LSLS r0,r0,#31
0x08002838 0380 LSLS r0,r0,#14
0x0800283A 0380 LSLS r0,r0,#14
0x0800283C 03C0 LSLS r0,r0,#15
0x0800283E 06E0 LSLS r0,r4,#27
0x08002840 0C70 LSRS r0,r6,#17
0x08002842 1C30 ADDS r0,r6,#0
0x08002844 1818 ADDS r0,r3,r0
0x08002846 300C ADDS r0,r0,#0x0C
0x08002848 600E STR r6,[r1,#0x00]
0x0800284A E007 B 0x0800285C
0x0800284C 0000 MOVS r0,r0
0x0800284E 0000 MOVS r0,r0
0x08002850 0000 MOVS r0,r0
0x08002852 0000 MOVS r0,r0
0x08002854 0000 MOVS r0,r0
0x08002856 0000 MOVS r0,r0
0x08002858 0000 MOVS r0,r0
0x0800285A C003 STM r0!,{r0-r1}
0x0800285C 6006 STR r6,[r0,#0x00]
0x0800285E 300C ADDS r0,r0,#0x0C
0x08002860 381C SUBS r0,r0,#0x1C
0x08002862 1838 ADDS r0,r7,r0
0x08002864 0C30 LSRS r0,r6,#16
0x08002866 0660 LSLS r0,r4,#25
0x08002868 07E0 LSLS r0,r4,#31
0x0800286A 03C0 LSLS r0,r0,#15
0x0800286C 0180 LSLS r0,r0,#6
0x0800286E 0180 LSLS r0,r0,#6
0x08002870 0180 LSLS r0,r0,#6
0x08002872 0180 LSLS r0,r0,#6
0x08002874 0180 LSLS r0,r0,#6
0x08002876 0180 LSLS r0,r0,#6
0x08002878 0180 LSLS r0,r0,#6
0x0800287A 0180 LSLS r0,r0,#6
0x0800287C 0000 MOVS r0,r0
0x0800287E 0000 MOVS r0,r0
0x08002880 0000 MOVS r0,r0
0x08002882 0000 MOVS r0,r0
0x08002884 0000 MOVS r0,r0
0x08002886 0000 MOVS r0,r0
0x08002888 0000 MOVS r0,r0
0x0800288A 7FFC LDRB r4,[r7,#0x1F]
0x0800288C 7FFC LDRB r4,[r7,#0x1F]
0x0800288E 6000 STR r0,[r0,#0x00]
0x08002890 3000 ADDS r0,r0,#0x00
0x08002892 1800 ADDS r0,r0,r0
0x08002894 0C00 LSRS r0,r0,#16
0x08002896 0600 LSLS r0,r0,#24
0x08002898 0300 LSLS r0,r0,#12
0x0800289A 0180 LSLS r0,r0,#6
0x0800289C 00C0 LSLS r0,r0,#3
0x0800289E 0060 LSLS r0,r4,#1
0x080028A0 0030 MOVS r0,r6
0x080028A2 0018 MOVS r0,r3
0x080028A4 000C MOVS r4,r1
0x080028A6 0006 MOVS r6,r0
0x080028A8 7FFE LDRB r6,[r7,#0x1F]
0x080028AA 7FFE LDRB r6,[r7,#0x1F]
0x080028AC 0000 MOVS r0,r0
0x080028AE 0000 MOVS r0,r0
0x080028B0 0000 MOVS r0,r0
0x080028B2 0000 MOVS r0,r0
0x080028B4 0000 MOVS r0,r0
0x080028B6 0000 MOVS r0,r0
0x080028B8 0000 MOVS r0,r0
0x080028BA 03E0 LSLS r0,r4,#15
0x080028BC 03E0 LSLS r0,r4,#15
0x080028BE 0060 LSLS r0,r4,#1
0x080028C0 0060 LSLS r0,r4,#1
0x080028C2 0060 LSLS r0,r4,#1
0x080028C4 0060 LSLS r0,r4,#1
0x080028C6 0060 LSLS r0,r4,#1
0x080028C8 0060 LSLS r0,r4,#1
0x080028CA 0060 LSLS r0,r4,#1
0x080028CC 0060 LSLS r0,r4,#1
0x080028CE 0060 LSLS r0,r4,#1
0x080028D0 0060 LSLS r0,r4,#1
0x080028D2 0060 LSLS r0,r4,#1
0x080028D4 0060 LSLS r0,r4,#1
0x080028D6 0060 LSLS r0,r4,#1
0x080028D8 0060 LSLS r0,r4,#1
0x080028DA 0060 LSLS r0,r4,#1
0x080028DC 0060 LSLS r0,r4,#1
0x080028DE 0060 LSLS r0,r4,#1
0x080028E0 0060 LSLS r0,r4,#1
0x080028E2 03E0 LSLS r0,r4,#15
0x080028E4 03E0 LSLS r0,r4,#15
0x080028E6 0000 MOVS r0,r0
0x080028E8 0000 MOVS r0,r0
0x080028EA 0030 MOVS r0,r6
0x080028EC 0030 MOVS r0,r6
0x080028EE 0060 LSLS r0,r4,#1
0x080028F0 0060 LSLS r0,r4,#1
0x080028F2 0060 LSLS r0,r4,#1
0x080028F4 00C0 LSLS r0,r0,#3
0x080028F6 00C0 LSLS r0,r0,#3
0x080028F8 00C0 LSLS r0,r0,#3
0x080028FA 01C0 LSLS r0,r0,#7
0x080028FC 0180 LSLS r0,r0,#6
0x080028FE 0180 LSLS r0,r0,#6
0x08002900 0180 LSLS r0,r0,#6
0x08002902 0300 LSLS r0,r0,#12
0x08002904 0300 LSLS r0,r0,#12
0x08002906 0300 LSLS r0,r0,#12
0x08002908 0600 LSLS r0,r0,#24
0x0800290A 0600 LSLS r0,r0,#24
0x0800290C 0000 MOVS r0,r0
0x0800290E 0000 MOVS r0,r0
0x08002910 0000 MOVS r0,r0
0x08002912 0000 MOVS r0,r0
0x08002914 0000 MOVS r0,r0
0x08002916 0000 MOVS r0,r0
0x08002918 0000 MOVS r0,r0
0x0800291A 03E0 LSLS r0,r4,#15
0x0800291C 03E0 LSLS r0,r4,#15
0x0800291E 0300 LSLS r0,r0,#12
0x08002920 0300 LSLS r0,r0,#12
0x08002922 0300 LSLS r0,r0,#12
0x08002924 0300 LSLS r0,r0,#12
0x08002926 0300 LSLS r0,r0,#12
0x08002928 0300 LSLS r0,r0,#12
0x0800292A 0300 LSLS r0,r0,#12
0x0800292C 0300 LSLS r0,r0,#12
0x0800292E 0300 LSLS r0,r0,#12
0x08002930 0300 LSLS r0,r0,#12
0x08002932 0300 LSLS r0,r0,#12
0x08002934 0300 LSLS r0,r0,#12
0x08002936 0300 LSLS r0,r0,#12
0x08002938 0300 LSLS r0,r0,#12
0x0800293A 0300 LSLS r0,r0,#12
0x0800293C 0300 LSLS r0,r0,#12
0x0800293E 0300 LSLS r0,r0,#12
0x08002940 0300 LSLS r0,r0,#12
0x08002942 03E0 LSLS r0,r4,#15
0x08002944 03E0 LSLS r0,r4,#15
0x08002946 0000 MOVS r0,r0
0x08002948 0000 MOVS r0,r0
0x0800294A 0000 MOVS r0,r0
0x0800294C 01C0 LSLS r0,r0,#7
0x0800294E 01C0 LSLS r0,r0,#7
0x08002950 0360 LSLS r0,r4,#13
0x08002952 0360 LSLS r0,r4,#13
0x08002954 0360 LSLS r0,r4,#13
0x08002956 0630 LSLS r0,r6,#24
0x08002958 0630 LSLS r0,r6,#24
0x0800295A 0C18 LSRS r0,r3,#16
0x0800295C 0C18 LSRS r0,r3,#16
0x0800295E 0000 MOVS r0,r0
0x08002960 0000 MOVS r0,r0
0x08002962 0000 MOVS r0,r0
0x08002964 0000 MOVS r0,r0
0x08002966 0000 MOVS r0,r0
0x08002968 0000 MOVS r0,r0
0x0800296A 0000 MOVS r0,r0
0x0800296C 0000 MOVS r0,r0
0x0800296E 0000 MOVS r0,r0
0x08002970 0000 MOVS r0,r0
0x08002972 0000 MOVS r0,r0
0x08002974 0000 MOVS r0,r0
0x08002976 0000 MOVS r0,r0
0x08002978 0000 MOVS r0,r0
0x0800297A 0000 MOVS r0,r0
0x0800297C 0000 MOVS r0,r0
0x0800297E 0000 MOVS r0,r0
0x08002980 0000 MOVS r0,r0
0x08002982 0000 MOVS r0,r0
0x08002984 0000 MOVS r0,r0
0x08002986 0000 MOVS r0,r0
0x08002988 0000 MOVS r0,r0
0x0800298A 0000 MOVS r0,r0
0x0800298C 0000 MOVS r0,r0
0x0800298E 0000 MOVS r0,r0
0x08002990 0000 MOVS r0,r0
0x08002992 0000 MOVS r0,r0
0x08002994 0000 MOVS r0,r0
0x08002996 0000 MOVS r0,r0
0x08002998 0000 MOVS r0,r0
0x0800299A FFFFFFFF DCD 0xFFFFFFFF ; ? Undefined
0x0800299E 0000 MOVS r0,r0
0x080029A0 0000 MOVS r0,r0
0x080029A2 0000 MOVS r0,r0
0x080029A4 0000 MOVS r0,r0
0x080029A6 0000 MOVS r0,r0
0x080029A8 0000 MOVS r0,r0
0x080029AA 000C MOVS r4,r1
0x080029AC 000C MOVS r4,r1
0x080029AE 000C MOVS r4,r1
0x080029B0 000C MOVS r4,r1
0x080029B2 000C MOVS r4,r1
0x080029B4 000C MOVS r4,r1
0x080029B6 0000 MOVS r0,r0
0x080029B8 0000 MOVS r0,r0
0x080029BA 0000 MOVS r0,r0
0x080029BC 0000 MOVS r0,r0
0x080029BE 0000 MOVS r0,r0
0x080029C0 0000 MOVS r0,r0
0x080029C2 0000 MOVS r0,r0
0x080029C4 0000 MOVS r0,r0
0x080029C6 0000 MOVS r0,r0
0x080029C8 0000 MOVS r0,r0
0x080029CA 0000 MOVS r0,r0
0x080029CC 0000 MOVS r0,r0
0x080029CE 0000 MOVS r0,r0
0x080029D0 0000 MOVS r0,r0
0x080029D2 0000 MOVS r0,r0
0x080029D4 0000 MOVS r0,r0
0x080029D6 0000 MOVS r0,r0
0x080029D8 0000 MOVS r0,r0
0x080029DA 0000 MOVS r0,r0
0x080029DC 0000 MOVS r0,r0
0x080029DE 0000 MOVS r0,r0
0x080029E0 0000 MOVS r0,r0
0x080029E2 0000 MOVS r0,r0
0x080029E4 03F0 LSLS r0,r6,#15
0x080029E6 07F8 LSLS r0,r7,#31
0x080029E8 0C1C LSRS r4,r3,#16
0x080029EA 0C0C LSRS r4,r1,#16
0x080029EC 0F00 LSRS r0,r0,#28
0x080029EE 0FF0 LSRS r0,r6,#31
0x080029F0 0CF8 LSRS r0,r7,#19
0x080029F2 0C0C LSRS r4,r1,#16
0x080029F4 0C0C LSRS r4,r1,#16
0x080029F6 0F1C LSRS r4,r3,#28
0x080029F8 0FF8 LSRS r0,r7,#31
0x080029FA 18F0 ADDS r0,r6,r3
0x080029FC 0000 MOVS r0,r0
0x080029FE 0000 MOVS r0,r0
0x08002A00 0000 MOVS r0,r0
0x08002A02 0000 MOVS r0,r0
0x08002A04 0000 MOVS r0,r0
0x08002A06 0000 MOVS r0,r0
0x08002A08 0000 MOVS r0,r0
0x08002A0A 0018 MOVS r0,r3
0x08002A0C 0018 MOVS r0,r3
0x08002A0E 0018 MOVS r0,r3
0x08002A10 0018 MOVS r0,r3
0x08002A12 0018 MOVS r0,r3
0x08002A14 03D8 LSLS r0,r3,#15
0x08002A16 0FF8 LSRS r0,r7,#31
0x08002A18 0C38 LSRS r0,r7,#16
0x08002A1A 1818 ADDS r0,r3,r0
0x08002A1C 1818 ADDS r0,r3,r0
0x08002A1E 1818 ADDS r0,r3,r0
0x08002A20 1818 ADDS r0,r3,r0
0x08002A22 1818 ADDS r0,r3,r0
0x08002A24 1818 ADDS r0,r3,r0
0x08002A26 0C38 LSRS r0,r7,#16
0x08002A28 0FF8 LSRS r0,r7,#31
0x08002A2A 03D8 LSLS r0,r3,#15
0x08002A2C 0000 MOVS r0,r0
0x08002A2E 0000 MOVS r0,r0
0x08002A30 0000 MOVS r0,r0
0x08002A32 0000 MOVS r0,r0
0x08002A34 0000 MOVS r0,r0
0x08002A36 0000 MOVS r0,r0
0x08002A38 0000 MOVS r0,r0
0x08002A3A 0000 MOVS r0,r0
0x08002A3C 0000 MOVS r0,r0
0x08002A3E 0000 MOVS r0,r0
0x08002A40 0000 MOVS r0,r0
0x08002A42 0000 MOVS r0,r0
0x08002A44 03C0 LSLS r0,r0,#15
0x08002A46 07F0 LSLS r0,r6,#31
0x08002A48 0E30 LSRS r0,r6,#24
0x08002A4A 0C18 LSRS r0,r3,#16
0x08002A4C 0018 MOVS r0,r3
0x08002A4E 0018 MOVS r0,r3
0x08002A50 0018 MOVS r0,r3
0x08002A52 0018 MOVS r0,r3
0x08002A54 0C18 LSRS r0,r3,#16
0x08002A56 0E30 LSRS r0,r6,#24
0x08002A58 07F0 LSLS r0,r6,#31
0x08002A5A 03C0 LSLS r0,r0,#15
0x08002A5C 0000 MOVS r0,r0
0x08002A5E 0000 MOVS r0,r0
0x08002A60 0000 MOVS r0,r0
0x08002A62 0000 MOVS r0,r0
0x08002A64 0000 MOVS r0,r0
0x08002A66 0000 MOVS r0,r0
0x08002A68 0000 MOVS r0,r0
0x08002A6A 1800 ADDS r0,r0,r0
0x08002A6C 1800 ADDS r0,r0,r0
0x08002A6E 1800 ADDS r0,r0,r0
0x08002A70 1800 ADDS r0,r0,r0
0x08002A72 1800 ADDS r0,r0,r0
0x08002A74 1BC0 SUBS r0,r0,r7
0x08002A76 1FF0 SUBS r0,r6,#7
0x08002A78 1C30 ADDS r0,r6,#0
0x08002A7A 1818 ADDS r0,r3,r0
0x08002A7C 1818 ADDS r0,r3,r0
0x08002A7E 1818 ADDS r0,r3,r0
0x08002A80 1818 ADDS r0,r3,r0
0x08002A82 1818 ADDS r0,r3,r0
0x08002A84 1818 ADDS r0,r3,r0
0x08002A86 1C30 ADDS r0,r6,#0
0x08002A88 1FF0 SUBS r0,r6,#7
0x08002A8A 1BC0 SUBS r0,r0,r7
0x08002A8C 0000 MOVS r0,r0
0x08002A8E 0000 MOVS r0,r0
0x08002A90 0000 MOVS r0,r0
0x08002A92 0000 MOVS r0,r0
0x08002A94 0000 MOVS r0,r0
0x08002A96 0000 MOVS r0,r0
0x08002A98 0000 MOVS r0,r0
0x08002A9A 0000 MOVS r0,r0
0x08002A9C 0000 MOVS r0,r0
0x08002A9E 0000 MOVS r0,r0
0x08002AA0 0000 MOVS r0,r0
0x08002AA2 0000 MOVS r0,r0
0x08002AA4 03C0 LSLS r0,r0,#15
0x08002AA6 0FF0 LSRS r0,r6,#31
0x08002AA8 0C30 LSRS r0,r6,#16
0x08002AAA 1818 ADDS r0,r3,r0
0x08002AAC 1FF8 SUBS r0,r7,#7
0x08002AAE 1FF8 SUBS r0,r7,#7
0x08002AB0 0018 MOVS r0,r3
0x08002AB2 0018 MOVS r0,r3
0x08002AB4 1838 ADDS r0,r7,r0
0x08002AB6 1C30 ADDS r0,r6,#0
0x08002AB8 0FF0 LSRS r0,r6,#31
0x08002ABA 07C0 LSLS r0,r0,#31
0x08002ABC 0000 MOVS r0,r0
0x08002ABE 0000 MOVS r0,r0
0x08002AC0 0000 MOVS r0,r0
0x08002AC2 0000 MOVS r0,r0
0x08002AC4 0000 MOVS r0,r0
0x08002AC6 0000 MOVS r0,r0
0x08002AC8 0000 MOVS r0,r0
0x08002ACA 0F80 LSRS r0,r0,#30
0x08002ACC 0FC0 LSRS r0,r0,#31
0x08002ACE 00C0 LSLS r0,r0,#3
0x08002AD0 00C0 LSLS r0,r0,#3
0x08002AD2 00C0 LSLS r0,r0,#3
0x08002AD4 07F0 LSLS r0,r6,#31
0x08002AD6 07F0 LSLS r0,r6,#31
0x08002AD8 00C0 LSLS r0,r0,#3
0x08002ADA 00C0 LSLS r0,r0,#3
0x08002ADC 00C0 LSLS r0,r0,#3
0x08002ADE 00C0 LSLS r0,r0,#3
0x08002AE0 00C0 LSLS r0,r0,#3
0x08002AE2 00C0 LSLS r0,r0,#3
0x08002AE4 00C0 LSLS r0,r0,#3
0x08002AE6 00C0 LSLS r0,r0,#3
0x08002AE8 00C0 LSLS r0,r0,#3
0x08002AEA 00C0 LSLS r0,r0,#3
0x08002AEC 0000 MOVS r0,r0
0x08002AEE 0000 MOVS r0,r0
0x08002AF0 0000 MOVS r0,r0
0x08002AF2 0000 MOVS r0,r0
0x08002AF4 0000 MOVS r0,r0
0x08002AF6 0000 MOVS r0,r0
0x08002AF8 0000 MOVS r0,r0
0x08002AFA 0000 MOVS r0,r0
0x08002AFC 0000 MOVS r0,r0
0x08002AFE 0000 MOVS r0,r0
0x08002B00 0000 MOVS r0,r0
0x08002B02 0000 MOVS r0,r0
0x08002B04 0DE0 LSRS r0,r4,#23
0x08002B06 0FF8 LSRS r0,r7,#31
0x08002B08 0E18 LSRS r0,r3,#24
0x08002B0A 0C0C LSRS r4,r1,#16
0x08002B0C 0C0C LSRS r4,r1,#16
0x08002B0E 0C0C LSRS r4,r1,#16
0x08002B10 0C0C LSRS r4,r1,#16
0x08002B12 0C0C LSRS r4,r1,#16
0x08002B14 0C0C LSRS r4,r1,#16
0x08002B16 0E18 LSRS r0,r3,#24
0x08002B18 0FF8 LSRS r0,r7,#31
0x08002B1A 0DE0 LSRS r0,r4,#23
0x08002B1C 0C00 LSRS r0,r0,#16
0x08002B1E 0C0C LSRS r4,r1,#16
0x08002B20 061C LSLS r4,r3,#24
0x08002B22 07F8 LSLS r0,r7,#31
0x08002B24 01F0 LSLS r0,r6,#7
0x08002B26 0000 MOVS r0,r0
0x08002B28 0000 MOVS r0,r0
0x08002B2A 0018 MOVS r0,r3
0x08002B2C 0018 MOVS r0,r3
0x08002B2E 0018 MOVS r0,r3
0x08002B30 0018 MOVS r0,r3
0x08002B32 0018 MOVS r0,r3
0x08002B34 07D8 LSLS r0,r3,#31
0x08002B36 0FF8 LSRS r0,r7,#31
0x08002B38 1C38 ADDS r0,r7,#0
0x08002B3A 1818 ADDS r0,r3,r0
0x08002B3C 1818 ADDS r0,r3,r0
0x08002B3E 1818 ADDS r0,r3,r0
0x08002B40 1818 ADDS r0,r3,r0
0x08002B42 1818 ADDS r0,r3,r0
0x08002B44 1818 ADDS r0,r3,r0
0x08002B46 1818 ADDS r0,r3,r0
0x08002B48 1818 ADDS r0,r3,r0
0x08002B4A 1818 ADDS r0,r3,r0
0x08002B4C 0000 MOVS r0,r0
0x08002B4E 0000 MOVS r0,r0
0x08002B50 0000 MOVS r0,r0
0x08002B52 0000 MOVS r0,r0
0x08002B54 0000 MOVS r0,r0
0x08002B56 0000 MOVS r0,r0
0x08002B58 0000 MOVS r0,r0
0x08002B5A 00C0 LSLS r0,r0,#3
0x08002B5C 00C0 LSLS r0,r0,#3
0x08002B5E 0000 MOVS r0,r0
0x08002B60 0000 MOVS r0,r0
0x08002B62 0000 MOVS r0,r0
0x08002B64 00C0 LSLS r0,r0,#3
0x08002B66 00C0 LSLS r0,r0,#3
0x08002B68 00C0 LSLS r0,r0,#3
0x08002B6A 00C0 LSLS r0,r0,#3
0x08002B6C 00C0 LSLS r0,r0,#3
0x08002B6E 00C0 LSLS r0,r0,#3
0x08002B70 00C0 LSLS r0,r0,#3
0x08002B72 00C0 LSLS r0,r0,#3
0x08002B74 00C0 LSLS r0,r0,#3
0x08002B76 00C0 LSLS r0,r0,#3
0x08002B78 00C0 LSLS r0,r0,#3
0x08002B7A 00C0 LSLS r0,r0,#3
0x08002B7C 0000 MOVS r0,r0
0x08002B7E 0000 MOVS r0,r0
0x08002B80 0000 MOVS r0,r0
0x08002B82 0000 MOVS r0,r0
0x08002B84 0000 MOVS r0,r0
0x08002B86 0000 MOVS r0,r0
0x08002B88 0000 MOVS r0,r0
0x08002B8A 00C0 LSLS r0,r0,#3
0x08002B8C 00C0 LSLS r0,r0,#3
0x08002B8E 0000 MOVS r0,r0
0x08002B90 0000 MOVS r0,r0
0x08002B92 0000 MOVS r0,r0
0x08002B94 00C0 LSLS r0,r0,#3
0x08002B96 00C0 LSLS r0,r0,#3
0x08002B98 00C0 LSLS r0,r0,#3
0x08002B9A 00C0 LSLS r0,r0,#3
0x08002B9C 00C0 LSLS r0,r0,#3
0x08002B9E 00C0 LSLS r0,r0,#3
0x08002BA0 00C0 LSLS r0,r0,#3
0x08002BA2 00C0 LSLS r0,r0,#3
0x08002BA4 00C0 LSLS r0,r0,#3
0x08002BA6 00C0 LSLS r0,r0,#3
0x08002BA8 00C0 LSLS r0,r0,#3
0x08002BAA 00C0 LSLS r0,r0,#3
0x08002BAC 00C0 LSLS r0,r0,#3
0x08002BAE 00C0 LSLS r0,r0,#3
0x08002BB0 00C0 LSLS r0,r0,#3
0x08002BB2 00F8 LSLS r0,r7,#3
0x08002BB4 0078 LSLS r0,r7,#1
0x08002BB6 0000 MOVS r0,r0
0x08002BB8 0000 MOVS r0,r0
0x08002BBA 000C MOVS r4,r1
0x08002BBC 000C MOVS r4,r1
0x08002BBE 000C MOVS r4,r1
0x08002BC0 000C MOVS r4,r1
0x08002BC2 000C MOVS r4,r1
0x08002BC4 0C0C LSRS r4,r1,#16
0x08002BC6 060C LSLS r4,r1,#24
0x08002BC8 030C LSLS r4,r1,#12
0x08002BCA 018C LSLS r4,r1,#6
0x08002BCC 00CC LSLS r4,r1,#3
0x08002BCE 006C LSLS r4,r5,#1
0x08002BD0 00FC LSLS r4,r7,#3
0x08002BD2 019C LSLS r4,r3,#6
0x08002BD4 038C LSLS r4,r1,#14
0x08002BD6 030C LSLS r4,r1,#12
0x08002BD8 060C LSLS r4,r1,#24
0x08002BDA 0C0C LSRS r4,r1,#16
0x08002BDC 0000 MOVS r0,r0
0x08002BDE 0000 MOVS r0,r0
0x08002BE0 0000 MOVS r0,r0
0x08002BE2 0000 MOVS r0,r0
0x08002BE4 0000 MOVS r0,r0
0x08002BE6 0000 MOVS r0,r0
0x08002BE8 0000 MOVS r0,r0
0x08002BEA 00C0 LSLS r0,r0,#3
0x08002BEC 00C0 LSLS r0,r0,#3
0x08002BEE 00C0 LSLS r0,r0,#3
0x08002BF0 00C0 LSLS r0,r0,#3
0x08002BF2 00C0 LSLS r0,r0,#3
0x08002BF4 00C0 LSLS r0,r0,#3
0x08002BF6 00C0 LSLS r0,r0,#3
0x08002BF8 00C0 LSLS r0,r0,#3
0x08002BFA 00C0 LSLS r0,r0,#3
0x08002BFC 00C0 LSLS r0,r0,#3
0x08002BFE 00C0 LSLS r0,r0,#3
0x08002C00 00C0 LSLS r0,r0,#3
0x08002C02 00C0 LSLS r0,r0,#3
0x08002C04 00C0 LSLS r0,r0,#3
0x08002C06 00C0 LSLS r0,r0,#3
0x08002C08 00C0 LSLS r0,r0,#3
0x08002C0A 00C0 LSLS r0,r0,#3
0x08002C0C 0000 MOVS r0,r0
0x08002C0E 0000 MOVS r0,r0
0x08002C10 0000 MOVS r0,r0
0x08002C12 0000 MOVS r0,r0
0x08002C14 0000 MOVS r0,r0
0x08002C16 0000 MOVS r0,r0
0x08002C18 0000 MOVS r0,r0
0x08002C1A 0000 MOVS r0,r0
0x08002C1C 0000 MOVS r0,r0
0x08002C1E 0000 MOVS r0,r0
0x08002C20 0000 MOVS r0,r0
0x08002C22 0000 MOVS r0,r0
0x08002C24 3C7C SUBS r4,r4,#0x7C
0x08002C26 7EFF LDRB r7,[r7,#0x1B]
0x08002C28 E3C7 B 0x080033BA
0x08002C2A C183 STM r1!,{r0-r1,r7}
0x08002C2C C183 STM r1!,{r0-r1,r7}
0x08002C2E C183 STM r1!,{r0-r1,r7}
0x08002C30 C183 STM r1!,{r0-r1,r7}
0x08002C32 C183 STM r1!,{r0-r1,r7}
0x08002C34 C183 STM r1!,{r0-r1,r7}
0x08002C36 C183 STM r1!,{r0-r1,r7}
0x08002C38 C183 STM r1!,{r0-r1,r7}
0x08002C3A C183 STM r1!,{r0-r1,r7}
0x08002C3C 0000 MOVS r0,r0
0x08002C3E 0000 MOVS r0,r0
0x08002C40 0000 MOVS r0,r0
0x08002C42 0000 MOVS r0,r0
0x08002C44 0000 MOVS r0,r0
0x08002C46 0000 MOVS r0,r0
0x08002C48 0000 MOVS r0,r0
0x08002C4A 0000 MOVS r0,r0
0x08002C4C 0000 MOVS r0,r0
0x08002C4E 0000 MOVS r0,r0
0x08002C50 0000 MOVS r0,r0
0x08002C52 0000 MOVS r0,r0
0x08002C54 0798 LSLS r0,r3,#30
0x08002C56 0FF8 LSRS r0,r7,#31
0x08002C58 1C38 ADDS r0,r7,#0
0x08002C5A 1818 ADDS r0,r3,r0
0x08002C5C 1818 ADDS r0,r3,r0
0x08002C5E 1818 ADDS r0,r3,r0
0x08002C60 1818 ADDS r0,r3,r0
0x08002C62 1818 ADDS r0,r3,r0
0x08002C64 1818 ADDS r0,r3,r0
0x08002C66 1818 ADDS r0,r3,r0
0x08002C68 1818 ADDS r0,r3,r0
0x08002C6A 1818 ADDS r0,r3,r0
0x08002C6C 0000 MOVS r0,r0
0x08002C6E 0000 MOVS r0,r0
0x08002C70 0000 MOVS r0,r0
0x08002C72 0000 MOVS r0,r0
0x08002C74 0000 MOVS r0,r0
0x08002C76 0000 MOVS r0,r0
0x08002C78 0000 MOVS r0,r0
0x08002C7A 0000 MOVS r0,r0
0x08002C7C 0000 MOVS r0,r0
0x08002C7E 0000 MOVS r0,r0
0x08002C80 0000 MOVS r0,r0
0x08002C82 0000 MOVS r0,r0
0x08002C84 03C0 LSLS r0,r0,#15
0x08002C86 0FF0 LSRS r0,r6,#31
0x08002C88 0C30 LSRS r0,r6,#16
0x08002C8A 1818 ADDS r0,r3,r0
0x08002C8C 1818 ADDS r0,r3,r0
0x08002C8E 1818 ADDS r0,r3,r0
0x08002C90 1818 ADDS r0,r3,r0
0x08002C92 1818 ADDS r0,r3,r0
0x08002C94 1818 ADDS r0,r3,r0
0x08002C96 0C30 LSRS r0,r6,#16
0x08002C98 0FF0 LSRS r0,r6,#31
0x08002C9A 03C0 LSLS r0,r0,#15
0x08002C9C 0000 MOVS r0,r0
0x08002C9E 0000 MOVS r0,r0
0x08002CA0 0000 MOVS r0,r0
0x08002CA2 0000 MOVS r0,r0
0x08002CA4 0000 MOVS r0,r0
0x08002CA6 0000 MOVS r0,r0
0x08002CA8 0000 MOVS r0,r0
0x08002CAA 0000 MOVS r0,r0
0x08002CAC 0000 MOVS r0,r0
0x08002CAE 0000 MOVS r0,r0
0x08002CB0 0000 MOVS r0,r0
0x08002CB2 0000 MOVS r0,r0
0x08002CB4 03D8 LSLS r0,r3,#15
0x08002CB6 0FF8 LSRS r0,r7,#31
0x08002CB8 0C38 LSRS r0,r7,#16
0x08002CBA 1818 ADDS r0,r3,r0
0x08002CBC 1818 ADDS r0,r3,r0
0x08002CBE 1818 ADDS r0,r3,r0
0x08002CC0 1818 ADDS r0,r3,r0
0x08002CC2 1818 ADDS r0,r3,r0
0x08002CC4 1818 ADDS r0,r3,r0
0x08002CC6 0C38 LSRS r0,r7,#16
0x08002CC8 0FF8 LSRS r0,r7,#31
0x08002CCA 03D8 LSLS r0,r3,#15
0x08002CCC 0018 MOVS r0,r3
0x08002CCE 0018 MOVS r0,r3
0x08002CD0 0018 MOVS r0,r3
0x08002CD2 0018 MOVS r0,r3
0x08002CD4 0018 MOVS r0,r3
0x08002CD6 0000 MOVS r0,r0
0x08002CD8 0000 MOVS r0,r0
0x08002CDA 0000 MOVS r0,r0
0x08002CDC 0000 MOVS r0,r0
0x08002CDE 0000 MOVS r0,r0
0x08002CE0 0000 MOVS r0,r0
0x08002CE2 0000 MOVS r0,r0
0x08002CE4 1BC0 SUBS r0,r0,r7
0x08002CE6 1FF0 SUBS r0,r6,#7
0x08002CE8 1C30 ADDS r0,r6,#0
0x08002CEA 1818 ADDS r0,r3,r0
0x08002CEC 1818 ADDS r0,r3,r0
0x08002CEE 1818 ADDS r0,r3,r0
0x08002CF0 1818 ADDS r0,r3,r0
0x08002CF2 1818 ADDS r0,r3,r0
0x08002CF4 1818 ADDS r0,r3,r0
0x08002CF6 1C30 ADDS r0,r6,#0
0x08002CF8 1FF0 SUBS r0,r6,#7
0x08002CFA 1BC0 SUBS r0,r0,r7
0x08002CFC 1800 ADDS r0,r0,r0
0x08002CFE 1800 ADDS r0,r0,r0
0x08002D00 1800 ADDS r0,r0,r0
0x08002D02 1800 ADDS r0,r0,r0
0x08002D04 1800 ADDS r0,r0,r0
0x08002D06 0000 MOVS r0,r0
0x08002D08 0000 MOVS r0,r0
0x08002D0A 0000 MOVS r0,r0
0x08002D0C 0000 MOVS r0,r0
0x08002D0E 0000 MOVS r0,r0
0x08002D10 0000 MOVS r0,r0
0x08002D12 0000 MOVS r0,r0
0x08002D14 07B0 LSLS r0,r6,#30
0x08002D16 03F0 LSLS r0,r6,#15
0x08002D18 0070 LSLS r0,r6,#1
0x08002D1A 0030 MOVS r0,r6
0x08002D1C 0030 MOVS r0,r6
0x08002D1E 0030 MOVS r0,r6
0x08002D20 0030 MOVS r0,r6
0x08002D22 0030 MOVS r0,r6
0x08002D24 0030 MOVS r0,r6
0x08002D26 0030 MOVS r0,r6
0x08002D28 0030 MOVS r0,r6
0x08002D2A 0030 MOVS r0,r6
0x08002D2C 0000 MOVS r0,r0
0x08002D2E 0000 MOVS r0,r0
0x08002D30 0000 MOVS r0,r0
0x08002D32 0000 MOVS r0,r0
0x08002D34 0000 MOVS r0,r0
0x08002D36 0000 MOVS r0,r0
0x08002D38 0000 MOVS r0,r0
0x08002D3A 0000 MOVS r0,r0
0x08002D3C 0000 MOVS r0,r0
0x08002D3E 0000 MOVS r0,r0
0x08002D40 0000 MOVS r0,r0
0x08002D42 0000 MOVS r0,r0
0x08002D44 03E0 LSLS r0,r4,#15
0x08002D46 03F0 LSLS r0,r6,#15
0x08002D48 0E38 LSRS r0,r7,#24
0x08002D4A 0C18 LSRS r0,r3,#16
0x08002D4C 0038 MOVS r0,r7
0x08002D4E 03F0 LSLS r0,r6,#15
0x08002D50 07C0 LSLS r0,r0,#31
0x08002D52 0C00 LSRS r0,r0,#16
0x08002D54 0C18 LSRS r0,r3,#16
0x08002D56 0E38 LSRS r0,r7,#24
0x08002D58 07F0 LSLS r0,r6,#31
0x08002D5A 03E0 LSLS r0,r4,#15
0x08002D5C 0000 MOVS r0,r0
0x08002D5E 0000 MOVS r0,r0
0x08002D60 0000 MOVS r0,r0
0x08002D62 0000 MOVS r0,r0
0x08002D64 0000 MOVS r0,r0
0x08002D66 0000 MOVS r0,r0
0x08002D68 0000 MOVS r0,r0
0x08002D6A 0000 MOVS r0,r0
0x08002D6C 0080 LSLS r0,r0,#2
0x08002D6E 00C0 LSLS r0,r0,#3
0x08002D70 00C0 LSLS r0,r0,#3
0x08002D72 00C0 LSLS r0,r0,#3
0x08002D74 07F0 LSLS r0,r6,#31
0x08002D76 07F0 LSLS r0,r6,#31
0x08002D78 00C0 LSLS r0,r0,#3
0x08002D7A 00C0 LSLS r0,r0,#3
0x08002D7C 00C0 LSLS r0,r0,#3
0x08002D7E 00C0 LSLS r0,r0,#3
0x08002D80 00C0 LSLS r0,r0,#3
0x08002D82 00C0 LSLS r0,r0,#3
0x08002D84 00C0 LSLS r0,r0,#3
0x08002D86 00C0 LSLS r0,r0,#3
0x08002D88 07C0 LSLS r0,r0,#31
0x08002D8A 0780 LSLS r0,r0,#30
0x08002D8C 0000 MOVS r0,r0
0x08002D8E 0000 MOVS r0,r0
0x08002D90 0000 MOVS r0,r0
0x08002D92 0000 MOVS r0,r0
0x08002D94 0000 MOVS r0,r0
0x08002D96 0000 MOVS r0,r0
0x08002D98 0000 MOVS r0,r0
0x08002D9A 0000 MOVS r0,r0
0x08002D9C 0000 MOVS r0,r0
0x08002D9E 0000 MOVS r0,r0
0x08002DA0 0000 MOVS r0,r0
0x08002DA2 0000 MOVS r0,r0
0x08002DA4 1818 ADDS r0,r3,r0
0x08002DA6 1818 ADDS r0,r3,r0
0x08002DA8 1818 ADDS r0,r3,r0
0x08002DAA 1818 ADDS r0,r3,r0
0x08002DAC 1818 ADDS r0,r3,r0
0x08002DAE 1818 ADDS r0,r3,r0
0x08002DB0 1818 ADDS r0,r3,r0
0x08002DB2 1818 ADDS r0,r3,r0
0x08002DB4 1818 ADDS r0,r3,r0
0x08002DB6 1C38 ADDS r0,r7,#0
0x08002DB8 1FF0 SUBS r0,r6,#7
0x08002DBA 19E0 ADDS r0,r4,r7
0x08002DBC 0000 MOVS r0,r0
0x08002DBE 0000 MOVS r0,r0
0x08002DC0 0000 MOVS r0,r0
0x08002DC2 0000 MOVS r0,r0
0x08002DC4 0000 MOVS r0,r0
0x08002DC6 0000 MOVS r0,r0
0x08002DC8 0000 MOVS r0,r0
0x08002DCA 0000 MOVS r0,r0
0x08002DCC 0000 MOVS r0,r0
0x08002DCE 0000 MOVS r0,r0
0x08002DD0 0000 MOVS r0,r0
0x08002DD2 0000 MOVS r0,r0
0x08002DD4 180C ADDS r4,r1,r0
0x08002DD6 0C18 LSRS r0,r3,#16
0x08002DD8 0C18 LSRS r0,r3,#16
0x08002DDA 0C18 LSRS r0,r3,#16
0x08002DDC 0630 LSLS r0,r6,#24
0x08002DDE 0630 LSLS r0,r6,#24
0x08002DE0 0630 LSLS r0,r6,#24
0x08002DE2 0360 LSLS r0,r4,#13
0x08002DE4 0360 LSLS r0,r4,#13
0x08002DE6 0360 LSLS r0,r4,#13
0x08002DE8 01C0 LSLS r0,r0,#7
0x08002DEA 01C0 LSLS r0,r0,#7
0x08002DEC 0000 MOVS r0,r0
0x08002DEE 0000 MOVS r0,r0
0x08002DF0 0000 MOVS r0,r0
0x08002DF2 0000 MOVS r0,r0
0x08002DF4 0000 MOVS r0,r0
0x08002DF6 0000 MOVS r0,r0
0x08002DF8 0000 MOVS r0,r0
0x08002DFA 0000 MOVS r0,r0
0x08002DFC 0000 MOVS r0,r0
0x08002DFE 0000 MOVS r0,r0
0x08002E00 0000 MOVS r0,r0
0x08002E02 0000 MOVS r0,r0
0x08002E04 41C1 RORS r1,r1,r0
0x08002E06 41C1 RORS r1,r1,r0
0x08002E08 61C3 STR r3,[r0,#0x1C]
0x08002E0A 6363 STR r3,[r4,#0x34]
0x08002E0C 6363 STR r3,[r4,#0x34]
0x08002E0E 6363 STR r3,[r4,#0x34]
0x08002E10 3636 ADDS r6,r6,#0x36
0x08002E12 3636 ADDS r6,r6,#0x36
0x08002E14 3636 ADDS r6,r6,#0x36
0x08002E16 1C1C ADDS r4,r3,#0
0x08002E18 1C1C ADDS r4,r3,#0
0x08002E1A 1C1C ADDS r4,r3,#0
0x08002E1C 0000 MOVS r0,r0
0x08002E1E 0000 MOVS r0,r0
0x08002E20 0000 MOVS r0,r0
0x08002E22 0000 MOVS r0,r0
0x08002E24 0000 MOVS r0,r0
0x08002E26 0000 MOVS r0,r0
0x08002E28 0000 MOVS r0,r0
0x08002E2A 0000 MOVS r0,r0
0x08002E2C 0000 MOVS r0,r0
0x08002E2E 0000 MOVS r0,r0
0x08002E30 0000 MOVS r0,r0
0x08002E32 0000 MOVS r0,r0
0x08002E34 381C SUBS r0,r0,#0x1C
0x08002E36 1C38 ADDS r0,r7,#0
0x08002E38 0C30 LSRS r0,r6,#16
0x08002E3A 0660 LSLS r0,r4,#25
0x08002E3C 0360 LSLS r0,r4,#13
0x08002E3E 0360 LSLS r0,r4,#13
0x08002E40 0360 LSLS r0,r4,#13
0x08002E42 0360 LSLS r0,r4,#13
0x08002E44 0660 LSLS r0,r4,#25
0x08002E46 0C30 LSRS r0,r6,#16
0x08002E48 1C38 ADDS r0,r7,#0
0x08002E4A 381C SUBS r0,r0,#0x1C
0x08002E4C 0000 MOVS r0,r0
0x08002E4E 0000 MOVS r0,r0
0x08002E50 0000 MOVS r0,r0
0x08002E52 0000 MOVS r0,r0
0x08002E54 0000 MOVS r0,r0
0x08002E56 0000 MOVS r0,r0
0x08002E58 0000 MOVS r0,r0
0x08002E5A 0000 MOVS r0,r0
0x08002E5C 0000 MOVS r0,r0
0x08002E5E 0000 MOVS r0,r0
0x08002E60 0000 MOVS r0,r0
0x08002E62 0000 MOVS r0,r0
0x08002E64 3018 ADDS r0,r0,#0x18
0x08002E66 1830 ADDS r0,r6,r0
0x08002E68 1830 ADDS r0,r6,r0
0x08002E6A 1870 ADDS r0,r6,r1
0x08002E6C 0C60 LSRS r0,r4,#17
0x08002E6E 0C60 LSRS r0,r4,#17
0x08002E70 0CE0 LSRS r0,r4,#19
0x08002E72 06C0 LSLS r0,r0,#27
0x08002E74 06C0 LSLS r0,r0,#27
0x08002E76 0380 LSLS r0,r0,#14
0x08002E78 0380 LSLS r0,r0,#14
0x08002E7A 0380 LSLS r0,r0,#14
0x08002E7C 0180 LSLS r0,r0,#6
0x08002E7E 0180 LSLS r0,r0,#6
0x08002E80 01C0 LSLS r0,r0,#7
0x08002E82 00F0 LSLS r0,r6,#3
0x08002E84 0070 LSLS r0,r6,#1
0x08002E86 0000 MOVS r0,r0
0x08002E88 0000 MOVS r0,r0
0x08002E8A 0000 MOVS r0,r0
0x08002E8C 0000 MOVS r0,r0
0x08002E8E 0000 MOVS r0,r0
0x08002E90 0000 MOVS r0,r0
0x08002E92 0000 MOVS r0,r0
0x08002E94 1FFC SUBS r4,r7,#7
0x08002E96 1FFC SUBS r4,r7,#7
0x08002E98 0C00 LSRS r0,r0,#16
0x08002E9A 0600 LSLS r0,r0,#24
0x08002E9C 0300 LSLS r0,r0,#12
0x08002E9E 0180 LSLS r0,r0,#6
0x08002EA0 00C0 LSLS r0,r0,#3
0x08002EA2 0060 LSLS r0,r4,#1
0x08002EA4 0030 MOVS r0,r6
0x08002EA6 0018 MOVS r0,r3
0x08002EA8 1FFC SUBS r4,r7,#7
0x08002EAA 1FFC SUBS r4,r7,#7
0x08002EAC 0000 MOVS r0,r0
0x08002EAE 0000 MOVS r0,r0
0x08002EB0 0000 MOVS r0,r0
0x08002EB2 0000 MOVS r0,r0
0x08002EB4 0000 MOVS r0,r0
0x08002EB6 0000 MOVS r0,r0
0x08002EB8 0000 MOVS r0,r0
0x08002EBA 0300 LSLS r0,r0,#12
0x08002EBC 0180 LSLS r0,r0,#6
0x08002EBE 00C0 LSLS r0,r0,#3
0x08002EC0 00C0 LSLS r0,r0,#3
0x08002EC2 00C0 LSLS r0,r0,#3
0x08002EC4 00C0 LSLS r0,r0,#3
0x08002EC6 00C0 LSLS r0,r0,#3
0x08002EC8 00C0 LSLS r0,r0,#3
0x08002ECA 0060 LSLS r0,r4,#1
0x08002ECC 0060 LSLS r0,r4,#1
0x08002ECE 0030 MOVS r0,r6
0x08002ED0 0060 LSLS r0,r4,#1
0x08002ED2 0040 LSLS r0,r0,#1
0x08002ED4 00C0 LSLS r0,r0,#3
0x08002ED6 00C0 LSLS r0,r0,#3
0x08002ED8 00C0 LSLS r0,r0,#3
0x08002EDA 00C0 LSLS r0,r0,#3
0x08002EDC 00C0 LSLS r0,r0,#3
0x08002EDE 00C0 LSLS r0,r0,#3
0x08002EE0 0180 LSLS r0,r0,#6
0x08002EE2 0300 LSLS r0,r0,#12
0x08002EE4 0000 MOVS r0,r0
0x08002EE6 0000 MOVS r0,r0
0x08002EE8 0000 MOVS r0,r0
0x08002EEA 0180 LSLS r0,r0,#6
0x08002EEC 0180 LSLS r0,r0,#6
0x08002EEE 0180 LSLS r0,r0,#6
0x08002EF0 0180 LSLS r0,r0,#6
0x08002EF2 0180 LSLS r0,r0,#6
0x08002EF4 0180 LSLS r0,r0,#6
0x08002EF6 0180 LSLS r0,r0,#6
0x08002EF8 0180 LSLS r0,r0,#6
0x08002EFA 0180 LSLS r0,r0,#6
0x08002EFC 0180 LSLS r0,r0,#6
0x08002EFE 0180 LSLS r0,r0,#6
0x08002F00 0180 LSLS r0,r0,#6
0x08002F02 0180 LSLS r0,r0,#6
0x08002F04 0180 LSLS r0,r0,#6
0x08002F06 0180 LSLS r0,r0,#6
0x08002F08 0180 LSLS r0,r0,#6
0x08002F0A 0180 LSLS r0,r0,#6
0x08002F0C 0180 LSLS r0,r0,#6
0x08002F0E 0180 LSLS r0,r0,#6
0x08002F10 0180 LSLS r0,r0,#6
0x08002F12 0180 LSLS r0,r0,#6
0x08002F14 0180 LSLS r0,r0,#6
0x08002F16 0000 MOVS r0,r0
0x08002F18 0000 MOVS r0,r0
0x08002F1A 0060 LSLS r0,r4,#1
0x08002F1C 00C0 LSLS r0,r0,#3
0x08002F1E 01C0 LSLS r0,r0,#7
0x08002F20 0180 LSLS r0,r0,#6
0x08002F22 0180 LSLS r0,r0,#6
0x08002F24 0180 LSLS r0,r0,#6
0x08002F26 0180 LSLS r0,r0,#6
0x08002F28 0180 LSLS r0,r0,#6
0x08002F2A 0300 LSLS r0,r0,#12
0x08002F2C 0300 LSLS r0,r0,#12
0x08002F2E 0600 LSLS r0,r0,#24
0x08002F30 0300 LSLS r0,r0,#12
0x08002F32 0100 LSLS r0,r0,#4
0x08002F34 0180 LSLS r0,r0,#6
0x08002F36 0180 LSLS r0,r0,#6
0x08002F38 0180 LSLS r0,r0,#6
0x08002F3A 0180 LSLS r0,r0,#6
0x08002F3C 0180 LSLS r0,r0,#6
0x08002F3E 0180 LSLS r0,r0,#6
0x08002F40 00C0 LSLS r0,r0,#3
0x08002F42 0060 LSLS r0,r4,#1
0x08002F44 0000 MOVS r0,r0
0x08002F46 0000 MOVS r0,r0
0x08002F48 0000 MOVS r0,r0
0x08002F4A 0000 MOVS r0,r0
0x08002F4C 0000 MOVS r0,r0
0x08002F4E 0000 MOVS r0,r0
0x08002F50 0000 MOVS r0,r0
0x08002F52 0000 MOVS r0,r0
0x08002F54 0000 MOVS r0,r0
0x08002F56 0000 MOVS r0,r0
0x08002F58 10F0 ASRS r0,r6,#3
0x08002F5A 1FF8 SUBS r0,r7,#7
0x08002F5C 0F08 LSRS r0,r1,#28
0x08002F5E 0000 MOVS r0,r0
0x08002F60 0000 MOVS r0,r0
0x08002F62 0000 MOVS r0,r0
0x08002F64 0000 MOVS r0,r0
0x08002F66 0000 MOVS r0,r0
0x08002F68 0000 MOVS r0,r0
0x08002F6A 0000 MOVS r0,r0
0x08002F6C 0000 MOVS r0,r0
0x08002F6E 0000 MOVS r0,r0
0x08002F70 0000 MOVS r0,r0
0x08002F72 0000 MOVS r0,r0
0x08002F74 0000 MOVS r0,r0
0x08002F76 0000 MOVS r0,r0
0x08002F78 0000 MOVS r0,r0
0x08002F7A 0000 MOVS r0,r0
0x08002F7C 0000 MOVS r0,r0
0x08002F7E 0000 MOVS r0,r0
0x08002F80 0000 MOVS r0,r0
0x08002F82 0000 MOVS r0,r0
0x08002F84 0000 MOVS r0,r0
0x08002F86 0000 MOVS r0,r0
0x08002F88 0000 MOVS r0,r0
0x08002F8A 0000 MOVS r0,r0
0x08002F8C 0000 MOVS r0,r0
0x08002F8E 0000 MOVS r0,r0
0x08002F90 0000 MOVS r0,r0
0x08002F92 0000 MOVS r0,r0
0x08002F94 0000 MOVS r0,r0
0x08002F96 0000 MOVS r0,r0
0x08002F98 0000 MOVS r0,r0
0x08002F9A 0000 MOVS r0,r0
0x08002F9C 0000 MOVS r0,r0
0x08002F9E 0000 MOVS r0,r0
0x08002FA0 0000 MOVS r0,r0
0x08002FA2 0000 MOVS r0,r0
0x08002FA4 0000 MOVS r0,r0
0x08002FA6 0000 MOVS r0,r0
0x08002FA8 0000 MOVS r0,r0
0x08002FAA 0000 MOVS r0,r0
0x08002FAC 0000 MOVS r0,r0
0x08002FAE 0000 MOVS r0,r0
0x08002FB0 0000 MOVS r0,r0
0x08002FB2 0000 MOVS r0,r0
0x08002FB4 0000 MOVS r0,r0
0x08002FB6 03C0 LSLS r0,r0,#15
0x08002FB8 0FF0 LSRS r0,r6,#31
0x08002FBA 0C30 LSRS r0,r6,#16
0x08002FBC 1818 ADDS r0,r3,r0
0x08002FBE 1818 ADDS r0,r3,r0
0x08002FC0 1818 ADDS r0,r3,r0
0x08002FC2 1818 ADDS r0,r3,r0
0x08002FC4 0C30 LSRS r0,r6,#16
0x08002FC6 0FF0 LSRS r0,r6,#31
0x08002FC8 03C0 LSLS r0,r0,#15
0x08002FCA 0000 MOVS r0,r0
0x08002FCC 0000 MOVS r0,r0
0x08002FCE 0000 MOVS r0,r0
0x08002FD0 0000 MOVS r0,r0
0x08002FD2 0000 MOVS r0,r0
0x08002FD4 0000 MOVS r0,r0
0x08002FD6 0000 MOVS r0,r0
0x08002FD8 0000 MOVS r0,r0
0x08002FDA 0000 MOVS r0,r0
0x08002FDC 0000 MOVS r0,r0
0x08002FDE 0000 MOVS r0,r0
0x08002FE0 0000 MOVS r0,r0
0x08002FE2 0000 MOVS r0,r0
0x08002FE4 0000 MOVS r0,r0
0x08002FE6 03C0 LSLS r0,r0,#15
0x08002FE8 0FF0 LSRS r0,r6,#31
0x08002FEA 0FF0 LSRS r0,r6,#31
0x08002FEC 1FF8 SUBS r0,r7,#7
0x08002FEE 1FF8 SUBS r0,r7,#7
0x08002FF0 1FF8 SUBS r0,r7,#7
0x08002FF2 1FF8 SUBS r0,r7,#7
0x08002FF4 0FF0 LSRS r0,r6,#31
0x08002FF6 0FF0 LSRS r0,r6,#31
0x08002FF8 03C0 LSLS r0,r0,#15
0x08002FFA 0000 MOVS r0,r0
0x08002FFC 0000 MOVS r0,r0
0x08002FFE 0000 MOVS r0,r0
0x08003000 0000 MOVS r0,r0
0x08003002 0000 MOVS r0,r0
0x08003004 0000 MOVS r0,r0
0x08003006 0000 MOVS r0,r0
0x08003008 0000 MOVS r0,r0
0x0800300A 0000 MOVS r0,r0
0x0800300C 0000 MOVS r0,r0
0x0800300E 0000 MOVS r0,r0
0x08003010 0000 MOVS r0,r0
0x08003012 0000 MOVS r0,r0
0x08003014 0000 MOVS r0,r0
0x08003016 07E0 LSLS r0,r4,#31
0x08003018 0FF0 LSRS r0,r6,#31
0x0800301A 1818 ADDS r0,r3,r0
0x0800301C 1818 ADDS r0,r3,r0
0x0800301E 1818 ADDS r0,r3,r0
0x08003020 1818 ADDS r0,r3,r0
0x08003022 1818 ADDS r0,r3,r0
0x08003024 1818 ADDS r0,r3,r0
0x08003026 0FF0 LSRS r0,r6,#31
0x08003028 07E0 LSLS r0,r4,#31
0x0800302A 0000 MOVS r0,r0
0x0800302C 0000 MOVS r0,r0
0x0800302E 0000 MOVS r0,r0
0x08003030 0000 MOVS r0,r0
0x08003032 0000 MOVS r0,r0
0x08003034 0000 MOVS r0,r0
0x08003036 0000 MOVS r0,r0
0x08003038 0000 MOVS r0,r0
0x0800303A 0000 MOVS r0,r0
0x0800303C 0000 MOVS r0,r0
0x0800303E 0000 MOVS r0,r0
0x08003040 0000 MOVS r0,r0
0x08003042 0000 MOVS r0,r0
0x08003044 0000 MOVS r0,r0
0x08003046 07E0 LSLS r0,r4,#31
0x08003048 0FF0 LSRS r0,r6,#31
0x0800304A 1FF8 SUBS r0,r7,#7
0x0800304C 1FF8 SUBS r0,r7,#7
0x0800304E 1FF8 SUBS r0,r7,#7
0x08003050 1FF8 SUBS r0,r7,#7
0x08003052 1FF8 SUBS r0,r7,#7
0x08003054 1FF8 SUBS r0,r7,#7
0x08003056 0FF0 LSRS r0,r6,#31
0x08003058 07E0 LSLS r0,r4,#31
0x0800305A 0000 MOVS r0,r0
0x0800305C 0000 MOVS r0,r0
0x0800305E 0000 MOVS r0,r0
0x08003060 0000 MOVS r0,r0
0x08003062 0000 MOVS r0,r0
0x08003064 0000 MOVS r0,r0
0x08003066 0000 MOVS r0,r0
0x08003068 0000 MOVS r0,r0
0x0800306A 0000 MOVS r0,r0
0x0800306C 0000 MOVS r0,r0
0x0800306E 0000 MOVS r0,r0
0x08003070 0000 MOVS r0,r0
0x08003072 0000 MOVS r0,r0
0x08003074 0000 MOVS r0,r0
0x08003076 0000 MOVS r0,r0
0x08003078 0000 MOVS r0,r0
0x0800307A 0000 MOVS r0,r0
0x0800307C 0000 MOVS r0,r0
0x0800307E 0000 MOVS r0,r0
0x08003080 0180 LSLS r0,r0,#6
0x08003082 03C0 LSLS r0,r0,#15
0x08003084 0660 LSLS r0,r4,#25
0x08003086 0C30 LSRS r0,r6,#16
0x08003088 1818 ADDS r0,r3,r0
0x0800308A 1818 ADDS r0,r3,r0
0x0800308C 1FF8 SUBS r0,r7,#7
0x0800308E 1FF8 SUBS r0,r7,#7
0x08003090 0000 MOVS r0,r0
0x08003092 0000 MOVS r0,r0
0x08003094 0000 MOVS r0,r0
0x08003096 0000 MOVS r0,r0
0x08003098 0000 MOVS r0,r0
0x0800309A 0000 MOVS r0,r0
0x0800309C 0000 MOVS r0,r0
0x0800309E 0000 MOVS r0,r0
0x080030A0 0000 MOVS r0,r0
0x080030A2 0000 MOVS r0,r0
0x080030A4 0000 MOVS r0,r0
0x080030A6 0000 MOVS r0,r0
0x080030A8 0000 MOVS r0,r0
0x080030AA 0000 MOVS r0,r0
0x080030AC 0000 MOVS r0,r0
0x080030AE 0000 MOVS r0,r0
0x080030B0 0180 LSLS r0,r0,#6
0x080030B2 03C0 LSLS r0,r0,#15
0x080030B4 07E0 LSLS r0,r4,#31
0x080030B6 0FF0 LSRS r0,r6,#31
0x080030B8 1FF8 SUBS r0,r7,#7
0x080030BA 1FF8 SUBS r0,r7,#7
0x080030BC 1FF8 SUBS r0,r7,#7
0x080030BE 1FF8 SUBS r0,r7,#7
0x080030C0 0000 MOVS r0,r0
0x080030C2 0000 MOVS r0,r0
0x080030C4 0000 MOVS r0,r0
0x080030C6 0000 MOVS r0,r0
0x080030C8 0000 MOVS r0,r0
0x080030CA 0000 MOVS r0,r0
0x080030CC 0000 MOVS r0,r0
0x080030CE 0000 MOVS r0,r0
0x080030D0 1FF8 SUBS r0,r7,#7
0x080030D2 1FF8 SUBS r0,r7,#7
0x080030D4 1818 ADDS r0,r3,r0
0x080030D6 1818 ADDS r0,r3,r0
0x080030D8 0C30 LSRS r0,r6,#16
0x080030DA 0660 LSLS r0,r4,#25
0x080030DC 03C0 LSLS r0,r0,#15
0x080030DE 0180 LSLS r0,r0,#6
0x080030E0 0000 MOVS r0,r0
0x080030E2 0000 MOVS r0,r0
0x080030E4 0000 MOVS r0,r0
0x080030E6 0000 MOVS r0,r0
0x080030E8 0000 MOVS r0,r0
0x080030EA 0000 MOVS r0,r0
0x080030EC 0000 MOVS r0,r0
0x080030EE 0000 MOVS r0,r0
0x080030F0 0000 MOVS r0,r0
0x080030F2 0000 MOVS r0,r0
0x080030F4 0000 MOVS r0,r0
0x080030F6 0000 MOVS r0,r0
0x080030F8 0000 MOVS r0,r0
0x080030FA 0000 MOVS r0,r0
0x080030FC 0000 MOVS r0,r0
0x080030FE 0000 MOVS r0,r0
0x08003100 1FF8 SUBS r0,r7,#7
0x08003102 1FF8 SUBS r0,r7,#7
0x08003104 1FF8 SUBS r0,r7,#7
0x08003106 1FF8 SUBS r0,r7,#7
0x08003108 0FF0 LSRS r0,r6,#31
0x0800310A 07E0 LSLS r0,r4,#31
0x0800310C 03C0 LSLS r0,r0,#15
0x0800310E 0180 LSLS r0,r0,#6
0x08003110 0000 MOVS r0,r0
0x08003112 0000 MOVS r0,r0
0x08003114 0000 MOVS r0,r0
0x08003116 0000 MOVS r0,r0
0x08003118 0000 MOVS r0,r0
0x0800311A 0000 MOVS r0,r0
0x0800311C 0000 MOVS r0,r0
0x0800311E 0000 MOVS r0,r0
0x08003120 0000 MOVS r0,r0
0x08003122 0000 MOVS r0,r0
0x08003124 0000 MOVS r0,r0
0x08003126 0000 MOVS r0,r0
0x08003128 0000 MOVS r0,r0
0x0800312A 0000 MOVS r0,r0
0x0800312C 0000 MOVS r0,r0
0x0800312E 0000 MOVS r0,r0
0x08003130 0000 MOVS r0,r0
0x08003132 0000 MOVS r0,r0
0x08003134 0000 MOVS r0,r0
0x08003136 01E0 LSLS r0,r4,#7
0x08003138 01F0 LSLS r0,r6,#7
0x0800313A 0198 LSLS r0,r3,#6
0x0800313C 018C LSLS r4,r1,#6
0x0800313E 0186 LSLS r6,r0,#6
0x08003140 0186 LSLS r6,r0,#6
0x08003142 018C LSLS r4,r1,#6
0x08003144 0198 LSLS r0,r3,#6
0x08003146 01F0 LSLS r0,r6,#7
0x08003148 01E0 LSLS r0,r4,#7
0x0800314A 0000 MOVS r0,r0
0x0800314C 0000 MOVS r0,r0
0x0800314E 0000 MOVS r0,r0
0x08003150 0000 MOVS r0,r0
0x08003152 0000 MOVS r0,r0
0x08003154 0000 MOVS r0,r0
0x08003156 0000 MOVS r0,r0
0x08003158 0000 MOVS r0,r0
0x0800315A 0000 MOVS r0,r0
0x0800315C 0000 MOVS r0,r0
0x0800315E 0000 MOVS r0,r0
0x08003160 0000 MOVS r0,r0
0x08003162 0000 MOVS r0,r0
0x08003164 0000 MOVS r0,r0
0x08003166 01E0 LSLS r0,r4,#7
0x08003168 01F0 LSLS r0,r6,#7
0x0800316A 01F8 LSLS r0,r7,#7
0x0800316C 01FC LSLS r4,r7,#7
0x0800316E 01FE LSLS r6,r7,#7
0x08003170 01FE LSLS r6,r7,#7
0x08003172 01FC LSLS r4,r7,#7
0x08003174 01F8 LSLS r0,r7,#7
0x08003176 01F0 LSLS r0,r6,#7
0x08003178 01E0 LSLS r0,r4,#7
0x0800317A 0000 MOVS r0,r0
0x0800317C 0000 MOVS r0,r0
0x0800317E 0000 MOVS r0,r0
0x08003180 0000 MOVS r0,r0
0x08003182 0000 MOVS r0,r0
0x08003184 0000 MOVS r0,r0
0x08003186 0000 MOVS r0,r0
0x08003188 0000 MOVS r0,r0
0x0800318A 0000 MOVS r0,r0
0x0800318C 0000 MOVS r0,r0
0x0800318E 0000 MOVS r0,r0
0x08003190 0000 MOVS r0,r0
0x08003192 0000 MOVS r0,r0
0x08003194 0000 MOVS r0,r0
0x08003196 0780 LSLS r0,r0,#30
0x08003198 0F80 LSRS r0,r0,#30
0x0800319A 1980 ADDS r0,r0,r6
0x0800319C 3180 ADDS r1,r1,#0x80
0x0800319E 6180 STR r0,[r0,#0x18]
0x080031A0 6180 STR r0,[r0,#0x18]
0x080031A2 3180 ADDS r1,r1,#0x80
0x080031A4 1980 ADDS r0,r0,r6
0x080031A6 0F80 LSRS r0,r0,#30
0x080031A8 0780 LSLS r0,r0,#30
0x080031AA 0000 MOVS r0,r0
0x080031AC 0000 MOVS r0,r0
0x080031AE 0000 MOVS r0,r0
0x080031B0 0000 MOVS r0,r0
0x080031B2 0000 MOVS r0,r0
0x080031B4 0000 MOVS r0,r0
0x080031B6 0000 MOVS r0,r0
0x080031B8 0000 MOVS r0,r0
0x080031BA 0000 MOVS r0,r0
0x080031BC 0000 MOVS r0,r0
0x080031BE 0000 MOVS r0,r0
0x080031C0 0000 MOVS r0,r0
0x080031C2 0000 MOVS r0,r0
0x080031C4 0000 MOVS r0,r0
0x080031C6 0780 LSLS r0,r0,#30
0x080031C8 0F80 LSRS r0,r0,#30
0x080031CA 1F80 SUBS r0,r0,#6
0x080031CC 3F80 SUBS r7,r7,#0x80
0x080031CE 7F80 LDRB r0,[r0,#0x1E]
0x080031D0 7F80 LDRB r0,[r0,#0x1E]
0x080031D2 3F80 SUBS r7,r7,#0x80
0x080031D4 1F80 SUBS r0,r0,#6
0x080031D6 0F80 LSRS r0,r0,#30
0x080031D8 0780 LSLS r0,r0,#30
0x080031DA 0000 MOVS r0,r0
0x080031DC 0000 MOVS r0,r0
0x080031DE 0000 MOVS r0,r0
0x080031E0 0000 MOVS r0,r0
0x080031E2 0000 MOVS r0,r0
0x080031E4 0000 MOVS r0,r0
0x080031E6 0000 MOVS r0,r0
0x080031E8 4D42 LDR r5,[pc,#264] ; @0x080032F4
0x080031EA 03FE LSLS r6,r7,#15
0x080031EC 0000 MOVS r0,r0
0x080031EE 0000 MOVS r0,r0
0x080031F0 0000 MOVS r0,r0
0x080031F2 003E MOVS r6,r7
0x080031F4 0000 MOVS r0,r0
0x080031F6 0028 MOVS r0,r5
0x080031F8 0000 MOVS r0,r0
0x080031FA 00A0 LSLS r0,r4,#2
0x080031FC 0000 MOVS r0,r0
0x080031FE 0030 MOVS r0,r6
0x08003200 0000 MOVS r0,r0
0x08003202 0001 MOVS r1,r0
0x08003204 0001 MOVS r1,r0
0x08003206 0000 MOVS r0,r0
0x08003208 0000 MOVS r0,r0
0x0800320A 03C0 LSLS r0,r0,#15
0x0800320C 0000 MOVS r0,r0
0x0800320E 0EC4 LSRS r4,r0,#27
0x08003210 0000 MOVS r0,r0
0x08003212 0EC4 LSRS r4,r0,#27
0x08003214 0000 MOVS r0,r0
0x08003216 0000 MOVS r0,r0
0x08003218 0000 MOVS r0,r0
0x0800321A 0000 MOVS r0,r0
0x0800321C 0000 MOVS r0,r0
0x0800321E 0000 MOVS r0,r0
0x08003220 0000 MOVS r0,r0
0x08003222 FFFF00FF DCD 0xFFFF00FF ; ? Undefined
0x08003226 0000 MOVS r0,r0
0x08003228 0000 MOVS r0,r0
0x0800322A 0000 MOVS r0,r0
0x0800322C 0000 MOVS r0,r0
0x0800322E 0000 MOVS r0,r0
0x08003230 0000 MOVS r0,r0
0x08003232 0000 MOVS r0,r0
0x08003234 0000 MOVS r0,r0
0x08003236 0002 MOVS r2,r0
0x08003238 0000 MOVS r0,r0
0x0800323A 0000 MOVS r0,r0
0x0800323C 0000 MOVS r0,r0
0x0800323E 0000 MOVS r0,r0
0x08003240 0000 MOVS r0,r0
0x08003242 0000 MOVS r0,r0
0x08003244 0000 MOVS r0,r0
0x08003246 0000 MOVS r0,r0
0x08003248 0000 MOVS r0,r0
0x0800324A 0002 MOVS r2,r0
0x0800324C 0002 MOVS r2,r0
0x0800324E 0000 MOVS r0,r0
0x08003250 0000 MOVS r0,r0
0x08003252 0000 MOVS r0,r0
0x08003254 0000 MOVS r0,r0
0x08003256 0000 MOVS r0,r0
0x08003258 0000 MOVS r0,r0
0x0800325A 0000 MOVS r0,r0
0x0800325C 0000 MOVS r0,r0
0x0800325E 0002 MOVS r2,r0
0x08003260 0001 MOVS r1,r0
0x08003262 7F08 LDRB r0,[r1,#0x1C]
0x08003264 FFFFFFFF DCD 0xFFFFFFFF ; ? Undefined
0x08003268 82C0 STRH r0,[r0,#0x16]
0x0800326A 4148 ADCS r0,r0,r1
0x0800326C 4122 ASRS r2,r2,r4
0x0800326E 0100 LSLS r0,r0,#4
0x08003270 C4E1 STM r4!,{r0,r5-r7}
0x08003272 8F93 LDRH r3,[r2,#0x3C]
0x08003274 8048 STRH r0,[r1,#0x02]
0x08003276 3F0C SUBS r7,r7,#0x0C
0x08003278 FFFFFFFF DCD 0xFFFFFFFF ; ? Undefined
0x0800327C 82C0 STRH r0,[r0,#0x16]
0x0800327E 4148 ADCS r0,r0,r1
0x08003280 4124 ASRS r4,r4,r4
0x08003282 0200 LSLS r0,r0,#8
0x08003284 2412 MOVS r4,#0x12
0x08003286 4A92 LDR r2,[pc,#584] ; @0x080034D0
0x08003288 8048 STRH r0,[r1,#0x02]
0x0800328A 1F0E SUBS r6,r1,#4
0x0800328C FFFFFFFF DCD 0xFFFFFFFF ; ? Undefined
0x08003290 7CC0 LDRB r0,[r0,#0x13]
0x08003292 3E48 SUBS r6,r6,#0x48
0x08003294 4128 ASRS r0,r0,r5
0x08003296 0400 LSLS r0,r0,#16
0x08003298 2402 MOVS r4,#0x02
0x0800329A 4A92 LDR r2,[pc,#584] ; @0x080034E4
0x0800329C 8048 STRH r0,[r1,#0x02]
0x0800329E 0F0F LSRS r7,r1,#28
0x080032A0 0000 MOVS r0,r0
0x080032A2 0100 LSLS r0,r0,#4
0x080032A4 44C0 ADD r8,r8,r8
0x080032A6 2248 MOVS r2,#0x48
0x080032A8 413C ASRS r4,r4,r7
0x080032AA 041E LSLS r6,r3,#16
0x080032AC 2402 MOVS r4,#0x02
0x080032AE 4692 MOV r10,r2
0x080032B0 4049 EORS r1,r1,r1
0x080032B2 870F STRH r7,[r1,#0x38]
0x080032B4 0080 LSLS r0,r0,#2
0x080032B6 0100 LSLS r0,r0,#4
0x080032B8 28C0 CMP r0,#0xC0
0x080032BA 1468 ASRS r0,r5,#17
0x080032BC 4922 LDR r1,[pc,#136] ; @0x08003348
0x080032BE 0421 LSLS r1,r4,#16
0x080032C0 2602 MOVS r6,#0x02
0x080032C2 42D2 CMN r2,r2
0x080032C4 4069 EORS r1,r1,r5
0x080032C6 C30F STM r3!,{r0-r3}
0x080032C8 00C0 LSLS r0,r0,#3
0x080032CA 0100 LSLS r0,r0,#4
0x080032CC 28C0 CMP r0,#0xC0
0x080032CE 1450 ASRS r0,r2,#17
0x080032D0 5522 STRB r2,[r4,r4]
0x080032D2 8452 STRH r2,[r2,#0x22]
0x080032D4 C501 STM r5!,{r0}
0x080032D6 8EA3 LDRH r3,[r4,#0x34]
0x080032D8 2052 MOVS r0,#0x52
0x080032DA E10F B 0x080034FC
0x080032DC 00E0 LSLS r0,r4,#3
0x080032DE 0100 LSLS r0,r0,#4
0x080032E0 10C0 ASRS r0,r0,#3
0x080032E2 0800 LSRS r0,r0,#0
0x080032E4 6322 STR r2,[r4,#0x30]
0x080032E6 825C STRH r4,[r3,#0x12]
0x080032E8 0010 MOVS r0,r2
0x080032EA 0000 MOVS r0,r0
0x080032EC 0000 MOVS r0,r0
0x080032EE F00E00F0 AND r0,lr,#0xF0
0x080032F2 0100 LSLS r0,r0,#4
0x080032F4 10C0 ASRS r0,r0,#3
0x080032F6 0800 LSRS r0,r0,#0
0x080032F8 413C ASRS r4,r4,r7
0x080032FA 8152 STRH r2,[r2,#0x0A]
0x080032FC 00E0 LSLS r0,r4,#3
0x080032FE 0000 MOVS r0,r0
0x08003300 0000 MOVS r0,r0
0x08003302 780E LDRB r6,[r1,#0x00]
0x08003304 0078 LSLS r0,r7,#1
0x08003306 0100 LSLS r0,r0,#4
0x08003308 00C0 LSLS r0,r0,#3
0x0800330A 0000 MOVS r0,r0
0x0800330C 0000 MOVS r0,r0
0x0800330E 805C STRH r4,[r3,#0x02]
0x08003310 0000 MOVS r0,r0
0x08003312 0000 MOVS r0,r0
0x08003314 0000 MOVS r0,r0
0x08003316 3C0E SUBS r4,r4,#0x0E
0x08003318 003C MOVS r4,r7
0x0800331A 0100 LSLS r0,r0,#4
0x0800331C 00C0 LSLS r0,r0,#3
0x0800331E 0000 MOVS r0,r0
0x08003320 0000 MOVS r0,r0
0x08003322 0021 MOVS r1,r4
0x08003324 0000 MOVS r0,r0
0x08003326 0000 MOVS r0,r0
0x08003328 0000 MOVS r0,r0
0x0800332A 1E0E SUBS r6,r1,#0
0x0800332C 001E MOVS r6,r3
0x0800332E 0100 LSLS r0,r0,#4
0x08003330 00C0 LSLS r0,r0,#3
0x08003332 0000 MOVS r0,r0
0x08003334 0000 MOVS r0,r0
0x08003336 001E MOVS r6,r3
0x08003338 0000 MOVS r0,r0
0x0800333A 0000 MOVS r0,r0
0x0800333C 0000 MOVS r0,r0
0x0800333E 0F0E LSRS r6,r1,#28
0x08003340 000F MOVS r7,r1
0x08003342 0100 LSLS r0,r0,#4
0x08003344 00C0 LSLS r0,r0,#3
0x08003346 0000 MOVS r0,r0
0x08003348 0000 MOVS r0,r0
0x0800334A 0000 MOVS r0,r0
0x0800334C 0000 MOVS r0,r0
0x0800334E 0000 MOVS r0,r0
0x08003350 0000 MOVS r0,r0
0x08003352 070E LSLS r6,r1,#28
0x08003354 8087 STRH r7,[r0,#0x04]
0x08003356 0100 LSLS r0,r0,#4
0x08003358 00C0 LSLS r0,r0,#3
0x0800335A 0000 MOVS r0,r0
0x0800335C 0000 MOVS r0,r0
0x0800335E 0000 MOVS r0,r0
0x08003360 0000 MOVS r0,r0
0x08003362 0000 MOVS r0,r0
0x08003364 0000 MOVS r0,r0
0x08003366 030E LSLS r6,r1,#12
0x08003368 C0C3 STM r0!,{r0-r1,r6-r7}
0x0800336A 0100 LSLS r0,r0,#4
0x0800336C 00C0 LSLS r0,r0,#3
0x0800336E 0000 MOVS r0,r0
0x08003370 0000 MOVS r0,r0
0x08003372 0000 MOVS r0,r0
0x08003374 0000 MOVS r0,r0
0x08003376 0000 MOVS r0,r0
0x08003378 0000 MOVS r0,r0
0x0800337A 010E LSLS r6,r1,#4
0x0800337C E0E1 B 0x08003542
0x0800337E 0100 LSLS r0,r0,#4
0x08003380 00C0 LSLS r0,r0,#3
0x08003382 0000 MOVS r0,r0
0x08003384 0000 MOVS r0,r0
0x08003386 0000 MOVS r0,r0
0x08003388 0000 MOVS r0,r0
0x0800338A 0000 MOVS r0,r0
0x0800338C 0000 MOVS r0,r0
0x0800338E 000E MOVS r6,r1
0x08003390 F0F00100
0x08003394 FFC00380 DCD 0xFFC00380 ; ? Undefined
0x08003398 3FFF SUBS r7,r7,#0xFF
0x0800339A FFFFFE03 DCD 0xFFFFFE03 ; ? Undefined
0x0800339E FF07E0FF DCD 0xFF07E0FF ; ? Undefined
0x080033A2 000E MOVS r6,r1
0x080033A4 7878 LDRB r0,[r7,#0x01]
0x080033A6 0100 LSLS r0,r0,#4
0x080033A8 FFC00780 DCD 0xFFC00780 ; ? Undefined
0x080033AC 3FFE SUBS r7,r7,#0xFE
0x080033AE FFFFFE03 DCD 0xFFFFFE03 ; ? Undefined
0x080033B2 FF07E0FF DCD 0xFF07E0FF ; ? Undefined
0x080033B6 000E MOVS r6,r1
0x080033B8 3C3C SUBS r4,r4,#0x3C
0x080033BA 0100 LSLS r0,r0,#4
0x080033BC FFC00F80 DCD 0xFFC00F80 ; ? Undefined
0x080033C0 3FFC SUBS r7,r7,#0xFC
0x080033C2 FFFFFE03 DCD 0xFFFFFE03 ; ? Undefined
0x080033C6 FF07E0FF DCD 0xFF07E0FF ; ? Undefined
0x080033CA 000E MOVS r6,r1
0x080033CC 1E1E SUBS r6,r3,#0
0x080033CE 0100 LSLS r0,r0,#4
0x080033D0 FFC01F80 DCD 0xFFC01F80 ; ? Undefined
0x080033D4 3FF8 SUBS r7,r7,#0xF8
0x080033D6 FFFFFE03 DCD 0xFFFFFE03 ; ? Undefined
0x080033DA FF07E0FF DCD 0xFF07E0FF ; ? Undefined
0x080033DE 000E MOVS r6,r1
0x080033E0 0F0F LSRS r7,r1,#28
0x080033E2 0100 LSLS r0,r0,#4
0x080033E4 FFC03F80 DCD 0xFFC03F80 ; ? Undefined
0x080033E8 3FF0 SUBS r7,r7,#0xF0
0x080033EA FFFFFE03 DCD 0xFFFFFE03 ; ? Undefined
0x080033EE FF07E0FF DCD 0xFF07E0FF ; ? Undefined
0x080033F2 000E MOVS r6,r1
0x080033F4 8707 STRH r7,[r0,#0x38]
0x080033F6 0180 LSLS r0,r0,#6
0x080033F8 FFC07F80 DCD 0xFFC07F80 ; ? Undefined
0x080033FC 3FE0 SUBS r7,r7,#0xE0
0x080033FE FFFFFE03 DCD 0xFFFFFE03 ; ? Undefined
0x08003402 FF07E0FF DCD 0xFF07E0FF ; ? Undefined
0x08003406 000E MOVS r6,r1
0x08003408 C303 STM r3!,{r0-r1}
0x0800340A 01C0 LSLS r0,r0,#7
0x0800340C FFC0FF80 DCD 0xFFC0FF80 ; ? Undefined
0x08003410 3FC0 SUBS r7,r7,#0xC0
0x08003412 00E0 LSLS r0,r4,#3
0x08003414 FE03FF07 CDP2 P15,0x00,pc,C3,C7
0x08003418 E0FF B 0x0800361A
0x0800341A 000E MOVS r6,r1
0x0800341C C303 STM r3!,{r0-r1}
0x0800341E 01C0 LSLS r0,r0,#7
0x08003420 FFC0FF81 DCD 0xFFC0FF81 ; ? Undefined
0x08003424 3F80 SUBS r7,r7,#0x80
0x08003426 00E0 LSLS r0,r4,#3
0x08003428 FE03FC07 CDP2 P12,0x00,pc,C3,C7
0x0800342C 0000 MOVS r0,r0
0x0800342E 000E MOVS r6,r1
0x08003430 8707 STRH r7,[r0,#0x38]
0x08003432 0180 LSLS r0,r0,#6
0x08003434 FFC0FF83 DCD 0xFFC0FF83 ; ? Undefined
0x08003438 3F00 SUBS r7,r7,#0x00
0x0800343A 00E0 LSLS r0,r4,#3
0x0800343C FE03FC07 CDP2 P12,0x00,pc,C3,C7
0x08003440 0000 MOVS r0,r0
0x08003442 000E MOVS r6,r1
0x08003444 0F0F LSRS r7,r1,#28
0x08003446 0100 LSLS r0,r0,#4
0x08003448 FFC0FE87 DCD 0xFFC0FE87 ; ? Undefined
0x0800344C 3F00 SUBS r7,r7,#0x00
0x0800344E 00E0 LSLS r0,r4,#3
0x08003450 FE03FC07 CDP2 P12,0x00,pc,C3,C7
0x08003454 0000 MOVS r0,r0
0x08003456 000E MOVS r6,r1
0x08003458 1E1E SUBS r6,r3,#0
0x0800345A 0100 LSLS r0,r0,#4
0x0800345C FFC0FC8F DCD 0xFFC0FC8F ; ? Undefined
0x08003460 3F00 SUBS r7,r7,#0x00
0x08003462 00E0 LSLS r0,r4,#3
0x08003464 FE03FC07 CDP2 P12,0x00,pc,C3,C7
0x08003468 0000 MOVS r0,r0
0x0800346A 000E MOVS r6,r1
0x0800346C 3C3C SUBS r4,r4,#0x3C
0x0800346E 0100 LSLS r0,r0,#4
0x08003470 FFC0F89F DCD 0xFFC0F89F ; ? Undefined
0x08003474 3F00 SUBS r7,r7,#0x00
0x08003476 00E0 LSLS r0,r4,#3
0x08003478 FE03FC07 CDP2 P12,0x00,pc,C3,C7
0x0800347C 0000 MOVS r0,r0
0x0800347E 000E MOVS r6,r1
0x08003480 7878 LDRB r0,[r7,#0x01]
0x08003482 0100 LSLS r0,r0,#4
0x08003484 FFC0F0BF DCD 0xFFC0F0BF ; ? Undefined
0x08003488 3F00 SUBS r7,r7,#0x00
0x0800348A FEFFFE03 MRC2 P14,0x07,pc,C15,C3
0x0800348E FC070000 STC P0,C0,[r7,#0x00]
0x08003492 000E MOVS r6,r1
0x08003494 F0F00100
0x08003498 FFC0E0FF DCD 0xFFC0E0FF ; ? Undefined
0x0800349C 3F00 SUBS r7,r7,#0x00
0x0800349E FEFFFE03 MRC2 P14,0x07,pc,C15,C3
0x080034A2 FC070000 STC P0,C0,[r7,#0x00]
0x080034A6 010E LSLS r6,r1,#4
0x080034A8 E0E1 B 0x0800366E
0x080034AA 0100 LSLS r0,r0,#4
0x080034AC FFC0C0FF DCD 0xFFC0C0FF ; ? Undefined
0x080034B0 3F00 SUBS r7,r7,#0x00
0x080034B2 FEFFFE03 MRC2 P14,0x07,pc,C15,C3
0x080034B6 FC070000 STC P0,C0,[r7,#0x00]
0x080034BA 030E LSLS r6,r1,#12
0x080034BC C0C3 STM r0!,{r0-r1,r6-r7}
0x080034BE 0100 LSLS r0,r0,#4
0x080034C0 FFC080FF DCD 0xFFC080FF ; ? Undefined
0x080034C4 3F00 SUBS r7,r7,#0x00
0x080034C6 FEFFFE03 MRC2 P14,0x07,pc,C15,C3
0x080034CA FC070000 STC P0,C0,[r7,#0x00]
0x080034CE 070E LSLS r6,r1,#28
0x080034D0 8087 STRH r7,[r0,#0x04]
0x080034D2 0100 LSLS r0,r0,#4
0x080034D4 FFC0C0FF DCD 0xFFC0C0FF ; ? Undefined
0x080034D8 3F00 SUBS r7,r7,#0x00
0x080034DA FEFFFE03 MRC2 P14,0x07,pc,C15,C3
0x080034DE FC070000 STC P0,C0,[r7,#0x00]
0x080034E2 0F0E LSRS r6,r1,#28
0x080034E4 000F MOVS r7,r1
0x080034E6 0100 LSLS r0,r0,#4
0x080034E8 FFC0E0BF DCD 0xFFC0E0BF ; ? Undefined
0x080034EC 3F00 SUBS r7,r7,#0x00
0x080034EE FEFFFE03 MRC2 P14,0x07,pc,C15,C3
0x080034F2 FC070000 STC P0,C0,[r7,#0x00]
0x080034F6 1E0E SUBS r6,r1,#0
0x080034F8 001E MOVS r6,r3
0x080034FA 0100 LSLS r0,r0,#4
0x080034FC FFC0F09F DCD 0xFFC0F09F ; ? Undefined
0x08003500 3F00 SUBS r7,r7,#0x00
0x08003502 00E0 LSLS r0,r4,#3
0x08003504 FE03FC07 CDP2 P12,0x00,pc,C3,C7
0x08003508 0000 MOVS r0,r0
0x0800350A 3C0E SUBS r4,r4,#0x0E
0x0800350C 003C MOVS r4,r7
0x0800350E 0100 LSLS r0,r0,#4
0x08003510 FFC0F88F DCD 0xFFC0F88F ; ? Undefined
0x08003514 3F00 SUBS r7,r7,#0x00
0x08003516 00E0 LSLS r0,r4,#3
0x08003518 FE03FC07 CDP2 P12,0x00,pc,C3,C7
0x0800351C 0000 MOVS r0,r0
0x0800351E 780E LDRB r6,[r1,#0x00]
0x08003520 0078 LSLS r0,r7,#1
0x08003522 0100 LSLS r0,r0,#4
0x08003524 FFC0FC87 DCD 0xFFC0FC87 ; ? Undefined
0x08003528 3F00 SUBS r7,r7,#0x00
0x0800352A 00E0 LSLS r0,r4,#3
0x0800352C FE03FC07 CDP2 P12,0x00,pc,C3,C7
0x08003530 0000 MOVS r0,r0
0x08003532 F00E00F0 AND r0,lr,#0xF0
0x08003536 0100 LSLS r0,r0,#4
0x08003538 FFC0FE83 DCD 0xFFC0FE83 ; ? Undefined
0x0800353C 3F00 SUBS r7,r7,#0x00
0x0800353E 00E0 LSLS r0,r4,#3
0x08003540 FE03FC07 CDP2 P12,0x00,pc,C3,C7
0x08003544 0000 MOVS r0,r0
0x08003546 E10F B 0x08003768
0x08003548 00E0 LSLS r0,r4,#3
0x0800354A 0100 LSLS r0,r0,#4
0x0800354C FFC0FF81 DCD 0xFFC0FF81 ; ? Undefined
0x08003550 3F00 SUBS r7,r7,#0x00
0x08003552 00E0 LSLS r0,r4,#3
0x08003554 FE03FC07 CDP2 P12,0x00,pc,C3,C7
0x08003558 0000 MOVS r0,r0
0x0800355A C30F STM r3!,{r0-r3}
0x0800355C 00C0 LSLS r0,r0,#3
0x0800355E 0100 LSLS r0,r0,#4
0x08003560 FFC0FF80 DCD 0xFFC0FF80 ; ? Undefined
0x08003564 3F80 SUBS r7,r7,#0x80
0x08003566 FFFFFE03 DCD 0xFFFFFE03 ; ? Undefined
0x0800356A FC070000 STC P0,C0,[r7,#0x00]
0x0800356E 870F STRH r7,[r1,#0x38]
0x08003570 0080 LSLS r0,r0,#2
0x08003572 0100 LSLS r0,r0,#4
0x08003574 FFC07F80 DCD 0xFFC07F80 ; ? Undefined
0x08003578 3FC0 SUBS r7,r7,#0xC0
0x0800357A FFFFFE03 DCD 0xFFFFFE03 ; ? Undefined
0x0800357E FC072012 STC P0,C2,[r7,#-0x48]
0x08003582 0F0F LSRS r7,r1,#28
0x08003584 0000 MOVS r0,r0
0x08003586 0100 LSLS r0,r0,#4
0x08003588 FFC03F80 DCD 0xFFC03F80 ; ? Undefined
0x0800358C 3FE0 SUBS r7,r7,#0xE0
0x0800358E FFFFFE03 DCD 0xFFFFFE03 ; ? Undefined
0x08003592 FC07A012 STC P0,C10,[r7,#-0x48]
0x08003596 1F0E SUBS r6,r1,#4
0x08003598 FFFFFFFF DCD 0xFFFFFFFF ; ? Undefined
0x0800359C FFC01F80 DCD 0xFFC01F80 ; ? Undefined
0x080035A0 3FF0 SUBS r7,r7,#0xF0
0x080035A2 FFFFFE03 DCD 0xFFFFFE03 ; ? Undefined
0x080035A6 FC07A012 STC P0,C10,[r7,#-0x48]
0x080035AA 3F0C SUBS r7,r7,#0x0C
0x080035AC FFFFFFFF DCD 0xFFFFFFFF ; ? Undefined
0x080035B0 FFC00F80 DCD 0xFFC00F80 ; ? Undefined
0x080035B4 3FF8 SUBS r7,r7,#0xF8
0x080035B6 FFFFFE03 DCD 0xFFFFFE03 ; ? Undefined
0x080035BA FC076013 STC P0,C6,[r7,#-0x4C]
0x080035BE 7F08 LDRB r0,[r1,#0x1C]
0x080035C0 FFFFFFFF DCD 0xFFFFFFFF ; ? Undefined
0x080035C4 FFC00780 DCD 0xFFC00780 ; ? Undefined
0x080035C8 3FFC SUBS r7,r7,#0xFC
0x080035CA FFFFFE03 DCD 0xFFFFFE03 ; ? Undefined
0x080035CE FC07203A STC P0,C2,[r7,#-0xE8]
0x080035D2 0000 MOVS r0,r0
0x080035D4 0000 MOVS r0,r0
0x080035D6 0000 MOVS r0,r0
0x080035D8 0000 MOVS r0,r0
0x080035DA 0000 MOVS r0,r0
0x080035DC 0000 MOVS r0,r0
0x080035DE 0000 MOVS r0,r0
0x080035E0 0000 MOVS r0,r0
0x080035E2 0000 MOVS r0,r0
0x080035E4 0000 MOVS r0,r0
0x080035E6 0000 MOVS r0,r0
0x080035E8 3608 ADDS r6,r6,#0x08
0x080035EA 0800 LSRS r0,r0,#0
0x080035EC 0000 MOVS r0,r0
0x080035EE 2000 MOVS r0,#0x00
0x080035F0 0010 MOVS r0,r2
0x080035F2 0000 MOVS r0,r0
0x080035F4 1D8A ADDS r2,r1,#6
0x080035F6 0800 LSRS r0,r0,#0
0x080035F8 3618 ADDS r6,r6,#0x18
0x080035FA 0800 LSRS r0,r0,#0
0x080035FC 0010 MOVS r0,r2
0x080035FE 2000 MOVS r0,#0x00
0x08003600 0200 LSLS r0,r0,#8
0x08003602 0000 MOVS r0,r0
0x08003604 1D9A ADDS r2,r3,#6
0x08003606 0800 LSRS r0,r0,#0
0x08003608 0000 MOVS r0,r0
0x0800360A 0000 MOVS r0,r0
0x0800360C 0000 MOVS r0,r0
0x0800360E 0000 MOVS r0,r0
0x08003610 0000 MOVS r0,r0
0x08003612 FFFF9320 DCD 0xFFFF9320 ; ? Undefined
0x08003616 0000 MOVS r0,r0
0x08003618 0000 MOVS r0,r0
0x0800361A 0000 MOVS r0,r0
0x0800361C 0000 MOVS r0,r0
0x0800361E 0000 MOVS r0,r0
0x08003620 0000 MOVS r0,r0
0x08003622 0000 MOVS r0,r0
0x08002012 0080 LSLS r0,r0,#2
0x08002014 0000 MOVS r0,r0
0x08002016 0000 MOVS r0,r0
0x08002018 0000 MOVS r0,r0
0x0800201A 0000 MOVS r0,r0
0x0800201C 0000 MOVS r0,r0
0x0800201E 0000 MOVS r0,r0
0x08002020 0000 MOVS r0,r0
0x08002022 0000 MOVS r0,r0
0x08002024 0000 MOVS r0,r0
0x08002026 0000 MOVS r0,r0
0x08002028 0000 MOVS r0,r0
0x0800202A 0000 MOVS r0,r0
0x0800202C 0000 MOVS r0,r0
0x0800202E 0000 MOVS r0,r0
0x08002030 07E0 LSLS r0,r4,#31
0x08002032 07E0 LSLS r0,r4,#31
0x08002034 0000 MOVS r0,r0
0x08002036 0000 MOVS r0,r0
0x08002038 0000 MOVS r0,r0
0x0800203A 0000 MOVS r0,r0
0x0800203C 0000 MOVS r0,r0
0x0800203E 0000 MOVS r0,r0
0x08002040 0000 MOVS r0,r0
0x08002042 0000 MOVS r0,r0
0x08002044 0000 MOVS r0,r0
0x08002046 0000 MOVS r0,r0
0x08002048 0000 MOVS r0,r0
0x0800204A 0000 MOVS r0,r0
0x0800204C 0000 MOVS r0,r0
0x0800204E 0000 MOVS r0,r0
0x08002050 0000 MOVS r0,r0
0x08002052 0000 MOVS r0,r0
0x08002054 0000 MOVS r0,r0
0x08002056 0000 MOVS r0,r0
0x08002058 0000 MOVS r0,r0
0x0800205A 0000 MOVS r0,r0
0x0800205C 0000 MOVS r0,r0
0x0800205E 0000 MOVS r0,r0
0x08002060 0000 MOVS r0,r0
0x08002062 0000 MOVS r0,r0
0x08002064 0000 MOVS r0,r0
0x08002066 0000 MOVS r0,r0
0x08002068 0000 MOVS r0,r0
0x0800206A 00C0 LSLS r0,r0,#3
0x0800206C 00C0 LSLS r0,r0,#3
0x0800206E 0000 MOVS r0,r0
0x08002070 0000 MOVS r0,r0
0x08002072 0000 MOVS r0,r0
0x08002074 0000 MOVS r0,r0
0x08002076 0000 MOVS r0,r0
0x08002078 0000 MOVS r0,r0
0x0800207A 0C00 LSRS r0,r0,#16
0x0800207C 0C00 LSRS r0,r0,#16
0x0800207E 0600 LSLS r0,r0,#24
0x08002080 0600 LSLS r0,r0,#24
0x08002082 0600 LSLS r0,r0,#24
0x08002084 0300 LSLS r0,r0,#12
0x08002086 0300 LSLS r0,r0,#12
0x08002088 0300 LSLS r0,r0,#12
0x0800208A 0380 LSLS r0,r0,#14
0x0800208C 0180 LSLS r0,r0,#6
0x0800208E 0180 LSLS r0,r0,#6
0x08002090 0180 LSLS r0,r0,#6
0x08002092 00C0 LSLS r0,r0,#3
0x08002094 00C0 LSLS r0,r0,#3
0x08002096 00C0 LSLS r0,r0,#3
0x08002098 0060 LSLS r0,r4,#1
0x0800209A 0060 LSLS r0,r4,#1
0x0800209C 0000 MOVS r0,r0
0x0800209E 0000 MOVS r0,r0
0x080020A0 0000 MOVS r0,r0
0x080020A2 0000 MOVS r0,r0
0x080020A4 0000 MOVS r0,r0
0x080020A6 0000 MOVS r0,r0
0x080020A8 0000 MOVS r0,r0
0x080020AA 03E0 LSLS r0,r4,#15
0x080020AC 07F0 LSLS r0,r6,#31
0x080020AE 0E38 LSRS r0,r7,#24
0x080020B0 0C18 LSRS r0,r3,#16
0x080020B2 180C ADDS r4,r1,r0
0x080020B4 180C ADDS r4,r1,r0
0x080020B6 180C ADDS r4,r1,r0
0x080020B8 180C ADDS r4,r1,r0
0x080020BA 180C ADDS r4,r1,r0
0x080020BC 180C ADDS r4,r1,r0
0x080020BE 180C ADDS r4,r1,r0
0x080020C0 180C ADDS r4,r1,r0
0x080020C2 180C ADDS r4,r1,r0
0x080020C4 0C18 LSRS r0,r3,#16
0x080020C6 0E38 LSRS r0,r7,#24
0x080020C8 07F0 LSLS r0,r6,#31
0x080020CA 03E0 LSLS r0,r4,#15
0x080020CC 0000 MOVS r0,r0
0x080020CE 0000 MOVS r0,r0
0x080020D0 0000 MOVS r0,r0
0x080020D2 0000 MOVS r0,r0
0x080020D4 0000 MOVS r0,r0
0x080020D6 0000 MOVS r0,r0
0x080020D8 0000 MOVS r0,r0
0x080020DA 0100 LSLS r0,r0,#4
0x080020DC 0180 LSLS r0,r0,#6
0x080020DE 01C0 LSLS r0,r0,#7
0x080020E0 01F0 LSLS r0,r6,#7
0x080020E2 0198 LSLS r0,r3,#6
0x080020E4 0188 LSLS r0,r1,#6
0x080020E6 0180 LSLS r0,r0,#6
0x080020E8 0180 LSLS r0,r0,#6
0x080020EA 0180 LSLS r0,r0,#6
0x080020EC 0180 LSLS r0,r0,#6
0x080020EE 0180 LSLS r0,r0,#6
0x080020F0 0180 LSLS r0,r0,#6
0x080020F2 0180 LSLS r0,r0,#6
0x080020F4 0180 LSLS r0,r0,#6
0x080020F6 0180 LSLS r0,r0,#6
0x080020F8 0180 LSLS r0,r0,#6
0x080020FA 0180 LSLS r0,r0,#6
0x080020FC 0000 MOVS r0,r0
0x080020FE 0000 MOVS r0,r0
0x08002100 0000 MOVS r0,r0
0x08002102 0000 MOVS r0,r0
0x08002104 0000 MOVS r0,r0
0x08002106 0000 MOVS r0,r0
0x08002108 0000 MOVS r0,r0
0x0800210A 03E0 LSLS r0,r4,#15
0x0800210C 0FF8 LSRS r0,r7,#31
0x0800210E 0C18 LSRS r0,r3,#16
0x08002110 180C ADDS r4,r1,r0
0x08002112 180C ADDS r4,r1,r0
0x08002114 1800 ADDS r0,r0,r0
0x08002116 1800 ADDS r0,r0,r0
0x08002118 0C00 LSRS r0,r0,#16
0x0800211A 0600 LSLS r0,r0,#24
0x0800211C 0300 LSLS r0,r0,#12
0x0800211E 0180 LSLS r0,r0,#6
0x08002120 00C0 LSLS r0,r0,#3
0x08002122 0060 LSLS r0,r4,#1
0x08002124 0030 MOVS r0,r6
0x08002126 0018 MOVS r0,r3
0x08002128 1FFC SUBS r4,r7,#7
0x0800212A 1FFC SUBS r4,r7,#7
0x0800212C 0000 MOVS r0,r0
0x0800212E 0000 MOVS r0,r0
0x08002130 0000 MOVS r0,r0
0x08002132 0000 MOVS r0,r0
0x08002134 0000 MOVS r0,r0
0x08002136 0000 MOVS r0,r0
0x08002138 0000 MOVS r0,r0
0x0800213A 01E0 LSLS r0,r4,#7
0x0800213C 07F8 LSLS r0,r7,#31
0x0800213E 0E18 LSRS r0,r3,#24
0x08002140 0C0C LSRS r4,r1,#16
0x08002142 0C0C LSRS r4,r1,#16
0x08002144 0C00 LSRS r0,r0,#16
0x08002146 0600 LSLS r0,r0,#24
0x08002148 03C0 LSLS r0,r0,#15
0x0800214A 07C0 LSLS r0,r0,#31
0x0800214C 0C00 LSRS r0,r0,#16
0x0800214E 1800 ADDS r0,r0,r0
0x08002150 1800 ADDS r0,r0,r0
0x08002152 180C ADDS r4,r1,r0
0x08002154 180C ADDS r4,r1,r0
0x08002156 0C18 LSRS r0,r3,#16
0x08002158 07F8 LSLS r0,r7,#31
0x0800215A 03E0 LSLS r0,r4,#15
0x0800215C 0000 MOVS r0,r0
0x0800215E 0000 MOVS r0,r0
0x08002160 0000 MOVS r0,r0
0x08002162 0000 MOVS r0,r0
0x08002164 0000 MOVS r0,r0
0x08002166 0000 MOVS r0,r0
0x08002168 0000 MOVS r0,r0
0x0800216A 0C00 LSRS r0,r0,#16
0x0800216C 0E00 LSRS r0,r0,#24
0x0800216E 0F00 LSRS r0,r0,#28
0x08002170 0F00 LSRS r0,r0,#28
0x08002172 0D80 LSRS r0,r0,#22
0x08002174 0CC0 LSRS r0,r0,#19
0x08002176 0C60 LSRS r0,r4,#17
0x08002178 0C60 LSRS r0,r4,#17
0x0800217A 0C30 LSRS r0,r6,#16
0x0800217C 0C18 LSRS r0,r3,#16
0x0800217E 0C0C LSRS r4,r1,#16
0x08002180 3FFC SUBS r7,r7,#0xFC
0x08002182 3FFC SUBS r7,r7,#0xFC
0x08002184 0C00 LSRS r0,r0,#16
0x08002186 0C00 LSRS r0,r0,#16
0x08002188 0C00 LSRS r0,r0,#16
0x0800218A 0C00 LSRS r0,r0,#16
0x0800218C 0000 MOVS r0,r0
0x0800218E 0000 MOVS r0,r0
0x08002190 0000 MOVS r0,r0
0x08002192 0000 MOVS r0,r0
0x08002194 0000 MOVS r0,r0
0x08002196 0000 MOVS r0,r0
0x08002198 0000 MOVS r0,r0
0x0800219A 0FF8 LSRS r0,r7,#31
0x0800219C 0FF8 LSRS r0,r7,#31
0x0800219E 0018 MOVS r0,r3
0x080021A0 0018 MOVS r0,r3
0x080021A2 000C MOVS r4,r1
0x080021A4 03EC LSLS r4,r5,#15
0x080021A6 07FC LSLS r4,r7,#31
0x080021A8 0E1C LSRS r4,r3,#24
0x080021AA 1C00 ADDS r0,r0,#0
0x080021AC 1800 ADDS r0,r0,r0
0x080021AE 1800 ADDS r0,r0,r0
0x080021B0 1800 ADDS r0,r0,r0
0x080021B2 180C ADDS r4,r1,r0
0x080021B4 0C1C LSRS r4,r3,#16
0x080021B6 0E18 LSRS r0,r3,#24
0x080021B8 07F8 LSLS r0,r7,#31
0x080021BA 03E0 LSLS r0,r4,#15
0x080021BC 0000 MOVS r0,r0
0x080021BE 0000 MOVS r0,r0
0x080021C0 0000 MOVS r0,r0
0x080021C2 0000 MOVS r0,r0
0x080021C4 0000 MOVS r0,r0
0x080021C6 0000 MOVS r0,r0
0x080021C8 0000 MOVS r0,r0
0x080021CA 07C0 LSLS r0,r0,#31
0x080021CC 0FF0 LSRS r0,r6,#31
0x080021CE 1C38 ADDS r0,r7,#0
0x080021D0 1818 ADDS r0,r3,r0
0x080021D2 0018 MOVS r0,r3
0x080021D4 000C MOVS r4,r1
0x080021D6 03CC LSLS r4,r1,#15
0x080021D8 0FEC LSRS r4,r5,#31
0x080021DA 0E3C LSRS r4,r7,#24
0x080021DC 1C1C ADDS r4,r3,#0
0x080021DE 180C ADDS r4,r1,r0
0x080021E0 180C ADDS r4,r1,r0
0x080021E2 180C ADDS r4,r1,r0
0x080021E4 1C18 ADDS r0,r3,#0
0x080021E6 0E38 LSRS r0,r7,#24
0x080021E8 07F0 LSLS r0,r6,#31
0x080021EA 03E0 LSLS r0,r4,#15
0x080021EC 0000 MOVS r0,r0
0x080021EE 0000 MOVS r0,r0
0x080021F0 0000 MOVS r0,r0
0x080021F2 0000 MOVS r0,r0
0x080021F4 0000 MOVS r0,r0
0x080021F6 0000 MOVS r0,r0
0x080021F8 0000 MOVS r0,r0
0x080021FA 1FFC SUBS r4,r7,#7
0x080021FC 1FFC SUBS r4,r7,#7
0x080021FE 0C00 LSRS r0,r0,#16
0x08002200 0600 LSLS r0,r0,#24
0x08002202 0600 LSLS r0,r0,#24
0x08002204 0300 LSLS r0,r0,#12
0x08002206 0380 LSLS r0,r0,#14
0x08002208 0180 LSLS r0,r0,#6
0x0800220A 01C0 LSLS r0,r0,#7
0x0800220C 00C0 LSLS r0,r0,#3
0x0800220E 00E0 LSLS r0,r4,#3
0x08002210 0060 LSLS r0,r4,#1
0x08002212 0060 LSLS r0,r4,#1
0x08002214 0070 LSLS r0,r6,#1
0x08002216 0030 MOVS r0,r6
0x08002218 0030 MOVS r0,r6
0x0800221A 0030 MOVS r0,r6
0x0800221C 0000 MOVS r0,r0
0x0800221E 0000 MOVS r0,r0
0x08002220 0000 MOVS r0,r0
0x08002222 0000 MOVS r0,r0
0x08002224 0000 MOVS r0,r0
0x08002226 0000 MOVS r0,r0
0x08002228 0000 MOVS r0,r0
0x0800222A 03E0 LSLS r0,r4,#15
0x0800222C 07F0 LSLS r0,r6,#31
0x0800222E 0E38 LSRS r0,r7,#24
0x08002230 0C18 LSRS r0,r3,#16
0x08002232 0C18 LSRS r0,r3,#16
0x08002234 0C18 LSRS r0,r3,#16
0x08002236 0638 LSLS r0,r7,#24
0x08002238 07F0 LSLS r0,r6,#31
0x0800223A 07F0 LSLS r0,r6,#31
0x0800223C 0C18 LSRS r0,r3,#16
0x0800223E 180C ADDS r4,r1,r0
0x08002240 180C ADDS r4,r1,r0
0x08002242 180C ADDS r4,r1,r0
0x08002244 180C ADDS r4,r1,r0
0x08002246 0C38 LSRS r0,r7,#16
0x08002248 0FF8 LSRS r0,r7,#31
0x0800224A 03E0 LSLS r0,r4,#15
0x0800224C 0000 MOVS r0,r0
0x0800224E 0000 MOVS r0,r0
0x08002250 0000 MOVS r0,r0
0x08002252 0000 MOVS r0,r0
0x08002254 0000 MOVS r0,r0
0x08002256 0000 MOVS r0,r0
0x08002258 0000 MOVS r0,r0
0x0800225A 03E0 LSLS r0,r4,#15
0x0800225C 07F0 LSLS r0,r6,#31
0x0800225E 0E38 LSRS r0,r7,#24
0x08002260 0C1C LSRS r4,r3,#16
0x08002262 180C ADDS r4,r1,r0
0x08002264 180C ADDS r4,r1,r0
0x08002266 180C ADDS r4,r1,r0
0x08002268 1C1C ADDS r4,r3,#0
0x0800226A 1E38 SUBS r0,r7,#0
0x0800226C 1BF8 SUBS r0,r7,r7
0x0800226E 19E0 ADDS r0,r4,r7
0x08002270 1800 ADDS r0,r0,r0
0x08002272 0C00 LSRS r0,r0,#16
0x08002274 0C00 LSRS r0,r0,#16
0x08002276 0E1C LSRS r4,r3,#24
0x08002278 07F8 LSLS r0,r7,#31
0x0800227A 01F0 LSLS r0,r6,#7
0x0800227C 0000 MOVS r0,r0
0x0800227E 0000 MOVS r0,r0
0x08002280 0000 MOVS r0,r0
0x08002282 0000 MOVS r0,r0
0x08002284 0000 MOVS r0,r0
0x08002286 0000 MOVS r0,r0
0x08002288 0000 MOVS r0,r0
0x0800228A 0000 MOVS r0,r0
0x0800228C 0000 MOVS r0,r0
0x0800228E 0000 MOVS r0,r0
0x08002290 0000 MOVS r0,r0
0x08002292 0000 MOVS r0,r0
0x08002294 0180 LSLS r0,r0,#6
0x08002296 0180 LSLS r0,r0,#6
0x08002298 0000 MOVS r0,r0
0x0800229A 0000 MOVS r0,r0
0x0800229C 0000 MOVS r0,r0
0x0800229E 0000 MOVS r0,r0
0x080022A0 0000 MOVS r0,r0
0x080022A2 0000 MOVS r0,r0
0x080022A4 0000 MOVS r0,r0
0x080022A6 0000 MOVS r0,r0
0x080022A8 0180 LSLS r0,r0,#6
0x080022AA 0180 LSLS r0,r0,#6
0x080022AC 0000 MOVS r0,r0
0x080022AE 0000 MOVS r0,r0
0x080022B0 0000 MOVS r0,r0
0x080022B2 0000 MOVS r0,r0
0x080022B4 0000 MOVS r0,r0
0x080022B6 0000 MOVS r0,r0
0x080022B8 0000 MOVS r0,r0
0x080022BA 0000 MOVS r0,r0
0x080022BC 0000 MOVS r0,r0
0x080022BE 0000 MOVS r0,r0
0x080022C0 0000 MOVS r0,r0
0x080022C2 0000 MOVS r0,r0
0x080022C4 0180 LSLS r0,r0,#6
0x080022C6 0180 LSLS r0,r0,#6
0x080022C8 0000 MOVS r0,r0
0x080022CA 0000 MOVS r0,r0
0x080022CC 0000 MOVS r0,r0
0x080022CE 0000 MOVS r0,r0
0x080022D0 0000 MOVS r0,r0
0x080022D2 0000 MOVS r0,r0
0x080022D4 0000 MOVS r0,r0
0x080022D6 0000 MOVS r0,r0
0x080022D8 0180 LSLS r0,r0,#6
0x080022DA 0180 LSLS r0,r0,#6
0x080022DC 0100 LSLS r0,r0,#4
0x080022DE 0100 LSLS r0,r0,#4
0x080022E0 0080 LSLS r0,r0,#2
0x080022E2 0000 MOVS r0,r0
0x080022E4 0000 MOVS r0,r0
0x080022E6 0000 MOVS r0,r0
0x080022E8 0000 MOVS r0,r0
0x080022EA 0000 MOVS r0,r0
0x080022EC 0000 MOVS r0,r0
0x080022EE 0000 MOVS r0,r0
0x080022F0 0000 MOVS r0,r0
0x080022F2 0000 MOVS r0,r0
0x080022F4 0000 MOVS r0,r0
0x080022F6 0000 MOVS r0,r0
0x080022F8 1000 ASRS r0,r0,#0
0x080022FA 1C00 ADDS r0,r0,#0
0x080022FC 0F80 LSRS r0,r0,#30
0x080022FE 03E0 LSLS r0,r4,#15
0x08002300 00F8 LSLS r0,r7,#3
0x08002302 0018 MOVS r0,r3
0x08002304 00F8 LSLS r0,r7,#3
0x08002306 03E0 LSLS r0,r4,#15
0x08002308 0F80 LSRS r0,r0,#30
0x0800230A 1C00 ADDS r0,r0,#0
0x0800230C 1000 ASRS r0,r0,#0
0x0800230E 0000 MOVS r0,r0
0x08002310 0000 MOVS r0,r0
0x08002312 0000 MOVS r0,r0
0x08002314 0000 MOVS r0,r0
0x08002316 0000 MOVS r0,r0
0x08002318 0000 MOVS r0,r0
0x0800231A 0000 MOVS r0,r0
0x0800231C 0000 MOVS r0,r0
0x0800231E 0000 MOVS r0,r0
0x08002320 0000 MOVS r0,r0
0x08002322 0000 MOVS r0,r0
0x08002324 0000 MOVS r0,r0
0x08002326 0000 MOVS r0,r0
0x08002328 1FF8 SUBS r0,r7,#7
0x0800232A 0000 MOVS r0,r0
0x0800232C 0000 MOVS r0,r0
0x0800232E 0000 MOVS r0,r0
0x08002330 1FF8 SUBS r0,r7,#7
0x08002332 0000 MOVS r0,r0
0x08002334 0000 MOVS r0,r0
0x08002336 0000 MOVS r0,r0
0x08002338 0000 MOVS r0,r0
0x0800233A 0000 MOVS r0,r0
0x0800233C 0000 MOVS r0,r0
0x0800233E 0000 MOVS r0,r0
0x08002340 0000 MOVS r0,r0
0x08002342 0000 MOVS r0,r0
0x08002344 0000 MOVS r0,r0
0x08002346 0000 MOVS r0,r0
0x08002348 0000 MOVS r0,r0
0x0800234A 0000 MOVS r0,r0
0x0800234C 0000 MOVS r0,r0
0x0800234E 0000 MOVS r0,r0
0x08002350 0000 MOVS r0,r0
0x08002352 0000 MOVS r0,r0
0x08002354 0000 MOVS r0,r0
0x08002356 0000 MOVS r0,r0
0x08002358 0008 MOVS r0,r1
0x0800235A 0038 MOVS r0,r7
0x0800235C 01F0 LSLS r0,r6,#7
0x0800235E 07C0 LSLS r0,r0,#31
0x08002360 1F00 SUBS r0,r0,#4
0x08002362 1800 ADDS r0,r0,r0
0x08002364 1F00 SUBS r0,r0,#4
0x08002366 07C0 LSLS r0,r0,#31
0x08002368 01F0 LSLS r0,r6,#7
0x0800236A 0038 MOVS r0,r7
0x0800236C 0008 MOVS r0,r1
0x0800236E 0000 MOVS r0,r0
0x08002370 0000 MOVS r0,r0
0x08002372 0000 MOVS r0,r0
0x08002374 0000 MOVS r0,r0
0x08002376 0000 MOVS r0,r0
0x08002378 0000 MOVS r0,r0
0x0800237A 03E0 LSLS r0,r4,#15
0x0800237C 0FF8 LSRS r0,r7,#31
0x0800237E 0C18 LSRS r0,r3,#16
0x08002380 180C ADDS r4,r1,r0
0x08002382 180C ADDS r4,r1,r0
0x08002384 1800 ADDS r0,r0,r0
0x08002386 0C00 LSRS r0,r0,#16
0x08002388 0600 LSLS r0,r0,#24
0x0800238A 0300 LSLS r0,r0,#12
0x0800238C 0180 LSLS r0,r0,#6
0x0800238E 00C0 LSLS r0,r0,#3
0x08002390 00C0 LSLS r0,r0,#3
0x08002392 00C0 LSLS r0,r0,#3
0x08002394 0000 MOVS r0,r0
0x08002396 0000 MOVS r0,r0
0x08002398 00C0 LSLS r0,r0,#3
0x0800239A 00C0 LSLS r0,r0,#3
0x0800239C 0000 MOVS r0,r0
0x0800239E 0000 MOVS r0,r0
0x080023A0 0000 MOVS r0,r0
0x080023A2 0000 MOVS r0,r0
0x080023A4 0000 MOVS r0,r0
0x080023A6 0000 MOVS r0,r0
0x080023A8 0000 MOVS r0,r0
0x080023AA 0000 MOVS r0,r0
0x080023AC 07E0 LSLS r0,r4,#31
0x080023AE 1818 ADDS r0,r3,r0
0x080023B0 2004 MOVS r0,#0x04
0x080023B2 29C2 CMP r1,#0xC2
0x080023B4 4A22 LDR r2,[pc,#136] ; @0x08002440
0x080023B6 4411 ADD r1,r1,r2
0x080023B8 4409 ADD r1,r1,r1
0x080023BA 4409 ADD r1,r1,r1
0x080023BC 4409 ADD r1,r1,r1
0x080023BE 2209 MOVS r2,#0x09
0x080023C0 1311 ASRS r1,r2,#12
0x080023C2 0CE2 LSRS r2,r4,#19
0x080023C4 4002 ANDS r2,r2,r0
0x080023C6 2004 MOVS r0,#0x04
0x080023C8 1818 ADDS r0,r3,r0
0x080023CA 07E0 LSLS r0,r4,#31
0x080023CC 0000 MOVS r0,r0
0x080023CE 0000 MOVS r0,r0
0x080023D0 0000 MOVS r0,r0
0x080023D2 0000 MOVS r0,r0
0x080023D4 0000 MOVS r0,r0
0x080023D6 0000 MOVS r0,r0
0x080023D8 0000 MOVS r0,r0
0x080023DA 0380 LSLS r0,r0,#14
0x080023DC 0380 LSLS r0,r0,#14
0x080023DE 06C0 LSLS r0,r0,#27
0x080023E0 06C0 LSLS r0,r0,#27
0x080023E2 06C0 LSLS r0,r0,#27
0x080023E4 0C60 LSRS r0,r4,#17
0x080023E6 0C60 LSRS r0,r4,#17
0x080023E8 1830 ADDS r0,r6,r0
0x080023EA 1830 ADDS r0,r6,r0
0x080023EC 1830 ADDS r0,r6,r0
0x080023EE 3FF8 SUBS r7,r7,#0xF8
0x080023F0 3FF8 SUBS r7,r7,#0xF8
0x080023F2 701C STRB r4,[r3,#0x00]
0x080023F4 600C STR r4,[r1,#0x00]
0x080023F6 600C STR r4,[r1,#0x00]
0x080023F8 C006 STM r0!,{r1-r2}
0x080023FA C006 STM r0!,{r1-r2}
0x080023FC 0000 MOVS r0,r0
0x080023FE 0000 MOVS r0,r0
0x08002400 0000 MOVS r0,r0
0x08002402 0000 MOVS r0,r0
0x08002404 0000 MOVS r0,r0
0x08002406 0000 MOVS r0,r0
0x08002408 0000 MOVS r0,r0
0x0800240A 03FC LSLS r4,r7,#15
0x0800240C 0FFC LSRS r4,r7,#31
0x0800240E 0C0C LSRS r4,r1,#16
0x08002410 180C ADDS r4,r1,r0
0x08002412 180C ADDS r4,r1,r0
0x08002414 180C ADDS r4,r1,r0
0x08002416 0C0C LSRS r4,r1,#16
0x08002418 07FC LSLS r4,r7,#31
0x0800241A 0FFC LSRS r4,r7,#31
0x0800241C 180C ADDS r4,r1,r0
0x0800241E 300C ADDS r0,r0,#0x0C
0x08002420 300C ADDS r0,r0,#0x0C
0x08002422 300C ADDS r0,r0,#0x0C
0x08002424 300C ADDS r0,r0,#0x0C
0x08002426 180C ADDS r4,r1,r0
0x08002428 1FFC SUBS r4,r7,#7
0x0800242A 07FC LSLS r4,r7,#31
0x0800242C 0000 MOVS r0,r0
0x0800242E 0000 MOVS r0,r0
0x08002430 0000 MOVS r0,r0
0x08002432 0000 MOVS r0,r0
0x08002434 0000 MOVS r0,r0
0x08002436 0000 MOVS r0,r0
0x08002438 0000 MOVS r0,r0
0x0800243A 07C0 LSLS r0,r0,#31
0x0800243C 1FF0 SUBS r0,r6,#7
0x0800243E 3838 SUBS r0,r0,#0x38
0x08002440 301C ADDS r0,r0,#0x1C
0x08002442 700C STRB r4,[r1,#0x00]
0x08002444 6006 STR r6,[r0,#0x00]
0x08002446 0006 MOVS r6,r0
0x08002448 0006 MOVS r6,r0
0x0800244A 0006 MOVS r6,r0
0x0800244C 0006 MOVS r6,r0
0x0800244E 0006 MOVS r6,r0
0x08002450 0006 MOVS r6,r0
0x08002452 6006 STR r6,[r0,#0x00]
0x08002454 700C STRB r4,[r1,#0x00]
0x08002456 301C ADDS r0,r0,#0x1C
0x08002458 1FF0 SUBS r0,r6,#7
0x0800245A 07E0 LSLS r0,r4,#31
0x0800245C 0000 MOVS r0,r0
0x0800245E 0000 MOVS r0,r0
0x08002460 0000 MOVS r0,r0
0x08002462 0000 MOVS r0,r0
0x08002464 0000 MOVS r0,r0
0x08002466 0000 MOVS r0,r0
0x08002468 0000 MOVS r0,r0
0x0800246A 03FE LSLS r6,r7,#15
0x0800246C 0FFE LSRS r6,r7,#31
0x0800246E 0E06 LSRS r6,r0,#24
0x08002470 1806 ADDS r6,r0,r0
0x08002472 1806 ADDS r6,r0,r0
0x08002474 3006 ADDS r0,r0,#0x06
0x08002476 3006 ADDS r0,r0,#0x06
0x08002478 3006 ADDS r0,r0,#0x06
0x0800247A 3006 ADDS r0,r0,#0x06
0x0800247C 3006 ADDS r0,r0,#0x06
0x0800247E 3006 ADDS r0,r0,#0x06
0x08002480 3006 ADDS r0,r0,#0x06
0x08002482 1806 ADDS r6,r0,r0
0x08002484 1806 ADDS r6,r0,r0
0x08002486 0E06 LSRS r6,r0,#24
0x08002488 0FFE LSRS r6,r7,#31
0x0800248A 03FE LSLS r6,r7,#15
0x0800248C 0000 MOVS r0,r0
0x0800248E 0000 MOVS r0,r0
0x08002490 0000 MOVS r0,r0
0x08002492 0000 MOVS r0,r0
0x08002494 0000 MOVS r0,r0
0x08002496 0000 MOVS r0,r0
0x08002498 0000 MOVS r0,r0
0x0800249A 3FFC SUBS r7,r7,#0xFC
0x0800249C 3FFC SUBS r7,r7,#0xFC
0x0800249E 000C MOVS r4,r1
0x080024A0 000C MOVS r4,r1
0x080024A2 000C MOVS r4,r1
0x080024A4 000C MOVS r4,r1
0x080024A6 000C MOVS r4,r1
0x080024A8 1FFC SUBS r4,r7,#7
0x080024AA 1FFC SUBS r4,r7,#7
0x080024AC 000C MOVS r4,r1
0x080024AE 000C MOVS r4,r1
0x080024B0 000C MOVS r4,r1
0x080024B2 000C MOVS r4,r1
0x080024B4 000C MOVS r4,r1
0x080024B6 000C MOVS r4,r1
0x080024B8 3FFC SUBS r7,r7,#0xFC
0x080024BA 3FFC SUBS r7,r7,#0xFC
0x080024BC 0000 MOVS r0,r0
0x080024BE 0000 MOVS r0,r0
0x080024C0 0000 MOVS r0,r0
0x080024C2 0000 MOVS r0,r0
0x080024C4 0000 MOVS r0,r0
0x080024C6 0000 MOVS r0,r0
0x080024C8 0000 MOVS r0,r0
0x080024CA 3FF8 SUBS r7,r7,#0xF8
0x080024CC 3FF8 SUBS r7,r7,#0xF8
0x080024CE 0018 MOVS r0,r3
0x080024D0 0018 MOVS r0,r3
0x080024D2 0018 MOVS r0,r3
0x080024D4 0018 MOVS r0,r3
0x080024D6 0018 MOVS r0,r3
0x080024D8 1FF8 SUBS r0,r7,#7
0x080024DA 1FF8 SUBS r0,r7,#7
0x080024DC 0018 MOVS r0,r3
0x080024DE 0018 MOVS r0,r3
0x080024E0 0018 MOVS r0,r3
0x080024E2 0018 MOVS r0,r3
0x080024E4 0018 MOVS r0,r3
0x080024E6 0018 MOVS r0,r3
0x080024E8 0018 MOVS r0,r3
0x080024EA 0018 MOVS r0,r3
0x080024EC 0000 MOVS r0,r0
0x080024EE 0000 MOVS r0,r0
0x080024F0 0000 MOVS r0,r0
0x080024F2 0000 MOVS r0,r0
0x080024F4 0000 MOVS r0,r0
0x080024F6 0000 MOVS r0,r0
0x080024F8 0000 MOVS r0,r0
0x080024FA 0FE0 LSRS r0,r4,#31
0x080024FC 3FF8 SUBS r7,r7,#0xF8
0x080024FE 783C LDRB r4,[r7,#0x00]
0x08002500 600E STR r6,[r1,#0x00]
0x08002502 E006 B 0x08002512
0x08002504 C007 STM r0!,{r0-r2}
0x08002506 0003 MOVS r3,r0
0x08002508 0003 MOVS r3,r0
0x0800250A FE03FE03 CDP2 P14,0x00,pc,C3,C3
0x0800250E C003 STM r0!,{r0-r1}
0x08002510 C007 STM r0!,{r0-r2}
0x08002512 C006 STM r0!,{r1-r2}
0x08002514 C00E STM r0!,{r1-r3}
0x08002516 F03C3FF8 BICS pc,r12,#0xF8F8F8F8
0x0800251A 0FE0 LSRS r0,r4,#31
0x0800251C 0000 MOVS r0,r0
0x0800251E 0000 MOVS r0,r0
0x08002520 0000 MOVS r0,r0
0x08002522 0000 MOVS r0,r0
0x08002524 0000 MOVS r0,r0
0x08002526 0000 MOVS r0,r0
0x08002528 0000 MOVS r0,r0
0x0800252A 300C ADDS r0,r0,#0x0C
0x0800252C 300C ADDS r0,r0,#0x0C
0x0800252E 300C ADDS r0,r0,#0x0C
0x08002530 300C ADDS r0,r0,#0x0C
0x08002532 300C ADDS r0,r0,#0x0C
0x08002534 300C ADDS r0,r0,#0x0C
0x08002536 300C ADDS r0,r0,#0x0C
0x08002538 3FFC SUBS r7,r7,#0xFC
0x0800253A 3FFC SUBS r7,r7,#0xFC
0x0800253C 300C ADDS r0,r0,#0x0C
0x0800253E 300C ADDS r0,r0,#0x0C
0x08002540 300C ADDS r0,r0,#0x0C
0x08002542 300C ADDS r0,r0,#0x0C
0x08002544 300C ADDS r0,r0,#0x0C
0x08002546 300C ADDS r0,r0,#0x0C
0x08002548 300C ADDS r0,r0,#0x0C
0x0800254A 300C ADDS r0,r0,#0x0C
0x0800254C 0000 MOVS r0,r0
0x0800254E 0000 MOVS r0,r0
0x08002550 0000 MOVS r0,r0
0x08002552 0000 MOVS r0,r0
0x08002554 0000 MOVS r0,r0
0x08002556 0000 MOVS r0,r0
0x08002558 0000 MOVS r0,r0
0x0800255A 0180 LSLS r0,r0,#6
0x0800255C 0180 LSLS r0,r0,#6
0x0800255E 0180 LSLS r0,r0,#6
0x08002560 0180 LSLS r0,r0,#6
0x08002562 0180 LSLS r0,r0,#6
0x08002564 0180 LSLS r0,r0,#6
0x08002566 0180 LSLS r0,r0,#6
0x08002568 0180 LSLS r0,r0,#6
0x0800256A 0180 LSLS r0,r0,#6
0x0800256C 0180 LSLS r0,r0,#6
0x0800256E 0180 LSLS r0,r0,#6
0x08002570 0180 LSLS r0,r0,#6
0x08002572 0180 LSLS r0,r0,#6
0x08002574 0180 LSLS r0,r0,#6
0x08002576 0180 LSLS r0,r0,#6
0x08002578 0180 LSLS r0,r0,#6
0x0800257A 0180 LSLS r0,r0,#6
0x0800257C 0000 MOVS r0,r0
0x0800257E 0000 MOVS r0,r0
0x08002580 0000 MOVS r0,r0
0x08002582 0000 MOVS r0,r0
0x08002584 0000 MOVS r0,r0
0x08002586 0000 MOVS r0,r0
0x08002588 0000 MOVS r0,r0
0x0800258A 0600 LSLS r0,r0,#24
0x0800258C 0600 LSLS r0,r0,#24
0x0800258E 0600 LSLS r0,r0,#24
0x08002590 0600 LSLS r0,r0,#24
0x08002592 0600 LSLS r0,r0,#24
0x08002594 0600 LSLS r0,r0,#24
0x08002596 0600 LSLS r0,r0,#24
0x08002598 0600 LSLS r0,r0,#24
0x0800259A 0600 LSLS r0,r0,#24
0x0800259C 0600 LSLS r0,r0,#24
0x0800259E 0600 LSLS r0,r0,#24
0x080025A0 0600 LSLS r0,r0,#24
0x080025A2 0618 LSLS r0,r3,#24
0x080025A4 0618 LSLS r0,r3,#24
0x080025A6 0738 LSLS r0,r7,#28
0x080025A8 03F0 LSLS r0,r6,#15
0x080025AA 01E0 LSLS r0,r4,#7
0x080025AC 0000 MOVS r0,r0
0x080025AE 0000 MOVS r0,r0
0x080025B0 0000 MOVS r0,r0
0x080025B2 0000 MOVS r0,r0
0x080025B4 0000 MOVS r0,r0
0x080025B6 0000 MOVS r0,r0
0x080025B8 0000 MOVS r0,r0
0x080025BA 3006 ADDS r0,r0,#0x06
0x080025BC 1806 ADDS r6,r0,r0
0x080025BE 0C06 LSRS r6,r0,#16
0x080025C0 0606 LSLS r6,r0,#24
0x080025C2 0306 LSLS r6,r0,#12
0x080025C4 0186 LSLS r6,r0,#6
0x080025C6 00C6 LSLS r6,r0,#3
0x080025C8 0066 LSLS r6,r4,#1
0x080025CA 0076 LSLS r6,r6,#1
0x080025CC 00DE LSLS r6,r3,#3
0x080025CE 018E LSLS r6,r1,#6
0x080025D0 0306 LSLS r6,r0,#12
0x080025D2 0606 LSLS r6,r0,#24
0x080025D4 0C06 LSRS r6,r0,#16
0x080025D6 1806 ADDS r6,r0,r0
0x080025D8 3006 ADDS r0,r0,#0x06
0x080025DA 6006 STR r6,[r0,#0x00]
0x080025DC 0000 MOVS r0,r0
0x080025DE 0000 MOVS r0,r0
0x080025E0 0000 MOVS r0,r0
0x080025E2 0000 MOVS r0,r0
0x080025E4 0000 MOVS r0,r0
0x080025E6 0000 MOVS r0,r0
0x080025E8 0000 MOVS r0,r0
0x080025EA 0018 MOVS r0,r3
0x080025EC 0018 MOVS r0,r3
0x080025EE 0018 MOVS r0,r3
0x080025F0 0018 MOVS r0,r3
0x080025F2 0018 MOVS r0,r3
0x080025F4 0018 MOVS r0,r3
0x080025F6 0018 MOVS r0,r3
0x080025F8 0018 MOVS r0,r3
0x080025FA 0018 MOVS r0,r3
0x080025FC 0018 MOVS r0,r3
0x080025FE 0018 MOVS r0,r3
0x08002600 0018 MOVS r0,r3
0x08002602 0018 MOVS r0,r3
0x08002604 0018 MOVS r0,r3
0x08002606 0018 MOVS r0,r3
0x08002608 1FF8 SUBS r0,r7,#7
0x0800260A 1FF8 SUBS r0,r7,#7
0x0800260C 0000 MOVS r0,r0
0x0800260E 0000 MOVS r0,r0
0x08002610 0000 MOVS r0,r0
0x08002612 0000 MOVS r0,r0
0x08002614 0000 MOVS r0,r0
0x08002616 0000 MOVS r0,r0
0x08002618 0000 MOVS r0,r0
0x0800261A E00E B 0x0800263A
0x0800261C F01EF01E BL.W 0x0842065C
0x08002620 F01ED836 BL.W 0x08820690
0x08002624 D836 BHI 0x08002694
0x08002626 D836 BHI 0x08002696
0x08002628 D836 BHI 0x08002698
0x0800262A CC66 LDM r4!,{r1-r2,r5-r6}
0x0800262C CC66 LDM r4!,{r1-r2,r5-r6}
0x0800262E CC66 LDM r4!,{r1-r2,r5-r6}
0x08002630 C6C6 STM r6!,{r1-r2,r6-r7}
0x08002632 C6C6 STM r6!,{r1-r2,r6-r7}
0x08002634 C6C6 STM r6!,{r1-r2,r6-r7}
0x08002636 C6C6 STM r6!,{r1-r2,r6-r7}
0x08002638 C386 STM r3!,{r1-r2,r7}
0x0800263A C386 STM r3!,{r1-r2,r7}
0x0800263C 0000 MOVS r0,r0
0x0800263E 0000 MOVS r0,r0
0x08002640 0000 MOVS r0,r0
0x08002642 0000 MOVS r0,r0
0x08002644 0000 MOVS r0,r0
0x08002646 0000 MOVS r0,r0
0x08002648 0000 MOVS r0,r0
0x0800264A 300C ADDS r0,r0,#0x0C
0x0800264C 301C ADDS r0,r0,#0x1C
0x0800264E 303C ADDS r0,r0,#0x3C
0x08002650 303C ADDS r0,r0,#0x3C
0x08002652 306C ADDS r0,r0,#0x6C
0x08002654 306C ADDS r0,r0,#0x6C
0x08002656 30CC ADDS r0,r0,#0xCC
0x08002658 30CC ADDS r0,r0,#0xCC
0x0800265A 318C ADDS r1,r1,#0x8C
0x0800265C 330C ADDS r3,r3,#0x0C
0x0800265E 330C ADDS r3,r3,#0x0C
0x08002660 360C ADDS r6,r6,#0x0C
0x08002662 360C ADDS r6,r6,#0x0C
0x08002664 3C0C SUBS r4,r4,#0x0C
0x08002666 3C0C SUBS r4,r4,#0x0C
0x08002668 380C SUBS r0,r0,#0x0C
0x0800266A 300C ADDS r0,r0,#0x0C
0x0800266C 0000 MOVS r0,r0
0x0800266E 0000 MOVS r0,r0
0x08002670 0000 MOVS r0,r0
0x08002672 0000 MOVS r0,r0
0x08002674 0000 MOVS r0,r0
0x08002676 0000 MOVS r0,r0
0x08002678 0000 MOVS r0,r0
0x0800267A 07E0 LSLS r0,r4,#31
0x0800267C 1FF8 SUBS r0,r7,#7
0x0800267E 381C SUBS r0,r0,#0x1C
0x08002680 700E STRB r6,[r1,#0x00]
0x08002682 6006 STR r6,[r0,#0x00]
0x08002684 C003 STM r0!,{r0-r1}
0x08002686 C003 STM r0!,{r0-r1}
0x08002688 C003 STM r0!,{r0-r1}
0x0800268A C003 STM r0!,{r0-r1}
0x0800268C C003 STM r0!,{r0-r1}
0x0800268E C003 STM r0!,{r0-r1}
0x08002690 C003 STM r0!,{r0-r1}
0x08002692 6006 STR r6,[r0,#0x00]
0x08002694 700E STRB r6,[r1,#0x00]
0x08002696 381C SUBS r0,r0,#0x1C
0x08002698 1FF8 SUBS r0,r7,#7
0x0800269A 07E0 LSLS r0,r4,#31
0x0800269C 0000 MOVS r0,r0
0x0800269E 0000 MOVS r0,r0
0x080026A0 0000 MOVS r0,r0
0x080026A2 0000 MOVS r0,r0
0x080026A4 0000 MOVS r0,r0
0x080026A6 0000 MOVS r0,r0
0x080026A8 0000 MOVS r0,r0
0x080026AA 0FFC LSRS r4,r7,#31
0x080026AC 1FFC SUBS r4,r7,#7
0x080026AE 380C SUBS r0,r0,#0x0C
0x080026B0 300C ADDS r0,r0,#0x0C
0x080026B2 300C ADDS r0,r0,#0x0C
0x080026B4 300C ADDS r0,r0,#0x0C
0x080026B6 300C ADDS r0,r0,#0x0C
0x080026B8 180C ADDS r4,r1,r0
0x080026BA 1FFC SUBS r4,r7,#7
0x080026BC 07FC LSLS r4,r7,#31
0x080026BE 000C MOVS r4,r1
0x080026C0 000C MOVS r4,r1
0x080026C2 000C MOVS r4,r1
0x080026C4 000C MOVS r4,r1
0x080026C6 000C MOVS r4,r1
0x080026C8 000C MOVS r4,r1
0x080026CA 000C MOVS r4,r1
0x080026CC 0000 MOVS r0,r0
0x080026CE 0000 MOVS r0,r0
0x080026D0 0000 MOVS r0,r0
0x080026D2 0000 MOVS r0,r0
0x080026D4 0000 MOVS r0,r0
0x080026D6 0000 MOVS r0,r0
0x080026D8 0000 MOVS r0,r0
0x080026DA 07E0 LSLS r0,r4,#31
0x080026DC 1FF8 SUBS r0,r7,#7
0x080026DE 381C SUBS r0,r0,#0x1C
0x080026E0 700E STRB r6,[r1,#0x00]
0x080026E2 6006 STR r6,[r0,#0x00]
0x080026E4 E003 B 0x080026EE
0x080026E6 C003 STM r0!,{r0-r1}
0x080026E8 C003 STM r0!,{r0-r1}
0x080026EA C003 STM r0!,{r0-r1}
0x080026EC C003 STM r0!,{r0-r1}
0x080026EE C003 STM r0!,{r0-r1}
0x080026F0 E007 B 0x08002702
0x080026F2 6306 STR r6,[r0,#0x30]
0x080026F4 3F0E SUBS r7,r7,#0x0E
0x080026F6 3C1C SUBS r4,r4,#0x1C
0x080026F8 3FF8 SUBS r7,r7,#0xF8
0x080026FA F7E0C000 DCD 0xF7E0C000 ; ? Undefined
0x080026FE 0000 MOVS r0,r0
0x08002700 0000 MOVS r0,r0
0x08002702 0000 MOVS r0,r0
0x08002704 0000 MOVS r0,r0
0x08002706 0000 MOVS r0,r0
0x08002708 0000 MOVS r0,r0
0x0800270A 0FFE LSRS r6,r7,#31
0x0800270C 1FFE SUBS r6,r7,#7
0x0800270E 3806 SUBS r0,r0,#0x06
0x08002710 3006 ADDS r0,r0,#0x06
0x08002712 3006 ADDS r0,r0,#0x06
0x08002714 3006 ADDS r0,r0,#0x06
0x08002716 3806 SUBS r0,r0,#0x06
0x08002718 1FFE SUBS r6,r7,#7
0x0800271A 07FE LSLS r6,r7,#31
0x0800271C 0306 LSLS r6,r0,#12
0x0800271E 0606 LSLS r6,r0,#24
0x08002720 0C06 LSRS r6,r0,#16
0x08002722 1806 ADDS r6,r0,r0
0x08002724 1806 ADDS r6,r0,r0
0x08002726 3006 ADDS r0,r0,#0x06
0x08002728 3006 ADDS r0,r0,#0x06
0x0800272A 6006 STR r6,[r0,#0x00]
0x0800272C 0000 MOVS r0,r0
0x0800272E 0000 MOVS r0,r0
0x08002730 0000 MOVS r0,r0
0x08002732 0000 MOVS r0,r0
0x08002734 0000 MOVS r0,r0
0x08002736 0000 MOVS r0,r0
0x08002738 0000 MOVS r0,r0
0x0800273A 03E0 LSLS r0,r4,#15
0x0800273C 0FF8 LSRS r0,r7,#31
0x0800273E 0C1C LSRS r4,r3,#16
0x08002740 180C ADDS r4,r1,r0
0x08002742 180C ADDS r4,r1,r0
0x08002744 000C MOVS r4,r1
0x08002746 001C MOVS r4,r3
0x08002748 03F8 LSLS r0,r7,#15
0x0800274A 0FE0 LSRS r0,r4,#31
0x0800274C 1E00 SUBS r0,r0,#0
0x0800274E 3800 SUBS r0,r0,#0x00
0x08002750 3006 ADDS r0,r0,#0x06
0x08002752 3006 ADDS r0,r0,#0x06
0x08002754 300E ADDS r0,r0,#0x0E
0x08002756 1C1C ADDS r4,r3,#0
0x08002758 0FF8 LSRS r0,r7,#31
0x0800275A 07E0 LSLS r0,r4,#31
0x0800275C 0000 MOVS r0,r0
0x0800275E 0000 MOVS r0,r0
0x08002760 0000 MOVS r0,r0
0x08002762 0000 MOVS r0,r0
0x08002764 0000 MOVS r0,r0
0x08002766 0000 MOVS r0,r0
0x08002768 0000 MOVS r0,r0
0x0800276A 7FFE LDRB r6,[r7,#0x1F]
0x0800276C 7FFE LDRB r6,[r7,#0x1F]
0x0800276E 0180 LSLS r0,r0,#6
0x08002770 0180 LSLS r0,r0,#6
0x08002772 0180 LSLS r0,r0,#6
0x08002774 0180 LSLS r0,r0,#6
0x08002776 0180 LSLS r0,r0,#6
0x08002778 0180 LSLS r0,r0,#6
0x0800277A 0180 LSLS r0,r0,#6
0x0800277C 0180 LSLS r0,r0,#6
0x0800277E 0180 LSLS r0,r0,#6
0x08002780 0180 LSLS r0,r0,#6
0x08002782 0180 LSLS r0,r0,#6
0x08002784 0180 LSLS r0,r0,#6
0x08002786 0180 LSLS r0,r0,#6
0x08002788 0180 LSLS r0,r0,#6
0x0800278A 0180 LSLS r0,r0,#6
0x0800278C 0000 MOVS r0,r0
0x0800278E 0000 MOVS r0,r0
0x08002790 0000 MOVS r0,r0
0x08002792 0000 MOVS r0,r0
0x08002794 0000 MOVS r0,r0
0x08002796 0000 MOVS r0,r0
0x08002798 0000 MOVS r0,r0
0x0800279A 300C ADDS r0,r0,#0x0C
0x0800279C 300C ADDS r0,r0,#0x0C
0x0800279E 300C ADDS r0,r0,#0x0C
0x080027A0 300C ADDS r0,r0,#0x0C
0x080027A2 300C ADDS r0,r0,#0x0C
0x080027A4 300C ADDS r0,r0,#0x0C
0x080027A6 300C ADDS r0,r0,#0x0C
0x080027A8 300C ADDS r0,r0,#0x0C
0x080027AA 300C ADDS r0,r0,#0x0C
0x080027AC 300C ADDS r0,r0,#0x0C
0x080027AE 300C ADDS r0,r0,#0x0C
0x080027B0 300C ADDS r0,r0,#0x0C
0x080027B2 300C ADDS r0,r0,#0x0C
0x080027B4 300C ADDS r0,r0,#0x0C
0x080027B6 1818 ADDS r0,r3,r0
0x080027B8 1FF8 SUBS r0,r7,#7
0x080027BA 07E0 LSLS r0,r4,#31
0x080027BC 0000 MOVS r0,r0
0x080027BE 0000 MOVS r0,r0
0x080027C0 0000 MOVS r0,r0
0x080027C2 0000 MOVS r0,r0
0x080027C4 0000 MOVS r0,r0
0x080027C6 0000 MOVS r0,r0
0x080027C8 0000 MOVS r0,r0
0x080027CA 6003 STR r3,[r0,#0x00]
0x080027CC 3006 ADDS r0,r0,#0x06
0x080027CE 3006 ADDS r0,r0,#0x06
0x080027D0 3006 ADDS r0,r0,#0x06
0x080027D2 180C ADDS r4,r1,r0
0x080027D4 180C ADDS r4,r1,r0
0x080027D6 180C ADDS r4,r1,r0
0x080027D8 0C18 LSRS r0,r3,#16
0x080027DA 0C18 LSRS r0,r3,#16
0x080027DC 0E38 LSRS r0,r7,#24
0x080027DE 0630 LSLS r0,r6,#24
0x080027E0 0630 LSLS r0,r6,#24
0x080027E2 0770 LSLS r0,r6,#29
0x080027E4 0360 LSLS r0,r4,#13
0x080027E6 0360 LSLS r0,r4,#13
0x080027E8 01C0 LSLS r0,r0,#7
0x080027EA 01C0 LSLS r0,r0,#7
0x080027EC 0000 MOVS r0,r0
0x080027EE 0000 MOVS r0,r0
0x080027F0 0000 MOVS r0,r0
0x080027F2 0000 MOVS r0,r0
0x080027F4 0000 MOVS r0,r0
0x080027F6 0000 MOVS r0,r0
0x080027F8 0000 MOVS r0,r0
0x080027FA 6003 STR r3,[r0,#0x00]
0x080027FC 61C3 STR r3,[r0,#0x1C]
0x080027FE 61C3 STR r3,[r0,#0x1C]
0x08002800 61C3 STR r3,[r0,#0x1C]
0x08002802 3366 ADDS r3,r3,#0x66
0x08002804 3366 ADDS r3,r3,#0x66
0x08002806 3366 ADDS r3,r3,#0x66
0x08002808 3366 ADDS r3,r3,#0x66
0x0800280A 3366 ADDS r3,r3,#0x66
0x0800280C 3366 ADDS r3,r3,#0x66
0x0800280E 1B6C SUBS r4,r5,r5
0x08002810 1B6C SUBS r4,r5,r5
0x08002812 1B6C SUBS r4,r5,r5
0x08002814 1A2C SUBS r4,r5,r0
0x08002816 1E3C SUBS r4,r7,#0
0x08002818 0E38 LSRS r0,r7,#24
0x0800281A 0E38 LSRS r0,r7,#24
0x0800281C 0000 MOVS r0,r0
0x0800281E 0000 MOVS r0,r0
0x08002820 0000 MOVS r0,r0
0x08002822 0000 MOVS r0,r0
0x08002824 0000 MOVS r0,r0
0x08002826 0000 MOVS r0,r0
0x08002828 0000 MOVS r0,r0
0x0800282A E00F B 0x0800284C
0x0800282C 700C STRB r4,[r1,#0x00]
0x0800282E 3018 ADDS r0,r0,#0x18
0x08002830 1830 ADDS r0,r6,r0
0x08002832 0C70 LSRS r0,r6,#17
0x08002834 0E60 LSRS r0,r4,#25
0x08002836 07C0 LSLS r0,r0,#31
0x08002838 0380 LSLS r0,r0,#14
0x0800283A 0380 LSLS r0,r0,#14
0x0800283C 03C0 LSLS r0,r0,#15
0x0800283E 06E0 LSLS r0,r4,#27
0x08002840 0C70 LSRS r0,r6,#17
0x08002842 1C30 ADDS r0,r6,#0
0x08002844 1818 ADDS r0,r3,r0
0x08002846 300C ADDS r0,r0,#0x0C
0x08002848 600E STR r6,[r1,#0x00]
0x0800284A E007 B 0x0800285C
0x0800284C 0000 MOVS r0,r0
0x0800284E 0000 MOVS r0,r0
0x08002850 0000 MOVS r0,r0
0x08002852 0000 MOVS r0,r0
0x08002854 0000 MOVS r0,r0
0x08002856 0000 MOVS r0,r0
0x08002858 0000 MOVS r0,r0
0x0800285A C003 STM r0!,{r0-r1}
0x0800285C 6006 STR r6,[r0,#0x00]
0x0800285E 300C ADDS r0,r0,#0x0C
0x08002860 381C SUBS r0,r0,#0x1C
0x08002862 1838 ADDS r0,r7,r0
0x08002864 0C30 LSRS r0,r6,#16
0x08002866 0660 LSLS r0,r4,#25
0x08002868 07E0 LSLS r0,r4,#31
0x0800286A 03C0 LSLS r0,r0,#15
0x0800286C 0180 LSLS r0,r0,#6
0x0800286E 0180 LSLS r0,r0,#6
0x08002870 0180 LSLS r0,r0,#6
0x08002872 0180 LSLS r0,r0,#6
0x08002874 0180 LSLS r0,r0,#6
0x08002876 0180 LSLS r0,r0,#6
0x08002878 0180 LSLS r0,r0,#6
0x0800287A 0180 LSLS r0,r0,#6
0x0800287C 0000 MOVS r0,r0
0x0800287E 0000 MOVS r0,r0
0x08002880 0000 MOVS r0,r0
0x08002882 0000 MOVS r0,r0
0x08002884 0000 MOVS r0,r0
0x08002886 0000 MOVS r0,r0
0x08002888 0000 MOVS r0,r0
0x0800288A 7FFC LDRB r4,[r7,#0x1F]
0x0800288C 7FFC LDRB r4,[r7,#0x1F]
0x0800288E 6000 STR r0,[r0,#0x00]
0x08002890 3000 ADDS r0,r0,#0x00
0x08002892 1800 ADDS r0,r0,r0
0x08002894 0C00 LSRS r0,r0,#16
0x08002896 0600 LSLS r0,r0,#24
0x08002898 0300 LSLS r0,r0,#12
0x0800289A 0180 LSLS r0,r0,#6
0x0800289C 00C0 LSLS r0,r0,#3
0x0800289E 0060 LSLS r0,r4,#1
0x080028A0 0030 MOVS r0,r6
0x080028A2 0018 MOVS r0,r3
0x080028A4 000C MOVS r4,r1
0x080028A6 0006 MOVS r6,r0
0x080028A8 7FFE LDRB r6,[r7,#0x1F]
0x080028AA 7FFE LDRB r6,[r7,#0x1F]
0x080028AC 0000 MOVS r0,r0
0x080028AE 0000 MOVS r0,r0
0x080028B0 0000 MOVS r0,r0
0x080028B2 0000 MOVS r0,r0
0x080028B4 0000 MOVS r0,r0
0x080028B6 0000 MOVS r0,r0
0x080028B8 0000 MOVS r0,r0
0x080028BA 03E0 LSLS r0,r4,#15
0x080028BC 03E0 LSLS r0,r4,#15
0x080028BE 0060 LSLS r0,r4,#1
0x080028C0 0060 LSLS r0,r4,#1
0x080028C2 0060 LSLS r0,r4,#1
0x080028C4 0060 LSLS r0,r4,#1
0x080028C6 0060 LSLS r0,r4,#1
0x080028C8 0060 LSLS r0,r4,#1
0x080028CA 0060 LSLS r0,r4,#1
0x080028CC 0060 LSLS r0,r4,#1
0x080028CE 0060 LSLS r0,r4,#1
0x080028D0 0060 LSLS r0,r4,#1
0x080028D2 0060 LSLS r0,r4,#1
0x080028D4 0060 LSLS r0,r4,#1
0x080028D6 0060 LSLS r0,r4,#1
0x080028D8 0060 LSLS r0,r4,#1
0x080028DA 0060 LSLS r0,r4,#1
0x080028DC 0060 LSLS r0,r4,#1
0x080028DE 0060 LSLS r0,r4,#1
0x080028E0 0060 LSLS r0,r4,#1
0x080028E2 03E0 LSLS r0,r4,#15
0x080028E4 03E0 LSLS r0,r4,#15
0x080028E6 0000 MOVS r0,r0
0x080028E8 0000 MOVS r0,r0
0x080028EA 0030 MOVS r0,r6
0x080028EC 0030 MOVS r0,r6
0x080028EE 0060 LSLS r0,r4,#1
0x080028F0 0060 LSLS r0,r4,#1
0x080028F2 0060 LSLS r0,r4,#1
0x080028F4 00C0 LSLS r0,r0,#3
0x080028F6 00C0 LSLS r0,r0,#3
0x080028F8 00C0 LSLS r0,r0,#3
0x080028FA 01C0 LSLS r0,r0,#7
0x080028FC 0180 LSLS r0,r0,#6
0x080028FE 0180 LSLS r0,r0,#6
0x08002900 0180 LSLS r0,r0,#6
0x08002902 0300 LSLS r0,r0,#12
0x08002904 0300 LSLS r0,r0,#12
0x08002906 0300 LSLS r0,r0,#12
0x08002908 0600 LSLS r0,r0,#24
0x0800290A 0600 LSLS r0,r0,#24
0x0800290C 0000 MOVS r0,r0
0x0800290E 0000 MOVS r0,r0
0x08002910 0000 MOVS r0,r0
0x08002912 0000 MOVS r0,r0
0x08002914 0000 MOVS r0,r0
0x08002916 0000 MOVS r0,r0
0x08002918 0000 MOVS r0,r0
0x0800291A 03E0 LSLS r0,r4,#15
0x0800291C 03E0 LSLS r0,r4,#15
0x0800291E 0300 LSLS r0,r0,#12
0x08002920 0300 LSLS r0,r0,#12
0x08002922 0300 LSLS r0,r0,#12
0x08002924 0300 LSLS r0,r0,#12
0x08002926 0300 LSLS r0,r0,#12
0x08002928 0300 LSLS r0,r0,#12
0x0800292A 0300 LSLS r0,r0,#12
0x0800292C 0300 LSLS r0,r0,#12
0x0800292E 0300 LSLS r0,r0,#12
0x08002930 0300 LSLS r0,r0,#12
0x08002932 0300 LSLS r0,r0,#12
0x08002934 0300 LSLS r0,r0,#12
0x08002936 0300 LSLS r0,r0,#12
0x08002938 0300 LSLS r0,r0,#12
0x0800293A 0300 LSLS r0,r0,#12
0x0800293C 0300 LSLS r0,r0,#12
0x0800293E 0300 LSLS r0,r0,#12
0x08002940 0300 LSLS r0,r0,#12
0x08002942 03E0 LSLS r0,r4,#15
0x08002944 03E0 LSLS r0,r4,#15
0x08002946 0000 MOVS r0,r0
0x08002948 0000 MOVS r0,r0
0x0800294A 0000 MOVS r0,r0
0x0800294C 01C0 LSLS r0,r0,#7
0x0800294E 01C0 LSLS r0,r0,#7
0x08002950 0360 LSLS r0,r4,#13
0x08002952 0360 LSLS r0,r4,#13
0x08002954 0360 LSLS r0,r4,#13
0x08002956 0630 LSLS r0,r6,#24
0x08002958 0630 LSLS r0,r6,#24
0x0800295A 0C18 LSRS r0,r3,#16
0x0800295C 0C18 LSRS r0,r3,#16
0x0800295E 0000 MOVS r0,r0
0x08002960 0000 MOVS r0,r0
0x08002962 0000 MOVS r0,r0
0x08002964 0000 MOVS r0,r0
0x08002966 0000 MOVS r0,r0
0x08002968 0000 MOVS r0,r0
0x0800296A 0000 MOVS r0,r0
0x0800296C 0000 MOVS r0,r0
0x0800296E 0000 MOVS r0,r0
0x08002970 0000 MOVS r0,r0
0x08002972 0000 MOVS r0,r0
0x08002974 0000 MOVS r0,r0
0x08002976 0000 MOVS r0,r0
0x08002978 0000 MOVS r0,r0
0x0800297A 0000 MOVS r0,r0
0x0800297C 0000 MOVS r0,r0
0x0800297E 0000 MOVS r0,r0
0x08002980 0000 MOVS r0,r0
0x08002982 0000 MOVS r0,r0
0x08002984 0000 MOVS r0,r0
0x08002986 0000 MOVS r0,r0
0x08002988 0000 MOVS r0,r0
0x0800298A 0000 MOVS r0,r0
0x0800298C 0000 MOVS r0,r0
0x0800298E 0000 MOVS r0,r0
0x08002990 0000 MOVS r0,r0
0x08002992 0000 MOVS r0,r0
0x08002994 0000 MOVS r0,r0
0x08002996 0000 MOVS r0,r0
0x08002998 0000 MOVS r0,r0
0x0800299A FFFFFFFF DCD 0xFFFFFFFF ; ? Undefined
0x0800299E 0000 MOVS r0,r0
0x080029A0 0000 MOVS r0,r0
0x080029A2 0000 MOVS r0,r0
0x080029A4 0000 MOVS r0,r0
0x080029A6 0000 MOVS r0,r0
0x080029A8 0000 MOVS r0,r0
0x080029AA 000C MOVS r4,r1
0x080029AC 000C MOVS r4,r1
0x080029AE 000C MOVS r4,r1
0x080029B0 000C MOVS r4,r1
0x080029B2 000C MOVS r4,r1
0x080029B4 000C MOVS r4,r1
0x080029B6 0000 MOVS r0,r0
0x080029B8 0000 MOVS r0,r0
0x080029BA 0000 MOVS r0,r0
0x080029BC 0000 MOVS r0,r0
0x080029BE 0000 MOVS r0,r0
0x080029C0 0000 MOVS r0,r0
0x080029C2 0000 MOVS r0,r0
0x080029C4 0000 MOVS r0,r0
0x080029C6 0000 MOVS r0,r0
0x080029C8 0000 MOVS r0,r0
0x080029CA 0000 MOVS r0,r0
0x080029CC 0000 MOVS r0,r0
0x080029CE 0000 MOVS r0,r0
0x080029D0 0000 MOVS r0,r0
0x080029D2 0000 MOVS r0,r0
0x080029D4 0000 MOVS r0,r0
0x080029D6 0000 MOVS r0,r0
0x080029D8 0000 MOVS r0,r0
0x080029DA 0000 MOVS r0,r0
0x080029DC 0000 MOVS r0,r0
0x080029DE 0000 MOVS r0,r0
0x080029E0 0000 MOVS r0,r0
0x080029E2 0000 MOVS r0,r0
0x080029E4 03F0 LSLS r0,r6,#15
0x080029E6 07F8 LSLS r0,r7,#31
0x080029E8 0C1C LSRS r4,r3,#16
0x080029EA 0C0C LSRS r4,r1,#16
0x080029EC 0F00 LSRS r0,r0,#28
0x080029EE 0FF0 LSRS r0,r6,#31
0x080029F0 0CF8 LSRS r0,r7,#19
0x080029F2 0C0C LSRS r4,r1,#16
0x080029F4 0C0C LSRS r4,r1,#16
0x080029F6 0F1C LSRS r4,r3,#28
0x080029F8 0FF8 LSRS r0,r7,#31
0x080029FA 18F0 ADDS r0,r6,r3
0x080029FC 0000 MOVS r0,r0
0x080029FE 0000 MOVS r0,r0
0x08002A00 0000 MOVS r0,r0
0x08002A02 0000 MOVS r0,r0
0x08002A04 0000 MOVS r0,r0
0x08002A06 0000 MOVS r0,r0
0x08002A08 0000 MOVS r0,r0
0x08002A0A 0018 MOVS r0,r3
0x08002A0C 0018 MOVS r0,r3
0x08002A0E 0018 MOVS r0,r3
0x08002A10 0018 MOVS r0,r3
0x08002A12 0018 MOVS r0,r3
0x08002A14 03D8 LSLS r0,r3,#15
0x08002A16 0FF8 LSRS r0,r7,#31
0x08002A18 0C38 LSRS r0,r7,#16
0x08002A1A 1818 ADDS r0,r3,r0
0x08002A1C 1818 ADDS r0,r3,r0
0x08002A1E 1818 ADDS r0,r3,r0
0x08002A20 1818 ADDS r0,r3,r0
0x08002A22 1818 ADDS r0,r3,r0
0x08002A24 1818 ADDS r0,r3,r0
0x08002A26 0C38 LSRS r0,r7,#16
0x08002A28 0FF8 LSRS r0,r7,#31
0x08002A2A 03D8 LSLS r0,r3,#15
0x08002A2C 0000 MOVS r0,r0
0x08002A2E 0000 MOVS r0,r0
0x08002A30 0000 MOVS r0,r0
0x08002A32 0000 MOVS r0,r0
0x08002A34 0000 MOVS r0,r0
0x08002A36 0000 MOVS r0,r0
0x08002A38 0000 MOVS r0,r0
0x08002A3A 0000 MOVS r0,r0
0x08002A3C 0000 MOVS r0,r0
0x08002A3E 0000 MOVS r0,r0
0x08002A40 0000 MOVS r0,r0
0x08002A42 0000 MOVS r0,r0
0x08002A44 03C0 LSLS r0,r0,#15
0x08002A46 07F0 LSLS r0,r6,#31
0x08002A48 0E30 LSRS r0,r6,#24
0x08002A4A 0C18 LSRS r0,r3,#16
0x08002A4C 0018 MOVS r0,r3
0x08002A4E 0018 MOVS r0,r3
0x08002A50 0018 MOVS r0,r3
0x08002A52 0018 MOVS r0,r3
0x08002A54 0C18 LSRS r0,r3,#16
0x08002A56 0E30 LSRS r0,r6,#24
0x08002A58 07F0 LSLS r0,r6,#31
0x08002A5A 03C0 LSLS r0,r0,#15
0x08002A5C 0000 MOVS r0,r0
0x08002A5E 0000 MOVS r0,r0
0x08002A60 0000 MOVS r0,r0
0x08002A62 0000 MOVS r0,r0
0x08002A64 0000 MOVS r0,r0
0x08002A66 0000 MOVS r0,r0
0x08002A68 0000 MOVS r0,r0
0x08002A6A 1800 ADDS r0,r0,r0
0x08002A6C 1800 ADDS r0,r0,r0
0x08002A6E 1800 ADDS r0,r0,r0
0x08002A70 1800 ADDS r0,r0,r0
0x08002A72 1800 ADDS r0,r0,r0
0x08002A74 1BC0 SUBS r0,r0,r7
0x08002A76 1FF0 SUBS r0,r6,#7
0x08002A78 1C30 ADDS r0,r6,#0
0x08002A7A 1818 ADDS r0,r3,r0
0x08002A7C 1818 ADDS r0,r3,r0
0x08002A7E 1818 ADDS r0,r3,r0
0x08002A80 1818 ADDS r0,r3,r0
0x08002A82 1818 ADDS r0,r3,r0
0x08002A84 1818 ADDS r0,r3,r0
0x08002A86 1C30 ADDS r0,r6,#0
0x08002A88 1FF0 SUBS r0,r6,#7
0x08002A8A 1BC0 SUBS r0,r0,r7
0x08002A8C 0000 MOVS r0,r0
0x08002A8E 0000 MOVS r0,r0
0x08002A90 0000 MOVS r0,r0
0x08002A92 0000 MOVS r0,r0
0x08002A94 0000 MOVS r0,r0
0x08002A96 0000 MOVS r0,r0
0x08002A98 0000 MOVS r0,r0
0x08002A9A 0000 MOVS r0,r0
0x08002A9C 0000 MOVS r0,r0
0x08002A9E 0000 MOVS r0,r0
0x08002AA0 0000 MOVS r0,r0
0x08002AA2 0000 MOVS r0,r0
0x08002AA4 03C0 LSLS r0,r0,#15
0x08002AA6 0FF0 LSRS r0,r6,#31
0x08002AA8 0C30 LSRS r0,r6,#16
0x08002AAA 1818 ADDS r0,r3,r0
0x08002AAC 1FF8 SUBS r0,r7,#7
0x08002AAE 1FF8 SUBS r0,r7,#7
0x08002AB0 0018 MOVS r0,r3
0x08002AB2 0018 MOVS r0,r3
0x08002AB4 1838 ADDS r0,r7,r0
0x08002AB6 1C30 ADDS r0,r6,#0
0x08002AB8 0FF0 LSRS r0,r6,#31
0x08002ABA 07C0 LSLS r0,r0,#31
0x08002ABC 0000 MOVS r0,r0
0x08002ABE 0000 MOVS r0,r0
0x08002AC0 0000 MOVS r0,r0
0x08002AC2 0000 MOVS r0,r0
0x08002AC4 0000 MOVS r0,r0
0x08002AC6 0000 MOVS r0,r0
0x08002AC8 0000 MOVS r0,r0
0x08002ACA 0F80 LSRS r0,r0,#30
0x08002ACC 0FC0 LSRS r0,r0,#31
0x08002ACE 00C0 LSLS r0,r0,#3
0x08002AD0 00C0 LSLS r0,r0,#3
0x08002AD2 00C0 LSLS r0,r0,#3
0x08002AD4 07F0 LSLS r0,r6,#31
0x08002AD6 07F0 LSLS r0,r6,#31
0x08002AD8 00C0 LSLS r0,r0,#3
0x08002ADA 00C0 LSLS r0,r0,#3
0x08002ADC 00C0 LSLS r0,r0,#3
0x08002ADE 00C0 LSLS r0,r0,#3
0x08002AE0 00C0 LSLS r0,r0,#3
0x08002AE2 00C0 LSLS r0,r0,#3
0x08002AE4 00C0 LSLS r0,r0,#3
0x08002AE6 00C0 LSLS r0,r0,#3
0x08002AE8 00C0 LSLS r0,r0,#3
0x08002AEA 00C0 LSLS r0,r0,#3
0x08002AEC 0000 MOVS r0,r0
0x08002AEE 0000 MOVS r0,r0
0x08002AF0 0000 MOVS r0,r0
0x08002AF2 0000 MOVS r0,r0
0x08002AF4 0000 MOVS r0,r0
0x08002AF6 0000 MOVS r0,r0
0x08002AF8 0000 MOVS r0,r0
0x08002AFA 0000 MOVS r0,r0
0x08002AFC 0000 MOVS r0,r0
0x08002AFE 0000 MOVS r0,r0
0x08002B00 0000 MOVS r0,r0
0x08002B02 0000 MOVS r0,r0
0x08002B04 0DE0 LSRS r0,r4,#23
0x08002B06 0FF8 LSRS r0,r7,#31
0x08002B08 0E18 LSRS r0,r3,#24
0x08002B0A 0C0C LSRS r4,r1,#16
0x08002B0C 0C0C LSRS r4,r1,#16
0x08002B0E 0C0C LSRS r4,r1,#16
0x08002B10 0C0C LSRS r4,r1,#16
0x08002B12 0C0C LSRS r4,r1,#16
0x08002B14 0C0C LSRS r4,r1,#16
0x08002B16 0E18 LSRS r0,r3,#24
0x08002B18 0FF8 LSRS r0,r7,#31
0x08002B1A 0DE0 LSRS r0,r4,#23
0x08002B1C 0C00 LSRS r0,r0,#16
0x08002B1E 0C0C LSRS r4,r1,#16
0x08002B20 061C LSLS r4,r3,#24
0x08002B22 07F8 LSLS r0,r7,#31
0x08002B24 01F0 LSLS r0,r6,#7
0x08002B26 0000 MOVS r0,r0
0x08002B28 0000 MOVS r0,r0
0x08002B2A 0018 MOVS r0,r3
0x08002B2C 0018 MOVS r0,r3
0x08002B2E 0018 MOVS r0,r3
0x08002B30 0018 MOVS r0,r3
0x08002B32 0018 MOVS r0,r3
0x08002B34 07D8 LSLS r0,r3,#31
0x08002B36 0FF8 LSRS r0,r7,#31
0x08002B38 1C38 ADDS r0,r7,#0
0x08002B3A 1818 ADDS r0,r3,r0
0x08002B3C 1818 ADDS r0,r3,r0
0x08002B3E 1818 ADDS r0,r3,r0
0x08002B40 1818 ADDS r0,r3,r0
0x08002B42 1818 ADDS r0,r3,r0
0x08002B44 1818 ADDS r0,r3,r0
0x08002B46 1818 ADDS r0,r3,r0
0x08002B48 1818 ADDS r0,r3,r0
0x08002B4A 1818 ADDS r0,r3,r0
0x08002B4C 0000 MOVS r0,r0
0x08002B4E 0000 MOVS r0,r0
0x08002B50 0000 MOVS r0,r0
0x08002B52 0000 MOVS r0,r0
0x08002B54 0000 MOVS r0,r0
0x08002B56 0000 MOVS r0,r0
0x08002B58 0000 MOVS r0,r0
0x08002B5A 00C0 LSLS r0,r0,#3
0x08002B5C 00C0 LSLS r0,r0,#3
0x08002B5E 0000 MOVS r0,r0
0x08002B60 0000 MOVS r0,r0
0x08002B62 0000 MOVS r0,r0
0x08002B64 00C0 LSLS r0,r0,#3
0x08002B66 00C0 LSLS r0,r0,#3
0x08002B68 00C0 LSLS r0,r0,#3
0x08002B6A 00C0 LSLS r0,r0,#3
0x08002B6C 00C0 LSLS r0,r0,#3
0x08002B6E 00C0 LSLS r0,r0,#3
0x08002B70 00C0 LSLS r0,r0,#3
0x08002B72 00C0 LSLS r0,r0,#3
0x08002B74 00C0 LSLS r0,r0,#3
0x08002B76 00C0 LSLS r0,r0,#3
0x08002B78 00C0 LSLS r0,r0,#3
0x08002B7A 00C0 LSLS r0,r0,#3
0x08002B7C 0000 MOVS r0,r0
0x08002B7E 0000 MOVS r0,r0
0x08002B80 0000 MOVS r0,r0
0x08002B82 0000 MOVS r0,r0
0x08002B84 0000 MOVS r0,r0
0x08002B86 0000 MOVS r0,r0
0x08002B88 0000 MOVS r0,r0
0x08002B8A 00C0 LSLS r0,r0,#3
0x08002B8C 00C0 LSLS r0,r0,#3
0x08002B8E 0000 MOVS r0,r0
0x08002B90 0000 MOVS r0,r0
0x08002B92 0000 MOVS r0,r0
0x08002B94 00C0 LSLS r0,r0,#3
0x08002B96 00C0 LSLS r0,r0,#3
0x08002B98 00C0 LSLS r0,r0,#3
0x08002B9A 00C0 LSLS r0,r0,#3
0x08002B9C 00C0 LSLS r0,r0,#3
0x08002B9E 00C0 LSLS r0,r0,#3
0x08002BA0 00C0 LSLS r0,r0,#3
0x08002BA2 00C0 LSLS r0,r0,#3
0x08002BA4 00C0 LSLS r0,r0,#3
0x08002BA6 00C0 LSLS r0,r0,#3
0x08002BA8 00C0 LSLS r0,r0,#3
0x08002BAA 00C0 LSLS r0,r0,#3
0x08002BAC 00C0 LSLS r0,r0,#3
0x08002BAE 00C0 LSLS r0,r0,#3
0x08002BB0 00C0 LSLS r0,r0,#3
0x08002BB2 00F8 LSLS r0,r7,#3
0x08002BB4 0078 LSLS r0,r7,#1
0x08002BB6 0000 MOVS r0,r0
0x08002BB8 0000 MOVS r0,r0
0x08002BBA 000C MOVS r4,r1
0x08002BBC 000C MOVS r4,r1
0x08002BBE 000C MOVS r4,r1
0x08002BC0 000C MOVS r4,r1
0x08002BC2 000C MOVS r4,r1
0x08002BC4 0C0C LSRS r4,r1,#16
0x08002BC6 060C LSLS r4,r1,#24
0x08002BC8 030C LSLS r4,r1,#12
0x08002BCA 018C LSLS r4,r1,#6
0x08002BCC 00CC LSLS r4,r1,#3
0x08002BCE 006C LSLS r4,r5,#1
0x08002BD0 00FC LSLS r4,r7,#3
0x08002BD2 019C LSLS r4,r3,#6
0x08002BD4 038C LSLS r4,r1,#14
0x08002BD6 030C LSLS r4,r1,#12
0x08002BD8 060C LSLS r4,r1,#24
0x08002BDA 0C0C LSRS r4,r1,#16
0x08002BDC 0000 MOVS r0,r0
0x08002BDE 0000 MOVS r0,r0
0x08002BE0 0000 MOVS r0,r0
0x08002BE2 0000 MOVS r0,r0
0x08002BE4 0000 MOVS r0,r0
0x08002BE6 0000 MOVS r0,r0
0x08002BE8 0000 MOVS r0,r0
0x08002BEA 00C0 LSLS r0,r0,#3
0x08002BEC 00C0 LSLS r0,r0,#3
0x08002BEE 00C0 LSLS r0,r0,#3
0x08002BF0 00C0 LSLS r0,r0,#3
0x08002BF2 00C0 LSLS r0,r0,#3
0x08002BF4 00C0 LSLS r0,r0,#3
0x08002BF6 00C0 LSLS r0,r0,#3
0x08002BF8 00C0 LSLS r0,r0,#3
0x08002BFA 00C0 LSLS r0,r0,#3
0x08002BFC 00C0 LSLS r0,r0,#3
0x08002BFE 00C0 LSLS r0,r0,#3
0x08002C00 00C0 LSLS r0,r0,#3
0x08002C02 00C0 LSLS r0,r0,#3
0x08002C04 00C0 LSLS r0,r0,#3
0x08002C06 00C0 LSLS r0,r0,#3
0x08002C08 00C0 LSLS r0,r0,#3
0x08002C0A 00C0 LSLS r0,r0,#3
0x08002C0C 0000 MOVS r0,r0
0x08002C0E 0000 MOVS r0,r0
0x08002C10 0000 MOVS r0,r0
0x08002C12 0000 MOVS r0,r0
0x08002C14 0000 MOVS r0,r0
0x08002C16 0000 MOVS r0,r0
0x08002C18 0000 MOVS r0,r0
0x08002C1A 0000 MOVS r0,r0
0x08002C1C 0000 MOVS r0,r0
0x08002C1E 0000 MOVS r0,r0
0x08002C20 0000 MOVS r0,r0
0x08002C22 0000 MOVS r0,r0
0x08002C24 3C7C SUBS r4,r4,#0x7C
0x08002C26 7EFF LDRB r7,[r7,#0x1B]
0x08002C28 E3C7 B 0x080033BA
0x08002C2A C183 STM r1!,{r0-r1,r7}
0x08002C2C C183 STM r1!,{r0-r1,r7}
0x08002C2E C183 STM r1!,{r0-r1,r7}
0x08002C30 C183 STM r1!,{r0-r1,r7}
0x08002C32 C183 STM r1!,{r0-r1,r7}
0x08002C34 C183 STM r1!,{r0-r1,r7}
0x08002C36 C183 STM r1!,{r0-r1,r7}
0x08002C38 C183 STM r1!,{r0-r1,r7}
0x08002C3A C183 STM r1!,{r0-r1,r7}
0x08002C3C 0000 MOVS r0,r0
0x08002C3E 0000 MOVS r0,r0
0x08002C40 0000 MOVS r0,r0
0x08002C42 0000 MOVS r0,r0
0x08002C44 0000 MOVS r0,r0
0x08002C46 0000 MOVS r0,r0
0x08002C48 0000 MOVS r0,r0
0x08002C4A 0000 MOVS r0,r0
0x08002C4C 0000 MOVS r0,r0
0x08002C4E 0000 MOVS r0,r0
0x08002C50 0000 MOVS r0,r0
0x08002C52 0000 MOVS r0,r0
0x08002C54 0798 LSLS r0,r3,#30
0x08002C56 0FF8 LSRS r0,r7,#31
0x08002C58 1C38 ADDS r0,r7,#0
0x08002C5A 1818 ADDS r0,r3,r0
0x08002C5C 1818 ADDS r0,r3,r0
0x08002C5E 1818 ADDS r0,r3,r0
0x08002C60 1818 ADDS r0,r3,r0
0x08002C62 1818 ADDS r0,r3,r0
0x08002C64 1818 ADDS r0,r3,r0
0x08002C66 1818 ADDS r0,r3,r0
0x08002C68 1818 ADDS r0,r3,r0
0x08002C6A 1818 ADDS r0,r3,r0
0x08002C6C 0000 MOVS r0,r0
0x08002C6E 0000 MOVS r0,r0
0x08002C70 0000 MOVS r0,r0
0x08002C72 0000 MOVS r0,r0
0x08002C74 0000 MOVS r0,r0
0x08002C76 0000 MOVS r0,r0
0x08002C78 0000 MOVS r0,r0
0x08002C7A 0000 MOVS r0,r0
0x08002C7C 0000 MOVS r0,r0
0x08002C7E 0000 MOVS r0,r0
0x08002C80 0000 MOVS r0,r0
0x08002C82 0000 MOVS r0,r0
0x08002C84 03C0 LSLS r0,r0,#15
0x08002C86 0FF0 LSRS r0,r6,#31
0x08002C88 0C30 LSRS r0,r6,#16
0x08002C8A 1818 ADDS r0,r3,r0
0x08002C8C 1818 ADDS r0,r3,r0
0x08002C8E 1818 ADDS r0,r3,r0
0x08002C90 1818 ADDS r0,r3,r0
0x08002C92 1818 ADDS r0,r3,r0
0x08002C94 1818 ADDS r0,r3,r0
0x08002C96 0C30 LSRS r0,r6,#16
0x08002C98 0FF0 LSRS r0,r6,#31
0x08002C9A 03C0 LSLS r0,r0,#15
0x08002C9C 0000 MOVS r0,r0
0x08002C9E 0000 MOVS r0,r0
0x08002CA0 0000 MOVS r0,r0
0x08002CA2 0000 MOVS r0,r0
0x08002CA4 0000 MOVS r0,r0
0x08002CA6 0000 MOVS r0,r0
0x08002CA8 0000 MOVS r0,r0
0x08002CAA 0000 MOVS r0,r0
0x08002CAC 0000 MOVS r0,r0
0x08002CAE 0000 MOVS r0,r0
0x08002CB0 0000 MOVS r0,r0
0x08002CB2 0000 MOVS r0,r0
0x08002CB4 03D8 LSLS r0,r3,#15
0x08002CB6 0FF8 LSRS r0,r7,#31
0x08002CB8 0C38 LSRS r0,r7,#16
0x08002CBA 1818 ADDS r0,r3,r0
0x08002CBC 1818 ADDS r0,r3,r0
0x08002CBE 1818 ADDS r0,r3,r0
0x08002CC0 1818 ADDS r0,r3,r0
0x08002CC2 1818 ADDS r0,r3,r0
0x08002CC4 1818 ADDS r0,r3,r0
0x08002CC6 0C38 LSRS r0,r7,#16
0x08002CC8 0FF8 LSRS r0,r7,#31
0x08002CCA 03D8 LSLS r0,r3,#15
0x08002CCC 0018 MOVS r0,r3
0x08002CCE 0018 MOVS r0,r3
0x08002CD0 0018 MOVS r0,r3
0x08002CD2 0018 MOVS r0,r3
0x08002CD4 0018 MOVS r0,r3
0x08002CD6 0000 MOVS r0,r0
0x08002CD8 0000 MOVS r0,r0
0x08002CDA 0000 MOVS r0,r0
0x08002CDC 0000 MOVS r0,r0
0x08002CDE 0000 MOVS r0,r0
0x08002CE0 0000 MOVS r0,r0
0x08002CE2 0000 MOVS r0,r0
0x08002CE4 1BC0 SUBS r0,r0,r7
0x08002CE6 1FF0 SUBS r0,r6,#7
0x08002CE8 1C30 ADDS r0,r6,#0
0x08002CEA 1818 ADDS r0,r3,r0
0x08002CEC 1818 ADDS r0,r3,r0
0x08002CEE 1818 ADDS r0,r3,r0
0x08002CF0 1818 ADDS r0,r3,r0
0x08002CF2 1818 ADDS r0,r3,r0
0x08002CF4 1818 ADDS r0,r3,r0
0x08002CF6 1C30 ADDS r0,r6,#0
0x08002CF8 1FF0 SUBS r0,r6,#7
0x08002CFA 1BC0 SUBS r0,r0,r7
0x08002CFC 1800 ADDS r0,r0,r0
0x08002CFE 1800 ADDS r0,r0,r0
0x08002D00 1800 ADDS r0,r0,r0
0x08002D02 1800 ADDS r0,r0,r0
0x08002D04 1800 ADDS r0,r0,r0
0x08002D06 0000 MOVS r0,r0
0x08002D08 0000 MOVS r0,r0
0x08002D0A 0000 MOVS r0,r0
0x08002D0C 0000 MOVS r0,r0
0x08002D0E 0000 MOVS r0,r0
0x08002D10 0000 MOVS r0,r0
0x08002D12 0000 MOVS r0,r0
0x08002D14 07B0 LSLS r0,r6,#30
0x08002D16 03F0 LSLS r0,r6,#15
0x08002D18 0070 LSLS r0,r6,#1
0x08002D1A 0030 MOVS r0,r6
0x08002D1C 0030 MOVS r0,r6
0x08002D1E 0030 MOVS r0,r6
0x08002D20 0030 MOVS r0,r6
0x08002D22 0030 MOVS r0,r6
0x08002D24 0030 MOVS r0,r6
0x08002D26 0030 MOVS r0,r6
0x08002D28 0030 MOVS r0,r6
0x08002D2A 0030 MOVS r0,r6
0x08002D2C 0000 MOVS r0,r0
0x08002D2E 0000 MOVS r0,r0
0x08002D30 0000 MOVS r0,r0
0x08002D32 0000 MOVS r0,r0
0x08002D34 0000 MOVS r0,r0
0x08002D36 0000 MOVS r0,r0
0x08002D38 0000 MOVS r0,r0
0x08002D3A 0000 MOVS r0,r0
0x08002D3C 0000 MOVS r0,r0
0x08002D3E 0000 MOVS r0,r0
0x08002D40 0000 MOVS r0,r0
0x08002D42 0000 MOVS r0,r0
0x08002D44 03E0 LSLS r0,r4,#15
0x08002D46 03F0 LSLS r0,r6,#15
0x08002D48 0E38 LSRS r0,r7,#24
0x08002D4A 0C18 LSRS r0,r3,#16
0x08002D4C 0038 MOVS r0,r7
0x08002D4E 03F0 LSLS r0,r6,#15
0x08002D50 07C0 LSLS r0,r0,#31
0x08002D52 0C00 LSRS r0,r0,#16
0x08002D54 0C18 LSRS r0,r3,#16
0x08002D56 0E38 LSRS r0,r7,#24
0x08002D58 07F0 LSLS r0,r6,#31
0x08002D5A 03E0 LSLS r0,r4,#15
0x08002D5C 0000 MOVS r0,r0
0x08002D5E 0000 MOVS r0,r0
0x08002D60 0000 MOVS r0,r0
0x08002D62 0000 MOVS r0,r0
0x08002D64 0000 MOVS r0,r0
0x08002D66 0000 MOVS r0,r0
0x08002D68 0000 MOVS r0,r0
0x08002D6A 0000 MOVS r0,r0
0x08002D6C 0080 LSLS r0,r0,#2
0x08002D6E 00C0 LSLS r0,r0,#3
0x08002D70 00C0 LSLS r0,r0,#3
0x08002D72 00C0 LSLS r0,r0,#3
0x08002D74 07F0 LSLS r0,r6,#31
0x08002D76 07F0 LSLS r0,r6,#31
0x08002D78 00C0 LSLS r0,r0,#3
0x08002D7A 00C0 LSLS r0,r0,#3
0x08002D7C 00C0 LSLS r0,r0,#3
0x08002D7E 00C0 LSLS r0,r0,#3
0x08002D80 00C0 LSLS r0,r0,#3
0x08002D82 00C0 LSLS r0,r0,#3
0x08002D84 00C0 LSLS r0,r0,#3
0x08002D86 00C0 LSLS r0,r0,#3
0x08002D88 07C0 LSLS r0,r0,#31
0x08002D8A 0780 LSLS r0,r0,#30
0x08002D8C 0000 MOVS r0,r0
0x08002D8E 0000 MOVS r0,r0
0x08002D90 0000 MOVS r0,r0
0x08002D92 0000 MOVS r0,r0
0x08002D94 0000 MOVS r0,r0
0x08002D96 0000 MOVS r0,r0
0x08002D98 0000 MOVS r0,r0
0x08002D9A 0000 MOVS r0,r0
0x08002D9C 0000 MOVS r0,r0
0x08002D9E 0000 MOVS r0,r0
0x08002DA0 0000 MOVS r0,r0
0x08002DA2 0000 MOVS r0,r0
0x08002DA4 1818 ADDS r0,r3,r0
0x08002DA6 1818 ADDS r0,r3,r0
0x08002DA8 1818 ADDS r0,r3,r0
0x08002DAA 1818 ADDS r0,r3,r0
0x08002DAC 1818 ADDS r0,r3,r0
0x08002DAE 1818 ADDS r0,r3,r0
0x08002DB0 1818 ADDS r0,r3,r0
0x08002DB2 1818 ADDS r0,r3,r0
0x08002DB4 1818 ADDS r0,r3,r0
0x08002DB6 1C38 ADDS r0,r7,#0
0x08002DB8 1FF0 SUBS r0,r6,#7
0x08002DBA 19E0 ADDS r0,r4,r7
0x08002DBC 0000 MOVS r0,r0
0x08002DBE 0000 MOVS r0,r0
0x08002DC0 0000 MOVS r0,r0
0x08002DC2 0000 MOVS r0,r0
0x08002DC4 0000 MOVS r0,r0
0x08002DC6 0000 MOVS r0,r0
0x08002DC8 0000 MOVS r0,r0
0x08002DCA 0000 MOVS r0,r0
0x08002DCC 0000 MOVS r0,r0
0x08002DCE 0000 MOVS r0,r0
0x08002DD0 0000 MOVS r0,r0
0x08002DD2 0000 MOVS r0,r0
0x08002DD4 180C ADDS r4,r1,r0
0x08002DD6 0C18 LSRS r0,r3,#16
0x08002DD8 0C18 LSRS r0,r3,#16
0x08002DDA 0C18 LSRS r0,r3,#16
0x08002DDC 0630 LSLS r0,r6,#24
0x08002DDE 0630 LSLS r0,r6,#24
0x08002DE0 0630 LSLS r0,r6,#24
0x08002DE2 0360 LSLS r0,r4,#13
0x08002DE4 0360 LSLS r0,r4,#13
0x08002DE6 0360 LSLS r0,r4,#13
0x08002DE8 01C0 LSLS r0,r0,#7
0x08002DEA 01C0 LSLS r0,r0,#7
0x08002DEC 0000 MOVS r0,r0
0x08002DEE 0000 MOVS r0,r0
0x08002DF0 0000 MOVS r0,r0
0x08002DF2 0000 MOVS r0,r0
0x08002DF4 0000 MOVS r0,r0
0x08002DF6 0000 MOVS r0,r0
0x08002DF8 0000 MOVS r0,r0
0x08002DFA 0000 MOVS r0,r0
0x08002DFC 0000 MOVS r0,r0
0x08002DFE 0000 MOVS r0,r0
0x08002E00 0000 MOVS r0,r0
0x08002E02 0000 MOVS r0,r0
0x08002E04 41C1 RORS r1,r1,r0
0x08002E06 41C1 RORS r1,r1,r0
0x08002E08 61C3 STR r3,[r0,#0x1C]
0x08002E0A 6363 STR r3,[r4,#0x34]
0x08002E0C 6363 STR r3,[r4,#0x34]
0x08002E0E 6363 STR r3,[r4,#0x34]
0x08002E10 3636 ADDS r6,r6,#0x36
0x08002E12 3636 ADDS r6,r6,#0x36
0x08002E14 3636 ADDS r6,r6,#0x36
0x08002E16 1C1C ADDS r4,r3,#0
0x08002E18 1C1C ADDS r4,r3,#0
0x08002E1A 1C1C ADDS r4,r3,#0
0x08002E1C 0000 MOVS r0,r0
0x08002E1E 0000 MOVS r0,r0
0x08002E20 0000 MOVS r0,r0
0x08002E22 0000 MOVS r0,r0
0x08002E24 0000 MOVS r0,r0
0x08002E26 0000 MOVS r0,r0
0x08002E28 0000 MOVS r0,r0
0x08002E2A 0000 MOVS r0,r0
0x08002E2C 0000 MOVS r0,r0
0x08002E2E 0000 MOVS r0,r0
0x08002E30 0000 MOVS r0,r0
0x08002E32 0000 MOVS r0,r0
0x08002E34 381C SUBS r0,r0,#0x1C
0x08002E36 1C38 ADDS r0,r7,#0
0x08002E38 0C30 LSRS r0,r6,#16
0x08002E3A 0660 LSLS r0,r4,#25
0x08002E3C 0360 LSLS r0,r4,#13
0x08002E3E 0360 LSLS r0,r4,#13
0x08002E40 0360 LSLS r0,r4,#13
0x08002E42 0360 LSLS r0,r4,#13
0x08002E44 0660 LSLS r0,r4,#25
0x08002E46 0C30 LSRS r0,r6,#16
0x08002E48 1C38 ADDS r0,r7,#0
0x08002E4A 381C SUBS r0,r0,#0x1C
0x08002E4C 0000 MOVS r0,r0
0x08002E4E 0000 MOVS r0,r0
0x08002E50 0000 MOVS r0,r0
0x08002E52 0000 MOVS r0,r0
0x08002E54 0000 MOVS r0,r0
0x08002E56 0000 MOVS r0,r0
0x08002E58 0000 MOVS r0,r0
0x08002E5A 0000 MOVS r0,r0
0x08002E5C 0000 MOVS r0,r0
0x08002E5E 0000 MOVS r0,r0
0x08002E60 0000 MOVS r0,r0
0x08002E62 0000 MOVS r0,r0
0x08002E64 3018 ADDS r0,r0,#0x18
0x08002E66 1830 ADDS r0,r6,r0
0x08002E68 1830 ADDS r0,r6,r0
0x08002E6A 1870 ADDS r0,r6,r1
0x08002E6C 0C60 LSRS r0,r4,#17
0x08002E6E 0C60 LSRS r0,r4,#17
0x08002E70 0CE0 LSRS r0,r4,#19
0x08002E72 06C0 LSLS r0,r0,#27
0x08002E74 06C0 LSLS r0,r0,#27
0x08002E76 0380 LSLS r0,r0,#14
0x08002E78 0380 LSLS r0,r0,#14
0x08002E7A 0380 LSLS r0,r0,#14
0x08002E7C 0180 LSLS r0,r0,#6
0x08002E7E 0180 LSLS r0,r0,#6
0x08002E80 01C0 LSLS r0,r0,#7
0x08002E82 00F0 LSLS r0,r6,#3
0x08002E84 0070 LSLS r0,r6,#1
0x08002E86 0000 MOVS r0,r0
0x08002E88 0000 MOVS r0,r0
0x08002E8A 0000 MOVS r0,r0
0x08002E8C 0000 MOVS r0,r0
0x08002E8E 0000 MOVS r0,r0
0x08002E90 0000 MOVS r0,r0
0x08002E92 0000 MOVS r0,r0
0x08002E94 1FFC SUBS r4,r7,#7
0x08002E96 1FFC SUBS r4,r7,#7
0x08002E98 0C00 LSRS r0,r0,#16
0x08002E9A 0600 LSLS r0,r0,#24
0x08002E9C 0300 LSLS r0,r0,#12
0x08002E9E 0180 LSLS r0,r0,#6
0x08002EA0 00C0 LSLS r0,r0,#3
0x08002EA2 0060 LSLS r0,r4,#1
0x08002EA4 0030 MOVS r0,r6
0x08002EA6 0018 MOVS r0,r3
0x08002EA8 1FFC SUBS r4,r7,#7
0x08002EAA 1FFC SUBS r4,r7,#7
0x08002EAC 0000 MOVS r0,r0
0x08002EAE 0000 MOVS r0,r0
0x08002EB0 0000 MOVS r0,r0
0x08002EB2 0000 MOVS r0,r0
0x08002EB4 0000 MOVS r0,r0
0x08002EB6 0000 MOVS r0,r0
0x08002EB8 0000 MOVS r0,r0
0x08002EBA 0300 LSLS r0,r0,#12
0x08002EBC 0180 LSLS r0,r0,#6
0x08002EBE 00C0 LSLS r0,r0,#3
0x08002EC0 00C0 LSLS r0,r0,#3
0x08002EC2 00C0 LSLS r0,r0,#3
0x08002EC4 00C0 LSLS r0,r0,#3
0x08002EC6 00C0 LSLS r0,r0,#3
0x08002EC8 00C0 LSLS r0,r0,#3
0x08002ECA 0060 LSLS r0,r4,#1
0x08002ECC 0060 LSLS r0,r4,#1
0x08002ECE 0030 MOVS r0,r6
0x08002ED0 0060 LSLS r0,r4,#1
0x08002ED2 0040 LSLS r0,r0,#1
0x08002ED4 00C0 LSLS r0,r0,#3
0x08002ED6 00C0 LSLS r0,r0,#3
0x08002ED8 00C0 LSLS r0,r0,#3
0x08002EDA 00C0 LSLS r0,r0,#3
0x08002EDC 00C0 LSLS r0,r0,#3
0x08002EDE 00C0 LSLS r0,r0,#3
0x08002EE0 0180 LSLS r0,r0,#6
0x08002EE2 0300 LSLS r0,r0,#12
0x08002EE4 0000 MOVS r0,r0
0x08002EE6 0000 MOVS r0,r0
0x08002EE8 0000 MOVS r0,r0
0x08002EEA 0180 LSLS r0,r0,#6
0x08002EEC 0180 LSLS r0,r0,#6
0x08002EEE 0180 LSLS r0,r0,#6
0x08002EF0 0180 LSLS r0,r0,#6
0x08002EF2 0180 LSLS r0,r0,#6
0x08002EF4 0180 LSLS r0,r0,#6
0x08002EF6 0180 LSLS r0,r0,#6
0x08002EF8 0180 LSLS r0,r0,#6
0x08002EFA 0180 LSLS r0,r0,#6
0x08002EFC 0180 LSLS r0,r0,#6
0x08002EFE 0180 LSLS r0,r0,#6
0x08002F00 0180 LSLS r0,r0,#6
0x08002F02 0180 LSLS r0,r0,#6
0x08002F04 0180 LSLS r0,r0,#6
0x08002F06 0180 LSLS r0,r0,#6
0x08002F08 0180 LSLS r0,r0,#6
0x08002F0A 0180 LSLS r0,r0,#6
0x08002F0C 0180 LSLS r0,r0,#6
0x08002F0E 0180 LSLS r0,r0,#6
0x08002F10 0180 LSLS r0,r0,#6
0x08002F12 0180 LSLS r0,r0,#6
0x08002F14 0180 LSLS r0,r0,#6
0x08002F16 0000 MOVS r0,r0
0x08002F18 0000 MOVS r0,r0
0x08002F1A 0060 LSLS r0,r4,#1
0x08002F1C 00C0 LSLS r0,r0,#3
0x08002F1E 01C0 LSLS r0,r0,#7
0x08002F20 0180 LSLS r0,r0,#6
0x08002F22 0180 LSLS r0,r0,#6
0x08002F24 0180 LSLS r0,r0,#6
0x08002F26 0180 LSLS r0,r0,#6
0x08002F28 0180 LSLS r0,r0,#6
0x08002F2A 0300 LSLS r0,r0,#12
0x08002F2C 0300 LSLS r0,r0,#12
0x08002F2E 0600 LSLS r0,r0,#24
0x08002F30 0300 LSLS r0,r0,#12
0x08002F32 0100 LSLS r0,r0,#4
0x08002F34 0180 LSLS r0,r0,#6
0x08002F36 0180 LSLS r0,r0,#6
0x08002F38 0180 LSLS r0,r0,#6
0x08002F3A 0180 LSLS r0,r0,#6
0x08002F3C 0180 LSLS r0,r0,#6
0x08002F3E 0180 LSLS r0,r0,#6
0x08002F40 00C0 LSLS r0,r0,#3
0x08002F42 0060 LSLS r0,r4,#1
0x08002F44 0000 MOVS r0,r0
0x08002F46 0000 MOVS r0,r0
0x08002F48 0000 MOVS r0,r0
0x08002F4A 0000 MOVS r0,r0
0x08002F4C 0000 MOVS r0,r0
0x08002F4E 0000 MOVS r0,r0
0x08002F50 0000 MOVS r0,r0
0x08002F52 0000 MOVS r0,r0
0x08002F54 0000 MOVS r0,r0
0x08002F56 0000 MOVS r0,r0
0x08002F58 10F0 ASRS r0,r6,#3
0x08002F5A 1FF8 SUBS r0,r7,#7
0x08002F5C 0F08 LSRS r0,r1,#28
0x08002F5E 0000 MOVS r0,r0
0x08002F60 0000 MOVS r0,r0
0x08002F62 0000 MOVS r0,r0
0x08002F64 0000 MOVS r0,r0
0x08002F66 0000 MOVS r0,r0
0x08002F68 0000 MOVS r0,r0
0x08002F6A 0000 MOVS r0,r0
0x08002F6C 0000 MOVS r0,r0
0x08002F6E 0000 MOVS r0,r0
0x08002F70 0000 MOVS r0,r0
0x08002F72 0000 MOVS r0,r0
0x08002F74 0000 MOVS r0,r0
0x08002F76 0000 MOVS r0,r0
0x08002F78 0000 MOVS r0,r0
0x08002F7A 0000 MOVS r0,r0
0x08002F7C 0000 MOVS r0,r0
0x08002F7E 0000 MOVS r0,r0
0x08002F80 0000 MOVS r0,r0
0x08002F82 0000 MOVS r0,r0
0x08002F84 0000 MOVS r0,r0
0x08002F86 0000 MOVS r0,r0
0x08002F88 0000 MOVS r0,r0
0x08002F8A 0000 MOVS r0,r0
0x08002F8C 0000 MOVS r0,r0
0x08002F8E 0000 MOVS r0,r0
0x08002F90 0000 MOVS r0,r0
0x08002F92 0000 MOVS r0,r0
0x08002F94 0000 MOVS r0,r0
0x08002F96 0000 MOVS r0,r0
0x08002F98 0000 MOVS r0,r0
0x08002F9A 0000 MOVS r0,r0
0x08002F9C 0000 MOVS r0,r0
0x08002F9E 0000 MOVS r0,r0
0x08002FA0 0000 MOVS r0,r0
0x08002FA2 0000 MOVS r0,r0
0x08002FA4 0000 MOVS r0,r0
0x08002FA6 0000 MOVS r0,r0
0x08002FA8 0000 MOVS r0,r0
0x08002FAA 0000 MOVS r0,r0
0x08002FAC 0000 MOVS r0,r0
0x08002FAE 0000 MOVS r0,r0
0x08002FB0 0000 MOVS r0,r0
0x08002FB2 0000 MOVS r0,r0
0x08002FB4 0000 MOVS r0,r0
0x08002FB6 03C0 LSLS r0,r0,#15
0x08002FB8 0FF0 LSRS r0,r6,#31
0x08002FBA 0C30 LSRS r0,r6,#16
0x08002FBC 1818 ADDS r0,r3,r0
0x08002FBE 1818 ADDS r0,r3,r0
0x08002FC0 1818 ADDS r0,r3,r0
0x08002FC2 1818 ADDS r0,r3,r0
0x08002FC4 0C30 LSRS r0,r6,#16
0x08002FC6 0FF0 LSRS r0,r6,#31
0x08002FC8 03C0 LSLS r0,r0,#15
0x08002FCA 0000 MOVS r0,r0
0x08002FCC 0000 MOVS r0,r0
0x08002FCE 0000 MOVS r0,r0
0x08002FD0 0000 MOVS r0,r0
0x08002FD2 0000 MOVS r0,r0
0x08002FD4 0000 MOVS r0,r0
0x08002FD6 0000 MOVS r0,r0
0x08002FD8 0000 MOVS r0,r0
0x08002FDA 0000 MOVS r0,r0
0x08002FDC 0000 MOVS r0,r0
0x08002FDE 0000 MOVS r0,r0
0x08002FE0 0000 MOVS r0,r0
0x08002FE2 0000 MOVS r0,r0
0x08002FE4 0000 MOVS r0,r0
0x08002FE6 03C0 LSLS r0,r0,#15
0x08002FE8 0FF0 LSRS r0,r6,#31
0x08002FEA 0FF0 LSRS r0,r6,#31
0x08002FEC 1FF8 SUBS r0,r7,#7
0x08002FEE 1FF8 SUBS r0,r7,#7
0x08002FF0 1FF8 SUBS r0,r7,#7
0x08002FF2 1FF8 SUBS r0,r7,#7
0x08002FF4 0FF0 LSRS r0,r6,#31
0x08002FF6 0FF0 LSRS r0,r6,#31
0x08002FF8 03C0 LSLS r0,r0,#15
0x08002FFA 0000 MOVS r0,r0
0x08002FFC 0000 MOVS r0,r0
0x08002FFE 0000 MOVS r0,r0
0x08003000 0000 MOVS r0,r0
0x08003002 0000 MOVS r0,r0
0x08003004 0000 MOVS r0,r0
0x08003006 0000 MOVS r0,r0
0x08003008 0000 MOVS r0,r0
0x0800300A 0000 MOVS r0,r0
0x0800300C 0000 MOVS r0,r0
0x0800300E 0000 MOVS r0,r0
0x08003010 0000 MOVS r0,r0
0x08003012 0000 MOVS r0,r0
0x08003014 0000 MOVS r0,r0
0x08003016 07E0 LSLS r0,r4,#31
0x08003018 0FF0 LSRS r0,r6,#31
0x0800301A 1818 ADDS r0,r3,r0
0x0800301C 1818 ADDS r0,r3,r0
0x0800301E 1818 ADDS r0,r3,r0
0x08003020 1818 ADDS r0,r3,r0
0x08003022 1818 ADDS r0,r3,r0
0x08003024 1818 ADDS r0,r3,r0
0x08003026 0FF0 LSRS r0,r6,#31
0x08003028 07E0 LSLS r0,r4,#31
0x0800302A 0000 MOVS r0,r0
0x0800302C 0000 MOVS r0,r0
0x0800302E 0000 MOVS r0,r0
0x08003030 0000 MOVS r0,r0
0x08003032 0000 MOVS r0,r0
0x08003034 0000 MOVS r0,r0
0x08003036 0000 MOVS r0,r0
0x08003038 0000 MOVS r0,r0
0x0800303A 0000 MOVS r0,r0
0x0800303C 0000 MOVS r0,r0
0x0800303E 0000 MOVS r0,r0
0x08003040 0000 MOVS r0,r0
0x08003042 0000 MOVS r0,r0
0x08003044 0000 MOVS r0,r0
0x08003046 07E0 LSLS r0,r4,#31
0x08003048 0FF0 LSRS r0,r6,#31
0x0800304A 1FF8 SUBS r0,r7,#7
0x0800304C 1FF8 SUBS r0,r7,#7
0x0800304E 1FF8 SUBS r0,r7,#7
0x08003050 1FF8 SUBS r0,r7,#7
0x08003052 1FF8 SUBS r0,r7,#7
0x08003054 1FF8 SUBS r0,r7,#7
0x08003056 0FF0 LSRS r0,r6,#31
0x08003058 07E0 LSLS r0,r4,#31
0x0800305A 0000 MOVS r0,r0
0x0800305C 0000 MOVS r0,r0
0x0800305E 0000 MOVS r0,r0
0x08003060 0000 MOVS r0,r0
0x08003062 0000 MOVS r0,r0
0x08003064 0000 MOVS r0,r0
0x08003066 0000 MOVS r0,r0
0x08003068 0000 MOVS r0,r0
0x0800306A 0000 MOVS r0,r0
0x0800306C 0000 MOVS r0,r0
0x0800306E 0000 MOVS r0,r0
0x08003070 0000 MOVS r0,r0
0x08003072 0000 MOVS r0,r0
0x08003074 0000 MOVS r0,r0
0x08003076 0000 MOVS r0,r0
0x08003078 0000 MOVS r0,r0
0x0800307A 0000 MOVS r0,r0
0x0800307C 0000 MOVS r0,r0
0x0800307E 0000 MOVS r0,r0
0x08003080 0180 LSLS r0,r0,#6
0x08003082 03C0 LSLS r0,r0,#15
0x08003084 0660 LSLS r0,r4,#25
0x08003086 0C30 LSRS r0,r6,#16
0x08003088 1818 ADDS r0,r3,r0
0x0800308A 1818 ADDS r0,r3,r0
0x0800308C 1FF8 SUBS r0,r7,#7
0x0800308E 1FF8 SUBS r0,r7,#7
0x08003090 0000 MOVS r0,r0
0x08003092 0000 MOVS r0,r0
0x08003094 0000 MOVS r0,r0
0x08003096 0000 MOVS r0,r0
0x08003098 0000 MOVS r0,r0
0x0800309A 0000 MOVS r0,r0
0x0800309C 0000 MOVS r0,r0
0x0800309E 0000 MOVS r0,r0
0x080030A0 0000 MOVS r0,r0
0x080030A2 0000 MOVS r0,r0
0x080030A4 0000 MOVS r0,r0
0x080030A6 0000 MOVS r0,r0
0x080030A8 0000 MOVS r0,r0
0x080030AA 0000 MOVS r0,r0
0x080030AC 0000 MOVS r0,r0
0x080030AE 0000 MOVS r0,r0
0x080030B0 0180 LSLS r0,r0,#6
0x080030B2 03C0 LSLS r0,r0,#15
0x080030B4 07E0 LSLS r0,r4,#31
0x080030B6 0FF0 LSRS r0,r6,#31
0x080030B8 1FF8 SUBS r0,r7,#7
0x080030BA 1FF8 SUBS r0,r7,#7
0x080030BC 1FF8 SUBS r0,r7,#7
0x080030BE 1FF8 SUBS r0,r7,#7
0x080030C0 0000 MOVS r0,r0
0x080030C2 0000 MOVS r0,r0
0x080030C4 0000 MOVS r0,r0
0x080030C6 0000 MOVS r0,r0
0x080030C8 0000 MOVS r0,r0
0x080030CA 0000 MOVS r0,r0
0x080030CC 0000 MOVS r0,r0
0x080030CE 0000 MOVS r0,r0
0x080030D0 1FF8 SUBS r0,r7,#7
0x080030D2 1FF8 SUBS r0,r7,#7
0x080030D4 1818 ADDS r0,r3,r0
0x080030D6 1818 ADDS r0,r3,r0
0x080030D8 0C30 LSRS r0,r6,#16
0x080030DA 0660 LSLS r0,r4,#25
0x080030DC 03C0 LSLS r0,r0,#15
0x080030DE 0180 LSLS r0,r0,#6
0x080030E0 0000 MOVS r0,r0
0x080030E2 0000 MOVS r0,r0
0x080030E4 0000 MOVS r0,r0
0x080030E6 0000 MOVS r0,r0
0x080030E8 0000 MOVS r0,r0
0x080030EA 0000 MOVS r0,r0
0x080030EC 0000 MOVS r0,r0
0x080030EE 0000 MOVS r0,r0
0x080030F0 0000 MOVS r0,r0
0x080030F2 0000 MOVS r0,r0
0x080030F4 0000 MOVS r0,r0
0x080030F6 0000 MOVS r0,r0
0x080030F8 0000 MOVS r0,r0
0x080030FA 0000 MOVS r0,r0
0x080030FC 0000 MOVS r0,r0
0x080030FE 0000 MOVS r0,r0
0x08003100 1FF8 SUBS r0,r7,#7
0x08003102 1FF8 SUBS r0,r7,#7
0x08003104 1FF8 SUBS r0,r7,#7
0x08003106 1FF8 SUBS r0,r7,#7
0x08003108 0FF0 LSRS r0,r6,#31
0x0800310A 07E0 LSLS r0,r4,#31
0x0800310C 03C0 LSLS r0,r0,#15
0x0800310E 0180 LSLS r0,r0,#6
0x08003110 0000 MOVS r0,r0
0x08003112 0000 MOVS r0,r0
0x08003114 0000 MOVS r0,r0
0x08003116 0000 MOVS r0,r0
0x08003118 0000 MOVS r0,r0
0x0800311A 0000 MOVS r0,r0
0x0800311C 0000 MOVS r0,r0
0x0800311E 0000 MOVS r0,r0
0x08003120 0000 MOVS r0,r0
0x08003122 0000 MOVS r0,r0
0x08003124 0000 MOVS r0,r0
0x08003126 0000 MOVS r0,r0
0x08003128 0000 MOVS r0,r0
0x0800312A 0000 MOVS r0,r0
0x0800312C 0000 MOVS r0,r0
0x0800312E 0000 MOVS r0,r0
0x08003130 0000 MOVS r0,r0
0x08003132 0000 MOVS r0,r0
0x08003134 0000 MOVS r0,r0
0x08003136 01E0 LSLS r0,r4,#7
0x08003138 01F0 LSLS r0,r6,#7
0x0800313A 0198 LSLS r0,r3,#6
0x0800313C 018C LSLS r4,r1,#6
0x0800313E 0186 LSLS r6,r0,#6
0x08003140 0186 LSLS r6,r0,#6
0x08003142 018C LSLS r4,r1,#6
0x08003144 0198 LSLS r0,r3,#6
0x08003146 01F0 LSLS r0,r6,#7
0x08003148 01E0 LSLS r0,r4,#7
0x0800314A 0000 MOVS r0,r0
0x0800314C 0000 MOVS r0,r0
0x0800314E 0000 MOVS r0,r0
0x08003150 0000 MOVS r0,r0
0x08003152 0000 MOVS r0,r0
0x08003154 0000 MOVS r0,r0
0x08003156 0000 MOVS r0,r0
0x08003158 0000 MOVS r0,r0
0x0800315A 0000 MOVS r0,r0
0x0800315C 0000 MOVS r0,r0
0x0800315E 0000 MOVS r0,r0
0x08003160 0000 MOVS r0,r0
0x08003162 0000 MOVS r0,r0
0x08003164 0000 MOVS r0,r0
0x08003166 01E0 LSLS r0,r4,#7
0x08003168 01F0 LSLS r0,r6,#7
0x0800316A 01F8 LSLS r0,r7,#7
0x0800316C 01FC LSLS r4,r7,#7
0x0800316E 01FE LSLS r6,r7,#7
0x08003170 01FE LSLS r6,r7,#7
0x08003172 01FC LSLS r4,r7,#7
0x08003174 01F8 LSLS r0,r7,#7
0x08003176 01F0 LSLS r0,r6,#7
0x08003178 01E0 LSLS r0,r4,#7
0x0800317A 0000 MOVS r0,r0
0x0800317C 0000 MOVS r0,r0
0x0800317E 0000 MOVS r0,r0
0x08003180 0000 MOVS r0,r0
0x08003182 0000 MOVS r0,r0
0x08003184 0000 MOVS r0,r0
0x08003186 0000 MOVS r0,r0
0x08003188 0000 MOVS r0,r0
0x0800318A 0000 MOVS r0,r0
0x0800318C 0000 MOVS r0,r0
0x0800318E 0000 MOVS r0,r0
0x08003190 0000 MOVS r0,r0
0x08003192 0000 MOVS r0,r0
0x08003194 0000 MOVS r0,r0
0x08003196 0780 LSLS r0,r0,#30
0x08003198 0F80 LSRS r0,r0,#30
0x0800319A 1980 ADDS r0,r0,r6
0x0800319C 3180 ADDS r1,r1,#0x80
0x0800319E 6180 STR r0,[r0,#0x18]
0x080031A0 6180 STR r0,[r0,#0x18]
0x080031A2 3180 ADDS r1,r1,#0x80
0x080031A4 1980 ADDS r0,r0,r6
0x080031A6 0F80 LSRS r0,r0,#30
0x080031A8 0780 LSLS r0,r0,#30
0x080031AA 0000 MOVS r0,r0
0x080031AC 0000 MOVS r0,r0
0x080031AE 0000 MOVS r0,r0
0x080031B0 0000 MOVS r0,r0
0x080031B2 0000 MOVS r0,r0
0x080031B4 0000 MOVS r0,r0
0x080031B6 0000 MOVS r0,r0
0x080031B8 0000 MOVS r0,r0
0x080031BA 0000 MOVS r0,r0
0x080031BC 0000 MOVS r0,r0
0x080031BE 0000 MOVS r0,r0
0x080031C0 0000 MOVS r0,r0
0x080031C2 0000 MOVS r0,r0
0x080031C4 0000 MOVS r0,r0
0x080031C6 0780 LSLS r0,r0,#30
0x080031C8 0F80 LSRS r0,r0,#30
0x080031CA 1F80 SUBS r0,r0,#6
0x080031CC 3F80 SUBS r7,r7,#0x80
0x080031CE 7F80 LDRB r0,[r0,#0x1E]
0x080031D0 7F80 LDRB r0,[r0,#0x1E]
0x080031D2 3F80 SUBS r7,r7,#0x80
0x080031D4 1F80 SUBS r0,r0,#6
0x080031D6 0F80 LSRS r0,r0,#30
0x080031D8 0780 LSLS r0,r0,#30
0x080031DA 0000 MOVS r0,r0
0x080031DC 0000 MOVS r0,r0
0x080031DE 0000 MOVS r0,r0
0x080031E0 0000 MOVS r0,r0
0x080031E2 0000 MOVS r0,r0
0x080031E4 0000 MOVS r0,r0
0x080031E6 0000 MOVS r0,r0
0x080031E8 4D42 LDR r5,[pc,#264] ; @0x080032F4
0x080031EA 03FE LSLS r6,r7,#15
0x080031EC 0000 MOVS r0,r0
0x080031EE 0000 MOVS r0,r0
0x080031F0 0000 MOVS r0,r0
0x080031F2 003E MOVS r6,r7
0x080031F4 0000 MOVS r0,r0
0x080031F6 0028 MOVS r0,r5
0x080031F8 0000 MOVS r0,r0
0x080031FA 00A0 LSLS r0,r4,#2
0x080031FC 0000 MOVS r0,r0
0x080031FE 0030 MOVS r0,r6
0x08003200 0000 MOVS r0,r0
0x08003202 0001 MOVS r1,r0
0x08003204 0001 MOVS r1,r0
0x08003206 0000 MOVS r0,r0
0x08003208 0000 MOVS r0,r0
0x0800320A 03C0 LSLS r0,r0,#15
0x0800320C 0000 MOVS r0,r0
0x0800320E 0EC4 LSRS r4,r0,#27
0x08003210 0000 MOVS r0,r0
0x08003212 0EC4 LSRS r4,r0,#27
0x08003214 0000 MOVS r0,r0
0x08003216 0000 MOVS r0,r0
0x08003218 0000 MOVS r0,r0
0x0800321A 0000 MOVS r0,r0
0x0800321C 0000 MOVS r0,r0
0x0800321E 0000 MOVS r0,r0
0x08003220 0000 MOVS r0,r0
0x08003222 FFFF00FF DCD 0xFFFF00FF ; ? Undefined
0x08003226 0000 MOVS r0,r0
0x08003228 0000 MOVS r0,r0
0x0800322A 0000 MOVS r0,r0
0x0800322C 0000 MOVS r0,r0
0x0800322E 0000 MOVS r0,r0
0x08003230 0000 MOVS r0,r0
0x08003232 0000 MOVS r0,r0
0x08003234 0000 MOVS r0,r0
0x08003236 0002 MOVS r2,r0
0x08003238 0000 MOVS r0,r0
0x0800323A 0000 MOVS r0,r0
0x0800323C 0000 MOVS r0,r0
0x0800323E 0000 MOVS r0,r0
0x08003240 0000 MOVS r0,r0
0x08003242 0000 MOVS r0,r0
0x08003244 0000 MOVS r0,r0
0x08003246 0000 MOVS r0,r0
0x08003248 0000 MOVS r0,r0
0x0800324A 0002 MOVS r2,r0
0x0800324C 0002 MOVS r2,r0
0x0800324E 0000 MOVS r0,r0
0x08003250 0000 MOVS r0,r0
0x08003252 0000 MOVS r0,r0
0x08003254 0000 MOVS r0,r0
0x08003256 0000 MOVS r0,r0
0x08003258 0000 MOVS r0,r0
0x0800325A 0000 MOVS r0,r0
0x0800325C 0000 MOVS r0,r0
0x0800325E 0002 MOVS r2,r0
0x08003260 0001 MOVS r1,r0
0x08003262 7F08 LDRB r0,[r1,#0x1C]
0x08003264 FFFFFFFF DCD 0xFFFFFFFF ; ? Undefined
0x08003268 82C0 STRH r0,[r0,#0x16]
0x0800326A 4148 ADCS r0,r0,r1
0x0800326C 4122 ASRS r2,r2,r4
0x0800326E 0100 LSLS r0,r0,#4
0x08003270 C4E1 STM r4!,{r0,r5-r7}
0x08003272 8F93 LDRH r3,[r2,#0x3C]
0x08003274 8048 STRH r0,[r1,#0x02]
0x08003276 3F0C SUBS r7,r7,#0x0C
0x08003278 FFFFFFFF DCD 0xFFFFFFFF ; ? Undefined
0x0800327C 82C0 STRH r0,[r0,#0x16]
0x0800327E 4148 ADCS r0,r0,r1
0x08003280 4124 ASRS r4,r4,r4
0x08003282 0200 LSLS r0,r0,#8
0x08003284 2412 MOVS r4,#0x12
0x08003286 4A92 LDR r2,[pc,#584] ; @0x080034D0
0x08003288 8048 STRH r0,[r1,#0x02]
0x0800328A 1F0E SUBS r6,r1,#4
0x0800328C FFFFFFFF DCD 0xFFFFFFFF ; ? Undefined
0x08003290 7CC0 LDRB r0,[r0,#0x13]
0x08003292 3E48 SUBS r6,r6,#0x48
0x08003294 4128 ASRS r0,r0,r5
0x08003296 0400 LSLS r0,r0,#16
0x08003298 2402 MOVS r4,#0x02
0x0800329A 4A92 LDR r2,[pc,#584] ; @0x080034E4
0x0800329C 8048 STRH r0,[r1,#0x02]
0x0800329E 0F0F LSRS r7,r1,#28
0x080032A0 0000 MOVS r0,r0
0x080032A2 0100 LSLS r0,r0,#4
0x080032A4 44C0 ADD r8,r8,r8
0x080032A6 2248 MOVS r2,#0x48
0x080032A8 413C ASRS r4,r4,r7
0x080032AA 041E LSLS r6,r3,#16
0x080032AC 2402 MOVS r4,#0x02
0x080032AE 4692 MOV r10,r2
0x080032B0 4049 EORS r1,r1,r1
0x080032B2 870F STRH r7,[r1,#0x38]
0x080032B4 0080 LSLS r0,r0,#2
0x080032B6 0100 LSLS r0,r0,#4
0x080032B8 28C0 CMP r0,#0xC0
0x080032BA 1468 ASRS r0,r5,#17
0x080032BC 4922 LDR r1,[pc,#136] ; @0x08003348
0x080032BE 0421 LSLS r1,r4,#16
0x080032C0 2602 MOVS r6,#0x02
0x080032C2 42D2 CMN r2,r2
0x080032C4 4069 EORS r1,r1,r5
0x080032C6 C30F STM r3!,{r0-r3}
0x080032C8 00C0 LSLS r0,r0,#3
0x080032CA 0100 LSLS r0,r0,#4
0x080032CC 28C0 CMP r0,#0xC0
0x080032CE 1450 ASRS r0,r2,#17
0x080032D0 5522 STRB r2,[r4,r4]
0x080032D2 8452 STRH r2,[r2,#0x22]
0x080032D4 C501 STM r5!,{r0}
0x080032D6 8EA3 LDRH r3,[r4,#0x34]
0x080032D8 2052 MOVS r0,#0x52
0x080032DA E10F B 0x080034FC
0x080032DC 00E0 LSLS r0,r4,#3
0x080032DE 0100 LSLS r0,r0,#4
0x080032E0 10C0 ASRS r0,r0,#3
0x080032E2 0800 LSRS r0,r0,#0
0x080032E4 6322 STR r2,[r4,#0x30]
0x080032E6 825C STRH r4,[r3,#0x12]
0x080032E8 0010 MOVS r0,r2
0x080032EA 0000 MOVS r0,r0
0x080032EC 0000 MOVS r0,r0
0x080032EE F00E00F0 AND r0,lr,#0xF0
0x080032F2 0100 LSLS r0,r0,#4
0x080032F4 10C0 ASRS r0,r0,#3
0x080032F6 0800 LSRS r0,r0,#0
0x080032F8 413C ASRS r4,r4,r7
0x080032FA 8152 STRH r2,[r2,#0x0A]
0x080032FC 00E0 LSLS r0,r4,#3
0x080032FE 0000 MOVS r0,r0
0x08003300 0000 MOVS r0,r0
0x08003302 780E LDRB r6,[r1,#0x00]
0x08003304 0078 LSLS r0,r7,#1
0x08003306 0100 LSLS r0,r0,#4
0x08003308 00C0 LSLS r0,r0,#3
0x0800330A 0000 MOVS r0,r0
0x0800330C 0000 MOVS r0,r0
0x0800330E 805C STRH r4,[r3,#0x02]
0x08003310 0000 MOVS r0,r0
0x08003312 0000 MOVS r0,r0
0x08003314 0000 MOVS r0,r0
0x08003316 3C0E SUBS r4,r4,#0x0E
0x08003318 003C MOVS r4,r7
0x0800331A 0100 LSLS r0,r0,#4
0x0800331C 00C0 LSLS r0,r0,#3
0x0800331E 0000 MOVS r0,r0
0x08003320 0000 MOVS r0,r0
0x08003322 0021 MOVS r1,r4
0x08003324 0000 MOVS r0,r0
0x08003326 0000 MOVS r0,r0
0x08003328 0000 MOVS r0,r0
0x0800332A 1E0E SUBS r6,r1,#0
0x0800332C 001E MOVS r6,r3
0x0800332E 0100 LSLS r0,r0,#4
0x08003330 00C0 LSLS r0,r0,#3
0x08003332 0000 MOVS r0,r0
0x08003334 0000 MOVS r0,r0
0x08003336 001E MOVS r6,r3
0x08003338 0000 MOVS r0,r0
0x0800333A 0000 MOVS r0,r0
0x0800333C 0000 MOVS r0,r0
0x0800333E 0F0E LSRS r6,r1,#28
0x08003340 000F MOVS r7,r1
0x08003342 0100 LSLS r0,r0,#4
0x08003344 00C0 LSLS r0,r0,#3
0x08003346 0000 MOVS r0,r0
0x08003348 0000 MOVS r0,r0
0x0800334A 0000 MOVS r0,r0
0x0800334C 0000 MOVS r0,r0
0x0800334E 0000 MOVS r0,r0
0x08003350 0000 MOVS r0,r0
0x08003352 070E LSLS r6,r1,#28
0x08003354 8087 STRH r7,[r0,#0x04]
0x08003356 0100 LSLS r0,r0,#4
0x08003358 00C0 LSLS r0,r0,#3
0x0800335A 0000 MOVS r0,r0
0x0800335C 0000 MOVS r0,r0
0x0800335E 0000 MOVS r0,r0
0x08003360 0000 MOVS r0,r0
0x08003362 0000 MOVS r0,r0
0x08003364 0000 MOVS r0,r0
0x08003366 030E LSLS r6,r1,#12
0x08003368 C0C3 STM r0!,{r0-r1,r6-r7}
0x0800336A 0100 LSLS r0,r0,#4
0x0800336C 00C0 LSLS r0,r0,#3
0x0800336E 0000 MOVS r0,r0
0x08003370 0000 MOVS r0,r0
0x08003372 0000 MOVS r0,r0
0x08003374 0000 MOVS r0,r0
0x08003376 0000 MOVS r0,r0
0x08003378 0000 MOVS r0,r0
0x0800337A 010E LSLS r6,r1,#4
0x0800337C E0E1 B 0x08003542
0x0800337E 0100 LSLS r0,r0,#4
0x08003380 00C0 LSLS r0,r0,#3
0x08003382 0000 MOVS r0,r0
0x08003384 0000 MOVS r0,r0
0x08003386 0000 MOVS r0,r0
0x08003388 0000 MOVS r0,r0
0x0800338A 0000 MOVS r0,r0
0x0800338C 0000 MOVS r0,r0
0x0800338E 000E MOVS r6,r1
0x08003390 F0F00100
0x08003394 FFC00380 DCD 0xFFC00380 ; ? Undefined
0x08003398 3FFF SUBS r7,r7,#0xFF
0x0800339A FFFFFE03 DCD 0xFFFFFE03 ; ? Undefined
0x0800339E FF07E0FF DCD 0xFF07E0FF ; ? Undefined
0x080033A2 000E MOVS r6,r1
0x080033A4 7878 LDRB r0,[r7,#0x01]
0x080033A6 0100 LSLS r0,r0,#4
0x080033A8 FFC00780 DCD 0xFFC00780 ; ? Undefined
0x080033AC 3FFE SUBS r7,r7,#0xFE
0x080033AE FFFFFE03 DCD 0xFFFFFE03 ; ? Undefined
0x080033B2 FF07E0FF DCD 0xFF07E0FF ; ? Undefined
0x080033B6 000E MOVS r6,r1
0x080033B8 3C3C SUBS r4,r4,#0x3C
0x080033BA 0100 LSLS r0,r0,#4
0x080033BC FFC00F80 DCD 0xFFC00F80 ; ? Undefined
0x080033C0 3FFC SUBS r7,r7,#0xFC
0x080033C2 FFFFFE03 DCD 0xFFFFFE03 ; ? Undefined
0x080033C6 FF07E0FF DCD 0xFF07E0FF ; ? Undefined
0x080033CA 000E MOVS r6,r1
0x080033CC 1E1E SUBS r6,r3,#0
0x080033CE 0100 LSLS r0,r0,#4
0x080033D0 FFC01F80 DCD 0xFFC01F80 ; ? Undefined
0x080033D4 3FF8 SUBS r7,r7,#0xF8
0x080033D6 FFFFFE03 DCD 0xFFFFFE03 ; ? Undefined
0x080033DA FF07E0FF DCD 0xFF07E0FF ; ? Undefined
0x080033DE 000E MOVS r6,r1
0x080033E0 0F0F LSRS r7,r1,#28
0x080033E2 0100 LSLS r0,r0,#4
0x080033E4 FFC03F80 DCD 0xFFC03F80 ; ? Undefined
0x080033E8 3FF0 SUBS r7,r7,#0xF0
0x080033EA FFFFFE03 DCD 0xFFFFFE03 ; ? Undefined
0x080033EE FF07E0FF DCD 0xFF07E0FF ; ? Undefined
0x080033F2 000E MOVS r6,r1
0x080033F4 8707 STRH r7,[r0,#0x38]
0x080033F6 0180 LSLS r0,r0,#6
0x080033F8 FFC07F80 DCD 0xFFC07F80 ; ? Undefined
0x080033FC 3FE0 SUBS r7,r7,#0xE0
0x080033FE FFFFFE03 DCD 0xFFFFFE03 ; ? Undefined
0x08003402 FF07E0FF DCD 0xFF07E0FF ; ? Undefined
0x08003406 000E MOVS r6,r1
0x08003408 C303 STM r3!,{r0-r1}
0x0800340A 01C0 LSLS r0,r0,#7
0x0800340C FFC0FF80 DCD 0xFFC0FF80 ; ? Undefined
0x08003410 3FC0 SUBS r7,r7,#0xC0
0x08003412 00E0 LSLS r0,r4,#3
0x08003414 FE03FF07 CDP2 P15,0x00,pc,C3,C7
0x08003418 E0FF B 0x0800361A
0x0800341A 000E MOVS r6,r1
0x0800341C C303 STM r3!,{r0-r1}
0x0800341E 01C0 LSLS r0,r0,#7
0x08003420 FFC0FF81 DCD 0xFFC0FF81 ; ? Undefined
0x08003424 3F80 SUBS r7,r7,#0x80
0x08003426 00E0 LSLS r0,r4,#3
0x08003428 FE03FC07 CDP2 P12,0x00,pc,C3,C7
0x0800342C 0000 MOVS r0,r0
0x0800342E 000E MOVS r6,r1
0x08003430 8707 STRH r7,[r0,#0x38]
0x08003432 0180 LSLS r0,r0,#6
0x08003434 FFC0FF83 DCD 0xFFC0FF83 ; ? Undefined
0x08003438 3F00 SUBS r7,r7,#0x00
0x0800343A 00E0 LSLS r0,r4,#3
0x0800343C FE03FC07 CDP2 P12,0x00,pc,C3,C7
0x08003440 0000 MOVS r0,r0
0x08003442 000E MOVS r6,r1
0x08003444 0F0F LSRS r7,r1,#28
0x08003446 0100 LSLS r0,r0,#4
0x08003448 FFC0FE87 DCD 0xFFC0FE87 ; ? Undefined
0x0800344C 3F00 SUBS r7,r7,#0x00
0x0800344E 00E0 LSLS r0,r4,#3
0x08003450 FE03FC07 CDP2 P12,0x00,pc,C3,C7
0x08003454 0000 MOVS r0,r0
0x08003456 000E MOVS r6,r1
0x08003458 1E1E SUBS r6,r3,#0
0x0800345A 0100 LSLS r0,r0,#4
0x0800345C FFC0FC8F DCD 0xFFC0FC8F ; ? Undefined
0x08003460 3F00 SUBS r7,r7,#0x00
0x08003462 00E0 LSLS r0,r4,#3
0x08003464 FE03FC07 CDP2 P12,0x00,pc,C3,C7
0x08003468 0000 MOVS r0,r0
0x0800346A 000E MOVS r6,r1
0x0800346C 3C3C SUBS r4,r4,#0x3C
0x0800346E 0100 LSLS r0,r0,#4
0x08003470 FFC0F89F DCD 0xFFC0F89F ; ? Undefined
0x08003474 3F00 SUBS r7,r7,#0x00
0x08003476 00E0 LSLS r0,r4,#3
0x08003478 FE03FC07 CDP2 P12,0x00,pc,C3,C7
0x0800347C 0000 MOVS r0,r0
0x0800347E 000E MOVS r6,r1
0x08003480 7878 LDRB r0,[r7,#0x01]
0x08003482 0100 LSLS r0,r0,#4
0x08003484 FFC0F0BF DCD 0xFFC0F0BF ; ? Undefined
0x08003488 3F00 SUBS r7,r7,#0x00
0x0800348A FEFFFE03 MRC2 P14,0x07,pc,C15,C3
0x0800348E FC070000 STC P0,C0,[r7,#0x00]
0x08003492 000E MOVS r6,r1
0x08003494 F0F00100
0x08003498 FFC0E0FF DCD 0xFFC0E0FF ; ? Undefined
0x0800349C 3F00 SUBS r7,r7,#0x00
0x0800349E FEFFFE03 MRC2 P14,0x07,pc,C15,C3
0x080034A2 FC070000 STC P0,C0,[r7,#0x00]
0x080034A6 010E LSLS r6,r1,#4
0x080034A8 E0E1 B 0x0800366E
0x080034AA 0100 LSLS r0,r0,#4
0x080034AC FFC0C0FF DCD 0xFFC0C0FF ; ? Undefined
0x080034B0 3F00 SUBS r7,r7,#0x00
0x080034B2 FEFFFE03 MRC2 P14,0x07,pc,C15,C3
0x080034B6 FC070000 STC P0,C0,[r7,#0x00]
0x080034BA 030E LSLS r6,r1,#12
0x080034BC C0C3 STM r0!,{r0-r1,r6-r7}
0x080034BE 0100 LSLS r0,r0,#4
0x080034C0 FFC080FF DCD 0xFFC080FF ; ? Undefined
0x080034C4 3F00 SUBS r7,r7,#0x00
0x080034C6 FEFFFE03 MRC2 P14,0x07,pc,C15,C3
0x080034CA FC070000 STC P0,C0,[r7,#0x00]
0x080034CE 070E LSLS r6,r1,#28
0x080034D0 8087 STRH r7,[r0,#0x04]
0x080034D2 0100 LSLS r0,r0,#4
0x080034D4 FFC0C0FF DCD 0xFFC0C0FF ; ? Undefined
0x080034D8 3F00 SUBS r7,r7,#0x00
0x080034DA FEFFFE03 MRC2 P14,0x07,pc,C15,C3
0x080034DE FC070000 STC P0,C0,[r7,#0x00]
0x080034E2 0F0E LSRS r6,r1,#28
0x080034E4 000F MOVS r7,r1
0x080034E6 0100 LSLS r0,r0,#4
0x080034E8 FFC0E0BF DCD 0xFFC0E0BF ; ? Undefined
0x080034EC 3F00 SUBS r7,r7,#0x00
0x080034EE FEFFFE03 MRC2 P14,0x07,pc,C15,C3
0x080034F2 FC070000 STC P0,C0,[r7,#0x00]
0x080034F6 1E0E SUBS r6,r1,#0
0x080034F8 001E MOVS r6,r3
0x080034FA 0100 LSLS r0,r0,#4
0x080034FC FFC0F09F DCD 0xFFC0F09F ; ? Undefined
0x08003500 3F00 SUBS r7,r7,#0x00
0x08003502 00E0 LSLS r0,r4,#3
0x08003504 FE03FC07 CDP2 P12,0x00,pc,C3,C7
0x08003508 0000 MOVS r0,r0
0x0800350A 3C0E SUBS r4,r4,#0x0E
0x0800350C 003C MOVS r4,r7
0x0800350E 0100 LSLS r0,r0,#4
0x08003510 FFC0F88F DCD 0xFFC0F88F ; ? Undefined
0x08003514 3F00 SUBS r7,r7,#0x00
0x08003516 00E0 LSLS r0,r4,#3
0x08003518 FE03FC07 CDP2 P12,0x00,pc,C3,C7
0x0800351C 0000 MOVS r0,r0
0x0800351E 780E LDRB r6,[r1,#0x00]
0x08003520 0078 LSLS r0,r7,#1
0x08003522 0100 LSLS r0,r0,#4
0x08003524 FFC0FC87 DCD 0xFFC0FC87 ; ? Undefined
0x08003528 3F00 SUBS r7,r7,#0x00
0x0800352A 00E0 LSLS r0,r4,#3
0x0800352C FE03FC07 CDP2 P12,0x00,pc,C3,C7
0x08003530 0000 MOVS r0,r0
0x08003532 F00E00F0 AND r0,lr,#0xF0
0x08003536 0100 LSLS r0,r0,#4
0x08003538 FFC0FE83 DCD 0xFFC0FE83 ; ? Undefined
0x0800353C 3F00 SUBS r7,r7,#0x00
0x0800353E 00E0 LSLS r0,r4,#3
0x08003540 FE03FC07 CDP2 P12,0x00,pc,C3,C7
0x08003544 0000 MOVS r0,r0
0x08003546 E10F B 0x08003768
0x08003548 00E0 LSLS r0,r4,#3
0x0800354A 0100 LSLS r0,r0,#4
0x0800354C FFC0FF81 DCD 0xFFC0FF81 ; ? Undefined
0x08003550 3F00 SUBS r7,r7,#0x00
0x08003552 00E0 LSLS r0,r4,#3
0x08003554 FE03FC07 CDP2 P12,0x00,pc,C3,C7
0x08003558 0000 MOVS r0,r0
0x0800355A C30F STM r3!,{r0-r3}
0x0800355C 00C0 LSLS r0,r0,#3
0x0800355E 0100 LSLS r0,r0,#4
0x08003560 FFC0FF80 DCD 0xFFC0FF80 ; ? Undefined
0x08003564 3F80 SUBS r7,r7,#0x80
0x08003566 FFFFFE03 DCD 0xFFFFFE03 ; ? Undefined
0x0800356A FC070000 STC P0,C0,[r7,#0x00]
0x0800356E 870F STRH r7,[r1,#0x38]
0x08003570 0080 LSLS r0,r0,#2
0x08003572 0100 LSLS r0,r0,#4
0x08003574 FFC07F80 DCD 0xFFC07F80 ; ? Undefined
0x08003578 3FC0 SUBS r7,r7,#0xC0
0x0800357A FFFFFE03 DCD 0xFFFFFE03 ; ? Undefined
0x0800357E FC072012 STC P0,C2,[r7,#-0x48]
0x08003582 0F0F LSRS r7,r1,#28
0x08003584 0000 MOVS r0,r0
0x08003586 0100 LSLS r0,r0,#4
0x08003588 FFC03F80 DCD 0xFFC03F80 ; ? Undefined
0x0800358C 3FE0 SUBS r7,r7,#0xE0
0x0800358E FFFFFE03 DCD 0xFFFFFE03 ; ? Undefined
0x08003592 FC07A012 STC P0,C10,[r7,#-0x48]
0x08003596 1F0E SUBS r6,r1,#4
0x08003598 FFFFFFFF DCD 0xFFFFFFFF ; ? Undefined
0x0800359C FFC01F80 DCD 0xFFC01F80 ; ? Undefined
0x080035A0 3FF0 SUBS r7,r7,#0xF0
0x080035A2 FFFFFE03 DCD 0xFFFFFE03 ; ? Undefined
0x080035A6 FC07A012 STC P0,C10,[r7,#-0x48]
0x080035AA 3F0C SUBS r7,r7,#0x0C
0x080035AC FFFFFFFF DCD 0xFFFFFFFF ; ? Undefined
0x080035B0 FFC00F80 DCD 0xFFC00F80 ; ? Undefined
0x080035B4 3FF8 SUBS r7,r7,#0xF8
0x080035B6 FFFFFE03 DCD 0xFFFFFE03 ; ? Undefined
0x080035BA FC076013 STC P0,C6,[r7,#-0x4C]
0x080035BE 7F08 LDRB r0,[r1,#0x1C]
0x080035C0 FFFFFFFF DCD 0xFFFFFFFF ; ? Undefined
0x080035C4 FFC00780 DCD 0xFFC00780 ; ? Undefined
0x080035C8 3FFC SUBS r7,r7,#0xFC
0x080035CA FFFFFE03 DCD 0xFFFFFE03 ; ? Undefined
0x080035CE FC07203A STC P0,C2,[r7,#-0xE8]
0x080035D2 0000 MOVS r0,r0
0x080035D4 0000 MOVS r0,r0
0x080035D6 0000 MOVS r0,r0
0x080035D8 0000 MOVS r0,r0
0x080035DA 0000 MOVS r0,r0
0x080035DC 0000 MOVS r0,r0
0x080035DE 0000 MOVS r0,r0
0x080035E0 0000 MOVS r0,r0
0x080035E2 0000 MOVS r0,r0
0x080035E4 0000 MOVS r0,r0
0x080035E6 0000 MOVS r0,r0
0x080035E8 3608 ADDS r6,r6,#0x08
0x080035EA 0800 LSRS r0,r0,#0
0x080035EC 0000 MOVS r0,r0
0x080035EE 2000 MOVS r0,#0x00
0x080035F0 0010 MOVS r0,r2
0x080035F2 0000 MOVS r0,r0
0x080035F4 1D8A ADDS r2,r1,#6
0x080035F6 0800 LSRS r0,r0,#0
0x080035F8 3618 ADDS r6,r6,#0x18
0x080035FA 0800 LSRS r0,r0,#0
0x080035FC 0010 MOVS r0,r2
0x080035FE 2000 MOVS r0,#0x00
0x08003600 0200 LSLS r0,r0,#8
0x08003602 0000 MOVS r0,r0
0x08003604 1D9A ADDS r2,r3,#6
0x08003606 0800 LSRS r0,r0,#0
0x08003608 0000 MOVS r0,r0
0x0800360A 0000 MOVS r0,r0
0x0800360C 0000 MOVS r0,r0
0x0800360E 0000 MOVS r0,r0
0x08003610 0000 MOVS r0,r0
0x08003612 FFFF9320 DCD 0xFFFF9320 ; ? Undefined
0x08003616 0000 MOVS r0,r0
0x08003618 0000 MOVS r0,r0
0x0800361A 0000 MOVS r0,r0
0x0800361C 0000 MOVS r0,r0
0x0800361E 0000 MOVS r0,r0
0x08003620 0000 MOVS r0,r0
0x08003622 0000 MOVS r0,r0