📄 osal.s51
字号:
CFI Common cfiCommon1 Using cfiNames0
CFI CodeAlign 1
CFI DataAlign -1
CFI ReturnAddress ?RET CODE
CFI CFA_DOVERLAY Used
CFI CFA_IOVERLAY Used
CFI CFA_SP SP+-2
CFI CFA_PSP16 PSP16+0
CFI CFA_XSP16 XSP16+0
CFI `PSW.CY` SameValue
CFI `B.BR0` SameValue
CFI `B.BR1` SameValue
CFI `B.BR2` SameValue
CFI `B.BR3` SameValue
CFI `B.BR4` SameValue
CFI `B.BR5` SameValue
CFI `B.BR6` SameValue
CFI `B.BR7` SameValue
CFI `VB.BR8` SameValue
CFI `VB.BR9` SameValue
CFI `VB.BR10` SameValue
CFI `VB.BR11` SameValue
CFI `VB.BR12` SameValue
CFI `VB.BR13` SameValue
CFI `VB.BR14` SameValue
CFI `VB.BR15` SameValue
CFI VB SameValue
CFI B SameValue
CFI A SameValue
CFI PSW SameValue
CFI DPL0 SameValue
CFI DPH0 SameValue
CFI R0 SameValue
CFI R1 SameValue
CFI R2 SameValue
CFI R3 SameValue
CFI R4 SameValue
CFI R5 SameValue
CFI R6 SameValue
CFI R7 SameValue
CFI V0 SameValue
CFI V1 SameValue
CFI V2 SameValue
CFI V3 SameValue
CFI V4 SameValue
CFI V5 SameValue
CFI V6 SameValue
CFI V7 SameValue
CFI PSPH Undefined
CFI PSPL Undefined
CFI XSPH Undefined
CFI XSPL Undefined
CFI ?RET Concat
CFI ?BRET_EXT SameValue
CFI ?RET_HIGH Frame(CFA_SP, 2)
CFI ?RET_LOW Frame(CFA_SP, 1)
CFI EndCommon cfiCommon1
EXTERN strlen
FUNCTION strlen,010202H
ARGFRAME ISTACK, 2, STACK
ARGFRAME XSTACK, 52, STACK
EXTERN memset
FUNCTION memset,010202H
ARGFRAME XSTACK, 12, STACK
EXTERN _itoa
FUNCTION _itoa,0202H
ARGFRAME XSTACK, 52, STACK
EXTERN strcpy
FUNCTION strcpy,010202H
ARGFRAME XSTACK, 52, STACK
EXTERN strcat
FUNCTION strcat,010202H
ARGFRAME XSTACK, 52, STACK
EXTERN Onboard_rand
FUNCTION Onboard_rand,0202H
ARGFRAME ISTACK, 2, STACK
EXTERN osal_mem_alloc
FUNCTION osal_mem_alloc,0202H
ARGFRAME XSTACK, 10, STACK
EXTERN osal_mem_free
FUNCTION osal_mem_free,0202H
ARGFRAME ISTACK, 2, STACK
EXTERN osalFindTask
FUNCTION osalFindTask,0202H
ARGFRAME XSTACK, 12, STACK
EXTERN osal_mem_init
FUNCTION osal_mem_init,0202H
ARGFRAME ISTACK, 2, STACK
EXTERN osalTimerInit
FUNCTION osalTimerInit,0202H
ARGFRAME ISTACK, 2, STACK
EXTERN osal_pwrmgr_init
FUNCTION osal_pwrmgr_init,0202H
ARGFRAME ISTACK, 2, STACK
EXTERN osalTaskInit
FUNCTION osalTaskInit,0202H
ARGFRAME ISTACK, 2, STACK
EXTERN osalAddTasks
FUNCTION osalAddTasks,0202H
ARGFRAME ISTACK, 2, STACK
EXTERN osalInitTasks
FUNCTION osalInitTasks,0202H
ARGFRAME ISTACK, 2, STACK
EXTERN osal_mem_kick
FUNCTION osal_mem_kick,0202H
ARGFRAME ISTACK, 2, STACK
EXTERN Hal_ProcessPoll
FUNCTION Hal_ProcessPoll,0202H
ARGFRAME XSTACK, 10, STACK
EXTERN osalNextActiveTask
FUNCTION osalNextActiveTask,0202H
ARGFRAME XSTACK, 10, STACK
EXTERN activeTask
RSEG XDATA_Z:XDATA:NOROOT(0)
REQUIRE __INIT_XDATA_Z
`?<Constant "">`:
DS 10
RSEG XDATA_Z:XDATA:NOROOT(0)
REQUIRE __INIT_XDATA_Z
`?<Constant "">_1`:
DS 10
RSEG XDATA_Z:XDATA:NOROOT(0)
REQUIRE __INIT_XDATA_Z
`?<Constant "">_2`:
DS 10
// C:\Texas Instruments\ZStack-1.4.2\Components\osal\common\OSAL.c
// 1 /*********************************************************************
// 2 Filename: OSAL.c
// 3 Revised: $Date: 2006-10-26 11:15:57 -0700 (Thu, 26 Oct 2006) $
// 4 Revision: $Revision: 12421 $
// 5
// 6 Description:
// 7
// 8 This API allows the software components in the Z-stack to be
// 9 written independently of the specifics of the operating system,
// 10 kernel or tasking environment (including control loops or
// 11 connect-to-interrupt systems).
// 12
// 13 Copyright (c) 2006 by Texas Instruments, Inc.
// 14 All Rights Reserved. Permission to use, reproduce, copy, prepare
// 15 derivative works, modify, distribute, perform, display or sell this
// 16 software and/or its documentation for any purpose is prohibited
// 17 without the express written consent of Texas Instruments, Inc.
// 18 *********************************************************************/
// 19
// 20
// 21 /*********************************************************************
// 22 * INCLUDES
// 23 */
// 24 //#ifdef WIN32
// 25 // #include <stdio.h>
// 26 //#endif
// 27
// 28 #include <stdlib.h>
// 29 #include <string.h>
// 30
// 31 #include "ZComDef.h"
// 32 #include "OSAL.h"
// 33 #include "OSAL_Tasks.h"
// 34 #include "OSAL_Custom.h"
// 35 #include "OSAL_Memory.h"
// 36 #include "OSAL_PwrMgr.h"
// 37 #include "hal_mcu.h"
// 38
// 39 #include "OnBoard.h"
// 40
// 41 /* HAL */
// 42 #include "hal_drivers.h"
// 43
// 44 /*********************************************************************
// 45 * MACROS
// 46 */
// 47
// 48 #define OSAL_MSG_LEN(msg_ptr) ((osal_msg_hdr_t *) (msg_ptr) - 1)->len
// 49
// 50 #define OSAL_MSG_ID(msg_ptr) ((osal_msg_hdr_t *) (msg_ptr) - 1)->dest_id
// 51
// 52 /*********************************************************************
// 53 * CONSTANTS
// 54 */
// 55
// 56 /*********************************************************************
// 57 * TYPEDEFS
// 58 */
// 59
// 60 /*********************************************************************
// 61 * GLOBAL VARIABLES
// 62 */
// 63
// 64 // Message Pool Definitions
RSEG XDATA_Z:XDATA:NOROOT(0)
REQUIRE __INIT_XDATA_Z
// 65 osal_msg_q_t osal_qHead;
osal_qHead:
DS 2
// 66
// 67 #if defined( OSAL_TOTAL_MEM )
// 68 UINT16 osal_msg_cnt;
// 69 #endif
// 70
// 71 /*********************************************************************
// 72 * EXTERNAL VARIABLES
// 73 */
// 74
// 75 /*********************************************************************
// 76 * EXTERNAL FUNCTIONS
// 77 */
// 78
// 79 /*********************************************************************
// 80 * LOCAL VARIABLES
// 81 */
// 82
// 83 /*********************************************************************
// 84 * LOCAL FUNCTION PROTOTYPES
// 85 */
// 86
// 87 /*********************************************************************
// 88 * HELPER FUNCTIONS
// 89 */
// 90 /* very ugly stub so Keil can compile */
// 91 #ifdef __KEIL__
// 92 char * itoa ( int value, char * buffer, int radix )
// 93 {
// 94 return(buffer);
// 95 }
// 96 #endif
// 97
// 98 /*********************************************************************
// 99 * @fn osal_strlen
// 100 *
// 101 * @brief
// 102 *
// 103 * Calculates the length of a string. The string must be null
// 104 * terminated.
// 105 *
// 106 * @param char *pString - pointer to text string
// 107 *
// 108 * @return int - number of characters
// 109 */
RSEG BANKED_CODE:CODE:NOROOT(0)
// 110 int osal_strlen( char *pString )
osal_strlen:
CFI Block cfiBlock0 Using cfiCommon0
CFI Function osal_strlen
// 111 {
FUNCALL osal_strlen, strlen
LOCFRAME ISTACK, 2, STACK
ARGFRAME ISTACK, 2, 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: 0
// 112 return strlen( pString );
; Setup parameters for call to function strlen
MOV DPTR,#(strlen & 0xffff)
MOV A,#((strlen >> 16) & 0xff)
LJMP ?Subroutine19 & 0xFFFF
CFI EndBlock cfiBlock0
// 113 }
// 114
// 115 /*********************************************************************
// 116 * @fn osal_memcpy
// 117 *
// 118 * @brief
// 119 *
// 120 * Generic memory copy.
// 121 *
// 122 * Note: This function differs from the standard memcpy(), since
// 123 * it returns the pointer to the next destination byte. The
// 124 * standard memcpy() returns the original destination address.
// 125 *
// 126 * @param dst - destination address
// 127 * @param src - source address
// 128 * @param len - number of bytes to copy
// 129 *
// 130 * @return pointer to end of destination buffer
// 131 */
RSEG BANKED_CODE:CODE:NOROOT(0)
// 132 void *osal_memcpy( void *dst, const void GENERIC *src, unsigned int len )
osal_memcpy:
CFI Block cfiBlock1 Using cfiCommon0
CFI Function osal_memcpy
// 133 {
MOV A,#-0xb
LCALL ?BANKED_ENTER_XDATA
CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI VB load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-11)))
CFI CFA_SP SP+0
CFI CFA_XSP16 add(XSP16, 11)
; Saved register size: 11
; Auto size: 0
MOV A,R2
MOV R6,A
MOV A,R3
MOV R7,A
MOV A,#0xb
LCALL ?XSTACK_DISP0_8
LCALL ?Subroutine5 & 0xFFFF
??CrossCallReturnLabel_19:
INC DPTR
MOVX A,@DPTR
// 134 byte *pDst;
// 135 const byte GENERIC *pSrc;
// 136
// 137 pSrc = src;
MOV R1,?V0 + 0
MOV R2,?V0 + 1
MOV R3,A
// 138 pDst = dst;
MOV DPL,R6
MOV DPH,R7
SJMP ??osal_memcpy_0
// 139
// 140 while ( len-- )
// 141 *pDst++ = *pSrc++;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -