📄 main.txt
字号:
|L2.216|
0000d8 61726d66 DCB "armfly.txt ",206,196,188,254,208,180,200,235,179,201,185
0000dc 6c792e74
0000e0 787420ce
0000e4 c4bcfed0
0000e8 b4c8ebb3
0000ec c9b9
0000ee a60d0a00 DCB 166,"\r\n",0
0000f2 00 DCB 0
0000f3 00 DCB 0
|L2.244|
0000f4 61726d66 DCB "armfly.txt ",206,196,188,254,208,180,200,235,202,167,176
0000f8 6c792e74
0000fc 787420ce
000100 c4bcfed0
000104 b4c8ebca
000108 a7b0
00010a dc0d0a00 DCB 220,"\r\n",0
00010e 00 DCB 0
00010f 00 DCB 0
AREA ||i.DispMenu||, CODE, READONLY, ALIGN=2
DispMenu PROC
;;;163 */
;;;164 static void DispMenu(void)
000000 b510 PUSH {r4,lr}
;;;165 {
;;;166 printf("\r\n*******************************************\r\n");
000002 a00b ADR r0,|L3.48|
000004 f7fffffe BL __2printf
;;;167 printf("请选择操作命令:\r\n");
000008 a015 ADR r0,|L3.96|
00000a f7fffffe BL __2printf
;;;168 printf("1 - 显示SD卡根目录下的文件列表\r\n");
00000e a019 ADR r0,|L3.116|
000010 f7fffffe BL __2printf
;;;169 printf("2 - 创建一个新文件\r\n");
000014 a020 ADR r0,|L3.152|
000016 f7fffffe BL __2printf
;;;170 printf("3 - 读文件数据\r\n");
00001a a025 ADR r0,|L3.176|
00001c f7fffffe BL __2printf
;;;171 printf("4 - 创建目录\r\n");
000020 a028 ADR r0,|L3.196|
000022 f7fffffe BL __2printf
;;;172 printf("5 - 读写文件速度测试\r\n");
000026 a02b ADR r0,|L3.212|
000028 f7fffffe BL __2printf
;;;173 }
00002c bd10 POP {r4,pc}
;;;174
ENDP
00002e 0000 DCW 0x0000
|L3.48|
000030 0d0a2a2a DCB "\r\n*******************************************\r\n",0
000034 2a2a2a2a
000038 2a2a2a2a
00003c 2a2a2a2a
000040 2a2a2a2a
000044 2a2a2a2a
000048 2a2a2a2a
00004c 2a2a2a2a
000050 2a2a2a2a
000054 2a2a2a2a
000058 2a2a2a2a
00005c 2a0d0a00
|L3.96|
000060 c7ebd1a1 DCB 199,235,209,161,212,241,178,217,215,247,195,252,193,238,":"
000064 d4f1b2d9
000068 d7f7c3fc
00006c c1ee3a
00006f 0d0a00 DCB "\r\n",0
000072 00 DCB 0
000073 00 DCB 0
|L3.116|
000074 31202d20 DCB "1 - ",207,212,202,190,"SD",191,168,184,249,196,191,194,188
000078 cfd4cabe
00007c 5344bfa8
000080 b8f9c4bf
000084 c2bc
000086 cfc2b5c4 DCB 207,194,181,196,206,196,188,254,193,208,177,237,"\r\n",0
00008a cec4bcfe
00008e c1d0b1ed
000092 0d0a00
000095 00 DCB 0
000096 00 DCB 0
000097 00 DCB 0
|L3.152|
000098 32202d20 DCB "2 - ",180,180,189,168,210,187,184,246,208,194,206,196,188
00009c b4b4bda8
0000a0 d2bbb8f6
0000a4 d0c2cec4
0000a8 bc
0000a9 fe0d0a00 DCB 254,"\r\n",0
0000ad 00 DCB 0
0000ae 00 DCB 0
0000af 00 DCB 0
|L3.176|
0000b0 33202d20 DCB "3 - ",182,193,206,196,188,254,202,253,190,221,"\r\n",0
0000b4 b6c1cec4
0000b8 bcfecafd
0000bc bedd0d0a
0000c0 00
0000c1 00 DCB 0
0000c2 00 DCB 0
0000c3 00 DCB 0
|L3.196|
0000c4 34202d20 DCB "4 - ",180,180,189,168,196,191,194,188,"\r\n",0
0000c8 b4b4bda8
0000cc c4bfc2bc
0000d0 0d0a00
0000d3 00 DCB 0
|L3.212|
0000d4 35202d20 DCB "5 - ",182,193,208,180,206,196,188,254,203,217,182,200,178
0000d8 b6c1d0b4
0000dc cec4bcfe
0000e0 cbd9b6c8
0000e4 b2
0000e5 e2cad40d DCB 226,202,212,"\r\n",0
0000e9 0a00
0000eb 00 DCB 0
AREA ||i.InitBoard||, CODE, READONLY, ALIGN=1
InitBoard PROC
;;;563 */
;;;564 static void InitBoard(void)
000000 b510 PUSH {r4,lr}
;;;565 {
;;;566 /* 配置串口,用于printf输出 */
;;;567 bsp_InitUart();
000002 f7fffffe BL bsp_InitUart
;;;568
;;;569 /* 配置LED指示灯GPIO */
;;;570 bsp_InitLed();
000006 f7fffffe BL bsp_InitLed
;;;571
;;;572 /* 配置按键GPIO, 必须在bsp_InitTimer之前调用 */
;;;573 bsp_InitButton();
00000a f7fffffe BL bsp_InitButton
;;;574
;;;575 /* 初始化systick定时器,并启动定时中断 */
;;;576 bsp_InitTimer();
00000e f7fffffe BL bsp_InitTimer
;;;577 }
000012 bd10 POP {r4,pc}
;;;578
ENDP
AREA ||i.PrintfLogo||, CODE, READONLY, ALIGN=2
REQUIRE _printf_percent
REQUIRE _printf_s
REQUIRE _printf_str
REQUIRE _printf_str
REQUIRE _printf_str
REQUIRE _printf_d
REQUIRE _printf_int_dec
PrintfLogo PROC
;;;586 */
;;;587 static void PrintfLogo(void)
000000 b510 PUSH {r4,lr}
;;;588 {
;;;589 printf("*************************************************************\n\r");
000002 a012 ADR r0,|L5.76|
000004 f7fffffe BL __2printf
;;;590 printf("* 例程名称 : %s\r\n", EXAMPLE_NAME); /* 打印例程名称 */
000008 a120 ADR r1,|L5.140|
00000a a026 ADR r0,|L5.164|
00000c f7fffffe BL __2printf
;;;591 printf("* 例程版本 : %s\r\n", DEMO_VER); /* 打印例程版本 */
000010 a129 ADR r1,|L5.184|
000012 a02a ADR r0,|L5.188|
000014 f7fffffe BL __2printf
;;;592 printf("* 发布日期 : %s\r\n", EXAMPLE_DATE); /* 打印例程日期 */
000018 a12d ADR r1,|L5.208|
00001a a030 ADR r0,|L5.220|
00001c f7fffffe BL __2printf
;;;593
;;;594 /* 打印ST固件库版本,这3个定义宏在stm32f10x.h文件中 */
;;;595 printf("* 固件库版本 : %d.%d.%d\r\n", __STM32F10X_STDPERIPH_VERSION_MAIN,
000020 2300 MOVS r3,#0
000022 2205 MOVS r2,#5
000024 2103 MOVS r1,#3
000026 a032 ADR r0,|L5.240|
000028 f7fffffe BL __2printf
;;;596 __STM32F10X_STDPERIPH_VERSION_SUB1,__STM32F10X_STDPERIPH_VERSION_SUB2);
;;;597 printf("* \n\r"); /* 打印一行空格 */
00002c a037 ADR r0,|L5.268|
00002e f7fffffe BL __2printf
;;;598 printf("* QQ : 1295744630 \r\n");
000032 a038 ADR r0,|L5.276|
000034 f7fffffe BL __2printf
;;;599 printf("* Email : armfly@qq.com \r\n");
000038 a03c ADR r0,|L5.300|
00003a f7fffffe BL __2printf
;;;600 printf("* Copyright www.armfly.com 安富莱电子\r\n");
00003e a042 ADR r0,|L5.328|
000040 f7fffffe BL __2printf
;;;601 printf("*************************************************************\n\r");
000044 a001 ADR r0,|L5.76|
000046 f7fffffe BL __2printf
;;;602 }
00004a bd10 POP {r4,pc}
ENDP
|L5.76|
00004c 2a2a2a2a DCB "*******************************************************"
000050 2a2a2a2a
000054 2a2a2a2a
000058 2a2a2a2a
00005c 2a2a2a2a
000060 2a2a2a2a
000064 2a2a2a2a
000068 2a2a2a2a
00006c 2a2a2a2a
000070 2a2a2a2a
000074 2a2a2a2a
000078 2a2a2a2a
00007c 2a2a2a2a
000080 2a2a2a
000083 2a2a2a2a DCB "******\n\r",0
000087 2a2a0a0d
00008b 00
|L5.140|
00008c 5344494f DCB "SDIO+FatFs",206,196,188,254,207,181,205,179,192,253,179
000090 2b466174
000094 4673cec4
000098 bcfecfb5
00009c cdb3c0fd
0000a0 b3
0000a1 cc00 DCB 204,0
0000a3 00 DCB 0
|L5.164|
0000a4 2a20c0fd DCB "* ",192,253,179,204,195,251,179,198," : %s\r\n",0
0000a8 b3ccc3fb
0000ac b3c62020
0000b0 203a2025
0000b4 730d0a00
|L5.184|
0000b8 322e3000 DCB "2.0",0
|L5.188|
0000bc 2a20c0fd DCB "* ",192,253,179,204,176,230,177,190," : %s\r\n",0
0000c0 b3ccb0e6
0000c4 b1be2020
0000c8 203a2025
0000cc 730d0a00
|L5.208|
0000d0 32303131 DCB "2011-10-16",0
0000d4 2d31302d
0000d8 313600
0000db 00 DCB 0
|L5.220|
0000dc 2a20b7a2 DCB "* ",183,162,178,188,200,213,198,218," : %s\r\n",0
0000e0 b2bcc8d5
0000e4 c6da2020
0000e8 203a2025
0000ec 730d0a00
|L5.240|
0000f0 2a20b9cc DCB "* ",185,204,188,254,191,226,176,230,177,190," : %d.%d.%"
0000f4 bcfebfe2
0000f8 b0e6b1be
0000fc 203a2025
000100 642e2564
000104 2e25
000106 640d0a00 DCB "d\r\n",0
00010a 00 DCB 0
00010b 00 DCB 0
|L5.268|
00010c 2a200a0d DCB "* \n\r",0
000110 00
000111 00 DCB 0
000112 00 DCB 0
000113 00 DCB 0
|L5.276|
000114 2a205151 DCB "* QQ : 1295744630 \r\n",0
000118 20202020
00011c 3a203132
000120 39353734
000124 34363330
000128 200d0a00
|L5.300|
00012c 2a20456d DCB "* Email : armfly@qq.com \r\n",0
000130 61696c20
000134 3a206172
000138 6d666c79
00013c 4071712e
000140 636f6d20
000144 0d0a00
000147 00 DCB 0
|L5.328|
000148 2a20436f DCB "* Copyright www.armfly.com ",176,178,184,187,192,179,181
00014c 70797269
000150 67687420
000154 7777772e
000158 61726d66
00015c 6c792e63
000160 6f6d20b0
000164 b2b8bbc0
000168 b3b5
00016a e7d7d30d DCB 231,215,211,"\r\n",0
00016e 0a00
AREA ||i.ReadFileData||, CODE, READONLY, ALIGN=2
REQUIRE _printf_percent
REQUIRE _printf_d
REQUIRE _printf_int_dec
REQUIRE _printf_s
REQUIRE _printf_str
ReadFileData PROC
;;;309 */
;;;310 static void ReadFileData(void)
000000 b510 PUSH {r4,lr}
;;;311 {
000002 f5ad6d9f SUB sp,sp,#0x4f8
;;;312 /* 本函数使用的局部变量占用较多,请修改启动文件,保证堆栈空间够用 */
;;;313 FRESULT result;
;;;314 FATFS fs;
;;;315 FIL file;
;;;316 DIR DirInf;
;;;317 uint32_t bw;
;;;318 char buf[128];
;;;319
;;;320 /* 挂载文件系统 */
;;;321 result = f_mount(0, &fs); /* Mount a logical drive */
000006 a9b2 ADD r1,sp,#0x2c8
000008 2000 MOVS r0,#0
00000a f7fffffe BL f_mount
00000e 4604 MOV r4,r0
;;;322 if (result != FR_OK)
000010 b11c CBZ r4,|L6.26|
;;;323 {
;;;324 printf("挂载文件系统失败(%d)\r\n", result);
000012 4621 MOV r1,r4
000014 a01b ADR r0,|L6.132|
000016 f7fffffe BL __2printf
|L6.26|
;;;325 }
;;;326
;;;327 /* 打开根文件夹 */
;;;328 result = f_opendir(&DirInf, "/"); /* 如果不带参数,则从当前目录开始 */
00001a a120 ADR r1,|L6.156|
00001c a822 ADD r0,sp,#0x88
00001e f7fffffe BL f_opendir
000022 4604 MOV r4,r0
;;;329 if (result != FR_OK)
000024 b134 CBZ r4,|L6.52|
;;;330 {
;;;331 printf("打开根目录失败(%d)\r\n", result);
000026 4621 MOV r1,r4
000028 a01d ADR r0,|L6.160|
00002a f7fffffe BL __2printf
|L6.46|
;;;332 return;
;;;333 }
;;;334
;;;335 /* 打开文件 */
;;;336 result = f_open(&file, "armfly.txt", FA_OPEN_EXISTING | FA_READ);
;;;337 if (result != FR_OK)
;;;338 {
;;;339 printf("Don't Find File : armfly.txt\r\n");
;;;340 return;
;;;341 }
;;;342
;;;343 /* 读取文件 */
;;;344 result = f_read(&file, &buf, sizeof(buf) - 1, &bw); //&buf is aim reg , sizeof is number
;;;345 if (bw > 0)
;;;346 {
;;;347 buf[bw] = 0;
;;;348 printf("\r\narmfly.txt 文件内容 : \r\n%s\r\n", buf);
;;;349 }
;;;350 else
;;;351 {
;;;352 printf("\r\narmfly.txt 文件内容 : \r\n");
;;;353 }
;;;354
;;;355 /* 关闭文件*/
;;;356 f_close(&file);
;;;357
;;;358 /* 卸载文件系统 */
;;;359 f_mount(0, NULL);
;;;360 }
00002e f50d6d9f ADD sp,sp,#0x4f8
000032 bd10 POP {r4,pc}
|L6.52|
000034 2201 MOVS r2,#1 ;336
000036 a120 ADR r1,|L6.184|
000038 a829 ADD r0,sp,#0xa4 ;336
00003a f7fffffe BL f_open
00003e 4604 MOV r4,r0 ;336
000040 b11c CBZ r4,|L6.74|
000042 a020 ADR r0,|L6.196|
000044 f7fffffe BL __2printf
000048 e7f1 B |L6.46|
|L6.74|
00004a ab21 ADD r3,sp,#0x84 ;344
00004c 227f MOVS r2,#0x7f ;344
00004e a901 ADD r1,sp,#4 ;344
000050 a829 ADD r0,sp,#0xa4 ;344
000052 f7fffffe BL f_read
000056 4604 MOV r4,r0 ;344
000058 9821 LDR r0,[sp,#0x84] ;345
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -