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

📄 jutils.txt

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

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

                  jcopy_block_row PROC
;;;144    GLOBAL(void)
;;;145    jcopy_block_row (JBLOCKROW input_row, JBLOCKROW output_row,
000000  4603              MOV      r3,r0
;;;146    		 JDIMENSION num_blocks)
;;;147    /* Copy a row of coefficient blocks from one place to another. */
;;;148    {
000002  4608              MOV      r0,r1
;;;149    #ifdef FMEMCOPY
;;;150      FMEMCOPY(output_row, input_row, num_blocks * (DCTSIZE2 * SIZEOF(JCOEF)));
000004  01d2              LSLS     r2,r2,#7
000006  4619              MOV      r1,r3
000008  f7ffbffe          B.W      __aeabi_memcpy
;;;151    #else
;;;152      register JCOEFPTR inptr, outptr;
;;;153      register long count;
;;;154    
;;;155      inptr = (JCOEFPTR) input_row;
;;;156      outptr = (JCOEFPTR) output_row;
;;;157      for (count = (long) num_blocks * DCTSIZE2; count > 0; count--) {
;;;158        *outptr++ = *inptr++;
;;;159      }
;;;160    #endif
;;;161    }
;;;162    
                          ENDP


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

                  jcopy_sample_rows PROC
