📄 spimgr.s51
字号:
FUNCTION HalUARTOpen,0202H
ARGFRAME ISTACK, 2, STACK
ARGFRAME XSTACK, 30, STACK
EXTERN Hal_UART_RxBufLen
FUNCTION Hal_UART_RxBufLen,0202H
ARGFRAME XSTACK, 15, STACK
EXTERN HalUARTRead
FUNCTION HalUARTRead,0202H
ARGFRAME XSTACK, 15, STACK
EXTERN SendData
FUNCTION SendData,0202H
ARGFRAME XSTACK, 15, STACK
EXTERN osal_msg_allocate
FUNCTION osal_msg_allocate,0202H
ARGFRAME XSTACK, 15, STACK
EXTERN osal_msg_send
FUNCTION osal_msg_send,0202H
ARGFRAME XSTACK, 15, STACK
EXTERN osal_msg_deallocate
FUNCTION osal_msg_deallocate,0202H
ARGFRAME XSTACK, 15, STACK
EXTERN MT_TaskID
// C:\Texas Instruments\ZStack-1.4.2\Components\mt\SPIMgr.c
// 1 /***************************************************************************************************
// 2 Filename: SPIMgr.c
// 3 Revised: $Date: 2006-10-09 17:35:06 -0700 (Mon, 09 Oct 2006) $
// 4 Revision: $Revision: 12239 $
// 5
// 6 Description:
// 7 This module handles anything dealing with the serial port.
// 8
// 9 Copyright (c) 2006 by Texas Instruments, Inc.
// 10 All Rights Reserved. Permission to use, reproduce, copy, prepare
// 11 derivative works, modify, distribute, perform, display or sell this
// 12 software and/or its documentation for any purpose is prohibited
// 13 without the express written consent of Texas Instruments, Inc.
// 14 ***************************************************************************************************/
// 15
// 16
// 17 /***************************************************************************************************
// 18 * INCLUDES
// 19 ***************************************************************************************************/
// 20 #include "ZComDef.h"
// 21 #include "OSAL.h"
// 22 #include "hal_uart.h"
// 23 #include "MTEL.h"
// 24 #include "SPIMgr.h"
// 25 #include "OSAL_Memory.h"
// 26 #define UINT8 unsigned char
// 27 UINT8 SendData(UINT8 *buf, UINT16 addr, UINT8 Leng);
// 28
// 29 /***************************************************************************************************
// 30 * MACROS
// 31 ***************************************************************************************************/
// 32
// 33 /***************************************************************************************************
// 34 * CONSTANTS
// 35 ***************************************************************************************************/
// 36
// 37 /* State values for ZTool protocal */
// 38 #define SOP_STATE 0x00
// 39 #define CMD_STATE1 0x01
// 40 #define CMD_STATE2 0x02
// 41 #define LEN_STATE 0x03
// 42 #define DATA_STATE 0x04
// 43 #define FCS_STATE 0x05
// 44
// 45 /***************************************************************************************************
// 46 * TYPEDEFS
// 47 ***************************************************************************************************/
// 48
// 49 /***************************************************************************************************
// 50 * GLOBAL VARIABLES
// 51 ***************************************************************************************************/
RSEG XDATA_Z:XDATA:NOROOT(0)
REQUIRE __INIT_XDATA_Z
// 52 byte App_TaskID;
App_TaskID:
DS 1
// 53
// 54 /* ZTool protocal parameters */
// 55
// 56 #if defined (ZTOOL_P1) || defined (ZTOOL_P2)
RSEG XDATA_Z:XDATA:NOROOT(0)
REQUIRE __INIT_XDATA_Z
// 57 uint8 state;
state:
DS 1
RSEG XDATA_Z:XDATA:NOROOT(0)
REQUIRE __INIT_XDATA_Z
// 58 uint8 CMD_Token[2];
CMD_Token:
DS 2
RSEG XDATA_Z:XDATA:NOROOT(0)
REQUIRE __INIT_XDATA_Z
// 59 uint8 LEN_Token;
LEN_Token:
DS 1
RSEG XDATA_Z:XDATA:NOROOT(0)
REQUIRE __INIT_XDATA_Z
// 60 uint8 FSC_Token;
FSC_Token:
DS 1
RSEG XDATA_Z:XDATA:NOROOT(0)
REQUIRE __INIT_XDATA_Z
// 61 mtOSALSerialData_t *SPI_Msg;
SPI_Msg:
DS 2
RSEG XDATA_Z:XDATA:NOROOT(0)
REQUIRE __INIT_XDATA_Z
// 62 uint8 tempDataLen;
tempDataLen:
DS 1
// 63 #endif //ZTOOL
// 64
// 65 #if defined (ZAPP_P1) || defined (ZAPP_P2)
// 66 uint16 SPIMgr_MaxZAppBufLen;
// 67 bool SPIMgr_ZAppRxStatus;
// 68 #endif
// 69
// 70
// 71 /***************************************************************************************************
// 72 * LOCAL FUNCTIONS
// 73 ***************************************************************************************************/
// 74
// 75 /***************************************************************************************************
// 76 * @fn SPIMgr_Init
// 77 *
// 78 * @brief
// 79 *
// 80 * @param None
// 81 *
// 82 * @return None
// 83 ***************************************************************************************************/
RSEG BANKED_CODE:CODE:NOROOT(0)
// 84 void SPIMgr_Init ()
SPIMgr_Init:
CFI Block cfiBlock0 Using cfiCommon0
CFI Function SPIMgr_Init
// 85 {
FUNCALL SPIMgr_Init, HalUARTOpen
LOCFRAME ISTACK, 2, STACK
LOCFRAME XSTACK, 30, STACK
ARGFRAME ISTACK, 2, STACK
ARGFRAME XSTACK, 30, STACK
PUSH DPL
CFI DPL0 Frame(CFA_SP, 4)
CFI CFA_SP SP+-4
PUSH DPH
CFI DPH0 Frame(CFA_SP, 5)
CFI CFA_SP SP+-5
; Saved register size: 2
; Auto size: 30
MOV A,#-0x1e
LCALL ?ALLOC_XSTACK8
CFI CFA_XSP16 add(XSP16, 30)
// 86 halUARTCfg_t uartConfig;
// 87
// 88 /* Initialize APP ID */
// 89 App_TaskID = 0;
CLR A
MOV DPTR,#App_TaskID
MOVX @DPTR,A
// 90
// 91 /* UART Configuration */
// 92 uartConfig.configured = TRUE;
MOV A,#0x1
MOV DPL,?XSP + 0
MOV DPH,?XSP + 1
MOVX @DPTR,A
// 93 uartConfig.baudRate = SPI_MGR_DEFAULT_BAUDRATE;
LCALL ?XSTACK_DISP0_8
MOV A,#0x6
MOVX @DPTR,A
// 94 uartConfig.flowControl = SPI_MGR_DEFAULT_OVERFLOW;
MOV A,#0x2
LCALL ?XSTACK_DISP0_8
CLR A
MOVX @DPTR,A
// 95 uartConfig.flowControlThreshold = SPI_MGR_DEFAULT_THRESHOLD;
MOV A,#0x3
LCALL ?XSTACK_DISP0_8
MOV A,#0x30
MOVX @DPTR,A
INC DPTR
CLR A
MOVX @DPTR,A
// 96 uartConfig.rx.maxBufSize = SPI_MGR_DEFAULT_MAX_RX_BUFF;
MOV A,#0xa
LCALL ?XSTACK_DISP0_8
MOV A,#-0x80
MOVX @DPTR,A
INC DPTR
CLR A
MOVX @DPTR,A
// 97 uartConfig.tx.maxBufSize = SPI_MGR_DEFAULT_MAX_TX_BUFF;
MOV A,#0x12
LCALL ?XSTACK_DISP0_8
MOV A,#-0x80
MOVX @DPTR,A
INC DPTR
CLR A
MOVX @DPTR,A
// 98 uartConfig.idleTimeout = SPI_MGR_DEFAULT_IDLE_TIMEOUT;
MOV A,#0x5
LCALL ?XSTACK_DISP0_8
MOV A,#0x6
MOVX @DPTR,A
// 99 uartConfig.intEnable = TRUE;
MOV A,#0x16
LCALL ?XSTACK_DISP0_8
MOV A,#0x1
MOVX @DPTR,A
// 100 #if defined (ZTOOL_P1) || defined (ZTOOL_P2)
// 101 uartConfig.callBackFunc = SPIMgr_ProcessZToolData;
MOV A,#0x1b
LCALL ?XSTACK_DISP0_8
MOV A,#(SPIMgr_ProcessZToolData & 0xff)
MOVX @DPTR,A
INC DPTR
MOV A,#((SPIMgr_ProcessZToolData >> 8) & 0xff)
MOVX @DPTR,A
INC DPTR
MOV A,#((SPIMgr_ProcessZToolData >> 16) & 0xff)
MOVX @DPTR,A
// 102 #elif defined (ZAPP_P1) || defined (ZAPP_P2)
// 103 uartConfig.callBackFunc = SPIMgr_ProcessZAppData;
// 104 #else
// 105 uartConfig.callBackFunc = NULL;
// 106 #endif
// 107
// 108 /* Start UART */
// 109 #if defined (SPI_MGR_DEFAULT_PORT)
// 110 HalUARTOpen (SPI_MGR_DEFAULT_PORT, &uartConfig);
; Setup parameters for call to function HalUARTOpen
MOV DPL,?XSP + 0
MOV DPH,?XSP + 1
MOV R2,DPL
MOV R3,DPH
MOV R1,#0x0
MOV DPTR,#(HalUARTOpen & 0xffff)
MOV A,#((HalUARTOpen >> 16) & 0xff)
LCALL ?BCALL ; Banked call to: DPTR()
// 111 #else
// 112 /* Silence IAR compiler warning */
// 113 (void)uartConfig;
// 114 #endif
// 115
// 116 /* Initialize for ZApp */
// 117 #if defined (ZAPP_P1) || defined (ZAPP_P2)
// 118 /* Default max bytes that ZAPP can take */
// 119 SPIMgr_MaxZAppBufLen = 1;
// 120 SPIMgr_ZAppRxStatus = SPI_MGR_ZAPP_RX_READY;
// 121 #endif
// 122
// 123
// 124 }
MOV A,#0x1e
LCALL ?DEALLOC_XSTACK8
CFI EndBlock cfiBlock0
REQUIRE ?Subroutine5
; // Fall through to label ?Subroutine5
RSEG BANKED_CODE:CODE:NOROOT(0)
?Subroutine5:
CFI Block cfiBlock1 Using cfiCommon0
CFI NoFunction
CFI CFA_SP SP+-5
CFI DPL0 Frame(CFA_SP, 4)
CFI DPH0 Frame(CFA_SP, 5)
POP DPH
CFI CFA_SP SP+-4
CFI DPH0 SameValue
POP DPL
CFI CFA_SP SP+-3
CFI DPL0 SameValue
LJMP ?BRET
CFI EndBlock cfiBlock1
// 125
// 126 /***************************************************************************************************
// 127 * @fn MT_SerialRegisterTaskID
// 128 *
// 129 * @brief
// 130 *
// 131 * This function registers the taskID of the application so it knows
// 132 * where to send the messages whent they come in.
// 133 *
// 134 * @param void
// 135 *
// 136 * @return void
// 137 ***************************************************************************************************/
RSEG BANKED_CODE:CODE:NOROOT(0)
// 138 void SPIMgr_RegisterTaskID( byte taskID )
SPIMgr_RegisterTaskID:
CFI Block cfiBlock2 Using cfiCommon0
CFI Function SPIMgr_RegisterTaskID
// 139 {
PUSH DPL
CFI DPL0 Frame(CFA_SP, 4)
CFI CFA_SP SP+-4
PUSH DPH
CFI DPH0 Frame(CFA_SP, 5)
CFI CFA_SP SP+-5
; Saved register size: 2
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -