📄 avrsms_api.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\ /
// AVRSMS_api.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 /
// \AVRSMS_api.c" /
// List file = C:\Documents and Settings\vemund\Desktop\AVRGSM\Debug\ /
// List\AVRSMS_api.s90 /
// /
// /
//////////////////////////////////////////////////////////////////////////////
NAME AVRSMS_api
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 ?EPILOGUE_B4_L09
EXTERN ?PROLOGUE4_L09
EXTERN ?need_segment_init
PUBWEAK `?<Segment init: NEAR_I>`
PUBWEAK `?<Segment init: NEAR_Z>`
PUBLIC API_check_acknowledge
FUNCTION API_check_acknowledge,021203H
LOCFRAME CSTACK, 2, STACK
LOCFRAME RSTACK, 2, STACK
PUBLIC API_deletemsg
FUNCTION API_deletemsg,021203H
LOCFRAME CSTACK, 2, STACK
LOCFRAME RSTACK, 2, STACK
PUBLIC API_phoneinit
FUNCTION API_phoneinit,021203H
LOCFRAME RSTACK, 2, STACK
PUBLIC API_readmsg
FUNCTION API_readmsg,021203H
LOCFRAME CSTACK, 4, STACK
LOCFRAME RSTACK, 2, STACK
PUBLIC API_sendmsg
FUNCTION API_sendmsg,021203H
LOCFRAME CSTACK, 8, STACK
LOCFRAME RSTACK, 2, STACK
PUBLIC ATE0
PUBLIC AT_CMGD
PUBLIC AT_CMGR
PUBLIC AT_CMGS
PUBLIC AT_CNMI
PUBLIC AT_CPMS
PUBLIC CRLF
PUBLIC PDU_HEADER
PUBWEAK __?EEARH
PUBWEAK __?EEARL
PUBWEAK __?EECR
PUBWEAK __?EEDR
PUBLIC msgbuff
PUBLIC ziped
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
EXTERN COM_rx_reset
FUNCTION COM_rx_reset,0202H
EXTERN COM_setSearchString
FUNCTION COM_setSearchString,0202H
EXTERN COM_putsf
FUNCTION COM_putsf,0202H
EXTERN COM_rx_on
FUNCTION COM_rx_on,0202H
EXTERN COM_put_integer
FUNCTION COM_put_integer,0202H
EXTERN ZIP_compress
FUNCTION ZIP_compress,0202H
EXTERN ZIP_itoh
FUNCTION ZIP_itoh,0202H
EXTERN COM_puts
FUNCTION COM_puts,0202H
EXTERN COM_putchar
FUNCTION COM_putchar,0202H
EXTERN TOOLS__decodeCMGR
FUNCTION TOOLS__decodeCMGR,0202H
EXTERN ZIP_decompress
FUNCTION ZIP_decompress,0202H
EXTERN COM_rx_off
FUNCTION COM_rx_off,0202H
EXTERN rx_ack
// C:\Documents and Settings\vemund\Desktop\AVRGSM\Files\AVRSMS_api.c
// 1 /*! \file ********************************************************************
// 2 *
// 3 * Atmel Corporation
// 4 *
// 5 * - File : AVRSMS_api.c
// 6 * - Compiler : IAR EWAAVR 3.20C
// 7 *
// 8 * - Support mail : avr@atmel.com
// 9 *
// 10 * - Supported devices : The example is written for ATmega169
// 11 *
// 12 *
// 13 * - AppNote : AVR323 - Interfacing Cellphones
// 14 *
// 15 * - Description : Example of how to use AVR Butterfly as Mobilephone controller
// 16 *
// 17 * $Revision: 1.1 $
// 18 * $Date: Tuesday, November 08, 2005 12:26:18 UTC $
// 19 *****************************************************************************/
// 20 #ifdef S_SPLINT_S
// 21 #include"splint.h"
// 22 #endif
// 23
// 24 //Includes
// 25 #include<inavr.h>
// 26 #include"AVRSMS_com.h"
// 27 #include"AVRSMS_zip.h"
// 28 #include"AVRSMS_header.h"
RSEG NEAR_F:CODE:NOROOT(0)
// unsigned char const __flash PDU_HEADER[25]
PDU_HEADER:
DB 48, 48, 48, 49, 48, 48, 48, 65, 56, 49, 55, 52, 51, 57, 48, 50, 49
DB 56, 52, 52, 48, 48, 48, 48, 0
// 29 #include"AVRSMS_tools.h"
// 30
// 31
// 32 //Private function prototype
// 33 int API_check_acknowledge( void );
// 34
// 35
// 36 extern int rx_ack; //Variable from AVRSMS_com.c
// 37
// 38
// 39 //AT-Command set used
RSEG NEAR_F:CODE:NOROOT(0)
// 40 const unsigned char __flash ATE0[] = "ATE0\r\n"; //Echo off
ATE0:
DB "ATE0\015\012"
RSEG NEAR_F:CODE:NOROOT(0)
// 41 const unsigned char __flash AT_CNMI[] = "AT+CNMI=1,1,,,1\r\n"; //Identification of new sms
AT_CNMI:
DB "AT+CNMI=1,1,,,1\015\012"
RSEG NEAR_F:CODE:NOROOT(0)
// 42 const unsigned char __flash AT_CPMS[] = "AT+CPMS=\"ME\",\"ME\",\"ME\"\r\n"; //Preferred storage
AT_CPMS:
DB "AT+CPMS=\"ME\",\"ME\",\"ME\"\015\012"
RSEG NEAR_F:CODE:NOROOT(0)
// 43 const unsigned char __flash AT_CMGD[] = "AT+CMGD="; //Delete message at index
AT_CMGD:
DB "AT+CMGD="
RSEG NEAR_F:CODE:NOROOT(0)
// 44 const unsigned char __flash AT_CMGR[] = "AT+CMGR="; //Read from index //Echo off
AT_CMGR:
DB "AT+CMGR="
RSEG NEAR_F:CODE:NOROOT(0)
// 45 const unsigned char __flash AT_CMGS[] = "AT+CMGS="; //Echo off
AT_CMGS:
DB "AT+CMGS="
RSEG NEAR_F:CODE:NOROOT(0)
// 46 const unsigned char __flash CRLF[] = "\r\n"; //Carrige return Line feed
CRLF:
DB "\015\012"
// 47
// 48
RSEG NEAR_Z:DATA:NOROOT(0)
REQUIRE `?<Segment init: NEAR_Z>`
// 49 unsigned char msgbuff[161];
msgbuff:
DS 161
RSEG NEAR_I:DATA:NOROOT(0)
REQUIRE `?<Segment init: NEAR_I>`
`?<Constant "E170381C0E87C3E170381...">`:
DS 119
REQUIRE `?<Initializer for <Constant "E170381C0E87C3E17`
RSEG NEAR_I:DATA:NOROOT(0)
REQUIRE `?<Segment init: NEAR_I>`
// 50 unsigned char *ziped = "E170381C0E87C3E170381C0E87C3E170381C0E87C3E170381C0E87C3E170381C0E87C3E170381C0E87C3E170381C0E87C3E170381C0E87C3E17018";
ziped:
DS 2
REQUIRE `?<Initializer for ziped>`
// 51
// 52 //Phone setup
RSEG CODE:CODE:NOROOT(1)
// 53 int API_phoneinit( void )
API_phoneinit:
CFI Block cfiBlock0 Using cfiCommon0
CFI Function API_phoneinit
// 54 {
// 55 COM_rx_reset( ); //Reset system
FUNCALL API_phoneinit, COM_rx_reset
LOCFRAME RSTACK, 2, STACK
FUNCALL API_phoneinit, COM_setSearchString
LOCFRAME RSTACK, 2, STACK
FUNCALL API_phoneinit, COM_putsf
LOCFRAME RSTACK, 2, STACK
FUNCALL API_phoneinit, COM_rx_on
LOCFRAME RSTACK, 2, STACK
FUNCALL API_phoneinit, API_check_acknowledge
LOCFRAME RSTACK, 2, STACK
FUNCALL API_phoneinit, COM_putsf
LOCFRAME RSTACK, 2, STACK
FUNCALL API_phoneinit, COM_rx_on
LOCFRAME RSTACK, 2, STACK
FUNCALL API_phoneinit, API_check_acknowledge
LOCFRAME RSTACK, 2, STACK
FUNCALL API_phoneinit, COM_putsf
LOCFRAME RSTACK, 2, STACK
FUNCALL API_phoneinit, COM_rx_on
LOCFRAME RSTACK, 2, STACK
FUNCALL API_phoneinit, API_check_acknowledge
LOCFRAME RSTACK, 2, STACK
CALL COM_rx_reset
// 56 COM_setSearchString( 0 ); //Set OK to be search string
LDI R16, 0
CALL COM_setSearchString
// 57 COM_putsf( ATE0 ); //Send turn echo off
LDI R16, LOW(ATE0)
LDI R17, (ATE0) >> 8
CALL COM_putsf
// 58 COM_rx_on( ); //Receiver on
CALL COM_rx_on
// 59
// 60 if( API_check_acknowledge() > 0 ) //Echo off = OK
RCALL API_check_acknowledge
CPI R16, 1
SBCI R17, 0
BRLT ??API_phoneinit_0
// 61 {
// 62 COM_putsf(AT_CPMS); //Send preferred storage
LDI R16, LOW(AT_CPMS)
LDI R17, (AT_CPMS) >> 8
CALL COM_putsf
// 63 COM_rx_on( ); //Receiver on
CALL COM_rx_on
// 64
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -