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

📄 main.s90

📁 SMS傳送Sourcode,compiler with C,AT command
💻 S90
字号:
//////////////////////////////////////////////////////////////////////////////
//                                                                           /
//                                                     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\ /
//                    main.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\ /
//                    List\main.s90                                          /
//                                                                           /
//                                                                           /
//////////////////////////////////////////////////////////////////////////////

        NAME main

        RTMODEL "__64bit_doubles", "disabled"
        RTMODEL "__cpu", "3"
        RTMODEL "__cpu_name", "ATmega128"
        RTMODEL "__enhanced_core", "enabled"
        RTMODEL "__has_elpm", "true"
        RTMODEL "__memory_model", "2"
        RTMODEL "__no_rampd", "enabled"
        RTMODEL "__rt_version", "3"

        RSEG CSTACK:DATA:NOROOT(0)
        RSEG RSTACK:DATA:NOROOT(0)

        EXTERN ?need_segment_init

        PUBWEAK `?<Segment init: NEAR_I>`
        PUBWEAK `?<Segment init: NEAR_Z>`
        PUBLIC ParamBuffer
        PUBWEAK __?EEARH
        PUBWEAK __?EEARL
        PUBWEAK __?EECR
        PUBWEAK __?EEDR
        PUBLIC i
        PUBLIC main
        FUNCTION main,021a03H
        LOCFRAME RSTACK, 2, STACK
        PUBLIC nParameters
        PUBLIC read_index
        PUBLIC systemInit
        FUNCTION systemInit,021203H
        LOCFRAME RSTACK, 2, STACK
        PUBLIC test
        
        CFI Names cfiNames0
        CFI StackFrame CFA_Y Y DATA
        CFI StackFrame CFA_SP SP DATA
        CFI VirtualResource ?RetPad:1, ?RetHigh:8, ?RetLow:8, ?Ret:17
        CFI Resource R0:8, R1:8, R2:8, R3:8, R4:8, R5:8, R6:8, R7:8, R8:8, R9:8
        CFI Resource R10:8, R11:8, R12:8, R13:8, R14:8, R15:8, R16:8, R17:8
        CFI Resource R18:8, R19:8, R20:8, R21:8, R22:8, R23:8, R24:8, R25:8
        CFI Resource R26:8, R27:8, R28:8, R29:8, R30:8, R31:8
        CFI Resource ?RetHighByteMask:8, SP:16, SPH:8, SPL:8, Y:16
        CFI ResourceParts ?Ret ?RetHigh, ?RetLow, ?RetPad
        CFI ResourceParts SP SPH, SPL
        CFI ResourceParts Y R29, R28
        CFI EndNames cfiNames0
        
        CFI Common cfiCommon0 Using cfiNames0
        CFI CodeAlign 1
        CFI DataAlign 1
        CFI ReturnAddress ?Ret CODE
        CFI CFA_Y Y+0
        CFI CFA_SP SP+2
        CFI ?RetPad 0
        CFI ?RetHigh and(load(1, DATA, sub(CFA_SP, 1)), ?RetHighByteMask)
        CFI ?RetLow Frame(CFA_SP, 0)
        CFI ?Ret Concat
        CFI R0 Undefined
        CFI R1 Undefined
        CFI R2 Undefined
        CFI R3 Undefined
        CFI R4 SameValue
        CFI R5 SameValue
        CFI R6 SameValue
        CFI R7 SameValue
        CFI R8 SameValue
        CFI R9 SameValue
        CFI R10 SameValue
        CFI R11 SameValue
        CFI R12 SameValue
        CFI R13 SameValue
        CFI R14 SameValue
        CFI R15 SameValue
        CFI R16 Undefined
        CFI R17 Undefined
        CFI R18 Undefined
        CFI R19 Undefined
        CFI R20 Undefined
        CFI R21 Undefined
        CFI R22 Undefined
        CFI R23 Undefined
        CFI R24 SameValue
        CFI R25 SameValue
        CFI R26 SameValue
        CFI R27 SameValue
        CFI R28 Undefined
        CFI R29 Undefined
        CFI R30 Undefined
        CFI R31 Undefined
        CFI ?RetHighByteMask SameValue
        CFI SPH Undefined
        CFI SPL Undefined
        CFI EndCommon cfiCommon0
        
        
        CFI Common cfiCommon1 Using cfiNames0
        CFI CodeAlign 1
        CFI DataAlign 1
        CFI ReturnAddress ?Ret CODE
        CFI CFA_Y Y+0
        CFI CFA_SP SP+2
        CFI ?RetPad 0
        CFI ?RetHigh and(load(1, DATA, sub(CFA_SP, 1)), ?RetHighByteMask)
        CFI ?RetLow Frame(CFA_SP, 0)
        CFI ?Ret Concat
        CFI R0 Undefined
        CFI R1 Undefined
        CFI R2 Undefined
        CFI R3 Undefined
        CFI R4 Undefined
        CFI R5 Undefined
        CFI R6 Undefined
        CFI R7 Undefined
        CFI R8 Undefined
        CFI R9 Undefined
        CFI R10 Undefined
        CFI R11 Undefined
        CFI R12 Undefined
        CFI R13 Undefined
        CFI R14 Undefined
        CFI R15 Undefined
        CFI R16 Undefined
        CFI R17 Undefined
        CFI R18 Undefined
        CFI R19 Undefined
        CFI R20 Undefined
        CFI R21 Undefined
        CFI R22 Undefined
        CFI R23 Undefined
        CFI R24 Undefined
        CFI R25 Undefined
        CFI R26 Undefined
        CFI R27 Undefined
        CFI R28 Undefined
        CFI R29 Undefined
        CFI R30 Undefined
        CFI R31 Undefined
        CFI ?RetHighByteMask SameValue
        CFI SPH Undefined
        CFI SPL Undefined
        CFI EndCommon cfiCommon1
        
        EXTERN COM_init
        FUNCTION COM_init,0202H
        EXTERN API_phoneinit
        FUNCTION API_phoneinit,0202H
        EXTERN COM_rx_reset
        FUNCTION COM_rx_reset,0202H
        EXTERN COM_setSearchString
        FUNCTION COM_setSearchString,0202H
        EXTERN COM_rx_on
        FUNCTION COM_rx_on,0202H
        EXTERN TOOLS_decodeCMTI
        FUNCTION TOOLS_decodeCMTI,0202H
        EXTERN API_readmsg
        FUNCTION API_readmsg,0202H
        EXTERN rx_ack

