mirror of https://github.com/ARMmbed/mbed-os.git
commit
cfa6a1d912
|
@ -1,14 +1,16 @@
|
|||
|
||||
LR_IROM1 0x00000000 0x8000 { ; load region size_region (32k)
|
||||
|
||||
ER_IROM1 0x00000000 0x8000 { ; load address = execution address
|
||||
*.o (RESET, +First)
|
||||
*(InRoot$$Sections)
|
||||
.ANY (+RO)
|
||||
}
|
||||
; 8_byte_aligned(48 vect * 4 bytes) = 8_byte_aligned(0xC0) = 0xC0
|
||||
; 8KB - 0xC0 = 0xF40
|
||||
RW_IRAM1 0x100000C0 0xF40 {
|
||||
|
||||
; 48 vectors * 4 bytes = 0xC0 for remap
|
||||
RW_IRAM1 (0x10000000+0xC0) (0x1000-0xC0) {
|
||||
.ANY (+RW +ZI)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -63,20 +63,20 @@ __Vectors DCD __initial_sp ; Top of Stack
|
|||
DCD PendSV_Handler ; PendSV Handler
|
||||
DCD SysTick_Handler ; SysTick Handler
|
||||
|
||||
DCD FLEX_INT0_IRQHandler ; All GPIO pin can be routed to FLEX_INTx
|
||||
DCD FLEX_INT1_IRQHandler ;
|
||||
DCD FLEX_INT2_IRQHandler ;
|
||||
DCD FLEX_INT3_IRQHandler ;
|
||||
DCD FLEX_INT4_IRQHandler ;
|
||||
DCD FLEX_INT5_IRQHandler ;
|
||||
DCD FLEX_INT6_IRQHandler ;
|
||||
DCD FLEX_INT7_IRQHandler ;
|
||||
DCD GINT0_IRQHandler ;
|
||||
DCD GINT1_IRQHandler ; PIO0 (0:7)
|
||||
DCD Reserved_IRQHandler ; Reserved
|
||||
DCD Reserved_IRQHandler ;
|
||||
DCD Reserved_IRQHandler ;
|
||||
DCD Reserved_IRQHandler ;
|
||||
DCD SLWU_INT0_IRQHandler ; Start logic wake-up interrupt 0
|
||||
DCD SLWU_INT1_IRQHandler ; Start logic wake-up interrupt 1
|
||||
DCD SLWU_INT2_IRQHandler ; Start logic wake-up interrupt 2
|
||||
DCD SLWU_INT3_IRQHandler ; Start logic wake-up interrupt 3
|
||||
DCD SLWU_INT4_IRQHandler ; Start logic wake-up interrupt 4
|
||||
DCD SLWU_INT5_IRQHandler ; Start logic wake-up interrupt 5
|
||||
DCD SLWU_INT6_IRQHandler ; Start logic wake-up interrupt 6
|
||||
DCD SLWU_INT7_IRQHandler ; Start logic wake-up interrupt 7
|
||||
DCD SLWU_INT8_IRQHandler ; Start logic wake-up interrupt 8
|
||||
DCD SLWU_INT9_IRQHandler ; Start logic wake-up interrupt 9
|
||||
DCD SLWU_INT10_IRQHandler ; Start logic wake-up interrupt 10
|
||||
DCD SLWU_INT11_IRQHandler ; Start logic wake-up interrupt 11
|
||||
DCD SLWU_INT12_IRQHandler ; Start logic wake-up interrupt 12
|
||||
DCD C_CAN_IRQHandler ; C_CAN
|
||||
DCD SSP1_IRQHandler ; SSP1
|
||||
DCD I2C_IRQHandler ; I2C
|
||||
DCD TIMER16_0_IRQHandler ; 16-bit Timer0
|
||||
|
@ -85,19 +85,19 @@ __Vectors DCD __initial_sp ; Top of Stack
|
|||
DCD TIMER32_1_IRQHandler ; 32-bit Timer1
|
||||
DCD SSP0_IRQHandler ; SSP0
|
||||
DCD UART_IRQHandler ; UART
|
||||
DCD USB_IRQHandler ; USB IRQ
|
||||
DCD USB_FIQHandler ; USB FIQ
|
||||
DCD Reserved_IRQHandler ; Reserved
|
||||
DCD Reserved_IRQHandler ; Reserved
|
||||
DCD ADC_IRQHandler ; A/D Converter
|
||||
DCD WDT_IRQHandler ; Watchdog timer
|
||||
DCD BOD_IRQHandler ; Brown Out Detect
|
||||
DCD FMC_IRQHandler ; IP2111 Flash Memory Controller
|
||||
DCD Reserved_IRQHandler ; Reserved
|
||||
DCD Reserved_IRQHandler ; Reserved
|
||||
DCD Reserved_IRQHandler ; Reserved
|
||||
DCD Reserved_IRQHandler ; Reserved
|
||||
DCD PIO_3_IRQHandler ; GPIO interrupt status of port 3
|
||||
DCD PIO_2_IRQHandler ; GPIO interrupt status of port 2
|
||||
DCD PIO_1_IRQHandler ; GPIO interrupt status of port 1
|
||||
DCD PIO_0_IRQHandler ; GPIO interrupt status of port 0
|
||||
|
||||
;; 48 vector entries. We pad to 128 to fill the 0x0 - 0x1FF REMAP address space
|
||||
|
||||
|
||||
DCD 0xFFFFFFFF ; Datafill
|
||||
DCD 0xFFFFFFFF ; Datafill
|
||||
DCD 0xFFFFFFFF ; Datafill
|
||||
|
@ -185,17 +185,14 @@ __Vectors DCD __initial_sp ; Top of Stack
|
|||
DCD 0xFFFFFFFF ; Datafill
|
||||
DCD 0xFFFFFFFF ; Datafill
|
||||
DCD 0xFFFFFFFF ; Datafill
|
||||
|
||||
|
||||
IF :LNOT::DEF:NO_CRP
|
||||
AREA |.ARM.__at_0x02FC|, CODE, READONLY
|
||||
CRP_Key DCD 0xFFFFFFFF
|
||||
ENDIF
|
||||
|
||||
|
||||
AREA |.text|, CODE, READONLY
|
||||
|
||||
|
||||
|
||||
; Reset Handler
|
||||
|
||||
Reset_Handler PROC
|
||||
|
@ -208,14 +205,10 @@ Reset_Handler PROC
|
|||
BX R0
|
||||
ENDP
|
||||
|
||||
; Dummy Exception Handlers (infinite loops which can be modified)
|
||||
; Dummy Exception Handlers (infinite loops which can be modified)
|
||||
|
||||
; now, under COMMON NMI.c and NMI.h, a real NMI handler is created if NMI is enabled
|
||||
; for particular peripheral.
|
||||
;NMI_Handler PROC
|
||||
; EXPORT NMI_Handler [WEAK]
|
||||
; B .
|
||||
; ENDP
|
||||
HardFault_Handler\
|
||||
PROC
|
||||
EXPORT HardFault_Handler [WEAK]
|
||||
|
@ -239,18 +232,22 @@ Reserved_IRQHandler PROC
|
|||
ENDP
|
||||
|
||||
Default_Handler PROC
|
||||
; for LPC11Uxx (With USB)
|
||||
; for LPC1114
|
||||
EXPORT NMI_Handler [WEAK]
|
||||
EXPORT FLEX_INT0_IRQHandler [WEAK]
|
||||
EXPORT FLEX_INT1_IRQHandler [WEAK]
|
||||
EXPORT FLEX_INT2_IRQHandler [WEAK]
|
||||
EXPORT FLEX_INT3_IRQHandler [WEAK]
|
||||
EXPORT FLEX_INT4_IRQHandler [WEAK]
|
||||
EXPORT FLEX_INT5_IRQHandler [WEAK]
|
||||
EXPORT FLEX_INT6_IRQHandler [WEAK]
|
||||
EXPORT FLEX_INT7_IRQHandler [WEAK]
|
||||
EXPORT GINT0_IRQHandler [WEAK]
|
||||
EXPORT GINT1_IRQHandler [WEAK]
|
||||
EXPORT SLWU_INT0_IRQHandler [WEAK]
|
||||
EXPORT SLWU_INT1_IRQHandler [WEAK]
|
||||
EXPORT SLWU_INT2_IRQHandler [WEAK]
|
||||
EXPORT SLWU_INT3_IRQHandler [WEAK]
|
||||
EXPORT SLWU_INT4_IRQHandler [WEAK]
|
||||
EXPORT SLWU_INT5_IRQHandler [WEAK]
|
||||
EXPORT SLWU_INT6_IRQHandler [WEAK]
|
||||
EXPORT SLWU_INT7_IRQHandler [WEAK]
|
||||
EXPORT SLWU_INT8_IRQHandler [WEAK]
|
||||
EXPORT SLWU_INT9_IRQHandler [WEAK]
|
||||
EXPORT SLWU_INT10_IRQHandler [WEAK]
|
||||
EXPORT SLWU_INT11_IRQHandler [WEAK]
|
||||
EXPORT SLWU_INT12_IRQHandler [WEAK]
|
||||
EXPORT C_CAN_IRQHandler [WEAK]
|
||||
EXPORT SSP1_IRQHandler [WEAK]
|
||||
EXPORT I2C_IRQHandler [WEAK]
|
||||
EXPORT TIMER16_0_IRQHandler [WEAK]
|
||||
|
@ -259,26 +256,30 @@ Default_Handler PROC
|
|||
EXPORT TIMER32_1_IRQHandler [WEAK]
|
||||
EXPORT SSP0_IRQHandler [WEAK]
|
||||
EXPORT UART_IRQHandler [WEAK]
|
||||
|
||||
EXPORT USB_IRQHandler [WEAK]
|
||||
EXPORT USB_FIQHandler [WEAK]
|
||||
EXPORT ADC_IRQHandler [WEAK]
|
||||
EXPORT WDT_IRQHandler [WEAK]
|
||||
EXPORT BOD_IRQHandler [WEAK]
|
||||
EXPORT FMC_IRQHandler [WEAK]
|
||||
EXPORT USBWakeup_IRQHandler [WEAK]
|
||||
EXPORT PIO_3_IRQHandler [WEAK]
|
||||
EXPORT PIO_2_IRQHandler [WEAK]
|
||||
EXPORT PIO_1_IRQHandler [WEAK]
|
||||
EXPORT PIO_0_IRQHandler [WEAK]
|
||||
|
||||
NMI_Handler
|
||||
FLEX_INT0_IRQHandler
|
||||
FLEX_INT1_IRQHandler
|
||||
FLEX_INT2_IRQHandler
|
||||
FLEX_INT3_IRQHandler
|
||||
FLEX_INT4_IRQHandler
|
||||
FLEX_INT5_IRQHandler
|
||||
FLEX_INT6_IRQHandler
|
||||
FLEX_INT7_IRQHandler
|
||||
GINT0_IRQHandler
|
||||
GINT1_IRQHandler
|
||||
|
||||
SLWU_INT0_IRQHandler
|
||||
SLWU_INT1_IRQHandler
|
||||
SLWU_INT2_IRQHandler
|
||||
SLWU_INT3_IRQHandler
|
||||
SLWU_INT4_IRQHandler
|
||||
SLWU_INT5_IRQHandler
|
||||
SLWU_INT6_IRQHandler
|
||||
SLWU_INT7_IRQHandler
|
||||
SLWU_INT8_IRQHandler
|
||||
SLWU_INT9_IRQHandler
|
||||
SLWU_INT10_IRQHandler
|
||||
SLWU_INT11_IRQHandler
|
||||
SLWU_INT12_IRQHandler
|
||||
C_CAN_IRQHandler
|
||||
SSP1_IRQHandler
|
||||
I2C_IRQHandler
|
||||
TIMER16_0_IRQHandler
|
||||
|
@ -287,13 +288,13 @@ TIMER32_0_IRQHandler
|
|||
TIMER32_1_IRQHandler
|
||||
SSP0_IRQHandler
|
||||
UART_IRQHandler
|
||||
USB_IRQHandler
|
||||
USB_FIQHandler
|
||||
ADC_IRQHandler
|
||||
WDT_IRQHandler
|
||||
BOD_IRQHandler
|
||||
FMC_IRQHandler
|
||||
USBWakeup_IRQHandler
|
||||
PIO_3_IRQHandler
|
||||
PIO_2_IRQHandler
|
||||
PIO_1_IRQHandler
|
||||
PIO_0_IRQHandler
|
||||
|
||||
B .
|
||||
|
||||
|
|
|
@ -46,20 +46,20 @@ __Vectors DCD __initial_sp ; Top of Stack
|
|||
DCD PendSV_Handler ; PendSV Handler
|
||||
DCD SysTick_Handler ; SysTick Handler
|
||||
|
||||
DCD FLEX_INT0_IRQHandler ; All GPIO pin can be routed to FLEX_INTx
|
||||
DCD FLEX_INT1_IRQHandler ;
|
||||
DCD FLEX_INT2_IRQHandler ;
|
||||
DCD FLEX_INT3_IRQHandler ;
|
||||
DCD FLEX_INT4_IRQHandler ;
|
||||
DCD FLEX_INT5_IRQHandler ;
|
||||
DCD FLEX_INT6_IRQHandler ;
|
||||
DCD FLEX_INT7_IRQHandler ;
|
||||
DCD GINT0_IRQHandler ;
|
||||
DCD GINT1_IRQHandler ; PIO0 (0:7)
|
||||
DCD Reserved_IRQHandler ; Reserved
|
||||
DCD Reserved_IRQHandler ;
|
||||
DCD Reserved_IRQHandler ;
|
||||
DCD Reserved_IRQHandler ;
|
||||
DCD SLWU_INT0_IRQHandler ; Start logic wake-up interrupt 0
|
||||
DCD SLWU_INT1_IRQHandler ; Start logic wake-up interrupt 1
|
||||
DCD SLWU_INT2_IRQHandler ; Start logic wake-up interrupt 2
|
||||
DCD SLWU_INT3_IRQHandler ; Start logic wake-up interrupt 3
|
||||
DCD SLWU_INT4_IRQHandler ; Start logic wake-up interrupt 4
|
||||
DCD SLWU_INT5_IRQHandler ; Start logic wake-up interrupt 5
|
||||
DCD SLWU_INT6_IRQHandler ; Start logic wake-up interrupt 6
|
||||
DCD SLWU_INT7_IRQHandler ; Start logic wake-up interrupt 7
|
||||
DCD SLWU_INT8_IRQHandler ; Start logic wake-up interrupt 8
|
||||
DCD SLWU_INT9_IRQHandler ; Start logic wake-up interrupt 9
|
||||
DCD SLWU_INT10_IRQHandler ; Start logic wake-up interrupt 10
|
||||
DCD SLWU_INT11_IRQHandler ; Start logic wake-up interrupt 11
|
||||
DCD SLWU_INT12_IRQHandler ; Start logic wake-up interrupt 12
|
||||
DCD C_CAN_IRQHandler ; C_CAN
|
||||
DCD SSP1_IRQHandler ; SSP1
|
||||
DCD I2C_IRQHandler ; I2C
|
||||
DCD TIMER16_0_IRQHandler ; 16-bit Timer0
|
||||
|
@ -68,19 +68,19 @@ __Vectors DCD __initial_sp ; Top of Stack
|
|||
DCD TIMER32_1_IRQHandler ; 32-bit Timer1
|
||||
DCD SSP0_IRQHandler ; SSP0
|
||||
DCD UART_IRQHandler ; UART
|
||||
DCD USB_IRQHandler ; USB IRQ
|
||||
DCD USB_FIQHandler ; USB FIQ
|
||||
DCD Reserved_IRQHandler ; Reserved
|
||||
DCD Reserved_IRQHandler ; Reserved
|
||||
DCD ADC_IRQHandler ; A/D Converter
|
||||
DCD WDT_IRQHandler ; Watchdog timer
|
||||
DCD BOD_IRQHandler ; Brown Out Detect
|
||||
DCD FMC_IRQHandler ; IP2111 Flash Memory Controller
|
||||
DCD Reserved_IRQHandler ; Reserved
|
||||
DCD Reserved_IRQHandler ; Reserved
|
||||
DCD Reserved_IRQHandler ; Reserved
|
||||
DCD Reserved_IRQHandler ; Reserved
|
||||
|
||||
DCD PIO_3_IRQHandler ; GPIO interrupt status of port 3
|
||||
DCD PIO_2_IRQHandler ; GPIO interrupt status of port 2
|
||||
DCD PIO_1_IRQHandler ; GPIO interrupt status of port 1
|
||||
DCD PIO_0_IRQHandler ; GPIO interrupt status of port 0
|
||||
|
||||
;; 48 vector entries. We pad to 128 to fill the 0x0 - 0x1FF REMAP address space
|
||||
|
||||
|
||||
DCD 0xFFFFFFFF ; Datafill
|
||||
DCD 0xFFFFFFFF ; Datafill
|
||||
DCD 0xFFFFFFFF ; Datafill
|
||||
|
@ -92,7 +92,7 @@ __Vectors DCD __initial_sp ; Top of Stack
|
|||
DCD 0xFFFFFFFF ; Datafill
|
||||
DCD 0xFFFFFFFF ; Datafill
|
||||
|
||||
DCD 0xFFFFFFFF ; Datafill
|
||||
DCD 0xFFFFFFFF ; Datafill
|
||||
DCD 0xFFFFFFFF ; Datafill
|
||||
DCD 0xFFFFFFFF ; Datafill
|
||||
DCD 0xFFFFFFFF ; Datafill
|
||||
|
@ -103,7 +103,7 @@ __Vectors DCD __initial_sp ; Top of Stack
|
|||
DCD 0xFFFFFFFF ; Datafill
|
||||
DCD 0xFFFFFFFF ; Datafill
|
||||
|
||||
DCD 0xFFFFFFFF ; Datafill
|
||||
DCD 0xFFFFFFFF ; Datafill
|
||||
DCD 0xFFFFFFFF ; Datafill
|
||||
DCD 0xFFFFFFFF ; Datafill
|
||||
DCD 0xFFFFFFFF ; Datafill
|
||||
|
@ -114,7 +114,7 @@ __Vectors DCD __initial_sp ; Top of Stack
|
|||
DCD 0xFFFFFFFF ; Datafill
|
||||
DCD 0xFFFFFFFF ; Datafill
|
||||
|
||||
DCD 0xFFFFFFFF ; Datafill
|
||||
DCD 0xFFFFFFFF ; Datafill
|
||||
DCD 0xFFFFFFFF ; Datafill
|
||||
DCD 0xFFFFFFFF ; Datafill
|
||||
DCD 0xFFFFFFFF ; Datafill
|
||||
|
@ -125,7 +125,7 @@ __Vectors DCD __initial_sp ; Top of Stack
|
|||
DCD 0xFFFFFFFF ; Datafill
|
||||
DCD 0xFFFFFFFF ; Datafill
|
||||
|
||||
DCD 0xFFFFFFFF ; Datafill
|
||||
DCD 0xFFFFFFFF ; Datafill
|
||||
DCD 0xFFFFFFFF ; Datafill
|
||||
DCD 0xFFFFFFFF ; Datafill
|
||||
DCD 0xFFFFFFFF ; Datafill
|
||||
|
@ -136,7 +136,7 @@ __Vectors DCD __initial_sp ; Top of Stack
|
|||
DCD 0xFFFFFFFF ; Datafill
|
||||
DCD 0xFFFFFFFF ; Datafill
|
||||
|
||||
DCD 0xFFFFFFFF ; Datafill
|
||||
DCD 0xFFFFFFFF ; Datafill
|
||||
DCD 0xFFFFFFFF ; Datafill
|
||||
DCD 0xFFFFFFFF ; Datafill
|
||||
DCD 0xFFFFFFFF ; Datafill
|
||||
|
@ -147,7 +147,7 @@ __Vectors DCD __initial_sp ; Top of Stack
|
|||
DCD 0xFFFFFFFF ; Datafill
|
||||
DCD 0xFFFFFFFF ; Datafill
|
||||
|
||||
DCD 0xFFFFFFFF ; Datafill
|
||||
DCD 0xFFFFFFFF ; Datafill
|
||||
DCD 0xFFFFFFFF ; Datafill
|
||||
DCD 0xFFFFFFFF ; Datafill
|
||||
DCD 0xFFFFFFFF ; Datafill
|
||||
|
@ -158,7 +158,6 @@ __Vectors DCD __initial_sp ; Top of Stack
|
|||
DCD 0xFFFFFFFF ; Datafill
|
||||
DCD 0xFFFFFFFF ; Datafill
|
||||
|
||||
DCD 0xFFFFFFFF ; Datafill
|
||||
DCD 0xFFFFFFFF ; Datafill
|
||||
DCD 0xFFFFFFFF ; Datafill
|
||||
DCD 0xFFFFFFFF ; Datafill
|
||||
|
@ -168,17 +167,16 @@ __Vectors DCD __initial_sp ; Top of Stack
|
|||
DCD 0xFFFFFFFF ; Datafill
|
||||
DCD 0xFFFFFFFF ; Datafill
|
||||
DCD 0xFFFFFFFF ; Datafill
|
||||
|
||||
DCD 0xFFFFFFFF ; Datafill
|
||||
|
||||
IF :LNOT::DEF:NO_CRP
|
||||
AREA |.ARM.__at_0x02FC|, CODE, READONLY
|
||||
CRP_Key DCD 0xFFFFFFFF
|
||||
ENDIF
|
||||
|
||||
|
||||
AREA |.text|, CODE, READONLY
|
||||
|
||||
|
||||
|
||||
; Reset Handler
|
||||
|
||||
Reset_Handler PROC
|
||||
|
@ -222,18 +220,22 @@ Reserved_IRQHandler PROC
|
|||
ENDP
|
||||
|
||||
Default_Handler PROC
|
||||
; for LPC11Uxx (With USB)
|
||||
; for LPC1114
|
||||
EXPORT NMI_Handler [WEAK]
|
||||
EXPORT FLEX_INT0_IRQHandler [WEAK]
|
||||
EXPORT FLEX_INT1_IRQHandler [WEAK]
|
||||
EXPORT FLEX_INT2_IRQHandler [WEAK]
|
||||
EXPORT FLEX_INT3_IRQHandler [WEAK]
|
||||
EXPORT FLEX_INT4_IRQHandler [WEAK]
|
||||
EXPORT FLEX_INT5_IRQHandler [WEAK]
|
||||
EXPORT FLEX_INT6_IRQHandler [WEAK]
|
||||
EXPORT FLEX_INT7_IRQHandler [WEAK]
|
||||
EXPORT GINT0_IRQHandler [WEAK]
|
||||
EXPORT GINT1_IRQHandler [WEAK]
|
||||
EXPORT SLWU_INT0_IRQHandler [WEAK]
|
||||
EXPORT SLWU_INT1_IRQHandler [WEAK]
|
||||
EXPORT SLWU_INT2_IRQHandler [WEAK]
|
||||
EXPORT SLWU_INT3_IRQHandler [WEAK]
|
||||
EXPORT SLWU_INT4_IRQHandler [WEAK]
|
||||
EXPORT SLWU_INT5_IRQHandler [WEAK]
|
||||
EXPORT SLWU_INT6_IRQHandler [WEAK]
|
||||
EXPORT SLWU_INT7_IRQHandler [WEAK]
|
||||
EXPORT SLWU_INT8_IRQHandler [WEAK]
|
||||
EXPORT SLWU_INT9_IRQHandler [WEAK]
|
||||
EXPORT SLWU_INT10_IRQHandler [WEAK]
|
||||
EXPORT SLWU_INT11_IRQHandler [WEAK]
|
||||
EXPORT SLWU_INT12_IRQHandler [WEAK]
|
||||
EXPORT C_CAN_IRQHandler [WEAK]
|
||||
EXPORT SSP1_IRQHandler [WEAK]
|
||||
EXPORT I2C_IRQHandler [WEAK]
|
||||
EXPORT TIMER16_0_IRQHandler [WEAK]
|
||||
|
@ -242,26 +244,30 @@ Default_Handler PROC
|
|||
EXPORT TIMER32_1_IRQHandler [WEAK]
|
||||
EXPORT SSP0_IRQHandler [WEAK]
|
||||
EXPORT UART_IRQHandler [WEAK]
|
||||
|
||||
EXPORT USB_IRQHandler [WEAK]
|
||||
EXPORT USB_FIQHandler [WEAK]
|
||||
EXPORT ADC_IRQHandler [WEAK]
|
||||
EXPORT WDT_IRQHandler [WEAK]
|
||||
EXPORT BOD_IRQHandler [WEAK]
|
||||
EXPORT FMC_IRQHandler [WEAK]
|
||||
EXPORT USBWakeup_IRQHandler [WEAK]
|
||||
EXPORT PIO_3_IRQHandler [WEAK]
|
||||
EXPORT PIO_2_IRQHandler [WEAK]
|
||||
EXPORT PIO_1_IRQHandler [WEAK]
|
||||
EXPORT PIO_0_IRQHandler [WEAK]
|
||||
|
||||
NMI_Handler
|
||||
FLEX_INT0_IRQHandler
|
||||
FLEX_INT1_IRQHandler
|
||||
FLEX_INT2_IRQHandler
|
||||
FLEX_INT3_IRQHandler
|
||||
FLEX_INT4_IRQHandler
|
||||
FLEX_INT5_IRQHandler
|
||||
FLEX_INT6_IRQHandler
|
||||
FLEX_INT7_IRQHandler
|
||||
GINT0_IRQHandler
|
||||
GINT1_IRQHandler
|
||||
|
||||
SLWU_INT0_IRQHandler
|
||||
SLWU_INT1_IRQHandler
|
||||
SLWU_INT2_IRQHandler
|
||||
SLWU_INT3_IRQHandler
|
||||
SLWU_INT4_IRQHandler
|
||||
SLWU_INT5_IRQHandler
|
||||
SLWU_INT6_IRQHandler
|
||||
SLWU_INT7_IRQHandler
|
||||
SLWU_INT8_IRQHandler
|
||||
SLWU_INT9_IRQHandler
|
||||
SLWU_INT10_IRQHandler
|
||||
SLWU_INT11_IRQHandler
|
||||
SLWU_INT12_IRQHandler
|
||||
C_CAN_IRQHandler
|
||||
SSP1_IRQHandler
|
||||
I2C_IRQHandler
|
||||
TIMER16_0_IRQHandler
|
||||
|
@ -270,13 +276,13 @@ TIMER32_0_IRQHandler
|
|||
TIMER32_1_IRQHandler
|
||||
SSP0_IRQHandler
|
||||
UART_IRQHandler
|
||||
USB_IRQHandler
|
||||
USB_FIQHandler
|
||||
ADC_IRQHandler
|
||||
WDT_IRQHandler
|
||||
BOD_IRQHandler
|
||||
FMC_IRQHandler
|
||||
USBWakeup_IRQHandler
|
||||
PIO_3_IRQHandler
|
||||
PIO_2_IRQHandler
|
||||
PIO_1_IRQHandler
|
||||
PIO_0_IRQHandler
|
||||
|
||||
B .
|
||||
|
||||
|
|
|
@ -37,8 +37,7 @@ typedef enum {
|
|||
ADC0_3,
|
||||
ADC0_4,
|
||||
ADC0_5,
|
||||
ADC0_6,
|
||||
ADC0_7
|
||||
ADC0_6
|
||||
} ADCName;
|
||||
|
||||
typedef enum {
|
||||
|
@ -51,13 +50,7 @@ typedef enum {
|
|||
PWM_2,
|
||||
PWM_3,
|
||||
PWM_4,
|
||||
PWM_5,
|
||||
PWM_6,
|
||||
PWM_7,
|
||||
PWM_8,
|
||||
PWM_9,
|
||||
PWM_10,
|
||||
PWM_11
|
||||
PWM_5
|
||||
} PWMName;
|
||||
|
||||
#define STDIO_UART_TX USBTX
|
||||
|
|
|
@ -32,9 +32,9 @@ static const PinMap PinMap_ADC[] = {
|
|||
{P1_0 , ADC0_1, 2},
|
||||
{P1_1 , ADC0_2, 2},
|
||||
{P1_2 , ADC0_3, 2},
|
||||
{P1_4 , ADC0_5, 1},
|
||||
{P1_10, ADC0_6, 1},
|
||||
{P1_11, ADC0_7, 1},
|
||||
{P1_4 , ADC0_4, 1},
|
||||
{P1_10, ADC0_5, 1},
|
||||
{P1_11, ADC0_6, 1},
|
||||
{NC , NC , 0}
|
||||
};
|
||||
|
||||
|
|
|
@ -32,17 +32,11 @@ static const PinMap PinMap_PWM[] = {
|
|||
{P0_9 , PWM_2, 0x02}, /* MR1 */
|
||||
|
||||
/* CT16B1 */
|
||||
{P1_9 , PWM_4, 0x01}, /* MR0 */
|
||||
{P1_10, PWM_5, 0x02}, /* MR1 */
|
||||
{P1_9 , PWM_3, 0x01}, /* MR0 */
|
||||
{P1_10, PWM_4, 0x02}, /* MR1 */
|
||||
|
||||
/* CT32B0 */
|
||||
{P1_6 , PWM_6, 0x02}, /* MR0 */
|
||||
{P1_7 , PWM_7, 0x02}, /* MR1 */
|
||||
{P0_1 , PWM_8, 0x02}, /* MR2 */
|
||||
|
||||
/* CT32B1 */
|
||||
{P1_1 , PWM_9 ,0x03}, /* MR0 */
|
||||
{P1_2 , PWM_10,0x03}, /* MR1 */
|
||||
{P0_1 , PWM_5, 0x02}, /* MR2 */
|
||||
|
||||
{NC , NC ,0x00}
|
||||
};
|
||||
|
@ -52,28 +46,21 @@ typedef struct {
|
|||
uint8_t mr;
|
||||
} timer_mr;
|
||||
|
||||
static timer_mr pwm_timer_map[9] = {
|
||||
static timer_mr pwm_timer_map[5] = {
|
||||
{0, 0}, /* CT16B0, MR0 */
|
||||
{0, 1}, /* CT16B0, MR1 */
|
||||
|
||||
{1, 0}, /* CT16B1, MR0 */
|
||||
{1, 1}, /* CT16B1, MR1 */
|
||||
|
||||
{2, 0}, /* CT32B0, MR0 */
|
||||
{2, 1}, /* CT32B0, MR1 */
|
||||
{2, 2}, /* CT32B0, MR2 */
|
||||
|
||||
{3, 0}, /* CT32B1, MR0 */
|
||||
{3, 1}, /* CT32B1, MR1 */
|
||||
};
|
||||
|
||||
static LPC_TMR_TypeDef *Timers[4] = {
|
||||
static LPC_TMR_TypeDef *Timers[3] = {
|
||||
LPC_TMR16B0, LPC_TMR16B1,
|
||||
LPC_TMR32B0, LPC_TMR32B1
|
||||
LPC_TMR32B0
|
||||
};
|
||||
|
||||
static unsigned int pwm_clock_mhz;
|
||||
|
||||
void pwmout_init(pwmout_t* obj, PinName pin) {
|
||||
// determine the channel
|
||||
PWMName pwm = (PWMName)pinmap_peripheral(pin, PinMap_PWM);
|
||||
|
@ -98,8 +85,13 @@ void pwmout_init(pwmout_t* obj, PinName pin) {
|
|||
/* Reset Functionality on MR3 controlling the PWM period */
|
||||
timer->MCR = 1 << 10;
|
||||
|
||||
pwm_clock_mhz = SystemCoreClock / 1000000;
|
||||
|
||||
if (timer == LPC_TMR16B0 || timer == LPC_TMR16B1) {
|
||||
/* Set 16-bit timer prescaler to avoid timer expire for default 20ms */
|
||||
/* This can be also modified by user application, but the prescaler value */
|
||||
/* might be trade-off to timer accuracy */
|
||||
timer->PR = 30;
|
||||
}
|
||||
|
||||
// default to 20ms: standard for servos, and fine for e.g. brightness control
|
||||
pwmout_period_ms(obj, 20);
|
||||
pwmout_write (obj, 0);
|
||||
|
@ -147,12 +139,13 @@ void pwmout_period_ms(pwmout_t* obj, int ms) {
|
|||
// Set the PWM period, keeping the duty cycle the same.
|
||||
void pwmout_period_us(pwmout_t* obj, int us) {
|
||||
int i = 0;
|
||||
uint32_t period_ticks = pwm_clock_mhz * us;
|
||||
uint32_t period_ticks;
|
||||
|
||||
timer_mr tid = pwm_timer_map[obj->pwm];
|
||||
LPC_TMR_TypeDef *timer = Timers[tid.timer];
|
||||
uint32_t old_period_ticks = timer->MR3;
|
||||
|
||||
period_ticks = (SystemCoreClock / 1000000 * us) / (timer->PR + 1);
|
||||
|
||||
timer->TCR = TCR_RESET;
|
||||
timer->MR3 = period_ticks;
|
||||
|
||||
|
@ -175,9 +168,9 @@ void pwmout_pulsewidth_ms(pwmout_t* obj, int ms) {
|
|||
}
|
||||
|
||||
void pwmout_pulsewidth_us(pwmout_t* obj, int us) {
|
||||
uint32_t t_on = (uint32_t)(((uint64_t)SystemCoreClock * (uint64_t)us) / (uint64_t)1000000);
|
||||
timer_mr tid = pwm_timer_map[obj->pwm];
|
||||
LPC_TMR_TypeDef *timer = Timers[tid.timer];
|
||||
uint32_t t_on = (uint32_t)((((uint64_t)SystemCoreClock * (uint64_t)us) / (uint64_t)1000000) / (timer->PR + 1));
|
||||
|
||||
timer->TCR = TCR_RESET;
|
||||
if (t_on > timer->MR3) {
|
||||
|
|
|
@ -1,7 +1,11 @@
|
|||
#include "mbed.h"
|
||||
|
||||
DigitalOut out(p5);
|
||||
#if defined(TARGET_LPC1114)
|
||||
AnalogIn in(p20);
|
||||
#else
|
||||
AnalogIn in(p19);
|
||||
#endif
|
||||
|
||||
volatile float w, x, y, z;
|
||||
int main() {
|
||||
|
|
|
@ -1,7 +1,11 @@
|
|||
#include "mbed.h"
|
||||
|
||||
DigitalOut out(p5);
|
||||
#if defined(TARGET_LPC1114)
|
||||
AnalogIn in(p20);
|
||||
#else
|
||||
AnalogIn in(p19);
|
||||
#endif
|
||||
|
||||
int main() {
|
||||
while(1) {
|
||||
|
|
|
@ -27,6 +27,10 @@ void in_handler() {
|
|||
#define PIN_IN (p11)
|
||||
#define PIN_OUT (p12)
|
||||
|
||||
#elif defined(TARGET_LPC1114)
|
||||
#define PIN_IN (dp1)
|
||||
#define PIN_OUT (dp2)
|
||||
|
||||
#else
|
||||
#define PIN_IN (p5)
|
||||
#define PIN_OUT (p25)
|
||||
|
|
|
@ -26,14 +26,14 @@ int main() {
|
|||
printf("Initialize PWM on pin 26 with duty cycle: %.2f\n", pwm_p26.read());
|
||||
|
||||
#elif defined(TARGET_LPC1114)
|
||||
PwmOut pwm_p13(p13); // P1_1
|
||||
PwmOut pwm_p14(p14); // P1_2
|
||||
PwmOut pwm_dp24(dp24); // P0_1
|
||||
PwmOut pwm_dp18(dp18); // P1_9
|
||||
|
||||
pwm_p13.write(0.75);
|
||||
pwm_p14.write(0.50);
|
||||
pwm_dp24.write(0.75);
|
||||
pwm_dp18.write(0.50);
|
||||
|
||||
printf("Initialize PWM on pin 13 with duty cycle: %.2f\n", pwm_p13.read());
|
||||
printf("Initialize PWM on pin 14 with duty cycle: %.2f\n", pwm_p14.read());
|
||||
printf("Initialize PWM on pin 24 with duty cycle: %.2f\n", pwm_dp24.read());
|
||||
printf("Initialize PWM on pin 18 with duty cycle: %.2f\n", pwm_dp18.read());
|
||||
|
||||
#elif defined(TARGET_KL25Z)
|
||||
PwmOut pwm_d2(D2);
|
||||
|
|
Loading…
Reference in New Issue