添加PAN159资料
This commit is contained in:
+211
@@ -0,0 +1,211 @@
|
||||
;/******************************************************************************
|
||||
; * @file startup_Mini58Series.s
|
||||
; * @version V1.00
|
||||
; * $Revision: 2 $
|
||||
; * $Date: 15/05/26 10:11a $
|
||||
; * @brief CMSIS ARM Cortex-M0 Core Device Startup File
|
||||
; *
|
||||
; * @note
|
||||
; * Copyright (C) 2015 Nuvoton Technology Corp. All rights reserved.
|
||||
;*****************************************************************************/
|
||||
IF :LNOT: :DEF: Stack_Size
|
||||
Stack_Size EQU 0x00000200
|
||||
ENDIF
|
||||
|
||||
AREA STACK, NOINIT, READWRITE, ALIGN=3
|
||||
Stack_Mem SPACE Stack_Size
|
||||
__initial_sp
|
||||
|
||||
|
||||
; <h> Heap Configuration
|
||||
; <o> Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>
|
||||
; </h>
|
||||
IF :LNOT: :DEF: Heap_Size
|
||||
Heap_Size EQU 0x00000000
|
||||
ENDIF
|
||||
AREA HEAP, NOINIT, READWRITE, ALIGN=3
|
||||
__heap_base
|
||||
Heap_Mem SPACE Heap_Size
|
||||
__heap_limit
|
||||
|
||||
|
||||
PRESERVE8
|
||||
THUMB
|
||||
|
||||
|
||||
; Vector Table Mapped to Address 0 at Reset
|
||||
AREA RESET, DATA, READONLY
|
||||
EXPORT __Vectors
|
||||
|
||||
__Vectors DCD __initial_sp ; Top of Stack
|
||||
DCD Reset_Handler ; Reset Handler
|
||||
DCD NMI_Handler ; NMI Handler
|
||||
DCD HardFault_Handler ; Hard Fault Handler
|
||||
DCD 0 ; Reserved
|
||||
DCD 0 ; Reserved
|
||||
DCD 0 ; Reserved
|
||||
DCD 0 ; Reserved
|
||||
DCD 0 ; Reserved
|
||||
DCD 0 ; Reserved
|
||||
DCD 0 ; Reserved
|
||||
DCD SVC_Handler ; SVCall Handler
|
||||
DCD 0 ; Reserved
|
||||
DCD 0 ; Reserved
|
||||
DCD PendSV_Handler ; PendSV Handler
|
||||
DCD SysTick_Handler ; SysTick Handler
|
||||
|
||||
; External Interrupts
|
||||
; maximum of 32 External Interrupts are possible
|
||||
DCD BOD_IRQHandler
|
||||
DCD WDT_IRQHandler
|
||||
DCD EINT0_IRQHandler
|
||||
DCD EINT1_IRQHandler
|
||||
DCD GPIO01_IRQHandler
|
||||
DCD GPIO234_IRQHandler
|
||||
DCD PWM_IRQHandler
|
||||
DCD FB_IRQHandler
|
||||
DCD TMR0_IRQHandler
|
||||
DCD TMR1_IRQHandler
|
||||
DCD Default_Handler
|
||||
DCD Default_Handler
|
||||
DCD UART0_IRQHandler
|
||||
DCD UART1_IRQHandler
|
||||
DCD SPI_IRQHandler
|
||||
DCD Default_Handler
|
||||
DCD GPIO5_IRQHandler
|
||||
DCD HIRC_IRQHandler
|
||||
DCD I2C0_IRQHandler
|
||||
DCD I2C1_IRQHandler
|
||||
DCD Default_Handler
|
||||
DCD Default_Handler
|
||||
DCD Default_Handler
|
||||
DCD Default_Handler
|
||||
DCD Default_Handler
|
||||
DCD ACMP_IRQHandler
|
||||
DCD Default_Handler
|
||||
DCD Default_Handler
|
||||
DCD PDWU_IRQHandler
|
||||
DCD ADC_IRQHandler
|
||||
DCD Default_Handler
|
||||
DCD Default_Handler
|
||||
|
||||
|
||||
AREA |.text|, CODE, READONLY
|
||||
|
||||
|
||||
|
||||
; Reset Handler
|
||||
|
||||
ENTRY
|
||||
|
||||
Reset_Handler PROC
|
||||
EXPORT Reset_Handler [WEAK]
|
||||
IMPORT __main
|
||||
|
||||
LDR R0, =__main
|
||||
BX R0
|
||||
ENDP
|
||||
|
||||
|
||||
|
||||
; Dummy Exception Handlers (infinite loops which can be modified)
|
||||
|
||||
NMI_Handler PROC
|
||||
EXPORT NMI_Handler [WEAK]
|
||||
B .
|
||||
ENDP
|
||||
HardFault_Handler\
|
||||
PROC
|
||||
EXPORT HardFault_Handler [WEAK]
|
||||
B .
|
||||
ENDP
|
||||
SVC_Handler PROC
|
||||
EXPORT SVC_Handler [WEAK]
|
||||
B .
|
||||
ENDP
|
||||
PendSV_Handler PROC
|
||||
EXPORT PendSV_Handler [WEAK]
|
||||
B .
|
||||
ENDP
|
||||
SysTick_Handler PROC
|
||||
EXPORT SysTick_Handler [WEAK]
|
||||
B .
|
||||
ENDP
|
||||
|
||||
Default_Handler PROC
|
||||
|
||||
EXPORT BOD_IRQHandler [WEAK]
|
||||
EXPORT WDT_IRQHandler [WEAK]
|
||||
EXPORT EINT0_IRQHandler [WEAK]
|
||||
EXPORT EINT1_IRQHandler [WEAK]
|
||||
EXPORT GPIO01_IRQHandler [WEAK]
|
||||
EXPORT GPIO234_IRQHandler [WEAK]
|
||||
EXPORT PWM_IRQHandler [WEAK]
|
||||
EXPORT FB_IRQHandler [WEAK]
|
||||
EXPORT TMR0_IRQHandler [WEAK]
|
||||
EXPORT TMR1_IRQHandler [WEAK]
|
||||
EXPORT UART0_IRQHandler [WEAK]
|
||||
EXPORT UART1_IRQHandler [WEAK]
|
||||
EXPORT SPI_IRQHandler [WEAK]
|
||||
EXPORT GPIO5_IRQHandler [WEAK]
|
||||
EXPORT HIRC_IRQHandler [WEAK]
|
||||
EXPORT I2C0_IRQHandler [WEAK]
|
||||
EXPORT I2C1_IRQHandler [WEAK]
|
||||
EXPORT ACMP_IRQHandler [WEAK]
|
||||
EXPORT PDWU_IRQHandler [WEAK]
|
||||
EXPORT ADC_IRQHandler [WEAK]
|
||||
|
||||
BOD_IRQHandler
|
||||
WDT_IRQHandler
|
||||
EINT0_IRQHandler
|
||||
EINT1_IRQHandler
|
||||
GPIO01_IRQHandler
|
||||
GPIO234_IRQHandler
|
||||
PWM_IRQHandler
|
||||
FB_IRQHandler
|
||||
TMR0_IRQHandler
|
||||
TMR1_IRQHandler
|
||||
UART0_IRQHandler
|
||||
UART1_IRQHandler
|
||||
SPI_IRQHandler
|
||||
GPIO5_IRQHandler
|
||||
HIRC_IRQHandler
|
||||
I2C0_IRQHandler
|
||||
I2C1_IRQHandler
|
||||
ACMP_IRQHandler
|
||||
PDWU_IRQHandler
|
||||
ADC_IRQHandler
|
||||
B .
|
||||
ENDP
|
||||
|
||||
|
||||
ALIGN
|
||||
|
||||
|
||||
; User Initial Stack & Heap
|
||||
|
||||
IF :DEF:__MICROLIB
|
||||
|
||||
EXPORT __initial_sp
|
||||
EXPORT __heap_base
|
||||
EXPORT __heap_limit
|
||||
|
||||
ELSE
|
||||
|
||||
IMPORT __use_two_region_memory
|
||||
EXPORT __user_initial_stackheap
|
||||
__user_initial_stackheap
|
||||
|
||||
LDR R0, = Heap_Mem
|
||||
LDR R1, = (Stack_Mem + Stack_Size)
|
||||
LDR R2, = (Heap_Mem + Heap_Size)
|
||||
LDR R3, = Stack_Mem
|
||||
BX LR
|
||||
|
||||
ALIGN
|
||||
|
||||
ENDIF
|
||||
|
||||
|
||||
END
|
||||
;/*** (C) COPYRIGHT 2015 Nuvoton Technology Corp. ***/
|
||||
+149
@@ -0,0 +1,149 @@
|
||||
;/******************************************************************************
|
||||
; * @file startup_Mini58Series.s
|
||||
; * @version V1.00
|
||||
; * $Revision: 3 $
|
||||
; * $Date: 16/06/07 2:36p $
|
||||
; * @brief CMSIS ARM Cortex-M0 Core Device Startup File
|
||||
; *
|
||||
; * @note
|
||||
; * Copyright (C) 2015 Nuvoton Technology Corp. All rights reserved.
|
||||
;*****************************************************************************/
|
||||
|
||||
|
||||
|
||||
MODULE ?cstartup
|
||||
|
||||
;; Forward declaration of sections.
|
||||
SECTION CSTACK:DATA:NOROOT(3) ;; 8 bytes alignment
|
||||
|
||||
SECTION .intvec:CODE:NOROOT(2);; 4 bytes alignment
|
||||
|
||||
EXTERN __iar_program_start
|
||||
EXTERN HardFault_Handler
|
||||
PUBLIC __vector_table
|
||||
|
||||
DATA
|
||||
__vector_table
|
||||
DCD sfe(CSTACK)
|
||||
DCD Reset_Handler
|
||||
|
||||
DCD NMI_Handler
|
||||
DCD HardFault_Handler
|
||||
DCD 0
|
||||
DCD 0
|
||||
DCD 0
|
||||
DCD 0
|
||||
DCD 0
|
||||
DCD 0
|
||||
DCD 0
|
||||
DCD SVC_Handler
|
||||
DCD 0
|
||||
DCD 0
|
||||
DCD PendSV_Handler
|
||||
DCD SysTick_Handler
|
||||
|
||||
; External Interrupts
|
||||
DCD BOD_IRQHandler ; Brownout low voltage detected interrupt
|
||||
DCD WDT_IRQHandler ; Watch Dog Timer interrupt
|
||||
DCD EINT0_IRQHandler ; External signal interrupt from PB.14 pin
|
||||
DCD EINT1_IRQHandler ; External signal interrupt from PB.15 pin
|
||||
DCD GPIO01_IRQHandler ; External signal interrupt from P0[7:0] / P1[7:0]
|
||||
DCD GPIO234_IRQHandler ; External interrupt from P2[7:0]/P3[7:0]/P4[7:0]
|
||||
DCD PWM_IRQHandler ; PWM interrupt
|
||||
DCD FB_IRQHandler
|
||||
DCD TMR0_IRQHandler ; Timer 0 interrupt
|
||||
DCD TMR1_IRQHandler ; Timer 1 interrupt
|
||||
DCD Default_Handler
|
||||
DCD Default_Handler
|
||||
DCD UART0_IRQHandler ; UART0 interrupt
|
||||
DCD UART1_IRQHandler ; UART1 interrupt
|
||||
DCD SPI_IRQHandler ; SPI interrupt
|
||||
DCD Default_Handler
|
||||
DCD GPIO5_IRQHandler ; GP5[7:0] interrupt
|
||||
DCD HIRC_IRQHandler ; HIRC interrupt
|
||||
DCD I2C0_IRQHandler ; I2C0 interrupt
|
||||
DCD I2C1_IRQHandler ; I2C1 interrupt
|
||||
DCD Default_Handler
|
||||
DCD Default_Handler
|
||||
DCD Default_Handler
|
||||
DCD Default_Handler
|
||||
DCD Default_Handler
|
||||
DCD ACMP_IRQHandler
|
||||
DCD Default_Handler
|
||||
DCD Default_Handler
|
||||
DCD PDWU_IRQHandler
|
||||
DCD ADC_IRQHandler ; ADC interrupt
|
||||
DCD Default_Handler
|
||||
DCD Default_Handler
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;;
|
||||
;; Default interrupt handlers.
|
||||
;;
|
||||
THUMB
|
||||
PUBWEAK Reset_Handler
|
||||
SECTION .text:CODE:REORDER:NOROOT(2) ; 4 bytes alignment
|
||||
Reset_Handler
|
||||
|
||||
LDR R0, =__iar_program_start
|
||||
BX R0
|
||||
|
||||
PUBWEAK NMI_Handler
|
||||
PUBWEAK SVC_Handler
|
||||
PUBWEAK PendSV_Handler
|
||||
PUBWEAK SysTick_Handler
|
||||
PUBWEAK BOD_IRQHandler
|
||||
PUBWEAK WDT_IRQHandler
|
||||
PUBWEAK EINT0_IRQHandler
|
||||
PUBWEAK EINT1_IRQHandler
|
||||
PUBWEAK GPIO01_IRQHandler
|
||||
PUBWEAK GPIO234_IRQHandler
|
||||
PUBWEAK PWM_IRQHandler
|
||||
PUBWEAK FB_IRQHandler
|
||||
PUBWEAK TMR0_IRQHandler
|
||||
PUBWEAK TMR1_IRQHandler
|
||||
PUBWEAK UART0_IRQHandler
|
||||
PUBWEAK UART1_IRQHandler
|
||||
PUBWEAK SPI_IRQHandler
|
||||
PUBWEAK GPIO5_IRQHandler
|
||||
PUBWEAK HIRC_IRQHandler
|
||||
PUBWEAK I2C0_IRQHandler
|
||||
PUBWEAK I2C1_IRQHandler
|
||||
PUBWEAK ACMP_IRQHandler
|
||||
PUBWEAK PDWU_IRQHandler
|
||||
PUBWEAK ADC_IRQHandler
|
||||
|
||||
SECTION .text:CODE:REORDER:NOROOT(2)
|
||||
|
||||
NMI_Handler
|
||||
SVC_Handler
|
||||
PendSV_Handler
|
||||
SysTick_Handler
|
||||
BOD_IRQHandler
|
||||
WDT_IRQHandler
|
||||
EINT0_IRQHandler
|
||||
EINT1_IRQHandler
|
||||
GPIO01_IRQHandler
|
||||
GPIO234_IRQHandler
|
||||
PWM_IRQHandler
|
||||
FB_IRQHandler
|
||||
TMR0_IRQHandler
|
||||
TMR1_IRQHandler
|
||||
UART0_IRQHandler
|
||||
UART1_IRQHandler
|
||||
SPI_IRQHandler
|
||||
GPIO5_IRQHandler
|
||||
HIRC_IRQHandler
|
||||
I2C0_IRQHandler
|
||||
I2C1_IRQHandler
|
||||
ACMP_IRQHandler
|
||||
PDWU_IRQHandler
|
||||
ADC_IRQHandler
|
||||
Default_Handler
|
||||
B Default_Handler
|
||||
|
||||
|
||||
|
||||
|
||||
END
|
||||
;/*** (C) COPYRIGHT 2015 Nuvoton Technology Corp. ***/
|
||||
+89
@@ -0,0 +1,89 @@
|
||||
/**************************************************************************//**
|
||||
* @file system_Mini58Series.c
|
||||
* @version V1.00
|
||||
* $Revision: 3 $
|
||||
* $Date: 15/02/13 9:13a $
|
||||
* @brief Mini58 series system clock init code and assert handler
|
||||
*
|
||||
* @note
|
||||
* Copyright (C) 2015 Nuvoton Technology Corp. All rights reserved.
|
||||
*****************************************************************************/
|
||||
|
||||
#include <stdint.h>
|
||||
#include "Mini58Series.h"
|
||||
|
||||
|
||||
/*----------------------------------------------------------------------------
|
||||
Clock Variable definitions
|
||||
*----------------------------------------------------------------------------*/
|
||||
uint32_t __HSI = __HIRC; /*!< Factory Default is internal high speed RC 44.2368M divided by 2 */
|
||||
uint32_t SystemCoreClock; /*!< System Clock Frequency (Core Clock) */
|
||||
uint32_t PllClock = __HIRC; /*!< PLL Output Clock Frequency */
|
||||
uint32_t CyclesPerUs; /*!< Cycles per micro second */
|
||||
|
||||
/**
|
||||
* @brief Check HIRC clock rate feed to HCLK
|
||||
*
|
||||
* @return none
|
||||
*/
|
||||
|
||||
void SystemInit (void)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief This function is used to update the variable SystemCoreClock
|
||||
* and must be called whenever the core clock is changed.
|
||||
* @param None.
|
||||
* @retval None.
|
||||
*/
|
||||
|
||||
void SystemCoreClockUpdate (void)
|
||||
{
|
||||
uint32_t u32CoreFreq, u32ClkSrc;
|
||||
|
||||
/* Update PLL Clock */
|
||||
PllClock = CLK_GetPLLClockFreq();
|
||||
|
||||
u32ClkSrc = CLK->CLKSEL0 & CLK_CLKSEL0_HCLKSEL_Msk;
|
||||
|
||||
if (u32ClkSrc == 0)
|
||||
u32CoreFreq = __XTAL; /* External crystal clock */
|
||||
else if (u32ClkSrc ==2)
|
||||
u32CoreFreq = PllClock; /* PLL clock */
|
||||
else if (u32ClkSrc == 3)
|
||||
u32CoreFreq = __IRC10K; /* Internal 10K crystal clock */
|
||||
else if (u32ClkSrc == 7)
|
||||
u32CoreFreq = __HIRC; /* Factory Default is internal RC */
|
||||
else
|
||||
u32CoreFreq = __HIRC; /* unknown value, use Factory Default is internal RC */
|
||||
|
||||
SystemCoreClock = (u32CoreFreq/((CLK->CLKDIV & CLK_CLKDIV_HCLKDIV_Msk) + 1));
|
||||
CyclesPerUs = (SystemCoreClock + 500000) / 1000000;
|
||||
}
|
||||
|
||||
#if USE_ASSERT
|
||||
|
||||
/**
|
||||
* @brief Assert Error Message
|
||||
*
|
||||
* @param[in] file the source file name
|
||||
* @param[in] line line number
|
||||
*
|
||||
* @return None
|
||||
*
|
||||
* @details The function prints the source file name and line number where
|
||||
* the ASSERT_PARAM() error occurs, and then stops in an infinite loop.
|
||||
*/
|
||||
void AssertError(uint8_t * file, uint32_t line)
|
||||
{
|
||||
|
||||
printf("[%s] line %d : wrong parameters.\r\n", file, line);
|
||||
|
||||
/* Infinite loop */
|
||||
while(1) ;
|
||||
}
|
||||
#endif
|
||||
|
||||
/*** (C) COPYRIGHT 2015 Nuvoton Technology Corp. ***/
|
||||
Reference in New Issue
Block a user