// 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;

        RSEG NEAR_Z:DATA:NOROOT(0)
        REQUIRE `?<Segment init: NEAR_Z>`
//   13 volatile int nParameters, i, read_index;
nParameters:
        DS 2

        RSEG NEAR_Z:DATA:NOROOT(0)
        REQUIRE `?<Segment init: NEAR_Z>`
i:
        DS 2

        RSEG NEAR_Z:DATA:NOROOT(0)
        REQUIRE `?<Segment init: NEAR_Z>`
read_index:
        DS 2

        RSEG NEAR_Z:DATA:NOROOT(0)
        REQUIRE `?<Segment init: NEAR_Z>`
//   14 unsigned char *ParamBuffer[ RX_N_OF_PARAMS ];
ParamBuffer:
        DS 16

        RSEG NEAR_I:DATA:NOROOT(0)
        REQUIRE `?<Segment init: NEAR_I>`
`?<Constant "aaaaaaaaaaaaaaaaaaaaa...">`:
        DS 79
        REQUIRE `?<Initializer for <Constant "aaaaaaaaaaaaaaaaa`
//   15 

        RSEG NEAR_I:DATA:NOROOT(0)
        REQUIRE `?<Segment init: NEAR_I>`
//   16 unsigned char *test = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"; //Max allovable string is 80 chars
test:
        DS 2
        REQUIRE `?<Initializer for test>`
//   17 
//   18 

        RSEG CODE:CODE:NOROOT(1)
//   19 void systemInit( void )
systemInit:
        CFI Block cfiBlock0 Using cfiCommon0
        CFI Function systemInit
//   20 {
//   21   COM_init( 12 );  //Running @ 1Mhz
        FUNCALL systemInit, COM_init
        LOCFRAME RSTACK, 2, STACK
        FUNCALL systemInit, API_phoneinit
        LOCFRAME RSTACK, 2, STACK
        FUNCALL systemInit, COM_rx_reset
        LOCFRAME RSTACK, 2, STACK
        FUNCALL systemInit, COM_setSearchString
        LOCFRAME RSTACK, 2, STACK
        FUNCALL systemInit, COM_rx_on
        LOCFRAME RSTACK, 2, STACK
        LDI	R16, 12
        LDI	R17, 0
        CALL	COM_init
//   22   __enable_interrupt();
        SEI
//   23   API_phoneinit( );
        CALL	API_phoneinit
//   24   COM_rx_reset( );
        CALL	COM_rx_reset
//   25   COM_setSearchString( 1 );   //Wait for "+CMTI: ,Storage,index\r\n"
        LDI	R16, 1
        CALL	COM_setSearchString
//   26   COM_rx_on( );           //Ready to receive
        CALL	COM_rx_on
//   27 }
        RET
        CFI EndBlock cfiBlock0
//   28 
//   29 

        RSEG CODE:CODE:NOROOT(1)
