⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jerror.txt

📁 STM32F103ZET6+UCOSII+UCGUI源码
💻 TXT
📖 第 1 页 / 共 3 页
字号:
; generated by ARM C/C++ Compiler with , RVCT4.0 [Build 524] for uVision
; commandline ArmCC [--split_sections --debug -c --asm --interleave -o.\Obj\jerror.o --depend=.\Obj\jerror.d --device=DARMSTM --apcs=interwork -O3 -I..\..\include -I..\..\..\FWLib\library\inc -I..\..\..\USBLib\library\inc -I..\..\Config -I..\..\GUI\Core -I..\..\GUI\Font -I..\..\GUI\ConvertColor -I..\..\GUI\AntiAlias -I..\..\GUI\ConvertMono -I..\..\GUI\JPEG -I..\..\GUI\MemDev -I..\..\GUI\MultiLayer -I..\..\GUI\Widget -I..\..\GUI\WM -IC:\Keil\ARM\INC\ST\STM32F10x ..\..\GUI\JPEG\jerror.c]
                          THUMB

                          AREA ||i.emit_message||, CODE, READONLY, ALIGN=1

                  emit_message PROC
;;;123    
;;;124    METHODDEF(void) emit_message (j_common_ptr cinfo, int msg_level) {
000000  b510              PUSH     {r4,lr}
;;;125      struct jpeg_error_mgr * err = cinfo->err;
;;;126      if (msg_level < 0) {
000002  6804              LDR      r4,[r0,#0]
000004  2900              CMP      r1,#0
000006  da0a              BGE      |L1.30|
;;;127        /* It's a warning message.  Since corrupt files may generate many warnings,
;;;128         * the policy implemented here is to show only the first warning,
;;;129         * unless trace_level >= 3.
;;;130         */
;;;131        if (err->num_warnings == 0 || err->trace_level >= 3)
000008  6ee1              LDR      r1,[r4,#0x6c]
00000a  b111              CBZ      r1,|L1.18|
00000c  6ea1              LDR      r1,[r4,#0x68]
00000e  2903              CMP      r1,#3
000010  db01              BLT      |L1.22|
                  |L1.18|
;;;132          (*err->output_message) (cinfo);
000012  68a1              LDR      r1,[r4,#8]
000014  4788              BLX      r1
                  |L1.22|
;;;133        /* Always count warnings in num_warnings. */
;;;134        err->num_warnings++;
000016  6ee0              LDR      r0,[r4,#0x6c]
000018  1c40              ADDS     r0,r0,#1
00001a  66e0              STR      r0,[r4,#0x6c]
                  |L1.28|
;;;135      } else {
;;;136        /* It's a trace message.  Show it if trace_level >= msg_level. */
;;;137        if (err->trace_level >= msg_level)
;;;138          (*err->output_message) (cinfo);
;;;139      }
;;;140    }
00001c  bd10              POP      {r4,pc}
                  |L1.30|
00001e  6ea2              LDR      r2,[r4,#0x68]         ;137
000020  428a              CMP      r2,r1                 ;137
000022  dbfb              BLT      |L1.28|
000024  68a1              LDR      r1,[r4,#8]            ;138
000026  e8bd4010          POP      {r4,lr}               ;138
00002a  4708              BX       r1                    ;138
;;;141    
                          ENDP


                          AREA ||i.error_exit||, CODE, READONLY, ALIGN=1

                  error_exit PROC
;;;66     METHODDEF(void)
;;;67     error_exit (j_common_ptr cinfo)
000000  b510              PUSH     {r4,lr}
;;;68     {
000002  4604              MOV      r4,r0
;;;69       /* Always display the message */
;;;70       (*cinfo->err->output_message) (cinfo);
000004  6800              LDR      r0,[r0,#0]
000006  6881              LDR      r1,[r0,#8]
000008  4620              MOV      r0,r4
00000a  4788              BLX      r1
;;;71     
;;;72       /* Let the memory manager delete any temp files before we die */
;;;73       jpeg_destroy(cinfo);
00000c  4620              MOV      r0,r4
00000e  e8bd4010          POP      {r4,lr}
000012  f7ffbffe          B.W      jpeg_destroy
;;;74     
;;;75       //exit(EXIT_FAILURE);
;;;76     }
;;;77     
                          ENDP


                          AREA ||i.format_message||, CODE, READONLY, ALIGN=1

                  format_message PROC
;;;149    
;;;150    METHODDEF(void) format_message (j_common_ptr cinfo, char * buffer) {
000000  b5f0              PUSH     {r4-r7,lr}
;;;151      struct jpeg_error_mgr * err = cinfo->err;
;;;152      int msg_code = err->msg_code;
000002  6804              LDR      r4,[r0,#0]
000004  b087              SUB      sp,sp,#0x1c           ;150
;;;153      const char * msgtext = NULL;
;;;154      const char * msgptr;
;;;155      char ch;
;;;156      boolean isstring;
;;;157    
;;;158      /* Look up message string in proper table */
;;;159      if (msg_code > 0 && msg_code <= err->last_jpeg_message) {
000006  6960              LDR      r0,[r4,#0x14]
000008  460f              MOV      r7,r1                 ;150
00000a  2800              CMP      r0,#0
00000c  dd06              BLE      |L3.28|
00000e  6f61              LDR      r1,[r4,#0x74]
000010  4281              CMP      r1,r0
000012  db03              BLT      |L3.28|
;;;160        msgtext = err->jpeg_message_table[msg_code];
000014  6f21              LDR      r1,[r4,#0x70]
000016  f8516020          LDR      r6,[r1,r0,LSL #2]
00001a  e00b              B        |L3.52|
                  |L3.28|
;;;161      } else if (err->addon_message_table != NULL &&
00001c  6fa2              LDR      r2,[r4,#0x78]
00001e  b152              CBZ      r2,|L3.54|
;;;162    	     msg_code >= err->first_addon_message &&
000020  6fe1              LDR      r1,[r4,#0x7c]
000022  4281              CMP      r1,r0
000024  dc07              BGT      |L3.54|
;;;163    	     msg_code <= err->last_addon_message) {
000026  f8d43080          LDR      r3,[r4,#0x80]
00002a  4283              CMP      r3,r0
00002c  db03              BLT      |L3.54|
;;;164        msgtext = err->addon_message_table[msg_code - err->first_addon_message];
00002e  1a41              SUBS     r1,r0,r1
000030  f8526021          LDR      r6,[r2,r1,LSL #2]
                  |L3.52|
;;;165      }
;;;166    
;;;167      /* Defend against bogus message number */
;;;168      if (msgtext == NULL) {
000034  b916              CBNZ     r6,|L3.60|
                  |L3.54|
;;;169        err->msg_parm.i[0] = msg_code;
;;;170        msgtext = err->jpeg_message_table[0];
000036  61a0              STR      r0,[r4,#0x18]
000038  6f20              LDR      r0,[r4,#0x70]
00003a  6806              LDR      r6,[r0,#0]
                  |L3.60|
;;;171      }
;;;172    
;;;173      /* Check for string parameter, as indicated by %s in the message text */
;;;174      isstring = FALSE;
00003c  2100              MOVS     r1,#0
;;;175      msgptr = msgtext;
00003e  4635              MOV      r5,r6
;;;176      while ((ch = *msgptr++) != '\0') {
000040  e005              B        |L3.78|
                  |L3.66|
;;;177        if (ch == '%') {
000042  2825              CMP      r0,#0x25
000044  d103              BNE      |L3.78|
;;;178          if (*msgptr == 's') isstring = TRUE;
000046  7828              LDRB     r0,[r5,#0]
000048  2873              CMP      r0,#0x73
00004a  d005              BEQ      |L3.88|
00004c  e003              B        |L3.86|
                  |L3.78|
00004e  f8150b01          LDRB     r0,[r5],#1            ;176
000052  2800              CMP      r0,#0                 ;176
000054  d1f5              BNE      |L3.66|
                  |L3.86|
;;;179          break;
;;;180        }
;;;181      }
;;;182    
;;;183      /* Format the message into the passed buffer */
;;;184      if (isstring)
000056  b141              CBZ      r1,|L3.106|
                  |L3.88|
;;;185        sprintf(buffer, msgtext, err->msg_parm.s);
000058  f1040218          ADD      r2,r4,#0x18
00005c  4631              MOV      r1,r6
00005e  4638              MOV      r0,r7
000060  b007              ADD      sp,sp,#0x1c
000062  e8bd40f0          POP      {r4-r7,lr}
000066  f7ffbffe          B.W      __2sprintf
                  |L3.106|
;;;186      else
;;;187        sprintf(buffer, msgtext,
00006a  f1040028          ADD      r0,r4,#0x28
00006e  c80f              LDM      r0,{r0-r3}
000070  ad02              ADD      r5,sp,#8
000072  c50f              STM      r5!,{r0-r3}
000074  e9d42308          LDRD     r2,r3,[r4,#0x20]
000078  e9cd2300          STRD     r2,r3,[sp,#0]
00007c  e9d42306          LDRD     r2,r3,[r4,#0x18]
000080  4631              MOV      r1,r6
000082  4638              MOV      r0,r7
000084  f7fffffe          BL       __2sprintf
;;;188    	    err->msg_parm.i[0], err->msg_parm.i[1],
;;;189    	    err->msg_parm.i[2], err->msg_parm.i[3],
;;;190    	    err->msg_parm.i[4], err->msg_parm.i[5],
;;;191    	    err->msg_parm.i[6], err->msg_parm.i[7]);
;;;192    }
000088  b007              ADD      sp,sp,#0x1c
00008a  bdf0              POP      {r4-r7,pc}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -