📄 mac_support.lst
字号:
##############################################################################
# #
# IAR 8051 C/C++ Compiler V7.20H/W32 16/Jan/2007 15:30:08 #
# Copyright 2004-2006 IAR Systems. All rights reserved. #
# #
# Core = plain #
# Code model = banked #
# Data model = large #
# Calling convention = xdata reentrant #
# Constant location = data #
# Dptr setup = 1,16 #
# Source file = E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_Engi #
# ne\lib\mac\CC2430\mac_support.c #
# Command line = -I "C:\Program Files\IAR Systems\Embedded #
# Workbench 4.05 Evaluation version\8051\INC\" -I #
# "C:\Program Files\IAR Systems\Embedded Workbench #
# 4.05 Evaluation version\8051\SRC\LIB\" -I #
# "C:\Program Files\IAR Systems\Embedded Workbench #
# 4.05 Evaluation version\8051\INC\CLIB\" -I #
# E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_Engi #
# ne\Test\mac\mac_loc\..\..\..\include\ -I #
# E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_Engi #
# ne\Test\mac\mac_loc\..\..\..\include\mac\cc2430\ #
# -I E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_E #
# ngine\Test\mac\mac_loc\..\..\..\include\hal\cc243 #
# 0\ -I E:\公司产品资料\Zigbee\cc2431\cc2431定位\LO #
# C_Engine\Test\mac\mac_loc\..\..\..\apps\ -D #
# CC2430EB -D USE_LED -lCN #
# E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_Engi #
# ne\Test\mac\mac_loc\CC2430EB\List\ -lA #
# E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_Engi #
# ne\Test\mac\mac_loc\CC2430EB\List\ -o #
# E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_Engi #
# ne\Test\mac\mac_loc\CC2430EB\Obj\ -e -s9 --debug #
# --core=plain --dptr=16,1 --data_model=large #
# --code_model=banked --calling_convention=xdata_re #
# entrant --place_constants=data --nr_virtual_regs #
# 8 E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_En #
# gine\lib\mac\CC2430\mac_support.c #
# List file = E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_Engi #
# ne\Test\mac\mac_loc\CC2430EB\List\mac_support.lst #
# Object file = E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_Engi #
# ne\Test\mac\mac_loc\CC2430EB\Obj\mac_support.r51 #
# #
# #
##############################################################################
E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_Engine\lib\mac\CC2430\mac_support.c
1 /*******************************************************************************************************
2 * *
3 * ********** *
4 * ************ *
5 * *** *** *
6 * *** +++ *** *
7 * *** + + *** *
8 * *** + CHIPCON CC2430 INTEGRATED 802.15.4 MAC AND PHY *
9 * *** + + *** Various Support/Utility Functions *
10 * *** +++ *** *
11 * *** *** *
12 * ************ *
13 * ********** *
14 * *
15 *******************************************************************************************************
16 * CONFIDENTIAL *
17 * The use of this file is restricted by the signed MAC software license agreement. *
18 * *
19 * Copyright Chipcon AS, 2005 *
20 *******************************************************************************************************
21 * This module contains support/utility functions for the MAC sublayer. *
22 *******************************************************************************************************/
23 #include <mac_headers.h>
\ In segment SFR_AN, at 0xa1
\ unsigned char volatile __sfr T2OF0
\ T2OF0:
\ 000000 DS 1
\ In segment SFR_AN, at 0xa2
\ unsigned char volatile __sfr T2OF1
\ T2OF1:
\ 000000 DS 1
\ In segment SFR_AN, at 0xa3
\ unsigned char volatile __sfr T2OF2
\ T2OF2:
\ 000000 DS 1
\ In segment SFR_AN, at 0xb4
\ unsigned char volatile __sfr ADCCON1
\ ADCCON1:
\ 000000 DS 1
\ In segment SFR_AN, at 0xbc
\ unsigned char volatile __sfr RNDL
\ RNDL:
\ 000000 DS 1
\ In segment SFR_AN, at 0xbd
\ unsigned char volatile __sfr RNDH
\ RNDH:
\ 000000 DS 1
\ In segment SFR_AN, at 0xe1
\ unsigned char volatile __sfr RFST
\ RFST:
\ 000000 DS 1
24
25
\ In segment XDATA_Z, align 1, keep-with-next
\ 000000 REQUIRE __INIT_XDATA_Z
26 UINT8 oldPhyTransmitPower = OUTPUT_POWER_0DBM;
\ oldPhyTransmitPower:
\ 000000 DS 1
27
28 /*******************************************************************************************************
29 *******************************************************************************************************
30 ************************** GENERAL FUNCTIONS **************************
31 *******************************************************************************************************
32 *******************************************************************************************************/
33
34
35 //-------------------------------------------------------------------------------------------------------
36 // void msupWaitTask(MAC_TASK_INFO *pTask)
37 //
38 // DESCRIPTION:
39 // This task is meant to be placed behind another task to make sure that this task has finihed.
40 // When the task is run, it will set an 8-bit boolean value, pointed to by the taskData, to FALSE.
41 //
42 // TASK DATA:
43 // A BOOL pointer to the flag to be changed to FALSE
44 //-------------------------------------------------------------------------------------------------------
\ In segment NEAR_CODE, align 1, keep-with-next
45 void msupWaitTask(MAC_TASK_INFO *pTask) NEAR {
\ msupWaitTask:
\ 000000 C082 PUSH DPL
\ 000002 C083 PUSH DPH
\ 000004 ; Saved register size: 2
\ 000004 ; Auto size: 0
\ 000004 EA MOV A,R2
\ 000005 F8 MOV R0,A
\ 000006 EB MOV A,R3
\ 000007 F9 MOV R1,A
46 *((BOOL *) pTask->taskData) = FALSE;
\ 000008 8882 MOV DPL,R0
\ 00000A 8983 MOV DPH,R1
\ 00000C A3 INC DPTR
\ 00000D A3 INC DPTR
\ 00000E A3 INC DPTR
\ 00000F E0 MOVX A,@DPTR
\ 000010 FA MOV R2,A
\ 000011 A3 INC DPTR
\ 000012 E0 MOVX A,@DPTR
\ 000013 FB MOV R3,A
\ 000014 8A82 MOV DPL,R2
\ 000016 8B83 MOV DPH,R3
\ 000018 E4 CLR A
\ 000019 F0 MOVX @DPTR,A
47 mschRemoveTask(pTask->priority, MSCH_KEEP_TASK_IN_PROGRESS_BM);
\ 00001A ; Setup parameters for call to function mschRemoveTask
\ 00001A 7A02 MOV R2,#0x2
\ 00001C 8882 MOV DPL,R0
\ 00001E 8983 MOV DPH,R1
\ 000020 A3 INC DPTR
\ 000021 A3 INC DPTR
\ 000022 A3 INC DPTR
\ 000023 A3 INC DPTR
\ 000024 A3 INC DPTR
\ 000025 A3 INC DPTR
\ 000026 A3 INC DPTR
\ 000027 A3 INC DPTR
\ 000028 E0 MOVX A,@DPTR
\ 000029 F9 MOV R1,A
\ 00002A 12.... LCALL mschRemoveTask & 0xFFFF
48 } // msupWaitTask
\ 00002D D083 POP DPH
\ 00002F D082 POP DPL
\ 000031 02.... LJMP ?BRET
49
50
51
52
53 //-------------------------------------------------------------------------------------------------------
54 // BOOL msupCompareAddress(ADDRESS *pA, ADDRESS *pB)
55 //
56 // DESCRIPTION:
57 // Support function for comparing two 64-bit ADDRESS, A and B
58 //
59 // PARAMETERS:
60 // ADDRESS *pA
61 // pointer to ADDRESS A
62 // ADDRESS *pB
63 // pointer to ADDRESS B
64 //
65 // RETURN VALUE:
66 // BOOL
67 // TRUE if A and B are equal, false otherwise
68 //-------------------------------------------------------------------------------------------------------
\ In segment NEAR_CODE, align 1, keep-with-next
69 ROOT BOOL msupCompareExtendedAddress(ADDRESS *pA, ADDRESS *pB) {
\ msupCompareExtendedAddress:
\ 000000 74F8 MOV A,#-0x8
\ 000002 12.... LCALL ?FUNC_ENTER_XDATA
\ 000005 ; Saved register size: 8
\ 000005 ; Auto size: 0
70 UINT8 n;
71 n = sizeof(ADDRESS);
\ 000005 7F08 MOV R7,#0x8
72 do {
73 if (*((BYTE *) pA) != *((BYTE *) pB)) return FALSE;
\ ??msupCompareExtendedAddress_0:
\ 000007 8A82 MOV DPL,R2
\ 000009 8B83 MOV DPH,R3
\ 00000B E0 MOVX A,@DPTR
\ 00000C FE MOV R6,A
\ 00000D 8C82 MOV DPL,R4
\ 00000F 8D83 MOV DPH,R5
\ 000011 E0 MOVX A,@DPTR
\ 000012 6E XRL A,R6
\ 000013 6004 JZ ??msupCompareExtendedAddress_1
\ 000015 7900 MOV R1,#0x0
\ 000017 8018 SJMP ??msupCompareExtendedAddress_2
74 pA = (ADDRESS *) ((BYTE *) pA + 1);
\ ??msupCompareExtendedAddress_1:
\ 000019 8A82 MOV DPL,R2
\ 00001B 8B83 MOV DPH,R3
\ 00001D A3 INC DPTR
\ 00001E AA82 MOV R2,DPL
\ 000020 AB83 MOV R3,DPH
75 pB = (ADDRESS *) ((BYTE *) pB + 1);
\ 000022 8C82 MOV DPL,R4
\ 000024 8D83 MOV DPH,R5
\ 000026 A3 INC DPTR
\ 000027 AC82 MOV R4,DPL
\ 000029 AD83 MOV R5,DPH
76 } while (--n);
\ 00002B 1F DEC R7
\ 00002C EF MOV A,R7
\ 00002D 70D8 JNZ ??msupCompareExtendedAddress_0
77 return TRUE;
\ 00002F 7901 MOV R1,#0x1
\ ??msupCompareExtendedAddress_2:
\ 000031 REQUIRE ?Subroutine0
\ 000031 ; // Fall through to label ?Subroutine0
78 } // msupCompareAddress
\ In segment NEAR_CODE, align 1, keep-with-next
\ ?Subroutine0:
\ 000000 7F01 MOV R7,#0x1
\ 000002 02.... LJMP ?FUNC_LEAVE_XDATA
79
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -