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

📄 main.lst

📁 SMS傳送Sourcode,compiler with C,AT command
💻 LST
字号:
##############################################################################
#                                                                            #
#                                                      24/Sep/2005  02:15:52 #
# IAR Atmel AVR C/C++ Compiler V4.10A/W32, Evaluation Version                #
# Copyright 1996-2005 IAR Systems. All rights reserved.                      #
#                                                                            #
#    Source file  =  C:\Documents and Settings\vemund\Desktop\AVRGSM\Files\m #
#                    ain.c                                                   #
#    Command line =  --cpu=m128 -ms -o "C:\Documents and                     #
#                    Settings\vemund\Desktop\AVRGSM\Debug\Obj\" -lCN         #
#                    "C:\Documents and Settings\vemund\Desktop\AVRGSM\Debug\ #
#                    List\" -lA "C:\Documents and                            #
#                    Settings\vemund\Desktop\AVRGSM\Debug\List\" -y          #
#                    --initializers_in_flash -z3 --no_cse --no_inline        #
#                    --no_code_motion --no_cross_call --no_clustering        #
#                    --no_tbaa --debug -DENABLE_BIT_DEFINITIONS -e -I        #
#                    D:\Programs\iar\avr\INC\ -I                             #
#                    D:\Programs\iar\avr\INC\CLIB\ --eeprom_size 4096        #
#                    "C:\Documents and Settings\vemund\Desktop\AVRGSM\Files\ #
#                    main.c"                                                 #
#    List file    =  C:\Documents and Settings\vemund\Desktop\AVRGSM\Debug\L #
#                    ist\main.lst                                            #
#    Object file  =  C:\Documents and Settings\vemund\Desktop\AVRGSM\Debug\O #
#                    bj\main.r90                                             #
#                                                                            #
#                                                                            #
##############################################################################