//   30 __C_task void main( void )
main:
        CFI Block cfiBlock1 Using cfiCommon1
        CFI Function main
//   31 {
//   32 
//   33   systemInit(); //System init...Hardware and subsystems
        FUNCALL main, systemInit
        LOCFRAME RSTACK, 2, STACK
        FUNCALL main, TOOLS_decodeCMTI
        LOCFRAME RSTACK, 2, STACK
        FUNCALL main, API_readmsg
        LOCFRAME RSTACK, 2, STACK
        FUNCALL main, COM_setSearchString
        LOCFRAME RSTACK, 2, STACK
        FUNCALL main, COM_rx_reset
        LOCFRAME RSTACK, 2, STACK
        FUNCALL main, COM_rx_on
        LOCFRAME RSTACK, 2, STACK
        RCALL	systemInit
//   34   nParameters = i = read_index = 0;
        LDI	R16, 0
        LDI	R17, 0
        LDI	R30, LOW(read_index)
        LDI	R31, (read_index) >> 8
        ST	Z, R16
        STD	Z+1, R17
        LDI	R30, LOW(i)
        LDI	R31, (i) >> 8
        ST	Z, R16
        STD	Z+1, R17
        LDI	R30, LOW(nParameters)
        LDI	R31, (nParameters) >> 8
        ST	Z, R16
        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:
        LDI	R30, LOW(rx_ack)
        LDI	R31, (rx_ack) >> 8
        LD	R16, Z
        LDD	R17, Z+1
        CPI	R16, 1
        LDI	R18, 0
        CPC	R17, R18
        BRNE	??main_0
//   85     {
//   86       read_index = TOOLS_decodeCMTI( );
        CALL	TOOLS_decodeCMTI
        LDI	R30, LOW(read_index)
        LDI	R31, (read_index) >> 8
        ST	Z, R16
        STD	Z+1, R17
//   87       API_readmsg( read_index );  //Read new message
        LDI	R30, LOW(read_index)
        LDI	R31, (read_index) >> 8
        LD	R16, Z
        LDD	R17, Z+1
        CALL	API_readmsg
//   88 
//   89       COM_setSearchString( 1 );   //Wait for "+CMTI: ,Storage,index\r\n"
        LDI	R16, 1
        CALL	COM_setSearchString
//   90       COM_rx_reset( );        //Reset buffer and interrupt routine
        CALL	COM_rx_reset
//   91       COM_rx_on( );           //Ready to receive
        CALL	COM_rx_on
        RJMP	??main_0
        CFI EndBlock cfiBlock1
//   92     }
//   93 
//   94   }
//   95 }

        ASEGN ABSOLUTE:DATA:NOROOT,01cH
__?EECR:

        ASEGN ABSOLUTE:DATA:NOROOT,01dH
__?EEDR:

        ASEGN ABSOLUTE:DATA:NOROOT,01eH
__?EEARL:

        ASEGN ABSOLUTE:DATA:NOROOT,01fH
__?EEARH:

        RSEG NEAR_ID:CODE:NOROOT(0)
`?<Initializer for <Constant "aaaaaaaaaaaaaaaaa`:
        DB 61H, 61H, 61H, 61H, 61H, 61H, 61H, 61H
        DB 61H, 61H, 61H, 61H, 61H, 61H, 61H, 61H
        DB 61H, 61H, 61H, 61H, 61H, 61H, 61H, 61H
        DB 61H, 61H, 61H, 61H, 61H, 61H, 61H, 61H
        DB 61H, 61H, 61H, 61H, 61H, 61H, 61H, 61H
        DB 61H, 61H, 61H, 61H, 61H, 61H, 61H, 61H
        DB 61H, 61H, 61H, 61H, 61H, 61H, 61H, 61H
        DB 61H, 61H, 61H, 61H, 61H, 61H, 61H, 61H
        DB 61H, 61H, 61H, 61H, 61H, 61H, 61H, 61H
        DB 61H, 61H, 61H, 61H, 61H, 61H, 0

        RSEG INITTAB:CODE:NOROOT(0)
`?<Segment init: NEAR_I>`:
        DW	SFE(NEAR_I) - SFB(NEAR_I)
        DW	SFB(NEAR_I)
        DP	SFB(NEAR_ID)
        REQUIRE ?need_segment_init

        RSEG INITTAB:CODE:NOROOT(0)
`?<Segment init: NEAR_Z>`:
        DW	SFE(NEAR_Z) - SFB(NEAR_Z)
        DW	SFB(NEAR_Z)
        DP	0
        REQUIRE ?need_segment_init

        RSEG NEAR_ID:CODE:NOROOT(0)
`?<Initializer for test>`:
        DW `?<Constant "aaaaaaaaaaaaaaaaaaaaa...">`

        END
// 
// 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 + -