📄 mac-common.lst
字号:
##############################################################################
# #
# IAR 8051 C/C++ Compiler V7.20H/W32 16/Jan/2007 15:30:50 #
# 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-common.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-common.c #
# List file = E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_Engi #
# ne\Test\mac\mac_loc\CC2430EB\List\mac-common.lst #
# Object file = E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_Engi #
# ne\Test\mac\mac_loc\CC2430EB\Obj\mac-common.r51 #
# #
# #
##############################################################################
E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_Engine\lib\mac\CC2430\mac-common.c
1 /*******************************************************************************************************
2 * *
3 * ********** *
4 * ************ *
5 * *** *** *
6 * *** +++ *** *
7 * *** + + *** *
8 * *** + CHIPCON CC2430 INTEGRATED 802.15.4 MAC AND PHY *
9 * *** + + *** MAC-COMMON.C *
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 #include "mac_headers.h"
\ In segment SFR_AN, at 0xd6
\ unsigned char volatile __sfr DMAARM
\ DMAARM:
\ 000000 DS 1
22 #include <string.h>
23
\ In segment XDATA_Z, align 1, keep-with-next
\ 000000 REQUIRE __INIT_XDATA_Z
24 BOOL currentAesFinished;
\ currentAesFinished:
\ 000000 DS 1
\ In segment XDATA_Z, align 1, keep-with-next
\ 000000 REQUIRE __INIT_XDATA_Z
25 BYTE currentAesTransferCount;
\ currentAesTransferCount:
\ 000000 DS 1
\ In segment XDATA_Z, align 1, keep-with-next
\ 000000 REQUIRE __INIT_XDATA_Z
26 BYTE currentTimer2InterruptMask;
\ currentTimer2InterruptMask:
\ 000000 DS 1
\ In segment XDATA_Z, align 1, keep-with-next
\ 000000 REQUIRE __INIT_XDATA_Z
27 FRAME currentTxFrame;
\ currentTxFrame:
\ 000000 DS 143
28
29
30 //-------------------------------------------------------------------------------------------------------
31 //
32 //-------------------------------------------------------------------------------------------------------
\ In segment NEAR_CODE, align 1, keep-with-next
33 ROOT void InitializeCommonStorage (void)
\ InitializeCommonStorage:
34 {
\ 000000 C082 PUSH DPL
\ 000002 C083 PUSH DPH
\ 000004 ; Saved register size: 2
\ 000004 ; Auto size: 0
35 currentAesFinished = FALSE;
\ 000004 E4 CLR A
\ 000005 90.... MOV DPTR,#currentAesFinished
\ 000008 F0 MOVX @DPTR,A
36 }
\ 000009 D083 POP DPH
\ 00000B D082 POP DPL
\ 00000D 22 RET
37
38 //-------------------------------------------------------------------------------------------------------
39 //
40 //-------------------------------------------------------------------------------------------------------
\ In segment NEAR_CODE, align 1, keep-with-next
41 ROOT void DmaMemcpy(void *destination, void *source, BYTE noOfBytes) {
\ DmaMemcpy:
\ 000000 74F5 MOV A,#-0xb
\ 000002 12.... LCALL ?FUNC_ENTER_XDATA
\ 000005 ; Saved register size: 11
\ 000005 ; Auto size: 2
\ 000005 74FE MOV A,#-0x2
\ 000007 12.... LCALL ?ALLOC_XSTACK8
\ 00000A 8A.. MOV ?V0 + 0,R2
\ 00000C 8B.. MOV ?V0 + 1,R3
\ 00000E EC MOV A,R4
\ 00000F FE MOV R6,A
\ 000010 ED MOV A,R5
\ 000011 FF MOV R7,A
\ 000012 89.. MOV ?V0 + 2,R1
42 DMA_CHANNEL_CONFIGURATION *dmaChannelConfiguration;
43
44 if (noOfBytes < USE_DMA_FOR_MEMCPY_THRESHOLD) {
\ 000014 E9 MOV A,R1
\ 000015 C3 CLR C
\ 000016 9410 SUBB A,#0x10
\ 000018 5018 JNC ??DmaMemcpy_0
45 memcpy(destination,
46 source,
47 noOfBytes);
\ 00001A ; Setup parameters for call to function memcpy
\ 00001A 75..00 MOV ?V0 + 3,#0x0
\ 00001D 78.. MOV R0,#?V0 + 2
\ 00001F 12.... LCALL ?PUSH_XSTACK_I_TWO
\ 000022 90.... MOV DPTR,#(memcpy & 0xffff)
\ 000025 74.. MOV A,#((memcpy >> 16) & 0xff)
\ 000027 12.... LCALL ?BCALL ; Banked call to: DPTR()
\ 00002A 7402 MOV A,#0x2
\ 00002C 12.... LCALL ?DEALLOC_XSTACK8
\ 00002F 02.... LJMP ??DmaMemcpy_1
48 }
49 else
50 {
51 DISABLE_GLOBAL_INT();
\ ??DmaMemcpy_0:
\ 000032 C2AF CLR 0xa8.7
52 while (DMAARM & DMA_CHANNEL_NO_3);
\ ??DmaMemcpy_2:
\ 000034 7403 MOV A,#0x3
\ 000036 55D6 ANL A,0xd6
\ 000038 70FA JNZ ??DmaMemcpy_2
53
54 FetchDmaChannelConfiguration (DMA_CHANNEL_NO_3,
55 &dmaChannelConfiguration);
\ 00003A ; Setup parameters for call to function FetchDmaChannelConfiguration
\ 00003A 85..82 MOV DPL,?XSP + 0
\ 00003D 85..83 MOV DPH,?XSP + 1
\ 000040 AA82 MOV R2,DPL
\ 000042 AB83 MOV R3,DPH
\ 000044 7903 MOV R1,#0x3
\ 000046 12.... LCALL FetchDmaChannelConfiguration
56 dmaChannelConfiguration->srcMsb = HIBYTE(source);
\ 000049 E0 MOVX A,@DPTR
\ 00004A F8 MOV R0,A
\ 00004B A3 INC DPTR
\ 00004C E0 MOVX A,@DPTR
\ 00004D F583 MOV DPH,A
\ 00004F 8882 MOV DPL,R0
\ 000051 EF MOV A,R7
\ 000052 F0 MOVX @DPTR,A
57 dmaChannelConfiguration->srcLsb = LOBYTE(source);
\ 000053 85..82 MOV DPL,?XSP + 0
\ 000056 85..83 MOV DPH,?XSP + 1
\ 000059 E0 MOVX A,@DPTR
\ 00005A F8 MOV R0,A
\ 00005B A3 INC DPTR
\ 00005C E0 MOVX A,@DPTR
\ 00005D F583 MOV DPH,A
\ 00005F 8882 MOV DPL,R0
\ 000061 A3 INC DPTR
\ 000062 EE MOV A,R6
\ 000063 F0 MOVX @DPTR,A
58 dmaChannelConfiguration->destMsb = HIBYTE(destination);
\ 000064 85..82 MOV DPL,?XSP + 0
\ 000067 85..83 MOV DPH,?XSP + 1
\ 00006A E0 MOVX A,@DPTR
\ 00006B F8 MOV R0,A
\ 00006C A3 INC DPTR
\ 00006D E0 MOVX A,@DPTR
\ 00006E F583 MOV DPH,A
\ 000070 8882 MOV DPL,R0
\ 000072 A3 INC DPTR
\ 000073 A3 INC DPTR
\ 000074 E5.. MOV A,?V0 + 1
\ 000076 F0 MOVX @DPTR,A
59 dmaChannelConfiguration->destLsb = LOBYTE(destination);
\ 000077 85..82 MOV DPL,?XSP + 0
\ 00007A 85..83 MOV DPH,?XSP + 1
\ 00007D E0 MOVX A,@DPTR
\ 00007E F8 MOV R0,A
\ 00007F A3 INC DPTR
\ 000080 E0 MOVX A,@DPTR
\ 000081 F583 MOV DPH,A
\ 000083 8882 MOV DPL,R0
\ 000085 A3 INC DPTR
\ 000086 A3 INC DPTR
\ 000087 A3 INC DPTR
\ 000088 E5.. MOV A,?V0 + 0
\ 00008A F0 MOVX @DPTR,A
60 dmaChannelConfiguration->lenMsb = USE_LEN;
\ 00008B 85..82 MOV DPL,?XSP + 0
\ 00008E 85..83 MOV DPH,?XSP + 1
\ 000091 E0 MOVX A,@DPTR
\ 000092 F8 MOV R0,A
\ 000093 A3 INC DPTR
\ 000094 E0 MOVX A,@DPTR
\ 000095 F583 MOV DPH,A
\ 000097 8882 MOV DPL,R0
\ 000099 A3 INC DPTR
\ 00009A A3 INC DPTR
\ 00009B A3 INC DPTR
\ 00009C A3 INC DPTR
\ 00009D E4 CLR A
\ 00009E F0 MOVX @DPTR,A
61 dmaChannelConfiguration->lenLsb = noOfBytes;
\ 00009F 85..82 MOV DPL,?XSP + 0
\ 0000A2 85..83 MOV DPH,?XSP + 1
\ 0000A5 E0 MOVX A,@DPTR
\ 0000A6 F8 MOV R0,A
\ 0000A7 A3 INC DPTR
\ 0000A8 E0 MOVX A,@DPTR
\ 0000A9 F583 MOV DPH,A
\ 0000AB 8882 MOV DPL,R0
\ 0000AD A3 INC DPTR
\ 0000AE A3 INC DPTR
\ 0000AF A3 INC DPTR
\ 0000B0 A3 INC DPTR
\ 0000B1 A3 INC DPTR
\ 0000B2 E5.. MOV A,?V0 + 2
\ 0000B4 F0 MOVX @DPTR,A
62 dmaChannelConfiguration->wsizeTmodeTrigger = BYTE_TRANSFER + TRANSFER_MODE_BLOCK;
\ 0000B5 85..82 MOV DPL,?XSP + 0
\ 0000B8 85..83 MOV DPH,?XSP + 1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -