📄 main.lst
字号:
ARM COMPILER V2.42, main 27/03/06 10:45:47 PAGE 1
ARM COMPILER V2.42, COMPILATION OF MODULE main
OBJECT MODULE PLACED IN .\obj\main.obj
COMPILER INVOKED BY: C:\Keil\ARM\BIN\CA.exe src\main.c THUMB DEBUG PRINT(.\LST\MAIN.LST) TABS(4) OBJECT(.\obj\main.obj)
stmt level source
1 /******************************************************************************
2
3 efsl Demo-Application for Philips LPC2138 ARM7TDMI-S
4
5 Copyright (c) 2005
6 Martin Thomas, Kaiserslautern, Germany <mthomas@rhrk.uni-kl.de>
7 Ported by M.ceyhan mail:mukadder_c@yahoo.com
8
9 *****************************************************************************/
10
11 #include <string.h>
12
13 #include "main.h"
14
15 #include "LPC213x.h"
16 #include "lpc_config.h"
17
18 #include "efs.h"
19 #include "ls.h"
20 #include "mkfs.h"
21 #include "lpc2000_dbg_printf.h"
22
23 #define rprintf lpc2000_debug_printf
24
25 #define BAUD 115200
26
27 //#define BIT(x) ((unsigned long)1<<x)
28
29 // 1st LED on Keil MCB2130
30 #define LED1PIN 16
31 #define LED1BIT BIT(LED1PIN)
32 #define LEDDIR IODIR1
33 #define LEDSET IOSET1
34 #define LEDCLR IOCLR1
35
36 static char LogFileName[] = "logdatA.txt";
37
38
39 EmbeddedFileSystem efs;
40 EmbeddedFile filer, filew;
41 DirList list;
42 unsigned short e;
43 unsigned char buf[513];
44
45
46 int main(void)
47 {
48 1 unsigned char res;
49 1
50 1 if ( ( res = efs_init( &efs, 0 ) ) != 0 )
51 1 {
52 2 rprintf("failed with %i\n",res);
53 2 }
54 1 else
55 1 {
56 2 ls_openDir( &list, &(efs.myFs) , "/");
57 2 while ( ls_getNext( &list ) == 0 )
58 2 {
59 3 list.currentEntry.FileName[LIST_MAXLENFILENAME-1] = '\0';
ARM COMPILER V2.42, main 27/03/06 10:45:47 PAGE 2
60 3 rprintf( "%s ( %li bytes )\n" ,
61 3 list.currentEntry.FileName,
62 3 list.currentEntry.FileSize ) ;
63 3 }
64 2 if ( file_fopen( &filer, &efs.myFs , LogFileName , 'r' ) == 0 )
65 2 {
66 3 rprintf("File %s open. Content:\n", LogFileName);
67 3 while ( ( e = file_read( &filer, 512, buf ) ) != 0 ) {
68 4 buf[e]='\0';
69 4 //uart1Puts((char*)buf);
70 4 }
71 3 rprintf("\n");
72 3 file_fclose( &filer );
73 3 }
74 2 if ( file_fopen( &filew, &efs.myFs , LogFileName , 'a' ) == 0 ) {
75 3 rprintf("File %s open for append. Appending...", LogFileName);
76 3 strcpy((char*)buf, "Martin hat's angehaengt\r\n");
77 3 if ( file_write( &filew, strlen((char*)buf), buf ) == strlen((char*)buf) ) {
78 4 rprintf("ok\n");
79 4 }
80 3 else {
81 4 rprintf("fail\n");
82 4 }
83 3 file_fclose( &filew );
84 3 }
85 2 if ( file_fopen( &filer, &efs.myFs , LogFileName , 'r' ) == 0 ) {
86 3 rprintf("File %s open. Content:\n", LogFileName);
87 3 while ( ( e = file_read( &filer, 512, buf ) ) != 0 ) {
88 4 buf[e]='\0';
89 4 //uart1Puts((char*)buf);
90 4 }
91 3 rprintf("\n");
92 3 file_fclose( &filer );
93 3 }
94 2 fs_umount( &efs.myFs ) ;
95 2 }
96 1
97 1 while(1);
98 1 }
99
100 ////////////////////////////////////////////////////////////////////////
101
ARM COMPILER V2.42, main 27/03/06 10:45:47 PAGE 3
ASSEMBLY LISTING OF GENERATED OBJECT CODE
*** EXTERNALS:
EXTERN CODE16 (strcpy?T)
EXTERN CODE16 (strlen?T)
EXTERN CODE16 (lpc2000_debug_printf?T)
EXTERN CODE16 (fs_umount?T)
EXTERN CODE16 (file_fopen?T)
EXTERN CODE16 (file_fclose?T)
EXTERN CODE16 (file_read?T)
EXTERN CODE16 (file_write?T)
EXTERN CODE16 (efs_init?T)
EXTERN CODE16 (ls_openDir?T)
EXTERN CODE16 (ls_getNext?T)
EXTERN NUMBER (__startup)
*** PUBLICS:
PUBLIC main
PUBLIC efs
PUBLIC filer
PUBLIC filew
PUBLIC list
PUBLIC e
PUBLIC buf
*** DATA SEGMENT '?CON?main':
00000000 ??S_10:
00000000 DB 'fail',0x0A,0x00
00000006 ??S_9:
00000006 DB 'ok',0x0A,0x00
0000000A ??S_8:
0000000A DB 'Martin hat's angehaengt',0x0D,0x0A,0x00
00000024 ??S_7:
00000024 DB 'File %s open for append. Appending...',0x00
0000004A ??S_6:
0000004A DB 0x0A,0x00
0000004C ??S_5:
0000004C DB 'File %s open. Content:',0x0A,0x00
00000064 ??S_4:
00000064 DB '%s ( %li bytes )',0x0A,0x00
00000076 ??S_3:
00000076 DB '/',0x00
00000078 ??S_2:
00000078 DB 'failed with %i',0x0A,0x00
*** DATA SEGMENT '?DT0?main':
00000000 efs:
00000000 DS 3428
00000D64 filer:
00000D64 DS 80
00000DB4 filew:
00000DB4 DS 80
00000E04 list:
00000E04 DS 52
00000E38 e:
00000E38 DS 2
00000E3A LogFileName:
00000E3A BEGIN_INIT
00000E3A DB 'logdatA.txt',0x00
00000E46 END_INIT
00000E46 buf:
00000E46 DS 513
*** CODE SEGMENT '?PR?main?main':
46: int main(void)
00000000 B500 PUSH {LR}
ARM COMPILER V2.42, main 27/03/06 10:45:47 PAGE 4
47: {
00000002 ; SCOPE-START
50: if ( ( res = efs_init( &efs, 0 ) ) != 0 )
00000002 4800 LDR R0,=efs ; efs
00000004 2100 MOV R1,#0x0
00000006 F7FF BL efs_init?T ; T=0x0001 (1)
00000008 FFFB BL efs_init?T ; T=0x0001 (2)
0000000A 1C01 MOV R1,R0 ; res
0000000C ---- Variable 'res' assigned to Register 'R1' ----
0000000C 0600 LSL R0,R0,#0x18 ; efs_init?T
0000000E 0E00 LSR R0,R0,#0x18
00000010 2800 CMP R0,#0x0
00000012 D006 BEQ L_1 ; T=0x00000022
52: rprintf("failed with %i\n",res);
00000014 1C08 MOV R0,R1 ; res
00000016 0601 LSL R1,R0,#0x18 ; res
00000018 0E09 LSR R1,R1,#0x18
0000001A 4800 LDR R0,=??S_2 ; ??S_2
0000001C F7FF BL lpc2000_debug_printf?T ; T=0x0001 (1)
0000001E FFF0 BL lpc2000_debug_printf?T ; T=0x0001 (2)
53: }
00000020 E093 B L_23 ; T=0x0000014A
00000022 L_1:
56: ls_openDir( &list, &(efs.myFs) , "/");
00000022 4800 LDR R0,=list ; list
00000024 4800 LDR R1,=efs + 0xD24 ; efs+3364
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -