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

📄 fimvlib.txt

📁 s3c24a0固件测试代码 ? ? ? ? ?啊 
💻 TXT
📖 第 1 页 / 共 2 页
字号:
; generated by ARM C Compiler, ADS1.2 [Build 842]

; commandline [-errors .\err\fimvlib.err -O0 -asm -g+ -cpu 5TEJ -fs -Wd -Ec -I.\include "-IC:\Program Files\ARM\ADSv1_2\INCLUDE"]
                          CODE32

                          AREA ||.text||, CODE, READONLY

                  AllocImage420 PROC
;;;33     U32 AllocImage420(PIMAGE420 pImage420,U32 freeBuf,U32 imageWidth,U32 imageHeight,U32 type)
;;;34     {
000000  e92d4030          STMFD    sp!,{r4,r5,lr}
000004  e1a0c000          MOV      r12,r0
000008  e59de00c          LDR      lr,[sp,#0xc]
;;;35         U32 i;
;;;36         pImage420->frameStartAddr=freeBuf;
00000c  e58c1000          STR      r1,[r12,#0]
;;;37     
;;;38         switch(type&IMAGE420_MASK)
000010  e21e0003          ANDS     r0,lr,#3
000014  0a000004          BEQ      |L1.44|
000018  e3500001          CMP      r0,#1
00001c  0a00001b          BEQ      |L1.144|
000020  e3500002          CMP      r0,#2
000024  1a00002e          BNE      |L1.228|
000028  ea000021          B        |L1.180|
;;;39         {
;;;40         case IMAGE420_PADDED:
;;;41     	pImage420->yStartAddr=freeBuf+(imageWidth+32)*16+16;	
                  |L1.44|
00002c  e0810202          ADD      r0,r1,r2,LSL #4
000030  e2800f84          ADD      r0,r0,#0x210
000034  e58c0004          STR      r0,[r12,#4]
;;;42     	freeBuf+=(imageWidth+32)*(imageHeight+32);
000038  e2820020          ADD      r0,r2,#0x20
00003c  e2835020          ADD      r5,r3,#0x20
000040  e0211095          MLA      r1,r5,r0,r1
;;;43     	    
;;;44     	pImage420->cbStartAddr=freeBuf+(imageWidth+32)*16/4+16/2;
000044  e3a00f80          MOV      r0,#0x200
000048  e0800202          ADD      r0,r0,r2,LSL #4
00004c  e0810120          ADD      r0,r1,r0,LSR #2
000050  e2800008          ADD      r0,r0,#8
000054  e58c0008          STR      r0,[r12,#8]
;;;45     	freeBuf+=(imageWidth+32)*(imageHeight+32)/4;
000058  e2820020          ADD      r0,r2,#0x20
00005c  e2835020          ADD      r5,r3,#0x20
000060  e0000095          MUL      r0,r5,r0
000064  e0811120          ADD      r1,r1,r0,LSR #2
;;;46     	    
;;;47     	pImage420->crStartAddr=freeBuf+(imageWidth+32)*16/4+16/2;
000068  e3a00f80          MOV      r0,#0x200
00006c  e0800202          ADD      r0,r0,r2,LSL #4
000070  e0810120          ADD      r0,r1,r0,LSR #2
000074  e2800008          ADD      r0,r0,#8
000078  e58c000c          STR      r0,[r12,#0xc]
;;;48     	freeBuf+=(imageWidth+32)*(imageHeight+32)/4;
00007c  e2820020          ADD      r0,r2,#0x20
000080  e2835020          ADD      r5,r3,#0x20
000084  e0000095          MUL      r0,r5,r0
000088  e0811120          ADD      r1,r1,r0,LSR #2
;;;49     	break;
00008c  ea000015          B        |L1.232|
;;;50     
;;;51         case IMAGE420_NO_PADDED:
;;;52     	pImage420->yStartAddr=freeBuf;
                  |L1.144|
000090  e58c1004          STR      r1,[r12,#4]
;;;53     	freeBuf+=imageWidth*imageHeight;
000094  e0211293          MLA      r1,r3,r2,r1
;;;54     	
;;;55     	pImage420->cbStartAddr=freeBuf;
000098  e58c1008          STR      r1,[r12,#8]
;;;56     	freeBuf+=imageWidth*imageHeight/4;
00009c  e0000293          MUL      r0,r3,r2
0000a0  e0811120          ADD      r1,r1,r0,LSR #2
;;;57     	
;;;58     	pImage420->crStartAddr=freeBuf;
0000a4  e58c100c          STR      r1,[r12,#0xc]
;;;59     	freeBuf+=imageWidth*imageHeight/4;
0000a8  e0000293          MUL      r0,r3,r2
0000ac  e0811120          ADD      r1,r1,r0,LSR #2
;;;60     	break;
0000b0  ea00000c          B        |L1.232|
;;;61     
;;;62         case IMAGE420_DCTQ_COEFF:
;;;63      	pImage420->yStartAddr=freeBuf;
                  |L1.180|
0000b4  e58c1004          STR      r1,[r12,#4]
;;;64     	freeBuf+=(imageWidth*2)*imageHeight;
0000b8  e1a00082          MOV      r0,r2,LSL #1
0000bc  e0211093          MLA      r1,r3,r0,r1
;;;65     	    
;;;66     	pImage420->cbStartAddr=freeBuf;
0000c0  e58c1008          STR      r1,[r12,#8]
;;;67     	freeBuf+=(imageWidth*2)*imageHeight/4;
0000c4  e1a00082          MOV      r0,r2,LSL #1
0000c8  e0000093          MUL      r0,r3,r0
0000cc  e0811120          ADD      r1,r1,r0,LSR #2
;;;68     	    
;;;69     	pImage420->crStartAddr=freeBuf;
0000d0  e58c100c          STR      r1,[r12,#0xc]
;;;70     	freeBuf+=(imageWidth*2)*imageHeight/4;
0000d4  e1a00082          MOV      r0,r2,LSL #1
0000d8  e0000093          MUL      r0,r3,r0
0000dc  e0811120          ADD      r1,r1,r0,LSR #2
;;;71         	break;
0000e0  ea000000          B        |L1.232|
;;;72     
;;;73     
;;;74         default:
;;;75         	break;
                  |L1.228|
0000e4  e1a00000          NOP      
;;;76         }	
;;;77     
;;;78         if(type&IMAGE420_CLEAR)
                  |L1.232|
0000e8  e31e0004          TST      lr,#4
0000ec  0a000008          BEQ      |L1.276|
;;;79         {
;;;80             for(i=pImage420->frameStartAddr;i<freeBuf;i++)
0000f0  e59c4000          LDR      r4,[r12,#0]
                  |L1.244|
0000f4  e1540001          CMP      r4,r1
0000f8  2a000005          BCS      |L1.276|
0000fc  ea000001          B        |L1.264|
                  |L1.256|
000100  e2844001          ADD      r4,r4,#1
000104  eafffffa          B        |L1.244|
;;;81             {
;;;82                 *(U8 *)i=0xff;  //for debug
                  |L1.264|
000108  e3a000ff          MOV      r0,#0xff
00010c  e5c40000          STRB     r0,[r4,#0]
;;;83             }
000110  eafffffa          B        |L1.256|
;;;84         }
;;;85         
;;;86         pImage420->type=type&IMAGE420_MASK;
                  |L1.276|
000114  e20e0003          AND      r0,lr,#3
000118  e58c0018          STR      r0,[r12,#0x18]
;;;87         pImage420->imageWidth=imageWidth;
00011c  e58c2010          STR      r2,[r12,#0x10]
;;;88         pImage420->imageHeight=imageHeight;
000120  e58c3014          STR      r3,[r12,#0x14]
;;;89     
;;;90         return freeBuf;
000124  e1a00001          MOV      r0,r1
;;;91     }
000128  e8bd8030          LDMFD    sp!,{r4,r5,pc}
                          ENDP

                  CopyImage420 PROC
;;;96     void CopyImage420(PIMAGE420 pDstImage420,PIMAGE420 pSrcImage420)
;;;97     {
00012c  e92d4ff0          STMFD    sp!,{r4-r11,lr}
000130  e24dd01c          SUB      sp,sp,#0x1c
000134  e1a07000          MOV      r7,r0
000138  e1a06001          MOV      r6,r1
;;;98         U8 *pYSrcStart,*pYDstStart;
;;;99         U8 *pCbSrcStart,*pCbDstStart;
;;;100        U8 *pCrSrcStart,*pCrDstStart;
;;;101        U32 ySize,cbSize,crSize;
;;;102        
;;;103        U32 imageWidth,imageHeight,i;
;;;104        
;;;105        
;;;106        imageWidth=pSrcImage420->imageWidth;
00013c  e5965010          LDR      r5,[r6,#0x10]
;;;107        imageHeight=pSrcImage420->imageHeight;
000140  e5968014          LDR      r8,[r6,#0x14]
;;;108    
;;;109        if(pSrcImage420->type!=pDstImage420->type || pSrcImage420->type==IMAGE420_DCTQ_COEFF)
000144  e5960018          LDR      r0,[r6,#0x18]
000148  e5971018          LDR      r1,[r7,#0x18]
00014c  e1500001          CMP      r0,r1
000150  1a000002          BNE      |L1.352|
000154  e5960018          LDR      r0,[r6,#0x18]
000158  e3500002          CMP      r0,#2
00015c  1a000003          BNE      |L1.368|
;;;110        {
;;;111        	printf("ERROR:The type of two IMAGE420 picture has to be same.\n");
                  |L1.352|
000160  e28f0f74          ADR      r0,|L1.824|
000164  ebfffffe          BL       printf
;;;112    	return;
;;;113        }
;;;114    
;;;115        switch(pSrcImage420->type)
;;;116        {
;;;117        case IMAGE420_PADDED:
;;;118    	pYSrcStart=(U8 *)( pSrcImage420->yStartAddr-((imageWidth+32)*16+16) );	
;;;119    	pYDstStart=(U8 *)( pDstImage420->yStartAddr-((imageWidth+32)*16+16) );	
;;;120      	ySize=(imageWidth+32)*(imageHeight+32);
;;;121    	
;;;122    	pCbSrcStart=(U8 *)( pSrcImage420->cbStartAddr-((imageWidth+32)*16/4+16/2) );
;;;123    	pCbDstStart=(U8 *)( pDstImage420->cbStartAddr-((imageWidth+32)*16/4+16/2) );
;;;124    	cbSize=(imageWidth+32)*(imageHeight+32)/4;
;;;125    	
;;;126    	pCrSrcStart=(U8 *)( pSrcImage420->crStartAddr-((imageWidth+32)*16/4+16/2) );
;;;127    	pCrDstStart=(U8 *)( pDstImage420->crStartAddr-((imageWidth+32)*16/4+16/2) );
;;;128    	crSize=(imageWidth+32)*(imageHeight+32)/4;

⌨️ 快捷键说明

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