;;;110    GLOBAL(void)
;;;111    jcopy_sample_rows (JSAMPARRAY input_array, int source_row,
000000  e92d41f0          PUSH     {r4-r8,lr}
;;;112    		   JSAMPARRAY output_array, int dest_row,
;;;113    		   int num_rows, JDIMENSION num_cols)
;;;114    /* Copy some rows of samples from one place to another.
;;;115     * num_rows rows are copied from input_array[source_row++]
;;;116     * to output_array[dest_row++]; these areas may overlap for duplication.
;;;117     * The source and destination arrays must be at least as wide as num_cols.
;;;118     */
;;;119    {
;;;120      register JSAMPROW inptr, outptr;
;;;121    #ifdef FMEMCOPY
;;;122      register size_t count = (size_t) (num_cols * SIZEOF(JSAMPLE));
;;;123    #else
;;;124      register JDIMENSION count;
;;;125    #endif
;;;126      register int row;
;;;127    
;;;128      input_array += source_row;
;;;129      output_array += dest_row;
;;;130    
;;;131      for (row = num_rows; row > 0; row--) {
000004  e9dd4706          LDRD     r4,r7,[sp,#0x18]
000008  eb000581          ADD      r5,r0,r1,LSL #2       ;128
00000c  eb020683          ADD      r6,r2,r3,LSL #2       ;129
000010  e005              B        |L2.30|
                  |L2.18|
;;;132        inptr = *input_array++;
000012  cd02              LDM      r5!,{r1}
;;;133        outptr = *output_array++;
000014  ce01              LDM      r6!,{r0}
;;;134    #ifdef FMEMCOPY
;;;135        FMEMCOPY(outptr, inptr, count);
000016  463a              MOV      r2,r7
000018  f7fffffe          BL       __aeabi_memcpy
00001c  1e64              SUBS     r4,r4,#1              ;131
                  |L2.30|
00001e  2c00              CMP      r4,#0                 ;131
000020  dcf7              BGT      |L2.18|
;;;136    #else
;;;137        for (count = num_cols; count > 0; count--)
;;;138          *outptr++ = *inptr++;	/* needn't bother with GETJSAMPLE() here */
;;;139    #endif
;;;140      }
;;;141    }
000022  e8bd81f0          POP      {r4-r8,pc}
;;;142    
                          ENDP


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

                  jdiv_round_up PROC
;;;71     GLOBAL(long)
;;;72     jdiv_round_up (long a, long b)
000000  4408              ADD      r0,r0,r1
;;;73     /* Compute a/b rounded up to next integer, ie, ceil(a/b) */
;;;74     /* Assumes a >= 0, b > 0 */
;;;75     {
;;;76       return (a + b - 1L) / b;
000002  1e40              SUBS     r0,r0,#1
000004  fb90f0f1          SDIV     r0,r0,r1
;;;77     }
000008  4770              BX       lr
;;;78     
                          ENDP


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

                  jround_up PROC
;;;80     GLOBAL(long)
;;;81     jround_up (long a, long b)
000000  4408              ADD      r0,r0,r1
;;;82     /* Compute a rounded up to next multiple of b, ie, ceil(a/b)*b */
;;;83     /* Assumes a >= 0, b > 0 */
;;;84     {
;;;85       a += b - 1L;
000002  1e40              SUBS     r0,r0,#1
;;;86       return a - (a % b);
000004  fb90f2f1          SDIV     r2,r0,r1
000008  fb010112          MLS      r1,r1,r2,r0
00000c  1a40              SUBS     r0,r0,r1
;;;87     }
00000e  4770              BX       lr
;;;88     
                          ENDP


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

                  jzero_far PROC
;;;164    GLOBAL(void)
;;;165    jzero_far (void FAR * target, size_t bytestozero)
000000  f7ffbffe          B.W      __aeabi_memclr
;;;166    /* Zero out a chunk of FAR memory. */
;;;167    /* This might be sample-array data, block-array data, or alloc_large data. */
;;;168    {
;;;169    #ifdef FMEMZERO
;;;170      FMEMZERO(target, bytestozero);
;;;171    #else
;;;172      register char FAR * ptr = (char FAR *) target;
;;;173      register size_t count;
;;;174    
;;;175      for (count = bytestozero; count > 0; count--) {
;;;176        *ptr++ = 0;
;;;177      }
;;;178    #endif
;;;179    }
                          ENDP


                          AREA ||.constdata||, DATA, READONLY, ALIGN=2

                  jpeg_natural_order
                          DCD      0x00000000
                          DCD      0x00000001
                          DCD      0x00000008
                          DCD      0x00000010
                          DCD      0x00000009
                          DCD      0x00000002
                          DCD      0x00000003
                          DCD      0x0000000a
                          DCD      0x00000011
                          DCD      0x00000018
                          DCD      0x00000020
                          DCD      0x00000019
                          DCD      0x00000012
                          DCD      0x0000000b
                          DCD      0x00000004
                          DCD      0x00000005
                          DCD      0x0000000c
                          DCD      0x00000013
                          DCD      0x0000001a
                          DCD      0x00000021
                          DCD      0x00000028
                          DCD      0x00000030
                          DCD      0x00000029
                          DCD      0x00000022
                          DCD      0x0000001b
                          DCD      0x00000014
                          DCD      0x0000000d
                          DCD      0x00000006
                          DCD      0x00000007
                          DCD      0x0000000e
                          DCD      0x00000015
                          DCD      0x0000001c
                          DCD      0x00000023
                          DCD      0x0000002a
                          DCD      0x00000031
                          DCD      0x00000038
                          DCD      0x00000039
                          DCD      0x00000032
                          DCD      0x0000002b
                          DCD      0x00000024
                          DCD      0x0000001d
                          DCD      0x00000016
                          DCD      0x0000000f
                          DCD      0x00000017
                          DCD      0x0000001e
                          DCD      0x00000025
                          DCD      0x0000002c
                          DCD      0x00000033
                          DCD      0x0000003a
                          DCD      0x0000003b
                          DCD      0x00000034
                          DCD      0x0000002d
                          DCD      0x00000026
                          DCD      0x0000001f
                          DCD      0x00000027
                          DCD      0x0000002e
                          DCD      0x00000035
                          DCD      0x0000003c
                          DCD      0x0000003d
                          DCD      0x00000036
                          DCD      0x0000002f
                          DCD      0x00000037
                          DCD      0x0000003e
                          DCD      0x0000003f
                          DCD      0x0000003f
                          DCD      0x0000003f
                          DCD      0x0000003f
                          DCD      0x0000003f
                          DCD      0x0000003f
                          DCD      0x0000003f
                          DCD      0x0000003f
                          DCD      0x0000003f
                          DCD      0x0000003f
                          DCD      0x0000003f
                          DCD      0x0000003f
                          DCD      0x0000003f
                          DCD      0x0000003f
                          DCD      0x0000003f
                          DCD      0x0000003f
                          DCD      0x0000003f

⌨️ 快捷键说明

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