main.lis

来自「Atmega64单片机程序(完整工程)」· LIS 代码 · 共 271 行

LIS
271
字号
                        .module main.c
                        .area data(ram, con, rel)
 0000           _WritFileData::
 0000                   .blkb 21
                        .area idata
 0000 46696C652073797374656D2074657374  .byte 'F,'i,'l,'e,32,'s,'y,'s,'t,'e,'m,32,'t,'e,'s,'t
 0010 2121210A00        .byte 33,33,33,10,0
                        .area data(ram, con, rel)
                        .area text(rom, con, rel)
                ;              c -> R20
                        .even
 0000           __StackOverflowed::
 0000 0E940000          xcall push_gset1
 0004 402F              mov R20,R16
 0006           ; #include "SYS_Config.h"
 0006           ; #include "GUI_Config.h"
 0006           ; #include "FS_Config.h"
 0006           ; #include "time.h"
 0006           ; #include "KeyScan.h"
 0006           ; 
 0006           ; #include "SD_Config.h"
 0006           ; 
 0006           ; #include "GUI.h"
 0006           ; #include "Picture.h"
 0006           ; 
 0006           ; #include "SD_EEPROM.h"
 0006           ; #include "SD_Drive.h"
 0006           ; #include "USART1.h"
 0006           ; #include "TEST_SD.h"
 0006           ; 
 0006           ; #include "fat.h"
 0006           ; 
 0006           ; INT8U Data_Buf[SD_BLOCKSIZE];
 0006           ; INT8U WritFileData[]="File system test!!!\n";
 0006           ; 
 0006           ; //注明:堆在设为64,设为32会出现硬件堆在溢出的情况!!!
 0006           ; extern void MenuMainLoop(void);
 0006           ; //编译时间
 0006           ; extern void DispBuildTime(void);
 0006           ; 
 0006           ; void _StackOverflowed(char c)
 0006           ; {
 0006           ;    if (c == 1)
 0006 4130              cpi R20,1
 0008 29F4              brne L2
 000A           ;        Uart1_SendString("\ntrashed HW stack\n");
 000A 00E0              ldi R16,<L4
 000C 10E0              ldi R17,>L4
 000E 0E940000          xcall _Uart1_SendString
 0012 04C0              xjmp L3
 0014           L2:
 0014           ;    else
 0014           ;        Uart1_SendString("\ntrashed SW stack\n");
 0014 00E0              ldi R16,<L5
 0016 10E0              ldi R17,>L5
 0018 0E940000          xcall _Uart1_SendString
 001C           L3:
 001C           L1:
 001C 0E940000          xcall pop_gset1
 0020                   .dbline 0 ; func end
 0020 0895              ret
 0022           ;              i -> <dead>
                        .even
 0022           _main::
 0022 2397              sbiw R28,3
 0024           ; }
 0024           ; 
 0024           ; 
 0024           ; HANDLE FHandle;//文件系统句柄
 0024           ; void main(void)
 0024           ; {
 0024           ;     INT8U i;
 0024           ;       
 0024           ;     GUI_Delay(500);//等待系统稳定,再作初始化
 0024 04EF              ldi R16,500
 0026 11E0              ldi R17,1
 0028 0E940000          xcall _GUI_Delay
 002C           ; 
 002C           ;     CLI();//关中断,对模块函数进行初始化
 002C F894              cli
 002E           ;       timer0_init();
 002E 0E940000          xcall _timer0_init
 0032           ;       timer2_init();
 0032 0E940000          xcall _timer2_init
 0036           ;       
 0036           ;     #if USART1_EN
 0036           ;         Uart1_Init();
 0036 0E940000          xcall _Uart1_Init
 003A           ;     #endif
 003A           ;     
 003A           ;     #if (USART1_EN==1&&SD_MMC_TEST_EN==1)
 003A           ;         Test_SD_Initialize();   //SD卡初始化(带串口输出功能)
 003A           ;     #else
 003A           ;         SD_Initialize();
 003A 0E940000          xcall _SD_Initialize
 003E           ;     #endif
 003E           ;     
 003E           ;     GUI_Init();
 003E 0E940000          xcall _GUI_Init
 0042           ;       //编译时间
 0042           ;     DispBuildTime();
 0042 0E940000          xcall _DispBuildTime
 0046           ;       GUI_Delay(10000);
 0046 00E1              ldi R16,10000
 0048 17E2              ldi R17,39
 004A 0E940000          xcall _GUI_Delay
 004E           ;     
 004E           ;     SEI();//开中断 
 004E 7894              sei
 0050           ;     
 0050           ;       //GUI_Display_Image(PIC_FAT);
 0050           ;     
 0050           ;     #if SD_MMC_TEST_EN
 0050           ;         SD_MMC_TEST();          //测试SD卡各项功能函数,正常使用时使SD_MMC_TEST_EN=0
 0050           ;     #endif
 0050           ;      
 0050           ;     DiskInit();                 //初始化磁盘管理模块
 0050 0E940000          xcall _DiskInit
 0054           ;     AddFileDriver( SD_Command );//加载SD卡驱动程序
 0054 00E0              ldi R16,<PL_SD_Command
 0056 10E0              ldi R17,>PL_SD_Command
 0058 0E940000          xcall _AddFileDriver
 005C           ;     FileInit();
 005C 0E940000          xcall _FileInit
 0060           ;        
 0060           ;     Uart1_SendString("\n\nMakeDir:");    
 0060 00E0              ldi R16,<L7
 0062 10E0              ldi R17,>L7
 0064 0E940000          xcall _Uart1_SendString
 0068           ;     MakeDir("a:\\蒋金雄");
 0068 00E0              ldi R16,<L8
 006A 10E0              ldi R17,>L8
 006C 0E940000          xcall _MakeDir
 0070           ;     
 0070           ;     //Uart1_SendString("\n\nFileOpen_W:");    
 0070           ;     //FHandle = FileOpen("a:\\蒋金雄\\JJX.txt","w");
 0070           ;     
 0070           ;     //Uart1_SendString("\n\nFileWrite:");    
 0070           ;     //FileWrite(WritFileData,sizeof(WritFileData), FHandle);
 0070           ;     
 0070           ;     //Uart1_SendString("\n\nFileClose:");    
 0070           ;     //FileClose(FHandle);
 0070           ;     
 0070           ;     Uart1_SendString("\n\nFileOpen:");    
 0070 00E0              ldi R16,<L9
 0072 10E0              ldi R17,>L9
 0074 0E940000          xcall _Uart1_SendString
 0078           ;     FHandle = FileOpen("a:\\蒋金雄\\JJX.txt","r");
 0078 20E0              ldi R18,<L11
 007A 30E0              ldi R19,>L11
 007C 00E0              ldi R16,<L10
 007E 10E0              ldi R17,>L10
 0080 0E940000          xcall _FileOpen
 0084 00930000          sts _FHandle,R16
 0088           ;     
 0088           ;     Uart1_SendString("\n\nFileRead:");    
 0088 00E0              ldi R16,<L12
 008A 10E0              ldi R17,>L12
 008C 0E940000          xcall _Uart1_SendString
 0090           ;     FileRead(Data_Buf,512,FHandle);
 0090 20900000          lds R2,_FHandle
 0094 2A82              std y+2,R2
 0096 40E0              ldi R20,0
 0098 52E0              ldi R21,2
 009A 60E0              ldi R22,0
 009C 70E0              ldi R23,0
 009E 6883              std y+0,R22
 00A0 7983              std y+1,R23
 00A2 9A01              movw R18,R20
 00A4 00E0              ldi R16,<_Data_Buf
 00A6 10E0              ldi R17,>_Data_Buf
 00A8 0E940000          xcall _FileRead
 00AC           ;     
 00AC           ;     Uart1_SendString("\n\nFileClose:"); 
 00AC 00E0              ldi R16,<L13
 00AE 10E0              ldi R17,>L13
 00B0 0E940000          xcall _Uart1_SendString
 00B4           ;     FileClose(FHandle);
 00B4 00910000          lds R16,_FHandle
 00B8 0E940000          xcall _FileClose
 00BC           ;     
 00BC           ;     Uart1_SendString("\n\nOUTPUT:");  
 00BC 00E0              ldi R16,<L14
 00BE 10E0              ldi R17,>L14
 00C0 0E940000          xcall _Uart1_SendString
 00C4           ;     Uart1_SendString(Data_Buf);    
 00C4 00E0              ldi R16,<_Data_Buf
 00C6 10E0              ldi R17,>_Data_Buf
 00C8 0E940000          xcall _Uart1_SendString
 00CC           ; 
 00CC           ; 
 00CC           ;     AllCacheWriteBack();
 00CC 0E940000          xcall _AllCacheWriteBack
 00D0           ;     RemoveFileDriver(0);
 00D0 0027              clr R16
 00D2 0E940000          xcall _RemoveFileDriver
 00D6 04C0              xjmp L16
 00D8           L15:
 00D8 0E940000          xcall __StackCheck
 00DC 0E940000          xcall _MenuMainLoop
 00E0           L16:
 00E0           ;     
 00E0           ;     while(1)
 00E0 FBCF              xjmp L15
 00E2           X0:
 00E2           L6:
 00E2 2396              adiw R28,3
 00E4                   .dbline 0 ; func end
 00E4 0895              ret
                        .area bss(ram, con, rel)
 0000           _FHandle::
 0000                   .blkb 1
 0001           _Data_Buf::
 0001                   .blkb 512
                        .area data(ram, con, rel)
 0015           L14:
 0015                   .blkb 10
                        .area idata
 0015 0A0A4F55545055543A00      .byte 10,10,'O,'U,'T,'P,'U,'T,58,0
                        .area data(ram, con, rel)
 001F           L13:
 001F                   .blkb 13
                        .area idata
 001F 0A0A46696C65436C6F73653A00        .byte 10,10,'F,'i,'l,'e,'C,'l,'o,'s,'e,58,0
                        .area data(ram, con, rel)
 002C           L12:
 002C                   .blkb 12
                        .area idata
 002C 0A0A46696C65526561643A00  .byte 10,10,'F,'i,'l,'e,'R,'e,'a,'d,58,0
                        .area data(ram, con, rel)
 0038           L11:
 0038                   .blkb 2
                        .area idata
 0038 7200              .byte 'r,0
                        .area data(ram, con, rel)
 003A           L10:
 003A                   .blkb 18
                        .area idata
 003A 613A5CBDAFBDF0D0DB5C4A4A582E7478  .byte 'a,58,92,189,175,189,240,208,219,92,'J,'J,'X,46,'t,'x
 004A 7400              .byte 't,0
                        .area data(ram, con, rel)
 004C           L9:
 004C                   .blkb 12
                        .area idata
 004C 0A0A46696C654F70656E3A00  .byte 10,10,'F,'i,'l,'e,'O,'p,'e,'n,58,0
                        .area data(ram, con, rel)
 0058           L8:
 0058                   .blkb 10
                        .area idata
 0058 613A5CBDAFBDF0D0DB00      .byte 'a,58,92,189,175,189,240,208,219,0
                        .area data(ram, con, rel)
 0062           L7:
 0062                   .blkb 11
                        .area idata
 0062 0A0A4D616B654469723A00    .byte 10,10,'M,'a,'k,'e,'D,'i,'r,58,0
                        .area data(ram, con, rel)
 006D           L5:
 006D                   .blkb 19
                        .area idata
 006D 0A747261736865642053572073746163  .byte 10,'t,'r,'a,'s,'h,'e,'d,32,'S,'W,32,'s,'t,'a,'c
 007D 6B0A00            .byte 'k,10,0
                        .area data(ram, con, rel)
 0080           L4:
 0080                   .blkb 19
                        .area idata
 0080 0A747261736865642048572073746163  .byte 10,'t,'r,'a,'s,'h,'e,'d,32,'H,'W,32,'s,'t,'a,'c
 0090 6B0A00            .byte 'k,10,0
                        .area data(ram, con, rel)
                        .area func_lit
 0000 0000      PL_SD_Command:  .word `_SD_Command

⌨️ 快捷键说明

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