############################################################################## # # # IAR ARM ANSI C/C++ Compiler V4.42A/W32 EVALUATION 12/Jul/2010 20:35:16 # # Copyright 1999-2005 IAR Systems. All rights reserved. # # # # Cpu mode = interwork # # Endian = little # # Stack alignment = 4 # # Source file = F:\SVN\cn\TIIGPRSLogo\draw.c # # Command line = F:\SVN\cn\TIIGPRSLogo\draw.c -D NEWSGOLD -D LANG_EN # # -lC F:\SVN\cn\TIIGPRSLogo\S75v47\List\ -o # # F:\SVN\cn\TIIGPRSLogo\S75v47\Obj\ -s9 --no_unroll # # --cpu_mode arm --endian little --cpu ARM926EJ-S # # --stack_align 4 --interwork -e --fpu None -I # # "F:\software\Embedded Workbench 4.0 # # Evaluation\ARM\INC\" --inline_threshold=2 # # List file = F:\SVN\cn\TIIGPRSLogo\S75v47\List\draw.lst # # Object file = F:\SVN\cn\TIIGPRSLogo\S75v47\Obj\draw.r79 # # # # # ############################################################################## F:\SVN\cn\TIIGPRSLogo\draw.c 1 #include "..\inc\swilib.h" 2 #include "conf_loader.h" 3 4 extern unsigned int pos_x; 5 extern unsigned int pos_y; 6 extern unsigned int font; 7 extern unsigned int txt_attr; 8 extern char word_color[4]; 9 extern char word_frm_color[4]; 10 extern char rnd_frm_color[4]; 11 extern char frm_color[4]; 12 \ In segment CODE, align 4, keep-with-next 13 void memcpy_n(char *s1, char *s2, int len) 14 { 15 int i; 16 for(i=0;i` 27 char xword_frm_color[4]={0, 0, 0, 100}; 28 char xrnd_frm_color[4]={0xFF, 0xFF, 0xFF, 100}; 29 char xfrm_color[4]={0, 0, 0, 100}; 30 if(InitConfig()>0) \ 00000008 84419FE5 LDR R4,??draw_0+0x4 ;; font \ 0000000C 10D04DE2 SUB SP,SP,#+16 \ 00000010 00109AE5 LDR R1,[R10, #0] \ 00000014 0D00A0E1 MOV R0,SP \ 00000018 001080E5 STR R1,[R0, #+0] \ 0000001C 74119FE5 LDR R1,??draw_0+0x8 ;; `?` \ 00000020 04008DE2 ADD R0,SP,#+4 \ 00000024 002091E5 LDR R2,[R1, #0] \ 00000028 6C119FE5 LDR R1,??draw_0+0xC ;; `?_1` \ 0000002C 002080E5 STR R2,[R0, #+0] \ 00000030 002091E5 LDR R2,[R1, #0] \ 00000034 64119FE5 LDR R1,??draw_0+0x10 ;; `?_1` \ 00000038 08008DE2 ADD R0,SP,#+8 \ 0000003C 002080E5 STR R2,[R0, #+0] \ 00000040 002091E5 LDR R2,[R1, #0] \ 00000044 8350A0E3 MOV R5,#+131 \ 00000048 0260A0E3 MOV R6,#+2 \ 0000004C 0770A0E3 MOV R7,#+7 \ 00000050 2280A0E3 MOV R8,#+34 \ 00000054 0C008DE2 ADD R0,SP,#+12 \ 00000058 002080E5 STR R2,[R0, #+0] \ 0000005C ........ _BLF InitConfig,??InitConfig??rA \ 00000060 010050E3 CMP R0,#+1 \ 00000064 160000BA BLT ??draw_1 31 { 32 x1=pos_x; \ 00000068 34019FE5 LDR R0,??draw_0+0x14 ;; pos_x 33 y1=pos_y; 34 xfont=font; \ 0000006C 007094E5 LDR R7,[R4, #+0] \ 00000070 005090E5 LDR R5,[R0, #+0] \ 00000074 2C019FE5 LDR R0,??draw_0+0x18 ;; pos_y 35 xtxt_attr=txt_attr; 36 memcpy_n(xword_color,word_color,4); \ 00000078 2C119FE5 LDR R1,??draw_0+0x1C ;; word_color \ 0000007C 006090E5 LDR R6,[R0, #+0] \ 00000080 28019FE5 LDR R0,??draw_0+0x20 ;; txt_attr \ 00000084 0420A0E3 MOV R2,#+4 \ 00000088 008090E5 LDR R8,[R0, #+0] \ 0000008C 0D00A0E1 MOV R0,SP \ 00000090 ........ BL memcpy_n 37 memcpy_n(xword_frm_color,word_frm_color,4); \ 00000094 18119FE5 LDR R1,??draw_0+0x24 ;; word_frm_color \ 00000098 0420A0E3 MOV R2,#+4 \ 0000009C 04008DE2 ADD R0,SP,#+4 \ 000000A0 ........ BL memcpy_n 38 memcpy_n(xrnd_frm_color,rnd_frm_color,4); \ 000000A4 0C119FE5 LDR R1,??draw_0+0x28 ;; rnd_frm_color \ 000000A8 0420A0E3 MOV R2,#+4 \ 000000AC 08008DE2 ADD R0,SP,#+8 \ 000000B0 ........ BL memcpy_n 39 memcpy_n(xfrm_color,frm_color,4); \ 000000B4 00119FE5 LDR R1,??draw_0+0x2C ;; frm_color \ 000000B8 0420A0E3 MOV R2,#+4 \ 000000BC 0C008DE2 ADD R0,SP,#+12 \ 000000C0 ........ BL memcpy_n 40 } 41 42 int traf=*GetGPRSTrafficPointer(); \ ??draw_1: \ 000000C4 700000EF SWI +112 \ 000000C8 00B090E5 LDR R11,[R0, #+0] 43 WSHDR *ws=AllocWS(32); \ 000000CC 2000A0E3 MOV R0,#+32 \ 000000D0 250100EF SWI +293 \ 000000D4 0090A0E1 MOV R9,R0 44 wsprintf(ws, "%dKB", traf/1024); \ 000000D8 CB04A0E1 ASR R0,R11,#+9 \ 000000DC 200B8BE0 ADD R0,R11,R0, LSR #+22 \ 000000E0 4025A0E1 ASR R2,R0,#+10 \ 000000E4 04108AE2 ADD R1,R10,#+4 \ 000000E8 0900A0E1 MOV R0,R9 \ 000000EC 240100EF SWI +292 45 int fh=GetFontYSIZE(font); \ 000000F0 000094E5 LDR R0,[R4, #+0] \ 000000F4 C50100EF SWI +453 46 int width=Get_WS_width(ws, font)+0x10; \ 000000F8 001094E5 LDR R1,[R4, #+0] \ 000000FC 00A0A0E1 MOV R10,R0 \ 00000100 0900A0E1 MOV R0,R9 \ 00000104 080200EF SWI +520 \ 00000108 100080E2 ADD R0,R0,#+16 47 DrawRoundedFrame(x1, y1, x1+width+2, y1+fh+2, 2, 2, 0, xrnd_frm_color, xfrm_color); \ 0000010C 054080E0 ADD R4,R0,R5 \ 00000110 0C008DE2 ADD R0,SP,#+12 \ 00000114 01002DE9 PUSH {R0} \ 00000118 06A08AE0 ADD R10,R10,R6 \ 0000011C 02308AE2 ADD R3,R10,#+2 \ 00000120 022084E2 ADD R2,R4,#+2 \ 00000124 0C008DE2 ADD R0,SP,#+12 \ 00000128 01002DE9 PUSH {R0} \ 0000012C 0610A0E1 MOV R1,R6 \ 00000130 0000A0E3 MOV R0,#+0 \ 00000134 01002DE9 PUSH {R0} \ 00000138 0200A0E3 MOV R0,#+2 \ 0000013C 01002DE9 PUSH {R0} \ 00000140 01002DE9 PUSH {R0} \ 00000144 0500A0E1 MOV R0,R5 \ 00000148 500100EF SWI +336 48 DrawString(ws, x1+1, y1+1, x1+width+1, y1+fh+1, xfont, xtxt_attr, xword_color, xword_frm_color); \ 0000014C 18008DE2 ADD R0,SP,#+24 \ 00000150 01002DE9 PUSH {R0} \ 00000154 013084E2 ADD R3,R4,#+1 \ 00000158 012086E2 ADD R2,R6,#+1 \ 0000015C 011085E2 ADD R1,R5,#+1 \ 00000160 18008DE2 ADD R0,SP,#+24 \ 00000164 01002DE9 PUSH {R0} \ 00000168 00012DE9 PUSH {R8} \ 0000016C 80002DE9 PUSH {R7} \ 00000170 01008AE2 ADD R0,R10,#+1 \ 00000174 01002DE9 PUSH {R0} \ 00000178 0900A0E1 MOV R0,R9 \ 0000017C 4C0100EF SWI +332 \ 00000180 28D08DE2 ADD SP,SP,#+40 49 FreeWS(ws); \ 00000184 0900A0E1 MOV R0,R9 \ 00000188 290100EF SWI +297 50 } \ 0000018C FF8FBDE8 POP {R0-R11,PC} ;; return \ ??draw_0: \ 00000190 ........ DC32 `?` \ 00000194 ........ DC32 font \ 00000198 ........ DC32 `?` \ 0000019C ........ DC32 `?_1` \ 000001A0 ........ DC32 `?_1` \ 000001A4 ........ DC32 pos_x \ 000001A8 ........ DC32 pos_y \ 000001AC ........ DC32 word_color \ 000001B0 ........ DC32 txt_attr \ 000001B4 ........ DC32 word_frm_color \ 000001B8 ........ DC32 rnd_frm_color \ 000001BC ........ DC32 frm_color \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 FFFFFF64 DC8 255, 255, 255, 100 \ 00000004 25644B4200 DC8 "%dKB" \ 00000009 000000 DC8 0, 0, 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 00000064 DC8 0, 0, 0, 100 \ In segment DATA_C, align 4, align-sorted \ `?_1`: \ 00000000 FFFFFF64 DC8 255, 255, 255, 100 \ In segment DATA_C, align 4, align-sorted \ `?_1`: \ 00000000 00000064 DC8 0, 0, 0, 100 Maximum stack usage in bytes: Function CSTACK -------- ------ draw 92 memcpy_n 0 Segment part sizes: Function/Label Bytes -------------- ----- memcpy_n 40 draw 448 ? 12 ? 4 ?_1 4 ?_1 4 Others 20 508 bytes in segment CODE 24 bytes in segment DATA_C 488 bytes of CODE memory (+ 20 bytes shared) 24 bytes of CONST memory Errors: none Warnings: none