📄 main.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 + -