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

📄 bootloader.lst

📁 LPC2294开发板资源,包括源代码,BOOTLOAER,SCH,PCB和器件清单
💻 LST
📖 第 1 页 / 共 2 页
字号:
   1              		.file	"bootloader.c"
   9              	.Ltext0:
  10              		.section	.rodata.str1.4,"aMS",%progbits,1
  11              		.align	2
  12              	.LC0:
  13 0000 56657269 		.ascii	"Verify \000"
  13      66792000 
  14              		.align	2
  15              	.LC1:
  16 0008 0A0D00   		.ascii	"\012\015\000"
  17 000b 00       		.align	2
  18              	.LC2:
  19 000c 46696C65 		.ascii	"File \000"
  19      2000
  20 0012 0000     		.align	2
  21              	.LC3:
  22 0014 206E6F74 		.ascii	" not found!\012\015\000"
  22      20666F75 
  22      6E64210A 
  22      0D00
  23 0022 0000     		.align	2
  24              	.LC4:
  25 0024 4D656D6F 		.ascii	"Memory Error %x : %x EX: %x \015\012\000"
  25      72792045 
  25      72726F72 
  25      20257820 
  25      3A202578 
  26 0043 00       		.align	2
  27              	.LC5:
  28 0044 2E00     		.ascii	".\000"
  29              		.text
  30              		.align	2
  31              		.global	verify_file
  33              	verify_file:
  34              	.LFB3:
  35              		.file 1 "bootloader.c"
   1:bootloader.c  **** /*#######################################################################################
   2:bootloader.c  **** ARM Linux MMC Boot Loader
   3:bootloader.c  **** 
   4:bootloader.c  **** Copyright (C) 2004 Ulrich Radig
   5:bootloader.c  **** #######################################################################################*/
   6:bootloader.c  **** 
   7:bootloader.c  **** #include "bootloader.h"
   8:bootloader.c  **** 
   9:bootloader.c  **** void load_file (char *filename, int *mem_adresse)
  10:bootloader.c  **** {
  11:bootloader.c  **** 	
  12:bootloader.c  **** 	unsigned char buffer[513];
  13:bootloader.c  **** 	unsigned short int cluster= 0;
  14:bootloader.c  **** 	unsigned char Dir_Attrib = 0;
  15:bootloader.c  **** 	long File_Size = 0;
  16:bootloader.c  **** 
  17:bootloader.c  **** 	if (Search_File(filename,&cluster,&File_Size,&Dir_Attrib,buffer) == 1)
  18:bootloader.c  **** 		{
  19:bootloader.c  **** 		printf("Loading ");
  20:bootloader.c  **** 		printf(filename);
  21:bootloader.c  **** 		printf("\n\r");
  22:bootloader.c  **** 		}
  23:bootloader.c  **** 	else
  24:bootloader.c  **** 		{
  25:bootloader.c  **** 		printf("File ");
  26:bootloader.c  **** 		printf(filename);
  27:bootloader.c  **** 		printf(" not found!\n\r");
  28:bootloader.c  **** 		while(1)
  29:bootloader.c  **** 			{
  30:bootloader.c  **** 			} 
  31:bootloader.c  **** 		}
  32:bootloader.c  **** 
  33:bootloader.c  **** 	unsigned long block_counter = 0;
  34:bootloader.c  **** 
  35:bootloader.c  **** 	while(File_Size>0)
  36:bootloader.c  **** 	{
  37:bootloader.c  **** 		Read_File (cluster,buffer,block_counter);
  38:bootloader.c  **** 		block_counter++;
  39:bootloader.c  **** 		for (unsigned short int a=0;a<512;a=a+4)
  40:bootloader.c  **** 			{
  41:bootloader.c  **** 			*mem_adresse =	(buffer[a+3]<<24)+
  42:bootloader.c  **** 							(buffer[a+2]<<16)+
  43:bootloader.c  **** 							(buffer[a+1]<<8)+
  44:bootloader.c  **** 							buffer[a];
  45:bootloader.c  **** 							
  46:bootloader.c  **** 			mem_adresse++;	
  47:bootloader.c  **** 			*mem_adresse = 0x00000000;	
  48:bootloader.c  **** 			mem_adresse--;
  49:bootloader.c  **** 							
  50:bootloader.c  **** 			if(*mem_adresse != (	(buffer[a+3]<<24)+
  51:bootloader.c  **** 									(buffer[a+2]<<16)+
  52:bootloader.c  **** 									(buffer[a+1]<<8)+
  53:bootloader.c  **** 									buffer[a]) )
  54:bootloader.c  **** 				{
  55:bootloader.c  **** 				printf("Memory Error %x : %x EX: %x \r\n",mem_adresse,*mem_adresse,((buffer[a+3]<<24)+
  56:bootloader.c  **** 									(buffer[a+2]<<16)+
  57:bootloader.c  **** 									(buffer[a+1]<<8)+
  58:bootloader.c  **** 									buffer[a]));
  59:bootloader.c  **** 				}
  60:bootloader.c  **** 
  61:bootloader.c  **** 			
  62:bootloader.c  **** 			mem_adresse++;
  63:bootloader.c  **** 			
  64:bootloader.c  **** 			File_Size = File_Size - 4;
  65:bootloader.c  **** 			if(File_Size<=0)
  66:bootloader.c  **** 				{
  67:bootloader.c  **** 				break;
  68:bootloader.c  **** 				}
  69:bootloader.c  **** 			}
  70:bootloader.c  **** 		printf(".");
  71:bootloader.c  **** 	}
  72:bootloader.c  **** 	printf("\n\r");
  73:bootloader.c  **** 	return;
  74:bootloader.c  **** };
  75:bootloader.c  **** 
  76:bootloader.c  **** void verify_file (char *filename, int *mem_adresse)
  77:bootloader.c  **** {
  36              	 0, frame = 524
  37              		@ frame_needed = 0, uses_anonymous_args = 0
  38              	.LVL0:
  39              		stmfd	sp!, {r4, r5, r6, lr}
  40 0000 70402DE9 	.LCFI0:
  41              		sub	sp, sp, #528
  42 0004 21DE4DE2 	.LCFI1:
  43              		.loc 1 84 0
  78:bootloader.c  **** 	
  79:bootloader.c  **** 	unsigned char buffer[513];
  80:bootloader.c  **** 	unsigned short int cluster= 0;
  81:bootloader.c  **** 	unsigned char Dir_Attrib = 0;
  82:bootloader.c  **** 	long File_Size = 0;
  83:bootloader.c  **** 
  84:bootloader.c  **** 	if (Search_File(filename,&cluster,&File_Size,&Dir_Attrib,buffer) == 1)
  44              	 sp, #8
  45 0008 08C08DE2 		sub	ip, ip, #1
  46 000c 01C04CE2 		add	r3, sp, #524
  47 0010 833F8DE2 		.loc 1 80 0
  48              		mov	r5, #0
  49 0014 0050A0E3 		.loc 1 84 0
  50              		str	ip, [sp, #0]
  51 0018 00C08DE5 		.loc 1 77 0
  52              		mov	r6, r1
  53 001c 0160A0E1 		.loc 1 80 0
  54              		add	ip, sp, #512
  55 0020 02CC8DE2 		.loc 1 84 0
  56              		add	r1, sp, #524
  57 0024 831F8DE2 	.LVL1:
  58              		add	r2, sp, #520
  59 0028 822F8DE2 		add	r3, r3, #3
  60 002c 033083E2 		.loc 1 81 0
  61              		strb	r5, [sp, #527]
  62 0030 0F52CDE5 	.LVL2:
  63              		.loc 1 80 0
  64              		strh	r5, [ip, #12]	@ movhi
  65 0034 BC50CCE1 	.LVL3:
  66              		.loc 1 82 0
  67              		str	r5, [sp, #520]
  68 0038 08528DE5 	.LVL4:
  69              		.loc 1 77 0
  70              		mov	r4, r0
  71 003c 0040A0E1 		.loc 1 84 0
  72              		bl	Search_File
  73 0040 FEFFFFEB 	.LVL5:
  74              		cmp	r0, #1
  75 0044 010050E3 		bne	.L2
  76 0048 0500001A 		.loc 1 86 0
  85:bootloader.c  **** 		{
  86:bootloader.c  **** 		printf("Verify ");
  77              	 1 87 0
  78 004c D8009FE5 		mov	r0, r4
  79 0050 FEFFFFEB 		bl	_printf_P
  87:bootloader.c  **** 		printf(filename);
  80              	oc 1 88 0
  81 0054 0400A0E1 		ldr	r0, .L16+4
  82 0058 FEFFFFEB 		b	.L15
  88:bootloader.c  **** 		printf("\n\r");
  83              	:
  84 005c CC009FE5 		.loc 1 92 0
  85 0060 290000EA 		ldr	r0, .L16+8
  86              		bl	_printf_P
  89:bootloader.c  **** 		}
  90:bootloader.c  **** 	else
  91:bootloader.c  **** 		{
  92:bootloader.c  **** 		printf("File ");
  87              	c 1 93 0
  88 0064 C8009FE5 		mov	r0, r4
  89 0068 FEFFFFEB 		bl	_printf_P
  93:bootloader.c  **** 		printf(filename);
  90              	oc 1 94 0
  91 006c 0400A0E1 		ldr	r0, .L16+12
  92 0070 FEFFFFEB 		bl	_printf_P
  94:bootloader.c  **** 		printf(" not found!\n\r");
  93              	:
  94 0074 BC009FE5 		b	.L5
  95 0078 FEFFFFEB 	.LVL6:
  96              	.L6:
  97 007c FEFFFFEA 		.loc 1 104 0
  98              		add	r3, sp, #512
  99              	.LVL7:
  95:bootloader.c  **** 		while(1)
  96:bootloader.c  **** 			{
  97:bootloader.c  **** 			} 
  98:bootloader.c  **** 		}
  99:bootloader.c  **** 
 100:bootloader.c  **** 	unsigned long block_counter = 0;
 101:bootloader.c  **** 
 102:bootloader.c  **** 	while(File_Size>0)
 103:bootloader.c  **** 	{
 104:bootloader.c  **** 		Read_File (cluster,buffer,block_counter);
 100              	, sp, #8
 101 0080 023C8DE2 		sub	r1, r1, #1
 102              		ldrh	r0, [r3, #12]
 103 0084 08108DE2 		mov	r2, r5
 104 0088 011041E2 		bl	Read_File
 105 008c BC00D3E1 		mov	r4, #0
 106 0090 0520A0E1 	.LVL8:
 107 0094 FEFFFFEB 	.LVL9:
 108 0098 0040A0E3 	.L7:
 109              	.LBB2:
 110              		.loc 1 108 0
 111              		add	ip, sp, #528
 112              		add	r1, ip, r4
 105:bootloader.c  **** 		block_counter++;
 106:bootloader.c  **** 		for (unsigned short int a=0;a<512;a=a+4)
 107:bootloader.c  **** 			{
 108:bootloader.c  **** 			if(*mem_adresse != (	(buffer[a+3]<<24)+
 113              	, #-519]	@ zero_extendqisi2
 114 009c 21CE8DE2 		add	r2, sp, #8
 115 00a0 04108CE0 		ldrb	r0, [r1, #-518]	@ zero_extendqisi2
 116 00a4 073251E5 		sub	r2, r2, #1
 117 00a8 08208DE2 		ldrb	r2, [r4, r2]	@ zero_extendqisi2
 118 00ac 060251E5 		mov	r3, r3, asl #16
 119 00b0 012042E2 		add	r3, r3, r0, asl #24
 120 00b4 0220D4E7 		ldrb	r1, [r1, #-520]	@ zero_extendqisi2
 121 00b8 0338A0E1 		add	r3, r3, r2
 122 00bc 003C83E0 		ldr	r2, [r6, #0]
 123 00c0 081251E5 		add	r3, r3, r1, asl #8
 124 00c4 023083E0 		cmp	r2, r3
 125 00c8 002096E5 		.loc 1 125 0
 126 00cc 013483E0 		add	r4, r4, #4
 127 00d0 030052E1 		.loc 1 113 0
 109:bootloader.c  **** 									(buffer[a+2]<<16)+
 110:bootloader.c  **** 									(buffer[a+1]<<8)+
 111:bootloader.c  **** 									buffer[a]) )
 112:bootloader.c  **** 				{
 113:bootloader.c  **** 				printf("Memory Error %x : %x EX: %x \r\n",mem_adresse,*mem_adresse,((buffer[a+3]<<24)+
 114:bootloader.c  **** 									(buffer[a+2]<<16)+
 115:bootloader.c  **** 									(buffer[a+1]<<8)+
 116:bootloader.c  **** 									buffer[a]));
 117:bootloader.c  **** 				}
 118:bootloader.c  **** 
 119:bootloader.c  **** 			
 120:bootloader.c  **** 			mem_adresse++;
 121:bootloader.c  **** 			
 122:bootloader.c  **** 			File_Size = File_Size - 4;
 123:bootloader.c  **** 			if(File_Size<=0)
 124:bootloader.c  **** 				{
 125:bootloader.c  **** 				break;
 128              	r	r0, .L16+16
 129 00d4 044084E2 		.loc 1 108 0
 130              	.LVL10:

⌨️ 快捷键说明

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