C:\Documents and Settings\vemund\Desktop\AVRGSM\Files\main.c
      1          #ifdef S_SPLINT_S
      2            #include"splint.h"
      3          #endif
      4          
      5          
      6          #include<iom128.h>
      7          #include<inavr.h>
      8          #include"AVRSMS_com.h"
      9          #include"AVRSMS_api.h"
     10          #include"AVRSMS_tools.h"
     11          
     12          extern int rx_overflow, rx_ack;

   \                                 In segment NEAR_Z, align 1, keep-with-next
   \   00000000                      REQUIRE `?<Segment init: NEAR_Z>`
     13          volatile int nParameters, i, read_index;
   \                     nParameters:
   \   00000000                      DS 2

   \                                 In segment NEAR_Z, align 1, keep-with-next
   \   00000000                      REQUIRE `?<Segment init: NEAR_Z>`
   \                     i:
   \   00000000                      DS 2

   \                                 In segment NEAR_Z, align 1, keep-with-next
   \   00000000                      REQUIRE `?<Segment init: NEAR_Z>`
   \                     read_index:
   \   00000000                      DS 2

   \                                 In segment NEAR_Z, align 1, keep-with-next
   \   00000000                      REQUIRE `?<Segment init: NEAR_Z>`
     14          unsigned char *ParamBuffer[ RX_N_OF_PARAMS ];
   \                     ParamBuffer:
   \   00000000                      DS 16
     15          

   \                                 In segment NEAR_I, align 1, keep-with-next
   \   00000000                      REQUIRE `?<Segment init: NEAR_I>`
     16          unsigned char *test = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"; //Max allovable string is 80 chars
   \                     test:
   \   00000000                      DS 2
   \   00000002                      REQUIRE `?<Initializer for test>`
     17          
     18          

   \                                 In segment CODE, align 2, keep-with-next
     19          void systemInit( void )
   \                     systemInit:
     20          {
     21            COM_init( 12 );  //Running @ 1Mhz
   \   00000000   E00C               LDI     R16, 12
   \   00000002   E010               LDI     R17, 0
   \   00000004   ........           CALL    COM_init
     22            __enable_interrupt();
   \   00000008   9478               SEI
     23            API_phoneinit( );
   \   0000000A   ........           CALL    API_phoneinit
     24            COM_rx_reset( );
   \   0000000E   ........           CALL    COM_rx_reset
     25            COM_setSearchString( 1 );   //Wait for "+CMTI: ,Storage,index\r\n"
   \   00000012   E001               LDI     R16, 1
   \   00000014   ........           CALL    COM_setSearchString
     26            COM_rx_on( );           //Ready to receive
   \   00000018   ........           CALL    COM_rx_on
     27          }
   \   0000001C   9508               RET
     28          
     29          

   \                                 In segment CODE, align 2, keep-with-next
     30          __C_task void main( void )
   \                     main:
     31          {
     32          
     33            systemInit(); //System init...Hardware and subsystems
   \   00000000   ....               RCALL   systemInit
     34            nParameters = i = read_index = 0;
   \   00000002   E000               LDI     R16, 0
   \   00000004   E010               LDI     R17, 0
   \   00000006   ....               LDI     R30, LOW(read_index)
   \   00000008   ....               LDI     R31, (read_index) >> 8
   \   0000000A   8300               ST      Z, R16
   \   0000000C   8311               STD     Z+1, R17
   \   0000000E   ....               LDI     R30, LOW(i)
   \   00000010   ....               LDI     R31, (i) >> 8
   \   00000012   8300               ST      Z, R16
   \   00000014   8311               STD     Z+1, R17
   \   00000016   ....               LDI     R30, LOW(nParameters)
   \   00000018   ....               LDI     R31, (nParameters) >> 8
   \   0000001A   8300               ST      Z, R16
   \   0000001C   8311               STD     Z+1, R17
     35          
     36          
     37          
     38          
     39          
     40          
     41            //Main loop
     42            for(;;)
     43            {
     44              /*
     45              nParameters = API_phoneinit( );
     46          
     47              if( nParameters <= 0 )
     48              {
     49                nParameters = 0; //error
     50              }
     51          
     52              else
     53              {
     54                nParameters = 0; //Success
     55              }
     56              */
     57              //Test API_init
     58              /*
     59              if( nParameters == -2 )
     60              {
     61                i++; //Error indication
     62              }
     63          
     64              else if( nParameters == -1 )
     65              {
     66                i++; //Error storage
     67              }
     68          
     69              else if( nParameters == 0 )
     70              {
     71                i++; //Error Echo
     72              }
     73          
     74              else if( nParameters == 1 )
     75              {
     76                i++; //OK
     77              }
     78          
     79              API_deletemsg( i );
     80              API_sendmsg( test );
     81              API_readmsg( 123 );
     82              */
     83          
     84              if( rx_ack == 1 )  //New Message
   \                     ??main_0:
   \   0000001E   ....               LDI     R30, LOW(rx_ack)
   \   00000020   ....               LDI     R31, (rx_ack) >> 8
   \   00000022   8100               LD      R16, Z
   \   00000024   8111               LDD     R17, Z+1
   \   00000026   3001               CPI     R16, 1
   \   00000028   E020               LDI     R18, 0
   \   0000002A   0712               CPC     R17, R18
   \   0000002C   F7C1               BRNE    ??main_0
     85              {
     86                read_index = TOOLS_decodeCMTI( );
   \   0000002E   ........           CALL    TOOLS_decodeCMTI
   \   00000032   ....               LDI     R30, LOW(read_index)
   \   00000034   ....               LDI     R31, (read_index) >> 8
   \   00000036   8300               ST      Z, R16
   \   00000038   8311               STD     Z+1, R17
     87                API_readmsg( read_index );  //Read new message
   \   0000003A   ....               LDI     R30, LOW(read_index)
   \   0000003C   ....               LDI     R31, (read_index) >> 8
   \   0000003E   8100               LD      R16, Z
   \   00000040   8111               LDD     R17, Z+1
   \   00000042   ........           CALL    API_readmsg
     88          
     89                COM_setSearchString( 1 );   //Wait for "+CMTI: ,Storage,index\r\n"
   \   00000046   E001               LDI     R16, 1
   \   00000048   ........           CALL    COM_setSearchString
     90                COM_rx_reset( );        //Reset buffer and interrupt routine
   \   0000004C   ........           CALL    COM_rx_reset
     91                COM_rx_on( );           //Ready to receive
   \   00000050   ........           CALL    COM_rx_on
   \   00000054   CFE4               RJMP    ??main_0
     92              }
     93          
     94            }
     95          }

   \                                 In segment NEAR_ID, align 1, keep-with-next
   \                     `?<Initializer for <Constant "aaaaaaaaaaaaaaaaa`:
   \   00000000   616161616161       DB 61H, 61H, 61H, 61H, 61H, 61H, 61H, 61H
   \              6161        
   \   00000008   616161616161       DB 61H, 61H, 61H, 61H, 61H, 61H, 61H, 61H
   \              6161        
   \   00000010   616161616161       DB 61H, 61H, 61H, 61H, 61H, 61H, 61H, 61H
   \              6161        
   \   00000018   616161616161       DB 61H, 61H, 61H, 61H, 61H, 61H, 61H, 61H
   \              6161        
   \   00000020   616161616161       DB 61H, 61H, 61H, 61H, 61H, 61H, 61H, 61H
   \              6161        
   \   00000028   616161616161       DB 61H, 61H, 61H, 61H, 61H, 61H, 61H, 61H
   \              6161        
   \   00000030   616161616161       DB 61H, 61H, 61H, 61H, 61H, 61H, 61H, 61H
   \              6161        
   \   00000038   616161616161       DB 61H, 61H, 61H, 61H, 61H, 61H, 61H, 61H
   \              6161        
   \   00000040   616161616161       DB 61H, 61H, 61H, 61H, 61H, 61H, 61H, 61H
   \              6161        
   \   00000048   616161616161       DB 61H, 61H, 61H, 61H, 61H, 61H, 0
   \              00          

   \                                 In segment NEAR_ID, align 1, keep-with-next
   \                     `?<Initializer for test>`:
   \   00000000   ....               DW `?<Constant "aaaaaaaaaaaaaaaaaaaaa...">`

   \                                 In segment NEAR_I, align 1, keep-with-next
   \   00000000                      REQUIRE `?<Segment init: NEAR_I>`
   \                     `?<Constant "aaaaaaaaaaaaaaaaaaaaa...">`:
   \   00000000                      DS 79
   \   0000004F                      REQUIRE `?<Initializer for <Constant "aaaaaaaaaaaaaaaaa`

   Maximum stack usage in bytes:

     Function                 CSTACK RSTACK
     --------                 ------ ------
     main                         0      2
       -> systemInit              0      2
       -> TOOLS_decodeCMTI        0      2
       -> API_readmsg             0      2
       -> COM_setSearchString     0      2
       -> COM_rx_reset            0      2
       -> COM_rx_on               0      2
     systemInit                   0      2
       -> COM_init                0      2
       -> API_phoneinit           0      2
       -> COM_rx_reset            0      2
       -> COM_setSearchString     0      2
       -> COM_rx_on               0      2


   Segment part sizes:

     Function/Label                 Bytes
     --------------                 -----
     nParameters                       2
     i                                 2
     read_index                        2
     ParamBuffer                      16
     test                              2
     systemInit                       30
     main                             86
     ?<Initializer for <Constant "aaaaaaaaaaaaaaaaa
                                      79
     ?<Initializer for test>           2
     ?<Constant "aaaaaaaaaaaaaaaaaaaaa...">
                                      79
      Others                          14

 
 116 bytes in segment CODE
  14 bytes in segment INITTAB
  81 bytes in segment NEAR_I
  81 bytes in segment NEAR_ID
  22 bytes in segment NEAR_Z
 
 197 bytes of CODE memory (+ 14 bytes shared)
 103 bytes of DATA memory

Errors: none
Warnings: none

⌨️ 快捷键说明

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