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

📄 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 "main.h"
   8:bootloader.c  **** #include "bootloader.h"
   9:bootloader.c  **** 
  10:bootloader.c  **** void load_file (char *filename, int *mem_adresse)
  11:bootloader.c  **** {
  12:bootloader.c  **** 	
  13:bootloader.c  **** 	unsigned char buffer[513];
  14:bootloader.c  **** 	unsigned short int cluster= 0;
  15:bootloader.c  **** 	unsigned char Dir_Attrib = 0;
  16:bootloader.c  **** 	long File_Size = 0;
  17:bootloader.c  **** 
  18:bootloader.c  **** 	if (Search_File(filename,&cluster,&File_Size,&Dir_Attrib,buffer) == 1)
  19:bootloader.c  **** 		{
  20:bootloader.c  **** 		printf("Loading ");
  21:bootloader.c  **** 		printf(filename);
  22:bootloader.c  **** 		printf("\n\r");
  23:bootloader.c  **** 		}
  24:bootloader.c  **** 	else
  25:bootloader.c  **** 		{
  26:bootloader.c  **** 		printf("File ");
  27:bootloader.c  **** 		printf(filename);
  28:bootloader.c  **** 		printf(" not found!\n\r");
  29:bootloader.c  **** 		while(1)
  30:bootloader.c  **** 			{
  31:bootloader.c  **** 			} 
  32:bootloader.c  **** 		}
  33:bootloader.c  **** 
  34:bootloader.c  **** 	unsigned long block_counter = 0;
  35:bootloader.c  **** 
  36:bootloader.c  **** 	while(File_Size>0)
  37:bootloader.c  **** 	{
  38:bootloader.c  **** 		Read_File (cluster,buffer,block_counter);
  39:bootloader.c  **** 		block_counter++;
  40:bootloader.c  **** 		for (unsigned short int a=0;a<512;a=a+4)
  41:bootloader.c  **** 			{
  42:bootloader.c  **** 			*mem_adresse =	(buffer[a+3]<<24)+
  43:bootloader.c  **** 							(buffer[a+2]<<16)+
  44:bootloader.c  **** 							(buffer[a+1]<<8)+
  45:bootloader.c  **** 							buffer[a];
  46:bootloader.c  **** 							
  47:bootloader.c  **** 			mem_adresse++;	
  48:bootloader.c  **** 			*mem_adresse = 0x00000000;	
  49:bootloader.c  **** 			mem_adresse--;
  50:bootloader.c  **** 							
  51:bootloader.c  **** 			if(*mem_adresse != (	(buffer[a+3]<<24)+
  52:bootloader.c  **** 									(buffer[a+2]<<16)+
  53:bootloader.c  **** 									(buffer[a+1]<<8)+
  54:bootloader.c  **** 									buffer[a]) )
  55:bootloader.c  **** 				{
  56:bootloader.c  **** 				printf("Memory Error %x : %x EX: %x \r\n",mem_adresse,*mem_adresse,((buffer[a+3]<<24)+
  57:bootloader.c  **** 									(buffer[a+2]<<16)+
  58:bootloader.c  **** 									(buffer[a+1]<<8)+
  59:bootloader.c  **** 									buffer[a]));
  60:bootloader.c  **** 				}
  61:bootloader.c  **** 
  62:bootloader.c  **** 			
  63:bootloader.c  **** 			mem_adresse++;
  64:bootloader.c  **** 			
  65:bootloader.c  **** 			File_Size = File_Size - 4;
  66:bootloader.c  **** 			if(File_Size<=0)
  67:bootloader.c  **** 				{
  68:bootloader.c  **** 				break;
  69:bootloader.c  **** 				}
  70:bootloader.c  **** 			}
  71:bootloader.c  **** 		printf(".");
  72:bootloader.c  **** 	}
  73:bootloader.c  **** 	printf("\n\r");
  74:bootloader.c  **** 	return;
  75:bootloader.c  **** };
  76:bootloader.c  **** 
  77:bootloader.c  **** void verify_file (char *filename, int *mem_adresse)
  78:bootloader.c  **** {
  36              	 0, frame = 524
  37              		@ frame_needed = 0, uses_anonymous_args = 0
  38              	.LVL0:
  39              		stmfd	sp!, {r4, r5, r6, r7, r8, sl, lr}
  40 0000 F0452DE9 	.LCFI0:
  41              		sub	sp, sp, #528
  42 0004 21DE4DE2 	.LCFI1:
  43              		mov	r4, r0
  44 0008 0040A0E1 		mov	r5, r1
  45 000c 0150A0E1 		.loc 1 81 0
  79:bootloader.c  **** 	
  80:bootloader.c  **** 	unsigned char buffer[513];
  81:bootloader.c  **** 	unsigned short int cluster= 0;
  46              	0
  47 0010 0030A0E3 		sub	r2, r3, #516
  48 0014 812F43E2 		add	ip, sp, #528
  49 0018 21CE8DE2 		strh	r3, [ip, r2]	@ movhi
  50 001c B2308CE1 	.LVL1:
  51              		.loc 1 82 0
  82:bootloader.c  **** 	unsigned char Dir_Attrib = 0;
  52              	r3, [sp, #11]
  53 0020 0B30CDE5 	.LVL2:
  54              		.loc 1 83 0
  83:bootloader.c  **** 	long File_Size = 0;
  55              	r	r3, [sp, #4]
  56 0024 04308DE5 	.LVL3:
  57              		.loc 1 85 0
  84:bootloader.c  **** 
  85:bootloader.c  **** 	if (Search_File(filename,&cluster,&File_Size,&Dir_Attrib,buffer) == 1)
  58              	d	r3, sp, #16
  59 0028 10308DE2 		sub	r3, r3, #1
  60 002c 013043E2 		str	r3, [sp, #0]
  61 0030 00308DE5 		add	r1, sp, #12
  62 0034 0C108DE2 	.LVL4:
  63              		add	r2, sp, #4
  64 0038 04208DE2 		add	r3, sp, #12
  65 003c 0C308DE2 		sub	r3, r3, #1
  66 0040 013043E2 		bl	Search_File
  67 0044 FEFFFFEB 	.LVL5:
  68              		cmp	r0, #1
  69 0048 010050E3 		bne	.L2
  70 004c 0900001A 		.loc 1 87 0
  86:bootloader.c  **** 		{
  87:bootloader.c  **** 		printf("Verify ");
  71              	
  72 0050 00019FE5 		bl	_printf_P
  73 0054 FEFFFFEB 		.loc 1 88 0
  88:bootloader.c  **** 		printf(filename);
  74              	ov	r0, r4
  75 0058 0400A0E1 		bl	_printf_P
  76 005c FEFFFFEB 		.loc 1 89 0
  89:bootloader.c  **** 		printf("\n\r");
  77              	r	r0, .L16+4
  78 0060 F4009FE5 		bl	_printf_P
  79 0064 FEFFFFEB 		.loc 1 103 0
  90:bootloader.c  **** 		}
  91:bootloader.c  **** 	else
  92:bootloader.c  **** 		{
  93:bootloader.c  **** 		printf("File ");
  94:bootloader.c  **** 		printf(filename);
  95:bootloader.c  **** 		printf(" not found!\n\r");
  96:bootloader.c  **** 		while(1)
  97:bootloader.c  **** 			{
  98:bootloader.c  **** 			} 
  99:bootloader.c  **** 		}
 100:bootloader.c  **** 
 101:bootloader.c  **** 	unsigned long block_counter = 0;
 102:bootloader.c  **** 
 103:bootloader.c  **** 	while(File_Size>0)
  80              	r	r3, [sp, #4]
  81 0068 04309DE5 		cmp	r3, #0
  82 006c 000053E3 		bgt	.L4
  83 0070 070000CA 	.LVL6:
  84              		b	.L5
  85 0074 330000EA 	.LVL7:
  86              	.L2:
  87              		.loc 1 93 0
  88              		ldr	r0, .L16+8
  89 0078 E0009FE5 		bl	_printf_P
  90 007c FEFFFFEB 		.loc 1 94 0
  91              		mov	r0, r4
  92 0080 0400A0E1 		bl	_printf_P
  93 0084 FEFFFFEB 		.loc 1 95 0
  94              		ldr	r0, .L16+12
  95 0088 D4009FE5 		bl	_printf_P
  96 008c FEFFFFEB 	.L6:
  97              		b	.L6
  98 0090 FEFFFFEA 	.LVL8:
  99              	.L4:
 100              		.loc 1 98 0
 101              		mov	r7, #0
 102 0094 0070A0E3 	.LVL9:
 103              		mov	r8, r7
 104 0098 0780A0E1 		mvn	sl, #508
 105 009c 7FAFE0E3 		sub	r6, sl, #2
 106 00a0 02604AE2 	.LVL10:
 107              	.L7:
 108              		.loc 1 105 0
 104:bootloader.c  **** 	{
 105:bootloader.c  **** 		Read_File (cluster,buffer,block_counter);
 109              	d	r2, sp, #528
 110 00a4 813F48E2 		ldrh	r0, [r2, r3]
 111              		add	r1, sp, #16
 112 00a8 212E8DE2 		sub	r1, r1, #1
 113 00ac B30092E1 		mov	r2, r7
 114 00b0 10108DE2 		bl	Read_File
 115 00b4 011041E2 		.loc 1 106 0
 116 00b8 0720A0E1 		add	r7, r7, #1
 117 00bc FEFFFFEB 		mov	r4, r8
 106:bootloader.c  **** 		block_counter++;
 118              	LVL13:
 119 00c0 017087E2 	.L8:
 120 00c4 0840A0E1 	.LBB2:
 121              		.loc 1 109 0
 122              		ldr	ip, [r5, #0]
 123              		add	r2, sp, #528
 124              		add	r3, r2, r4
 107:bootloader.c  **** 		for (unsigned short int a=0;a<512;a=a+4)
 108:bootloader.c  **** 			{
 109:bootloader.c  **** 			if(*mem_adresse != (	(buffer[a+3]<<24)+
 125              	0, [r3, #-512]	@ zero_extendqisi2
 126 00c8 00C095E5 		ldrb	r1, [r3, #-510]	@ zero_extendqisi2
 127 00cc 212E8DE2 		ldrb	r2, [r3, r6]	@ zero_extendqisi2
 128 00d0 043082E0 		mov	r2, r2, asl #16
 129 00d4 000253E5 		add	r2, r2, r1, asl #24
 130 00d8 FE1153E5 		add	r3, sp, #16
 131 00dc 0620D3E7 		sub	r3, r3, #1
 132 00e0 0228A0E1 		ldrb	r3, [r4, r3]	@ zero_extendqisi2
 133 00e4 012C82E0 		add	r2, r2, r3
 134 00e8 10308DE2 		add	r3, r2, r0, asl #8
 135 00ec 013043E2 		cmp	ip, r3
 136 00f0 0330D4E7 		.loc 1 114 0
 137 00f4 032082E0 		ldrne	r0, .L16+16
 138 00f8 003482E0 		movne	r1, r5
 139 00fc 03005CE1 		movne	r2, ip
 110:bootloader.c  **** 									(buffer[a+2]<<16)+
 111:bootloader.c  **** 									(buffer[a+1]<<8)+
 112:bootloader.c  **** 									buffer[a]) )
 113:bootloader.c  **** 				{
 114:bootloader.c  **** 				printf("Memory Error %x : %x EX: %x \r\n",mem_adresse,*mem_adresse,((buffer[a+3]<<24)+
 140              	
 141 0100 60009F15 	.L9:
 142 0104 0510A011 		.loc 1 121 0
 143 0108 0C20A011 		add	r5, r5, #4

⌨️ 快捷键说明

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