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

📄 jdinput.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\jdinput.o --depend=.\Obj\jdinput.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\jdinput.c]
                          THUMB

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

                  consume_markers PROC
;;;287    METHODDEF(int)
;;;288    consume_markers (j_decompress_ptr cinfo)
000000  b570              PUSH     {r4-r6,lr}
;;;289    {
;;;290      my_inputctl_ptr inputctl = (my_inputctl_ptr) cinfo->inputctl;
;;;291      int val;
;;;292    
;;;293      if (inputctl->pub.eoi_reached) /* After hitting EOI, read no further */
000002  f8d051b4          LDR      r5,[r0,#0x1b4]
000006  4604              MOV      r4,r0                 ;289
000008  6968              LDR      r0,[r5,#0x14]
00000a  b108              CBZ      r0,|L1.16|
;;;294        return JPEG_REACHED_EOI;
00000c  2002              MOVS     r0,#2
;;;295    
;;;296      val = (*cinfo->marker->read_markers) (cinfo);
;;;297    
;;;298      switch (val) {
;;;299      case JPEG_REACHED_SOS:	/* Found SOS */
;;;300        if (inputctl->inheaders) {	/* 1st SOS */
;;;301          initial_setup(cinfo);
;;;302          inputctl->inheaders = FALSE;
;;;303          /* Note: start_input_pass must be called by jdmaster.c
;;;304           * before any more input can be consumed.  jdapimin.c is
;;;305           * responsible for enforcing this sequencing.
;;;306           */
;;;307        } else {			/* 2nd or later SOS marker */
;;;308          if (! inputctl->pub.has_multiple_scans)
;;;309    	ERREXIT(cinfo, JERR_EOI_EXPECTED); /* Oops, I wasn't expecting this! */
;;;310          start_input_pass(cinfo);
;;;311        }
;;;312        break;
;;;313      case JPEG_REACHED_EOI:	/* Found EOI */
;;;314        inputctl->pub.eoi_reached = TRUE;
;;;315        if (inputctl->inheaders) {	/* Tables-only datastream, apparently */
;;;316          if (cinfo->marker->saw_SOF)
;;;317    	ERREXIT(cinfo, JERR_SOF_NO_SOS);
;;;318        } else {
;;;319          /* Prevent infinite loop in coef ctlr's decompress_data routine
;;;320           * if user set output_scan_number larger than number of scans.
;;;321           */
;;;322          if (cinfo->output_scan_number > cinfo->input_scan_number)
;;;323    	cinfo->output_scan_number = cinfo->input_scan_number;
;;;324        }
;;;325        break;
;;;326      case JPEG_SUSPENDED:
;;;327        break;
;;;328      }
;;;329    
;;;330      return val;
;;;331    }
00000e  bd70              POP      {r4-r6,pc}
                  |L1.16|
000010  f8d401b8          LDR      r0,[r4,#0x1b8]        ;296
000014  6841              LDR      r1,[r0,#4]            ;296
000016  4620              MOV      r0,r4                 ;296
000018  4788              BLX      r1                    ;296
00001a  0006              MOVS     r6,r0                 ;296
00001c  d030              BEQ      |L1.128|
00001e  2801              CMP      r0,#1                 ;298
000020  d011              BEQ      |L1.70|
000022  2802              CMP      r0,#2                 ;298
000024  d12c              BNE      |L1.128|
000026  2001              MOVS     r0,#1                 ;314
000028  6168              STR      r0,[r5,#0x14]         ;315
00002a  69a8              LDR      r0,[r5,#0x18]         ;315
00002c  b300              CBZ      r0,|L1.112|
00002e  f8d401b8          LDR      r0,[r4,#0x1b8]        ;316
000032  6900              LDR      r0,[r0,#0x10]         ;316
000034  b320              CBZ      r0,|L1.128|
000036  6821              LDR      r1,[r4,#0]            ;317
000038  203b              MOVS     r0,#0x3b              ;317
00003a  6148              STR      r0,[r1,#0x14]         ;317
00003c  6820              LDR      r0,[r4,#0]            ;317
00003e  6801              LDR      r1,[r0,#0]            ;317
000040  4620              MOV      r0,r4                 ;317
000042  4788              BLX      r1                    ;317
000044  e01c              B        |L1.128|
                  |L1.70|
000046  69a8              LDR      r0,[r5,#0x18]         ;300
000048  b128              CBZ      r0,|L1.86|
00004a  4620              MOV      r0,r4                 ;301
00004c  f7fffffe          BL       initial_setup
000050  2000              MOVS     r0,#0                 ;302
000052  61a8              STR      r0,[r5,#0x18]         ;302
000054  e014              B        |L1.128|
                  |L1.86|
000056  6928              LDR      r0,[r5,#0x10]         ;308
000058  b930              CBNZ     r0,|L1.104|
00005a  6821              LDR      r1,[r4,#0]            ;309
00005c  2023              MOVS     r0,#0x23              ;309
00005e  6148              STR      r0,[r1,#0x14]         ;309
000060  6820              LDR      r0,[r4,#0]            ;309
000062  6801              LDR      r1,[r0,#0]            ;309
000064  4620              MOV      r0,r4                 ;309
000066  4788              BLX      r1                    ;309
                  |L1.104|
000068  4620              MOV      r0,r4                 ;310
00006a  f7fffffe          BL       start_input_pass
00006e  e007              B        |L1.128|
                  |L1.112|
000070  f8d41090          LDR      r1,[r4,#0x90]         ;322
000074  f8d40098          LDR      r0,[r4,#0x98]         ;322
000078  4288              CMP      r0,r1                 ;322
00007a  dd01              BLE      |L1.128|
00007c  f8c41098          STR      r1,[r4,#0x98]         ;323
                  |L1.128|
000080  4630              MOV      r0,r6                 ;330
000082  bd70              POP      {r4-r6,pc}
;;;332    
                          ENDP


                          AREA ||i.finish_input_pass||, CODE, READONLY, ALIGN=2

                  finish_input_pass PROC
;;;270    METHODDEF(void)
;;;271    finish_input_pass (j_decompress_ptr cinfo)
000000  f8d001b4          LDR      r0,[r0,#0x1b4]
;;;272    {
;;;273      cinfo->inputctl->consume_input = consume_markers;
000004  4901              LDR      r1,|L2.12|
;;;274    }
000006  6001              STR      r1,[r0,#0]
000008  4770              BX       lr
;;;275    
                          ENDP

00000a  0000              DCW      0x0000
                  |L2.12|
                          DCD      consume_markers

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

                  initial_setup PROC
;;;38     LOCAL(void)
;;;39     initial_setup (j_decompress_ptr cinfo)
000000  e92d47f0          PUSH     {r4-r10,lr}
;;;40     /* Called once, when first SOS marker is reached */
;;;41     {
000004  4604              MOV      r4,r0
;;;42       int ci;
;;;43       jpeg_component_info *compptr;
;;;44     
;;;45       /* Make sure image isn't bigger than I can handle */
;;;46       if ((long) cinfo->image_height > (long) JPEG_MAX_DIMENSION ||
000006  6a01              LDR      r1,[r0,#0x20]
000008  f64f70dc          MOV      r0,#0xffdc
00000c  4281              CMP      r1,r0
00000e  dc02              BGT      |L3.22|
;;;47           (long) cinfo->image_width > (long) JPEG_MAX_DIMENSION)
000010  69e1              LDR      r1,[r4,#0x1c]
000012  4281              CMP      r1,r0
000014  dd08              BLE      |L3.40|
                  |L3.22|
;;;48         ERREXIT1(cinfo, JERR_IMAGE_TOO_BIG, (unsigned int) JPEG_MAX_DIMENSION);
000016  6822              LDR      r2,[r4,#0]
000018  2129              MOVS     r1,#0x29
00001a  6151              STR      r1,[r2,#0x14]
00001c  6821              LDR      r1,[r4,#0]
00001e  6188              STR      r0,[r1,#0x18]
000020  6820              LDR      r0,[r4,#0]
000022  6801              LDR      r1,[r0,#0]
000024  4620              MOV      r0,r4
000026  4788              BLX      r1
                  |L3.40|
;;;49     
;;;50       /* For now, precision must match compiled-in value... */
;;;51       if (cinfo->data_precision != BITS_IN_JSAMPLE)
000028  f8d400d4          LDR      r0,[r4,#0xd4]
00002c  2808              CMP      r0,#8
00002e  d00a              BEQ      |L3.70|
;;;52         ERREXIT1(cinfo, JERR_BAD_PRECISION, cinfo->data_precision);
000030  6821              LDR      r1,[r4,#0]
000032  200f              MOVS     r0,#0xf
000034  6148              STR      r0,[r1,#0x14]
000036  6821              LDR      r1,[r4,#0]
000038  f8d400d4          LDR      r0,[r4,#0xd4]
00003c  6188              STR      r0,[r1,#0x18]
00003e  6820              LDR      r0,[r4,#0]
000040  6801              LDR      r1,[r0,#0]
000042  4620              MOV      r0,r4
000044  4788              BLX      r1
                  |L3.70|
;;;53     
;;;54       /* Check that number of components won't exceed internal array sizes */
;;;55       if (cinfo->num_components > MAX_COMPONENTS)
000046  6a60              LDR      r0,[r4,#0x24]
000048  2804              CMP      r0,#4
00004a  dd0c              BLE      |L3.102|
;;;56         ERREXIT2(cinfo, JERR_COMPONENT_COUNT, cinfo->num_components,
00004c  6821              LDR      r1,[r4,#0]
00004e  201a              MOVS     r0,#0x1a
000050  6148              STR      r0,[r1,#0x14]
000052  6821              LDR      r1,[r4,#0]
000054  6a60              LDR      r0,[r4,#0x24]
000056  6188              STR      r0,[r1,#0x18]
000058  6821              LDR      r1,[r4,#0]
00005a  2004              MOVS     r0,#4
00005c  61c8              STR      r0,[r1,#0x1c]
00005e  6820              LDR      r0,[r4,#0]
000060  6801              LDR      r1,[r0,#0]
000062  4620              MOV      r0,r4
000064  4788              BLX      r1
                  |L3.102|
;;;57     	     MAX_COMPONENTS);
;;;58     
;;;59       /* Compute maximum sampling factors; check factor validity */
;;;60       cinfo->max_h_samp_factor = 1;
000066  2601              MOVS     r6,#1
000068  34d8              ADDS     r4,r4,#0xd8
;;;61       cinfo->max_v_samp_factor = 1;
00006a  65e6              STR      r6,[r4,#0x5c]
;;;62       for (ci = 0, compptr = cinfo->comp_info; ci < cinfo->num_components;
00006c  6626              STR      r6,[r4,#0x60]
00006e  2700              MOVS     r7,#0
000070  f85459d8          LDR      r5,[r4],#-0xd8
000074  e022              B        |L3.188|
                  |L3.118|
;;;63            ci++, compptr++) {
;;;64         if (compptr->h_samp_factor<=0 || compptr->h_samp_factor>MAX_SAMP_FACTOR ||
000076  68a8              LDR      r0,[r5,#8]
000078  2800              CMP      r0,#0
00007a  dd06              BLE      |L3.138|
00007c  2804              CMP      r0,#4
00007e  dc04              BGT      |L3.138|
;;;65     	compptr->v_samp_factor<=0 || compptr->v_samp_factor>MAX_SAMP_FACTOR)
000080  68e8              LDR      r0,[r5,#0xc]
000082  2800              CMP      r0,#0
000084  dd01              BLE      |L3.138|
000086  2804              CMP      r0,#4
000088  dd06              BLE      |L3.152|
                  |L3.138|
;;;66           ERREXIT(cinfo, JERR_BAD_SAMPLING);
00008a  6821              LDR      r1,[r4,#0]
00008c  2012              MOVS     r0,#0x12
00008e  6148              STR      r0,[r1,#0x14]
000090  6820              LDR      r0,[r4,#0]
000092  6801              LDR      r1,[r0,#0]
000094  4620              MOV      r0,r4
000096  4788              BLX      r1
                  |L3.152|
;;;67         cinfo->max_h_samp_factor = MAX(cinfo->max_h_samp_factor,
000098  f8d40134          LDR      r0,[r4,#0x134]
00009c  68a9              LDR      r1,[r5,#8]
00009e  4288              CMP      r0,r1
0000a0  dc00              BGT      |L3.164|
0000a2  4608              MOV      r0,r1
                  |L3.164|

⌨️ 快捷键说明

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