📄 bsp.s79
字号:
DS8 4
ASEGN DATA_AN:DATA:NOROOT,0fffff130H
// unsigned long volatile __data VICVectAddr12
VICVectAddr12:
DS8 4
ASEGN DATA_AN:DATA:NOROOT,0fffff208H
// union <unnamed> volatile __data _A_VICVectCntl2
_A_VICVectCntl2:
DS8 4
ASEGN DATA_AN:DATA:NOROOT,0e002c000H
// union <unnamed> volatile __data _A_PINSEL0
_A_PINSEL0:
DS8 4
ASEGN DATA_AN:DATA:NOROOT,0e0028004H
// union <unnamed> volatile __data _A_IOSET
_A_IOSET:
DS8 4
ASEGN DATA_AN:DATA:NOROOT,0e0028008H
// union <unnamed> volatile __data _A_IODIR
_A_IODIR:
DS8 4
ASEGN DATA_AN:DATA:NOROOT,0e002800cH
// union <unnamed> volatile __data _A_IOCLR
_A_IOCLR:
DS8 4
ASEGN DATA_AN:DATA:NOROOT,0e0004000H
// union <unnamed> volatile __data _A_T0IR
_A_T0IR:
DS8 4
ASEGN DATA_AN:DATA:NOROOT,0e0004004H
// union <unnamed> volatile __data _A_T0TCR
_A_T0TCR:
DS8 4
ASEGN DATA_AN:DATA:NOROOT,0e0004010H
// unsigned long volatile __data T0PC
T0PC:
DS8 4
ASEGN DATA_AN:DATA:NOROOT,0e0004014H
// union <unnamed> volatile __data _A_T0MCR
_A_T0MCR:
DS8 4
ASEGN DATA_AN:DATA:NOROOT,0e0004018H
// unsigned long volatile __data T0MR0
T0MR0:
DS8 4
ASEGN DATA_AN:DATA:NOROOT,0e0004028H
// union <unnamed> volatile __data _A_T0CCR
_A_T0CCR:
DS8 4
ASEGN DATA_AN:DATA:NOROOT,0e000403cH
// union <unnamed> volatile __data _A_T0EMR
_A_T0EMR:
DS8 4
ASEGN DATA_AN:DATA:NOROOT,0e01fc040H
// union <unnamed> volatile __data _A_MEMMAP
_A_MEMMAP:
DS8 4
// 16
// 17 /*
// 18 *********************************************************************************************************
// 19 * CONSTANTS
// 20 *********************************************************************************************************
// 21 */
// 22
// 23 #define BSP_UNDEF_INSTRUCTION_VECTOR_ADDR (*(INT32U *)0x00000004L)
// 24 #define BSP_SWI_VECTOR_ADDR (*(INT32U *)0x00000008L)
// 25 #define BSP_PREFETCH_ABORT_VECTOR_ADDR (*(INT32U *)0x0000000CL)
// 26 #define BSP_DATA_ABORT_VECTOR_ADDR (*(INT32U *)0x00000010L)
// 27 #define BSP_IRQ_VECTOR_ADDR (*(INT32U *)0x00000018L)
// 28 #define BSP_FIQ_VECTOR_ADDR (*(INT32U *)0x0000001CL)
// 29
// 30 #define BSP_IRQ_ISR_ADDR (*(INT32U *)0x00000038L)
// 31 #define BSP_FIQ_ISR_ADDR (*(INT32U *)0x0000003CL)
// 32
// 33 /*
// 34 *********************************************************************************************************
// 35 * DATA TYPES
// 36 *********************************************************************************************************
// 37 */
// 38
// 39 typedef void (*PFNCT)(void);
// 40
// 41 /*
// 42 *********************************************************************************************************
// 43 * VARIABLES
// 44 *********************************************************************************************************
// 45 */
// 46
RSEG DATA_Z:DATA:SORT:NOROOT(2)
// 47 INT32U VIC_SpuriousInt;
VIC_SpuriousInt:
DS8 4
RSEG CODE:CODE:NOROOT(2)
CFI Block cfiBlock0 Using cfiCommon0
CFI NoFunction
ARM
??BSP_Init??rA:
ADD R12,PC,#+1
BX R12
CFI EndBlock cfiBlock0
REQUIRE BSP_Init
// 48
// 49 /*
// 50 *********************************************************************************************************
// 51 * PROTOTYPES
// 52 *********************************************************************************************************
// 53 */
// 54
// 55 void VIC_Init(void);
// 56 void VIC_Dummy(void);
// 57 void VIC_DummyWDT(void);
// 58 void VIC_DummyTIMER0(void);
// 59 void VIC_DummyTIMER1(void);
// 60 void VIC_DummyUART0(void);
// 61 void VIC_DummyUART1(void);
// 62 void VIC_DummyPWM0(void);
// 63 void VIC_DummyI2C(void);
// 64 void VIC_DummySPI(void);
// 65 void VIC_DummyRTC(void);
// 66 void VIC_DummyEINT0(void);
// 67 void VIC_DummyEINT1(void);
// 68 void VIC_DummyEINT2(void);
// 69
// 70 /*
// 71 *********************************************************************************************************
// 72 * BSP INITIALIZATION
// 73 *
// 74 * Description : This function should be called by your application code before you make use of any of the
// 75 * functions found in this module.
// 76 *
// 77 * Arguments : none
// 78 *********************************************************************************************************
// 79 */
// 80
RSEG CODE:CODE:NOROOT(2)
CFI Block cfiBlock1 Using cfiCommon1
CFI Function BSP_Init
THUMB
// 81 void BSP_Init (void)
// 82 {
BSP_Init:
PUSH {LR}
CFI ?RET Frame(CFA, -4)
CFI CFA R13+4
// 83 MEMMAP = 2; /* Remap 64 bytes of int. RAM to 0x00 */
LDR R0,??BSP_Init_0 ;; 0xe01fc040
MOVS R1,#+2
STR R1,[R0, #+0]
// 84
// 85 BSP_IRQ_VECTOR_ADDR = 0xE59FF018; /* LDR PC,[PC,#0x18] instruction */
MOVS R0,#+24
LDR R1,??BSP_Init_0+0x4 ;; 0xe59ff018
STR R1,[R0, #+0]
// 86 BSP_IRQ_ISR_ADDR = (INT32U)OS_CPU_IRQ_ISR; /* IRQ exception vector address */
MOVS R0,#+56
LDR R1,??BSP_Init_0+0x8 ;; OS_CPU_IRQ_ISR
STR R1,[R0, #+0]
// 87
// 88 BSP_FIQ_VECTOR_ADDR = 0xE59FF018; /* LDR PC,[PC,#0x18] instruction */
MOVS R0,#+28
LDR R1,??BSP_Init_0+0x4 ;; 0xe59ff018
STR R1,[R0, #+0]
// 89 BSP_FIQ_ISR_ADDR = (INT32U)OS_CPU_FIQ_ISR; /* FIQ exception vector address */
MOVS R0,#+60
LDR R1,??BSP_Init_0+0xC ;; OS_CPU_FIQ_ISR
STR R1,[R0, #+0]
// 90
// 91
// 92 BSP_UNDEF_INSTRUCTION_VECTOR_ADDR = 0xEAFFFFFE; /* Jump to itself */
MOVS R0,#+4
LDR R1,??BSP_Init_0+0x10 ;; 0xeafffffe
STR R1,[R0, #+0]
// 93 BSP_SWI_VECTOR_ADDR = 0xEAFFFFFE;
MOVS R0,#+8
STR R1,[R0, #+0]
// 94 BSP_PREFETCH_ABORT_VECTOR_ADDR = 0xEAFFFFFE;
MOVS R0,#+12
STR R1,[R0, #+0]
// 95 BSP_DATA_ABORT_VECTOR_ADDR = 0xEAFFFFFE;
MOVS R0,#+16
STR R1,[R0, #+0]
// 96 BSP_FIQ_VECTOR_ADDR = 0xEAFFFFFE;
MOVS R0,#+28
STR R1,[R0, #+0]
// 97
// 98 VIC_Init(); /* Initialize the Vectored Interrupt Controller */
BL VIC_Init
// 99
// 100 LED_Init();
BL LED_Init
// 101 Tmr_TickInit();
BL Tmr_TickInit
// 102 }
POP {R0}
BX R0 ;; return
Nop
DATA
??BSP_Init_0:
DC32 0xe01fc040
DC32 0xe59ff018
DC32 OS_CPU_IRQ_ISR
DC32 OS_CPU_FIQ_ISR
DC32 0xeafffffe
CFI EndBlock cfiBlock1
RSEG CODE:CODE:NOROOT(2)
CFI Block cfiBlock2 Using cfiCommon0
CFI NoFunction
ARM
??LED_Init??rA:
ADD R12,PC,#+1
BX R12
CFI EndBlock cfiBlock2
REQUIRE LED_Init
// 103
// 104
// 105 /*
// 106 *********************************************************************************************************
// 107 * BSP INITIALIZATION
// 108 *
// 109 * Description : This function should be called by your application code before you make use of any of the
// 110 * functions found in this module.
// 111 *
// 112 * Arguments : none
// 113 *********************************************************************************************************
// 114 */
// 115
RSEG CODE:CODE:NOROOT(2)
CFI Block cfiBlock3 Using cfiCommon1
CFI Function LED_Init
THUMB
// 116 void LED_Init (void)
// 117 {
LED_Init:
PUSH {LR}
CFI ?RET Frame(CFA, -4)
CFI CFA R13+4
// 118 PINSEL0 = 0; /* Use GPIO pins P0.0 to P0.15 for LEDs */
LDR R0,??LED_Init_0 ;; 0xe002c000
MOVS R1,#+0
STR R1,[R0, #+0]
// 119 IODIR |= 0x0000FFFF; /* Set GPIO pins as outputs */
LDR R0,??LED_Init_0+0x4 ;; 0xe0028008
LDR R1,[R0, #+0]
LDR R2,??DataTable2 ;; 0xffff
ORRS R2,R2,R1
STR R2,[R0, #+0]
// 120
// 121 LED_Off(0); /* Turn OFF all the LEDs */
MOVS R0,#+0
BL LED_Off
// 122
// 123 }
POP {R0}
BX R0 ;; return
DATA
??LED_Init_0:
DC32 0xe002c000
DC32 0xe0028008
CFI EndBlock cfiBlock3
RSEG CODE:CODE:NOROOT(2)
CFI Block cfiBlock4 Using cfiCommon0
CFI NoFunction
ARM
??LED_On??rA:
ADD R12,PC,#+1
BX R12
CFI EndBlock cfiBlock4
REQUIRE LED_On
// 124
// 125 /*
// 126 *********************************************************************************************************
// 127 * LED ON
// 128 *
// 129 * Description : This function is used to control any or all the LEDs on the board.
// 130 *
// 131 * Arguments : led is the number of the LED to control
// 132 * 0 indicates that you want ALL the LEDs to be ON
// 133 * 1 turns ON LED1 on the board
// 134 * .
// 135 * .
// 136 * 8 turns ON LED8 on the board
// 137 *********************************************************************************************************
// 138 */
// 139
RSEG CODE:CODE:NOROOT(2)
CFI Block cfiBlock5 Using cfiCommon1
CFI Function LED_On
THUMB
// 140 void LED_On (INT8U led)
// 141 {
LED_On:
PUSH {LR}
CFI ?RET Frame(CFA, -4)
CFI CFA R13+4
// 142 switch (led) {
CMP R0,#+16
BHI ??LED_On_1
ADR R1,??LED_On_0
LDRB R1,[R1, R0]
ADD PC,PC,R1
DATA
??LED_On_0:
DC8 +16,+22,+28,+34
DC8 +40,+46,+52,+58
DC8 +64,+70,+78,+86
DC8 +94,+102,+110,+118
DC8 +126,+0
THUMB
// 143 case 0:
// 144 IOSET = 0x0000FFFF;
??LED_On_2:
LDR R0,??LED_On_3 ;; 0xe0028004
LDR R1,??DataTable2 ;; 0xffff
B.N ??LED_On_4
// 145 break;
// 146
// 147 case 1:
// 148 IOSET = 1 << 0;
??LED_On_5:
LDR R0,??LED_On_3 ;; 0xe0028004
MOVS R1,#+1
B.N ??LED_On_4
// 149 break;
// 150
// 151 case 2:
// 152 IOSET = 1 << 1;
??LED_On_6:
LDR R0,??LED_On_3 ;; 0xe0028004
MOVS R1,#+2
B.N ??LED_On_4
// 153 break;
// 154
// 155 case 3:
// 156 IOSET = 1 << 2;
??LED_On_7:
LDR R0,??LED_On_3 ;; 0xe0028004
MOVS R1,#+4
B.N ??LED_On_4
// 157 break;
// 158
// 159 case 4:
// 160 IOSET = 1 << 3;
??LED_On_8:
LDR R0,??LED_On_3 ;; 0xe0028004
MOVS R1,#+8
B.N ??LED_On_4
// 161 break;
// 162
// 163 case 5:
// 164 IOSET = 1 << 4;
??LED_On_9:
LDR R0,??LED_On_3 ;; 0xe0028004
MOVS R1,#+16
B.N ??LED_On_4
// 165 break;
// 166
// 167 case 6:
// 168 IOSET = 1 << 5;
??LED_On_10:
LDR R0,??LED_On_3 ;; 0xe0028004
MOVS R1,#+32
B.N ??LED_On_4
// 169 break;
// 170
// 171 case 7:
// 172 IOSET = 1 << 6;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -