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

📄 jdapistd.txt

📁 STM32F103ZET6+UCOSII+UCGUI源码
💻 TXT
📖 第 1 页 / 共 2 页
字号:
; generated by ARM C/C++ Compiler with , RVCT4.0 [Build 524] for uVision
; commandline ArmCC [--split_sections --debug -c --asm --interleave -o.\Obj\jdapistd.o --depend=.\Obj\jdapistd.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\jdapistd.c]
                          THUMB

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

                  jpeg_finish_output PROC
;;;252    GLOBAL(boolean)
;;;253    jpeg_finish_output (j_decompress_ptr cinfo)
000000  b510              PUSH     {r4,lr}
;;;254    {
000002  4604              MOV      r4,r0
;;;255      if ((cinfo->global_state == DSTATE_SCANNING ||
000004  6940              LDR      r0,[r0,#0x14]
000006  28cd              CMP      r0,#0xcd
000008  d001              BEQ      |L1.14|
;;;256           cinfo->global_state == DSTATE_RAW_OK) && cinfo->buffered_image) {
00000a  28ce              CMP      r0,#0xce
00000c  d109              BNE      |L1.34|
                  |L1.14|
00000e  6c21              LDR      r1,[r4,#0x40]
000010  b139              CBZ      r1,|L1.34|
;;;257        /* Terminate this pass. */
;;;258        /* We do not require the whole pass to have been completed. */
;;;259        (*cinfo->master->finish_output_pass) (cinfo);
000012  f8d401a4          LDR      r0,[r4,#0x1a4]
000016  6841              LDR      r1,[r0,#4]
000018  4620              MOV      r0,r4
00001a  4788              BLX      r1
;;;260        cinfo->global_state = DSTATE_BUFPOST;
00001c  20d0              MOVS     r0,#0xd0
00001e  6160              STR      r0,[r4,#0x14]
000020  e011              B        |L1.70|
                  |L1.34|
;;;261      } else if (cinfo->global_state != DSTATE_BUFPOST) {
000022  28d0              CMP      r0,#0xd0
000024  d00f              BEQ      |L1.70|
;;;262        /* BUFPOST = repeat call after a suspension, anything else is error */
;;;263        ERREXIT1(cinfo, JERR_BAD_STATE, cinfo->global_state);
000026  6821              LDR      r1,[r4,#0]
000028  2014              MOVS     r0,#0x14
00002a  6148              STR      r0,[r1,#0x14]
00002c  6821              LDR      r1,[r4,#0]
00002e  6960              LDR      r0,[r4,#0x14]
000030  6188              STR      r0,[r1,#0x18]
000032  6820              LDR      r0,[r4,#0]
000034  6801              LDR      r1,[r0,#0]
000036  4620              MOV      r0,r4
000038  4788              BLX      r1
00003a  e004              B        |L1.70|
                  |L1.60|
;;;264      }
;;;265      /* Read markers looking for SOS or EOI */
;;;266      while (cinfo->input_scan_number <= cinfo->output_scan_number &&
;;;267    	 ! cinfo->inputctl->eoi_reached) {
;;;268        if ((*cinfo->inputctl->consume_input) (cinfo) == JPEG_SUSPENDED)
00003c  6801              LDR      r1,[r0,#0]
00003e  4620              MOV      r0,r4
000040  4788              BLX      r1
000042  2800              CMP      r0,#0
000044  d00d              BEQ      |L1.98|
                  |L1.70|
000046  f8d41098          LDR      r1,[r4,#0x98]         ;266
00004a  f8d40090          LDR      r0,[r4,#0x90]         ;266
00004e  4288              CMP      r0,r1                 ;266
000050  dc04              BGT      |L1.92|
000052  f8d401b4          LDR      r0,[r4,#0x1b4]        ;267
000056  6941              LDR      r1,[r0,#0x14]         ;267
000058  2900              CMP      r1,#0                 ;267
00005a  d0ef              BEQ      |L1.60|
                  |L1.92|
;;;269          return FALSE;		/* Suspend, come back later */
;;;270      }
;;;271      cinfo->global_state = DSTATE_BUFIMAGE;
00005c  20cf              MOVS     r0,#0xcf
;;;272      return TRUE;
00005e  6160              STR      r0,[r4,#0x14]
000060  2001              MOVS     r0,#1
                  |L1.98|
;;;273    }
000062  bd10              POP      {r4,pc}
;;;274    
                          ENDP


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

                  jpeg_read_raw_data PROC
;;;184    GLOBAL(JDIMENSION)
;;;185    jpeg_read_raw_data (j_decompress_ptr cinfo, JSAMPIMAGE data,
000000  e92d41f0          PUSH     {r4-r8,lr}
;;;186    		    JDIMENSION max_lines)
;;;187    {
000004  4604              MOV      r4,r0
;;;188      JDIMENSION lines_per_iMCU_row;
;;;189    
;;;190      if (cinfo->global_state != DSTATE_RAW_OK)
000006  6940              LDR      r0,[r0,#0x14]
000008  460f              MOV      r7,r1                 ;187
00000a  4616              MOV      r6,r2                 ;187
00000c  28ce              CMP      r0,#0xce
00000e  d009              BEQ      |L2.36|
;;;191        ERREXIT1(cinfo, JERR_BAD_STATE, cinfo->global_state);
000010  6821              LDR      r1,[r4,#0]
000012  2014              MOVS     r0,#0x14
000014  6148              STR      r0,[r1,#0x14]
000016  6821              LDR      r1,[r4,#0]
000018  6960              LDR      r0,[r4,#0x14]
00001a  6188              STR      r0,[r1,#0x18]
00001c  6820              LDR      r0,[r4,#0]
00001e  6801              LDR      r1,[r0,#0]
000020  4620              MOV      r0,r4
000022  4788              BLX      r1
                  |L2.36|
;;;192      if (cinfo->output_scanline >= cinfo->output_height) {
000024  6f61              LDR      r1,[r4,#0x74]
000026  f8d4008c          LDR      r0,[r4,#0x8c]
00002a  4288              CMP      r0,r1
00002c  d309              BCC      |L2.66|
;;;193        WARNMS(cinfo, JWRN_TOO_MUCH_DATA);
00002e  6821              LDR      r1,[r4,#0]
000030  207b              MOVS     r0,#0x7b
000032  6148              STR      r0,[r1,#0x14]
000034  6820              LDR      r0,[r4,#0]
000036  f04f31ff          MOV      r1,#0xffffffff
00003a  6842              LDR      r2,[r0,#4]
00003c  4620              MOV      r0,r4
00003e  4790              BLX      r2
;;;194        return 0;
000040  e01e              B        |L2.128|
                  |L2.66|
;;;195      }
;;;196    
;;;197      /* Call progress monitor hook if present */
;;;198      if (cinfo->progress != NULL) {
000042  68a1              LDR      r1,[r4,#8]
000044  b139              CBZ      r1,|L2.86|
;;;199        cinfo->progress->pass_counter = (long) cinfo->output_scanline;
;;;200        cinfo->progress->pass_limit = (long) cinfo->output_height;
000046  6048              STR      r0,[r1,#4]
000048  68a1              LDR      r1,[r4,#8]
00004a  6f60              LDR      r0,[r4,#0x74]
;;;201        (*cinfo->progress->progress_monitor) ((j_common_ptr) cinfo);
00004c  6088              STR      r0,[r1,#8]
00004e  68a0              LDR      r0,[r4,#8]
000050  6801              LDR      r1,[r0,#0]
000052  4620              MOV      r0,r4
000054  4788              BLX      r1
                  |L2.86|
;;;202      }
;;;203    
;;;204      /* Verify that at least one iMCU row can be returned. */
;;;205      lines_per_iMCU_row = cinfo->max_v_samp_factor * cinfo->min_DCT_scaled_size;
000056  f8d45138          LDR      r5,[r4,#0x138]
00005a  f8d4013c          LDR      r0,[r4,#0x13c]
00005e  4345              MULS     r5,r0,r5
;;;206      if (max_lines < lines_per_iMCU_row)
000060  42ae              CMP      r6,r5
000062  d206              BCS      |L2.114|
;;;207        ERREXIT(cinfo, JERR_BUFFER_SIZE);
000064  6821              LDR      r1,[r4,#0]
000066  2017              MOVS     r0,#0x17
000068  6148              STR      r0,[r1,#0x14]
00006a  6820              LDR      r0,[r4,#0]
00006c  6801              LDR      r1,[r0,#0]
00006e  4620              MOV      r0,r4
000070  4788              BLX      r1
                  |L2.114|
;;;208    
;;;209      /* Decompress directly into user's buffer. */
;;;210      if (! (*cinfo->coef->decompress_data) (cinfo, data))
000072  f8d401ac          LDR      r0,[r4,#0x1ac]
000076  4639              MOV      r1,r7
000078  68c2              LDR      r2,[r0,#0xc]
00007a  4620              MOV      r0,r4
00007c  4790              BLX      r2
00007e  b910              CBNZ     r0,|L2.134|
                  |L2.128|
;;;211        return 0;			/* suspension forced, can do nothing more */
000080  2000              MOVS     r0,#0
                  |L2.130|
;;;212    
;;;213      /* OK, we processed one iMCU row. */
;;;214      cinfo->output_scanline += lines_per_iMCU_row;
;;;215      return lines_per_iMCU_row;
;;;216    }
000082  e8bd81f0          POP      {r4-r8,pc}
                  |L2.134|
000086  f8540f8c          LDR      r0,[r4,#0x8c]!        ;214
00008a  4428              ADD      r0,r0,r5              ;214
00008c  6020              STR      r0,[r4,#0]            ;215
00008e  4628              MOV      r0,r5                 ;215
000090  e7f7              B        |L2.130|
;;;217    
                          ENDP


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

                  jpeg_read_scanlines PROC
;;;151    GLOBAL(JDIMENSION)
;;;152    jpeg_read_scanlines (j_decompress_ptr cinfo, JSAMPARRAY scanlines,
000000  b5f8              PUSH     {r3-r7,lr}
;;;153    		     JDIMENSION max_lines)
;;;154    {
000002  4604              MOV      r4,r0
;;;155      JDIMENSION row_ctr;
;;;156    
;;;157      if (cinfo->global_state != DSTATE_SCANNING)
000004  6940              LDR      r0,[r0,#0x14]
000006  460d              MOV      r5,r1                 ;154
000008  4616              MOV      r6,r2                 ;154
00000a  28cd              CMP      r0,#0xcd
00000c  d009              BEQ      |L3.34|
;;;158        ERREXIT1(cinfo, JERR_BAD_STATE, cinfo->global_state);
00000e  6821              LDR      r1,[r4,#0]
000010  2014              MOVS     r0,#0x14
000012  6148              STR      r0,[r1,#0x14]
000014  6821              LDR      r1,[r4,#0]
000016  6960              LDR      r0,[r4,#0x14]
000018  6188              STR      r0,[r1,#0x18]
00001a  6820              LDR      r0,[r4,#0]
00001c  6801              LDR      r1,[r0,#0]
00001e  4620              MOV      r0,r4
000020  4788              BLX      r1
                  |L3.34|
;;;159      if (cinfo->output_scanline >= cinfo->output_height) {
000022  6f61              LDR      r1,[r4,#0x74]
000024  f8d4008c          LDR      r0,[r4,#0x8c]
000028  4288              CMP      r0,r1
00002a  d30a              BCC      |L3.66|
;;;160        WARNMS(cinfo, JWRN_TOO_MUCH_DATA);
00002c  6821              LDR      r1,[r4,#0]
00002e  207b              MOVS     r0,#0x7b
000030  6148              STR      r0,[r1,#0x14]
000032  6820              LDR      r0,[r4,#0]
000034  f04f31ff          MOV      r1,#0xffffffff
000038  6842              LDR      r2,[r0,#4]
00003a  4620              MOV      r0,r4
00003c  4790              BLX      r2
;;;161        return 0;
00003e  2000              MOVS     r0,#0
;;;162      }
;;;163    
;;;164      /* Call progress monitor hook if present */
;;;165      if (cinfo->progress != NULL) {
;;;166        cinfo->progress->pass_counter = (long) cinfo->output_scanline;
;;;167        cinfo->progress->pass_limit = (long) cinfo->output_height;
;;;168        (*cinfo->progress->progress_monitor) ((j_common_ptr) cinfo);
;;;169      }
;;;170    
;;;171      /* Process some data */
;;;172      row_ctr = 0;
;;;173      (*cinfo->main->process_data) (cinfo, scanlines, &row_ctr, max_lines);
;;;174      cinfo->output_scanline += row_ctr;
;;;175      return row_ctr;
;;;176    }
000040  bdf8              POP      {r3-r7,pc}
                  |L3.66|
000042  68a1              LDR      r1,[r4,#8]            ;165
000044  b139              CBZ      r1,|L3.86|
000046  6048              STR      r0,[r1,#4]            ;167
000048  68a1              LDR      r1,[r4,#8]            ;167
00004a  6f60              LDR      r0,[r4,#0x74]         ;167
00004c  6088              STR      r0,[r1,#8]            ;168
00004e  68a0              LDR      r0,[r4,#8]            ;168
000050  6801              LDR      r1,[r0,#0]            ;168
000052  4620              MOV      r0,r4                 ;168
000054  4788              BLX      r1                    ;168
                  |L3.86|
000056  2000              MOVS     r0,#0                 ;172
000058  9000              STR      r0,[sp,#0]            ;173
00005a  f8d401a8          LDR      r0,[r4,#0x1a8]        ;173
00005e  4633              MOV      r3,r6                 ;173
000060  6847              LDR      r7,[r0,#4]            ;173
000062  466a              MOV      r2,sp                 ;173
000064  4629              MOV      r1,r5                 ;173
000066  4620              MOV      r0,r4                 ;173
000068  47b8              BLX      r7                    ;173
00006a  f8541f8c          LDR      r1,[r4,#0x8c]!        ;174
00006e  9800              LDR      r0,[sp,#0]            ;174
000070  4401              ADD      r1,r1,r0              ;174
000072  6021              STR      r1,[r4,#0]            ;175
000074  bdf8              POP      {r3-r7,pc}
;;;177    
                          ENDP


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

                  jpeg_start_decompress PROC
;;;37     GLOBAL(boolean)
;;;38     jpeg_start_decompress (j_decompress_ptr cinfo)
000000  b510              PUSH     {r4,lr}
;;;39     {
000002  4604              MOV      r4,r0
;;;40       if (cinfo->global_state == DSTATE_READY) {
000004  6940              LDR      r0,[r0,#0x14]

⌨️ 快捷键说明

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