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

📄 main.lst

📁 MMC/SD on Olimex Sam7-EX256
💻 LST
字号:
   1              		.code	16   2              		.file	"main.c"  10              	.Ltext0:  11              		.global	state_mmc  12              		.data  15              	state_mmc:  16 0000 01       		.byte	1  17              		.global	ch2  18              		.bss  21              	ch2:  22 0000 00       		.space	1  23              		.global	ch1  26              	ch1:  27 0001 00       		.space	1  28              		.global	m_pRSTC  29              		.data  30 0001 000000   		.align	2  33              	m_pRSTC:  34 0004 00FDFFFF 		.word	-768  35              		.global	m_pADC  36              		.align	2  39              	m_pADC:  40 0008 0080FDFF 		.word	-163840  41              		.global	m_pSys  42              		.align	2  45              	m_pSys:  46 000c 00F0FFFF 		.word	-4096  47              		.global	m_pAic  48              		.align	2  51              	m_pAic:  52 0010 00F0FFFF 		.word	-4096  53              		.global	m_pMC  54              		.align	2  57              	m_pMC:  58 0014 00FFFFFF 		.word	-256  59              		.global	m_pPDC  60              		.align	2  63              	m_pPDC:  64 0018 0001FCFF 		.word	-261888  65              		.global	m_pUSART  66              		.align	2  69              	m_pUSART:  70 001c 0000FCFF 		.word	-262144  71              		.global	m_pPMC  72              		.align	2  75              	m_pPMC:  76 0020 00FCFFFF 		.word	-1024  77              		.global	m_pPioB  78              		.align	2  81              	m_pPioB:  82 0024 00F6FFFF 		.word	-2560  83              		.global	m_pPioA  84              		.align	2  87              	m_pPioA:  88 0028 00F4FFFF 		.word	-3072  89              		.text  90              		.align	2  91              		.global	Delay  92              		.code 16  93              		.thumb_func  95              	Delay:  96              	.LFB2:  97              		.file 1 "main.c"   1:main.c        **** //#include "ioat91sam7x256.h"
   2:main.c        **** #include "include/include.h"
   3:main.c        **** 
   4:main.c        **** 
   5:main.c        **** #include "string.h"
   6:main.c        **** 
   7:main.c        **** 
   8:main.c        **** 
   9:main.c        **** //MAIN POINTER
  10:main.c        **** AT91PS_PIO    m_pPioA  = AT91C_BASE_PIOA;
  11:main.c        **** AT91PS_PIO    m_pPioB  = AT91C_BASE_PIOB;
  12:main.c        **** AT91PS_PMC    m_pPMC   = AT91C_BASE_PMC;
  13:main.c        **** AT91PS_USART  m_pUSART = AT91C_BASE_US0;
  14:main.c        **** AT91PS_PDC    m_pPDC   = AT91C_BASE_PDC_US0;
  15:main.c        **** AT91PS_MC     m_pMC    = AT91C_BASE_MC;
  16:main.c        **** AT91PS_AIC    m_pAic   = AT91C_BASE_AIC;
  17:main.c        **** AT91PS_SYS    m_pSys   = AT91C_BASE_SYS;
  18:main.c        **** AT91PS_ADC    m_pADC   = AT91C_BASE_ADC;
  19:main.c        **** AT91PS_RSTC   m_pRSTC  = AT91C_BASE_RSTC;
  20:main.c        **** 
  21:main.c        **** #define LCD_RESET_LOW     m_pPioA->PIO_CODR   = BIT2
  22:main.c        **** #define LCD_RESET_HIGH    m_pPioA->PIO_SODR   = BIT2
  23:main.c        **** 
  24:main.c        **** //it's a simple delay
  25:main.c        **** void Delay (unsigned long a) { while (--a!=0); }
  98              		.loc 1 25 0  99              	.LVL0: 100              		@ lr needed for prologue 101              		.loc 1 25 0 102 0000 0023     		mov	r3, #0 103              	.L3: 104 0002 0133     		add	r3, r3, #1 105 0004 8342     		cmp	r3, r0 106 0006 FCD1     		bne	.L3 107              		@ sp needed for prologue 108 0008 7047     		bx	lr 109              	.LFE2: 111 000a 0000     		.align	2 112              		.global	main 113              		.code 16 114              		.thumb_func 116              	main: 117              	.LFB3:  26:main.c        **** 
  27:main.c        **** 
  28:main.c        **** extern char mmc_buffer[512];
  29:main.c        **** 
  30:main.c        **** unsigned char ch1 = 0x0;
  31:main.c        **** unsigned char ch2 = 0x0;
  32:main.c        **** 
  33:main.c        **** char mmc_buffer_test_1[512];
  34:main.c        **** char mmc_buffer_test_2[512];
  35:main.c        **** 
  36:main.c        **** char state_mmc  = 1;
  37:main.c        **** 
  38:main.c        **** // loop variable
  39:main.c        **** unsigned int i;
  40:main.c        **** 
  41:main.c        **** int main()
  42:main.c        **** {
 118              		.loc 1 42 0 119 000c F0B5     		push	{r4, r5, r6, r7, lr} 120              	.LCFI0: 121              	.LVL1:  43:main.c        **** 
  44:main.c        ****   // Freq init
  45:main.c        ****   InitFrec();
  46:main.c        **** 
  47:main.c        ****   // Init periphery
  48:main.c        ****   InitPeriphery();
  49:main.c        ****   
  50:main.c        ****   //AT91C_BASE_PMC->PMC_PCER = ( 1 << AT91C_ID_PIOA ) | ( 1 << AT91C_ID_PIOB ) | ( 1 << AT91C_ID_US  51:main.c        ****   //AT91C_BASE_PMC->PMC_PCER = ( 1 << AT91C_ID_US0 );
  52:main.c        ****   //uart0_init();
  53:main.c        ****   //uart0_puts("\n\nHI! INIT...OK\n");
  54:main.c        **** 
  55:main.c        **** 	AT91C_BASE_PIOB->PIO_OER = (AT91B_LCD_BL);		// set to output
 122              		.loc 1 55 0 123 000e 2E4F     		ldr	r7, .L17 124 0010 8026     		mov	r6, #128 125 0012 7603     		lsl	r6, r6, #13 126              		.loc 1 45 0 127 0014 FFF7FEFF 		bl	InitFrec 128              		.loc 1 48 0 129 0018 FFF7FEFF 		bl	InitPeriphery 130              		.loc 1 55 0 131 001c 3E61     		str	r6, [r7, #16]  56:main.c        **** 	AT91C_BASE_PIOB->PIO_PER = (AT91B_LCD_BL);		// set to PIO mode
 132              		.loc 1 56 0 133 001e 3E60     		str	r6, [r7]  57:main.c        **** 	AT91C_BASE_PIOB->PIO_PPUDR = (AT91B_LCD_BL);	// disable pull up 
 134              		.loc 1 57 0 135 0020 3E66     		str	r6, [r7, #96]  58:main.c        **** 	
  59:main.c        **** 
  60:main.c        **** 
  61:main.c        ****   /**** MMC CARD ****/
  62:main.c        ****   if (initMMC() == MMC_SUCCESS)	// card found
 136              		.loc 1 62 0 137 0022 FFF7FEFF 		bl	initMMC 138 0026 051C     		mov	r5, r0 139 0028 0028     		cmp	r0, #0 140 002a 4CD1     		bne	.L9  63:main.c        ****   {
  64:main.c        ****     //card_state |= 1;
  65:main.c        ****     memset(&mmc_buffer,0,512);
 141              		.loc 1 65 0 142 002c 274C     		ldr	r4, .L17+4 143 002e 8022     		mov	r2, #128 144 0030 9200     		lsl	r2, r2, #2 145 0032 0021     		mov	r1, #0 146 0034 201C     		mov	r0, r4 147 0036 FFF7FEFF 		bl	memset  66:main.c        ****     mmcReadRegister (10, 16);
 148              		.loc 1 66 0 149 003a 1021     		mov	r1, #16 150 003c 0A20     		mov	r0, #10 151 003e FFF7FEFF 		bl	mmcReadRegister  67:main.c        ****     mmc_buffer[7]=0;
  68:main.c        **** 
  69:main.c        ****     // Fill first Block (0) with 'A'
  70:main.c        ****     memset(&mmc_buffer,'0',512);    //set breakpoint and trace mmc_buffer contents
 152              		.loc 1 70 0 153 0042 8022     		mov	r2, #128 154 0044 3021     		mov	r1, #48 155 0046 9200     		lsl	r2, r2, #2 156              		.loc 1 67 0 157 0048 E571     		strb	r5, [r4, #7] 158              		.loc 1 70 0 159 004a 201C     		mov	r0, r4 160 004c FFF7FEFF 		bl	memset  71:main.c        ****     mmcWriteBlock(0);
 161              		.loc 1 71 0 162 0050 0020     		mov	r0, #0 163 0052 FFF7FEFF 		bl	mmcWriteBlock  72:main.c        ****     // Fill second Block (1)-AbsAddr 512 with 'B'
  73:main.c        ****     memset(&mmc_buffer,'1',512);
 164              		.loc 1 73 0 165 0056 8022     		mov	r2, #128 166 0058 3121     		mov	r1, #49 167 005a 9200     		lsl	r2, r2, #2 168 005c 201C     		mov	r0, r4 169 005e FFF7FEFF 		bl	memset  74:main.c        ****     mmcWriteBlock(512);
 170              		.loc 1 74 0 171 0062 8020     		mov	r0, #128 172 0064 8000     		lsl	r0, r0, #2 173 0066 FFF7FEFF 		bl	mmcWriteBlock  75:main.c        **** 
  76:main.c        ****     // Read first Block back to buffer
  77:main.c        ****     memset(&mmc_buffer,0x00,512);
 174              		.loc 1 77 0 175 006a 8022     		mov	r2, #128 176 006c 9200     		lsl	r2, r2, #2 177 006e 0021     		mov	r1, #0 178 0070 201C     		mov	r0, r4 179 0072 FFF7FEFF 		bl	memset  78:main.c        ****     mmcReadBlock(0,512);
 180              		.loc 1 78 0 181 0076 8021     		mov	r1, #128 182 0078 8900     		lsl	r1, r1, #2 183 007a 0020     		mov	r0, #0 184 007c FFF7FEFF 		bl	mmcReadBlock  79:main.c        ****     if(strncmp(&mmc_buffer[0], &mmc_buffer_test_1[0], 512)) AT91C_BASE_PIOB->PIO_SODR = AT91B_LCD_B 185              		.loc 1 79 0 186 0080 8022     		mov	r2, #128 187 0082 1349     		ldr	r1, .L17+8 188 0084 201C     		mov	r0, r4 189 0086 9200     		lsl	r2, r2, #2 190 0088 FFF7FEFF 		bl	strncmp 191 008c 0028     		cmp	r0, #0 192 008e 00D0     		beq	.L11 193 0090 3E63     		str	r6, [r7, #48] 194              	.L11:  80:main.c        **** 
  81:main.c        ****     // Read first Block back to buffer
  82:main.c        ****     memset(&mmc_buffer,0x00,512);
 195              		.loc 1 82 0 196 0092 8022     		mov	r2, #128 197 0094 9200     		lsl	r2, r2, #2 198 0096 0021     		mov	r1, #0 199 0098 201C     		mov	r0, r4 200 009a FFF7FEFF 		bl	memset  83:main.c        ****     mmcReadBlock(512,512);
 201              		.loc 1 83 0 202 009e 8020     		mov	r0, #128 203 00a0 8000     		lsl	r0, r0, #2 204 00a2 011C     		mov	r1, r0 205 00a4 FFF7FEFF 		bl	mmcReadBlock  84:main.c        ****     if(strncmp(&mmc_buffer[0], &mmc_buffer_test_2[0], 512)) AT91C_BASE_PIOB->PIO_SODR = AT91B_LCD_B 206              		.loc 1 84 0 207 00a8 8022     		mov	r2, #128 208 00aa 0A49     		ldr	r1, .L17+12 209 00ac 201C     		mov	r0, r4 210 00ae 9200     		lsl	r2, r2, #2 211 00b0 FFF7FEFF 		bl	strncmp 212 00b4 0028     		cmp	r0, #0 213 00b6 00D0     		beq	.L13 214 00b8 3E63     		str	r6, [r7, #48] 215              	.L13:  85:main.c        **** 
  86:main.c        ****     memset(&mmc_buffer,0x00,512);
 216              		.loc 1 86 0 217 00ba 8022     		mov	r2, #128 218 00bc 201C     		mov	r0, r4 219 00be 0021     		mov	r1, #0 220 00c0 9200     		lsl	r2, r2, #2 221 00c2 FFF7FEFF 		bl	memset 222              	.L9: 223              	.L16: 224 00c6 FEE7     		b	.L16 225              	.L18: 226              		.align	2 227              	.L17: 228 00c8 00F6FFFF 		.word	-2560 229 00cc 00000000 		.word	mmc_buffer 230 00d0 00000000 		.word	mmc_buffer_test_1 231 00d4 00000000 		.word	mmc_buffer_test_2 232              	.LFE3: 234              		.comm	i,4,4 235              		.comm	mmc_buffer_test_2,512,1 236              		.comm	mmc_buffer_test_1,512,1 284              	.Letext0:DEFINED SYMBOLS                            *ABS*:00000000 main.c/cygdrive/c/DOCUME~1/Dima/LOCALS~1/Temp/ccZxUDNH.s:1      .text:00000000 $t/cygdrive/c/DOCUME~1/Dima/LOCALS~1/Temp/ccZxUDNH.s:15     .data:00000000 state_mmc/cygdrive/c/DOCUME~1/Dima/LOCALS~1/Temp/ccZxUDNH.s:21     .bss:00000000 ch2                             .bss:00000000 $d/cygdrive/c/DOCUME~1/Dima/LOCALS~1/Temp/ccZxUDNH.s:26     .bss:00000001 ch1/cygdrive/c/DOCUME~1/Dima/LOCALS~1/Temp/ccZxUDNH.s:33     .data:00000004 m_pRSTC/cygdrive/c/DOCUME~1/Dima/LOCALS~1/Temp/ccZxUDNH.s:34     .data:00000004 $d/cygdrive/c/DOCUME~1/Dima/LOCALS~1/Temp/ccZxUDNH.s:39     .data:00000008 m_pADC/cygdrive/c/DOCUME~1/Dima/LOCALS~1/Temp/ccZxUDNH.s:45     .data:0000000c m_pSys/cygdrive/c/DOCUME~1/Dima/LOCALS~1/Temp/ccZxUDNH.s:51     .data:00000010 m_pAic/cygdrive/c/DOCUME~1/Dima/LOCALS~1/Temp/ccZxUDNH.s:57     .data:00000014 m_pMC/cygdrive/c/DOCUME~1/Dima/LOCALS~1/Temp/ccZxUDNH.s:63     .data:00000018 m_pPDC/cygdrive/c/DOCUME~1/Dima/LOCALS~1/Temp/ccZxUDNH.s:69     .data:0000001c m_pUSART/cygdrive/c/DOCUME~1/Dima/LOCALS~1/Temp/ccZxUDNH.s:75     .data:00000020 m_pPMC/cygdrive/c/DOCUME~1/Dima/LOCALS~1/Temp/ccZxUDNH.s:81     .data:00000024 m_pPioB/cygdrive/c/DOCUME~1/Dima/LOCALS~1/Temp/ccZxUDNH.s:87     .data:00000028 m_pPioA/cygdrive/c/DOCUME~1/Dima/LOCALS~1/Temp/ccZxUDNH.s:95     .text:00000000 Delay/cygdrive/c/DOCUME~1/Dima/LOCALS~1/Temp/ccZxUDNH.s:116    .text:0000000c main/cygdrive/c/DOCUME~1/Dima/LOCALS~1/Temp/ccZxUDNH.s:228    .text:000000c8 $d                            *COM*:00000200 mmc_buffer_test_1                            *COM*:00000200 mmc_buffer_test_2                            *COM*:00000004 iUNDEFINED SYMBOLSInitFrecInitPeripheryinitMMCmemsetmmcReadRegistermmcWriteBlockmmcReadBlockstrncmpmmc_buffer

⌨️ 快捷键说明

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