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

📄 jdapimin.txt

📁 STM32F103ZET6+UCOSII+UCGUI源码
💻 TXT
📖 第 1 页 / 共 3 页
字号:
;;;34       /* Guard against version mismatches between library and caller. */
;;;35       cinfo->mem = NULL;		/* so jpeg_destroy knows mem mgr not called */
000004  2500              MOVS     r5,#0
000006  4604              MOV      r4,r0                 ;31
000008  4616              MOV      r6,r2                 ;31
;;;36       if (version != JPEG_LIB_VERSION)
00000a  6045              STR      r5,[r0,#4]
00000c  293e              CMP      r1,#0x3e
00000e  d00b              BEQ      |L2.40|
;;;37         ERREXIT2(cinfo, JERR_BAD_LIB_VERSION, JPEG_LIB_VERSION, version);
000010  6822              LDR      r2,[r4,#0]
000012  200c              MOVS     r0,#0xc
000014  6150              STR      r0,[r2,#0x14]
000016  6822              LDR      r2,[r4,#0]
000018  203e              MOVS     r0,#0x3e
00001a  6190              STR      r0,[r2,#0x18]
00001c  6820              LDR      r0,[r4,#0]
00001e  61c1              STR      r1,[r0,#0x1c]
000020  6820              LDR      r0,[r4,#0]
000022  6801              LDR      r1,[r0,#0]
000024  4620              MOV      r0,r4
000026  4788              BLX      r1
                  |L2.40|
;;;38       if (structsize != SIZEOF(struct jpeg_decompress_struct))
000028  f44f78e8          MOV      r8,#0x1d0
00002c  4546              CMP      r6,r8
00002e  d00b              BEQ      |L2.72|
;;;39         ERREXIT2(cinfo, JERR_BAD_STRUCT_SIZE, 
000030  6821              LDR      r1,[r4,#0]
000032  2015              MOVS     r0,#0x15
000034  6148              STR      r0,[r1,#0x14]
000036  6821              LDR      r1,[r4,#0]
000038  f8c18018          STR      r8,[r1,#0x18]
00003c  6820              LDR      r0,[r4,#0]
00003e  61c6              STR      r6,[r0,#0x1c]
000040  6820              LDR      r0,[r4,#0]
000042  6801              LDR      r1,[r0,#0]
000044  4620              MOV      r0,r4
000046  4788              BLX      r1
                  |L2.72|
;;;40     	     (int) SIZEOF(struct jpeg_decompress_struct), (int) structsize);
;;;41     
;;;42       /* For debugging purposes, we zero the whole master structure.
;;;43        * But the application has already set the err pointer, and may have set
;;;44        * client_data, so we have to save and restore those fields.
;;;45        * Note: if application hasn't set client_data, tools like Purify may
;;;46        * complain here.
;;;47        */
;;;48       {
;;;49         struct jpeg_error_mgr * err = cinfo->err;
;;;50         void * client_data = cinfo->client_data; /* ignore Purify complaint here */
;;;51         MEMZERO(cinfo, SIZEOF(struct jpeg_decompress_struct));
000048  4641              MOV      r1,r8
00004a  4620              MOV      r0,r4
00004c  68e7              LDR      r7,[r4,#0xc]
00004e  6826              LDR      r6,[r4,#0]
000050  f7fffffe          BL       __aeabi_memclr4
;;;52         cinfo->err = err;
;;;53         cinfo->client_data = client_data;
;;;54       }
;;;55       cinfo->is_decompressor = TRUE;
000054  2001              MOVS     r0,#1
;;;56     
;;;57       /* Initialize a memory manager instance for this object */
;;;58       jinit_memory_mgr((j_common_ptr) cinfo);
000056  e9c47003          STRD     r7,r0,[r4,#0xc]
00005a  6026              STR      r6,[r4,#0]
00005c  4620              MOV      r0,r4
00005e  f7fffffe          BL       jinit_memory_mgr
;;;59     
;;;60       /* Zero out pointers to permanent structures. */
;;;61       cinfo->progress = NULL;
;;;62       cinfo->src = NULL;
000062  60a5              STR      r5,[r4,#8]
;;;63     
;;;64       for (i = 0; i < NUM_QUANT_TBLS; i++)
000064  2000              MOVS     r0,#0
000066  61a5              STR      r5,[r4,#0x18]
                  |L2.104|
;;;65         cinfo->quant_tbl_ptrs[i] = NULL;
000068  eb040180          ADD      r1,r4,r0,LSL #2
00006c  1c40              ADDS     r0,r0,#1              ;64
00006e  f8c150a4          STR      r5,[r1,#0xa4]         ;64
000072  2804              CMP      r0,#4                 ;64
000074  dbf8              BLT      |L2.104|
;;;66     
;;;67       for (i = 0; i < NUM_HUFF_TBLS; i++) {
000076  2000              MOVS     r0,#0
                  |L2.120|
;;;68         cinfo->dc_huff_tbl_ptrs[i] = NULL;
000078  eb040180          ADD      r1,r4,r0,LSL #2
00007c  f8415fb4          STR      r5,[r1,#0xb4]!
000080  1c40              ADDS     r0,r0,#1              ;67
000082  610d              STR      r5,[r1,#0x10]         ;67
000084  2804              CMP      r0,#4                 ;67
000086  dbf7              BLT      |L2.120|
;;;69         cinfo->ac_huff_tbl_ptrs[i] = NULL;
;;;70       }
;;;71     
;;;72       /* Initialize marker processor so application can override methods
;;;73        * for COM, APPn markers before calling jpeg_read_header.
;;;74        */
;;;75       cinfo->marker_list = NULL;
;;;76       jinit_marker_reader(cinfo);
000088  4620              MOV      r0,r4
00008a  f8c45130          STR      r5,[r4,#0x130]
00008e  f7fffffe          BL       jinit_marker_reader
;;;77     
;;;78       /* And initialize the overall input controller. */
;;;79       jinit_input_controller(cinfo);
000092  4620              MOV      r0,r4
000094  f7fffffe          BL       jinit_input_controller
;;;80     
;;;81       /* OK, I'm ready */
;;;82       cinfo->global_state = DSTATE_START;
000098  20c8              MOVS     r0,#0xc8
;;;83     }
00009a  6160              STR      r0,[r4,#0x14]
00009c  e8bd81f0          POP      {r4-r8,pc}
;;;84     
                          ENDP


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

                  jpeg_abort_decompress PROC
;;;102    GLOBAL(void)
;;;103    jpeg_abort_decompress (j_decompress_ptr cinfo)
000000  f7ffbffe          B.W      jpeg_abort
;;;104    {
;;;105      jpeg_abort((j_common_ptr) cinfo); /* use common routine */
;;;106    }
;;;107    
                          ENDP


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

                  jpeg_consume_input PROC
;;;286    GLOBAL(int)
;;;287    jpeg_consume_input (j_decompress_ptr cinfo)
000000  b570              PUSH     {r4-r6,lr}
;;;288    {
000002  4604              MOV      r4,r0
;;;289      int retcode = JPEG_SUSPENDED;
;;;290    
;;;291      /* NB: every possible DSTATE value should be listed in this switch */
;;;292      switch (cinfo->global_state) {
000004  6940              LDR      r0,[r0,#0x14]
000006  2500              MOVS     r5,#0                 ;289
000008  38c8              SUBS     r0,r0,#0xc8
00000a  280b              CMP      r0,#0xb
00000c  d229              BCS      |L4.98|
00000e  e8dff000          TBB      [pc,r0]
000012  0611              DCB      0x06,0x11
000014  1f212121          DCB      0x1f,0x21,0x21,0x21
000018  21212128          DCB      0x21,0x21,0x21,0x28
00001c  2100              DCB      0x21,0x00
;;;293      case DSTATE_START:
;;;294        /* Start-of-datastream actions: reset appropriate modules */
;;;295        (*cinfo->inputctl->reset_input_controller) (cinfo);
00001e  f8d401b4          LDR      r0,[r4,#0x1b4]
000022  6841              LDR      r1,[r0,#4]
000024  4620              MOV      r0,r4
000026  4788              BLX      r1
;;;296        /* Initialize application's data source module */
;;;297        (*cinfo->src->init_source) (cinfo);
000028  69a0              LDR      r0,[r4,#0x18]
00002a  6881              LDR      r1,[r0,#8]
00002c  4620              MOV      r0,r4
00002e  4788              BLX      r1
;;;298        cinfo->global_state = DSTATE_INHEADER;
000030  20c9              MOVS     r0,#0xc9
000032  6160              STR      r0,[r4,#0x14]
;;;299        /*FALLTHROUGH*/
;;;300      case DSTATE_INHEADER:
;;;301        retcode = (*cinfo->inputctl->consume_input) (cinfo);
000034  f8d401b4          LDR      r0,[r4,#0x1b4]
000038  6801              LDR      r1,[r0,#0]
00003a  4620              MOV      r0,r4
00003c  4788              BLX      r1
00003e  4605              MOV      r5,r0
;;;302        if (retcode == JPEG_REACHED_SOS) { /* Found SOS, prepare to decompress */
000040  2801              CMP      r0,#1
000042  d118              BNE      |L4.118|
;;;303          /* Set up default parameters based on header data */
;;;304          default_decompress_parms(cinfo);
000044  4620              MOV      r0,r4
000046  f7fffffe          BL       default_decompress_parms
;;;305          /* Set global state: ready for start_decompress */
;;;306          cinfo->global_state = DSTATE_READY;
00004a  20ca              MOVS     r0,#0xca
00004c  6160              STR      r0,[r4,#0x14]
00004e  e012              B        |L4.118|
;;;307        }
;;;308        break;
;;;309      case DSTATE_READY:
;;;310        /* Can't advance past first SOS until start_decompress is called */
;;;311        retcode = JPEG_REACHED_SOS;
000050  2501              MOVS     r5,#1
;;;312        break;
000052  e010              B        |L4.118|
;;;313      case DSTATE_PRELOAD:
;;;314      case DSTATE_PRESCAN:
;;;315      case DSTATE_SCANNING:
;;;316      case DSTATE_RAW_OK:
;;;317      case DSTATE_BUFIMAGE:
;;;318      case DSTATE_BUFPOST:
;;;319      case DSTATE_STOPPING:
;;;320        retcode = (*cinfo->inputctl->consume_input) (cinfo);
000054  f8d401b4          LDR      r0,[r4,#0x1b4]
000058  6801              LDR      r1,[r0,#0]
00005a  4620              MOV      r0,r4
00005c  4788              BLX      r1
00005e  4605              MOV      r5,r0
;;;321        break;
000060  e009              B        |L4.118|
                  |L4.98|
;;;322      default:
;;;323        ERREXIT1(cinfo, JERR_BAD_STATE, cinfo->global_state);
000062  6821              LDR      r1,[r4,#0]
000064  2014              MOVS     r0,#0x14
000066  6148              STR      r0,[r1,#0x14]
000068  6821              LDR      r1,[r4,#0]
00006a  6960              LDR      r0,[r4,#0x14]
00006c  6188              STR      r0,[r1,#0x18]
00006e  6820              LDR      r0,[r4,#0]
000070  6801              LDR      r1,[r0,#0]
000072  4620              MOV      r0,r4
000074  4788              BLX      r1
                  |L4.118|
;;;324      }
;;;325      return retcode;
000076  4628              MOV      r0,r5
;;;326    }
000078  bd70              POP      {r4-r6,pc}
;;;327    
                          ENDP


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

                  jpeg_destroy_decompress PROC
;;;90     GLOBAL(void)
;;;91     jpeg_destroy_decompress (j_decompress_ptr cinfo)
000000  f7ffbffe          B.W      jpeg_destroy
;;;92     {
;;;93       jpeg_destroy((j_common_ptr) cinfo); /* use common routine */
;;;94     }
;;;95     
                          ENDP


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

⌨️ 快捷键说明

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