📄 without_near_main.c.o.lst
字号:
ANSI-C/cC++ Compiler for HC12 V-5.0.32 Build 6345, Dec 12 2006
1: #include <hidef.h> /* common defines and macros */
2: #include <MC9S12XEP100.h> /* derivative information */
3: #pragma LINK_INFO DERIVATIVE "mc9s12xep100"
4:
5:
6: #include <string.h>
7: #include "xgate.h"
8:
9: #define ROUTE_INTERRUPT(vec_adr, cfdata) \
10: INT_CFADDR= (vec_adr) & 0xF0; \
11: INT_CFDATA_ARR[((vec_adr) & 0x0F) >> 1]= (cfdata)
12:
13: /*
14: static void SetupXGATE(void)
15: {
16:
17: //Initialize vector table XGVBR
18: //The Xgate assumes there is a vector table with the addresses of each channel interrupt
19: //stored in memory one after the other, starting at channel 0, and ending with the last implemente xgate channel.
20: //XGVBR expects the address of the routine that services channel zero.
21: //The Xgate module derives the other addresses based on this info.
22: //Our vector xgate vector table defined in xgate.cxgate starts at channel 0x1E. Other channels were not listed in our vector table
23: //so as to save memory space, because they are not implemented.
24:
25: //Write here the correct value for XGVBR :
26: XGVBR = ?
27:
28: //Route software trigger 0 interrut to Xgate
29: ROUTE_INTERRUPT(?,?);
30:
31: //Enable Xgate and Enable Xgate Interrupts
32: XGMCTL= ?
33: }
34:
35: void main(void) {
36:
37: SetupXGATE();
38: EnableInterrupts;
39:
40: //triggers software trigger 0
41: XGSWT= ? ;
42:
43: for(;;) {}
44: }
45: */
46:
47:
48: static void SetupXGATE(void) {
Function: SetupXGATE
Source : D:\Lab2_Xgate_Software_Interrupts\Sources\main.c
Options : -BfaGapLimitBits-1 -CPUHCS12XE -D__FAR_DATA -D__NO_FLOAT__ -Env"GENPATH=D:\Lab2_Xgate_Software_Interrupts;D:\Lab2_Xgate_Software_Interrupts\bin;D:\Lab2_Xgate_Software_Interrupts\prm;D:\Lab2_Xgate_Software_Interrupts\cmd;D:\Lab2_Xgate_Software_Interrupts\Sources;C:\Program Files\Freescale\Codewarrior for HC12 V4.6\lib\HC12c\lib;C:\Program Files\Freescale\Codewarrior for HC12 V4.6\lib\HC12c\src;C:\Program Files\Freescale\Codewarrior for HC12 V4.6\lib\xgatec\lib;C:\Program Files\Freescale\Codewarrior for HC12 V4.6\lib\xgatec\src;C:\Program Files\Freescale\Codewarrior for HC12 V4.6\lib\HC12c\include;C:\Program Files\Freescale\Codewarrior for HC12 V4.6\lib\xgatec\include" -Env"LIBPATH=C:\Program Files\Freescale\Codewarrior for HC12 V4.6\lib\HC12c\include;C:\Program Files\Freescale\Codewarrior for HC12 V4.6\lib\xgatec\include" -EnvOBJPATH=D:\Lab2_Xgate_Software_Interrupts\bin -EnvTEXTPATH=D:\Lab2_Xgate_Software_Interrupts\bin -Lasm=D:\Lab2_Xgate_Software_Interrupts\Lab2_Xgate_Software_Interrupts_Data\SofTec_HCS12\ObjectCode\main.c.o.lst -Mb -ObjN=D:\Lab2_Xgate_Software_Interrupts\Lab2_Xgate_Software_Interrupts_Data\SofTec_HCS12\ObjectCode\main.c.o -WmsgSd1106
49: //initialize the XGATE vector block and
50: //set the XGVBR register to its start address
51: XGVBR= (unsigned int)(XGATE_VectorTable - XGATE_VECTOR_OFFSET);
0000 ce0000 [2] LDX #GLOBAL(XGATE_VectorTable:65386)
0003 7e0000 [3] STX _XGISP31
52:
53: //switch software trigger 0 interrupt to XGATE
54: ROUTE_INTERRUPT(0x72, 0x81); //RQST=1 and PRIO=1
0006 cc8170 [2] LDD #33136
0009 7b0000 [3] STAB _INT_CFADDR
000c 7a0000 [3] STAA _INT_CFDATA0:1
55:
56: //switch software trigger 1 interrupt to XGATE
57: ROUTE_INTERRUPT(0x70, 0x81); //RQST=1 and PRIO=1
000f 7b0000 [3] STAB _INT_CFADDR
0012 7a0000 [3] STAA _INT_CFDATA0
58:
59: //enable XGATE mode and interrupts
60: XGMCTL= 0xFBC1; //XGE | XGFRZ | XGIE
0015 cefbc1 [2] LDX #64449
0018 7e0000 [3] STX _XGMCTL
61: }
001b 0a [7] RTC
62:
63:
64: void main(void)
65: {
Function: main
Source : D:\Lab2_Xgate_Software_Interrupts\Sources\main.c
Options : -BfaGapLimitBits-1 -CPUHCS12XE -D__FAR_DATA -D__NO_FLOAT__ -Env"GENPATH=D:\Lab2_Xgate_Software_Interrupts;D:\Lab2_Xgate_Software_Interrupts\bin;D:\Lab2_Xgate_Software_Interrupts\prm;D:\Lab2_Xgate_Software_Interrupts\cmd;D:\Lab2_Xgate_Software_Interrupts\Sources;C:\Program Files\Freescale\Codewarrior for HC12 V4.6\lib\HC12c\lib;C:\Program Files\Freescale\Codewarrior for HC12 V4.6\lib\HC12c\src;C:\Program Files\Freescale\Codewarrior for HC12 V4.6\lib\xgatec\lib;C:\Program Files\Freescale\Codewarrior for HC12 V4.6\lib\xgatec\src;C:\Program Files\Freescale\Codewarrior for HC12 V4.6\lib\HC12c\include;C:\Program Files\Freescale\Codewarrior for HC12 V4.6\lib\xgatec\include" -Env"LIBPATH=C:\Program Files\Freescale\Codewarrior for HC12 V4.6\lib\HC12c\include;C:\Program Files\Freescale\Codewarrior for HC12 V4.6\lib\xgatec\include" -EnvOBJPATH=D:\Lab2_Xgate_Software_Interrupts\bin -EnvTEXTPATH=D:\Lab2_Xgate_Software_Interrupts\bin -Lasm=D:\Lab2_Xgate_Software_Interrupts\Lab2_Xgate_Software_Interrupts_Data\SofTec_HCS12\ObjectCode\main.c.o.lst -Mb -ObjN=D:\Lab2_Xgate_Software_Interrupts\Lab2_Xgate_Software_Interrupts_Data\SofTec_HCS12\ObjectCode\main.c.o -WmsgSd1106
66: SetupXGATE();
0000 4a000000 [7] CALL SetupXGATE,PAGE(SetupXGATE)
67: EnableInterrupts;
0004 10ef [1] CLI
68: //triggers software trigger 0
69: XGSWT=0x0101;
0006 cc0101 [2] LDD #257
0009 7c0000 [3] STD _XGSWT
70: for(;;) {}
000c 20fe [3] BRA *+0 ;abs = 000c
71:
72: }
73:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -