Initial commit
This commit is contained in:
		@ -0,0 +1,4 @@
 | 
			
		||||
CMSIS DSP_Lib example arm_class_marks_example for
 | 
			
		||||
  Cortex-M0, Cortex-M3, Cortex-M4 with FPU and Cortex-M7 with single precision FPU.
 | 
			
		||||
 | 
			
		||||
The example is configured for uVision Simulator
 | 
			
		||||
@ -0,0 +1,159 @@
 | 
			
		||||
;/**************************************************************************//**
 | 
			
		||||
; * @file     startup_ARMCM0.s
 | 
			
		||||
; * @brief    CMSIS Core Device Startup File for
 | 
			
		||||
; *           ARMCM0 Device
 | 
			
		||||
; * @version  V5.3.1
 | 
			
		||||
; * @date     09. July 2018
 | 
			
		||||
; ******************************************************************************/
 | 
			
		||||
;/*
 | 
			
		||||
; * Copyright (c) 2009-2018 Arm Limited. All rights reserved.
 | 
			
		||||
; *
 | 
			
		||||
; * SPDX-License-Identifier: Apache-2.0
 | 
			
		||||
; *
 | 
			
		||||
; * Licensed under the Apache License, Version 2.0 (the License); you may
 | 
			
		||||
; * not use this file except in compliance with the License.
 | 
			
		||||
; * You may obtain a copy of the License at
 | 
			
		||||
; *
 | 
			
		||||
; * www.apache.org/licenses/LICENSE-2.0
 | 
			
		||||
; *
 | 
			
		||||
; * Unless required by applicable law or agreed to in writing, software
 | 
			
		||||
; * distributed under the License is distributed on an AS IS BASIS, WITHOUT
 | 
			
		||||
; * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
			
		||||
; * See the License for the specific language governing permissions and
 | 
			
		||||
; * limitations under the License.
 | 
			
		||||
; */
 | 
			
		||||
 | 
			
		||||
;//-------- <<< Use Configuration Wizard in Context Menu >>> ------------------
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
;<h> Stack Configuration
 | 
			
		||||
;  <o> Stack Size (in Bytes) <0x0-0xFFFFFFFF:8>
 | 
			
		||||
;</h>
 | 
			
		||||
 | 
			
		||||
Stack_Size      EQU      0x00000400
 | 
			
		||||
 | 
			
		||||
                AREA     STACK, NOINIT, READWRITE, ALIGN=3
 | 
			
		||||
__stack_limit
 | 
			
		||||
Stack_Mem       SPACE    Stack_Size
 | 
			
		||||
__initial_sp
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
;<h> Heap Configuration
 | 
			
		||||
;  <o> Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>
 | 
			
		||||
;</h>
 | 
			
		||||
 | 
			
		||||
Heap_Size       EQU      0x00000C00
 | 
			
		||||
 | 
			
		||||
                IF       Heap_Size != 0                      ; Heap is provided
 | 
			
		||||
                AREA     HEAP, NOINIT, READWRITE, ALIGN=3
 | 
			
		||||
__heap_base
 | 
			
		||||
Heap_Mem        SPACE    Heap_Size
 | 
			
		||||
__heap_limit
 | 
			
		||||
                ENDIF
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
                PRESERVE8
 | 
			
		||||
                THUMB
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
; Vector Table Mapped to Address 0 at Reset
 | 
			
		||||
 | 
			
		||||
                AREA     RESET, DATA, READONLY
 | 
			
		||||
                EXPORT   __Vectors
 | 
			
		||||
                EXPORT   __Vectors_End
 | 
			
		||||
                EXPORT   __Vectors_Size
 | 
			
		||||
 | 
			
		||||
__Vectors       DCD      __initial_sp                        ;     Top of Stack
 | 
			
		||||
                DCD      Reset_Handler                       ;     Reset Handler
 | 
			
		||||
                DCD      NMI_Handler                         ; -14 NMI Handler
 | 
			
		||||
                DCD      HardFault_Handler                   ; -13 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                         ;  -5 SVCall Handler
 | 
			
		||||
                DCD      0                                   ;     Reserved
 | 
			
		||||
                DCD      0                                   ;     Reserved
 | 
			
		||||
                DCD      PendSV_Handler                      ;  -2 PendSV Handler
 | 
			
		||||
                DCD      SysTick_Handler                     ;  -1 SysTick Handler
 | 
			
		||||
 | 
			
		||||
                ; Interrupts
 | 
			
		||||
                DCD      Interrupt0_Handler                  ;   0 Interrupt 0
 | 
			
		||||
                DCD      Interrupt1_Handler                  ;   1 Interrupt 1
 | 
			
		||||
                DCD      Interrupt2_Handler                  ;   2 Interrupt 2
 | 
			
		||||
                DCD      Interrupt3_Handler                  ;   3 Interrupt 3
 | 
			
		||||
                DCD      Interrupt4_Handler                  ;   4 Interrupt 4
 | 
			
		||||
                DCD      Interrupt5_Handler                  ;   5 Interrupt 5
 | 
			
		||||
                DCD      Interrupt6_Handler                  ;   6 Interrupt 6
 | 
			
		||||
                DCD      Interrupt7_Handler                  ;   7 Interrupt 7
 | 
			
		||||
                DCD      Interrupt8_Handler                  ;   8 Interrupt 8
 | 
			
		||||
                DCD      Interrupt9_Handler                  ;   9 Interrupt 9
 | 
			
		||||
 | 
			
		||||
                SPACE    ( 22 * 4)                           ; Interrupts 10 .. 31 are left out
 | 
			
		||||
__Vectors_End
 | 
			
		||||
__Vectors_Size  EQU      __Vectors_End - __Vectors
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
                AREA     |.text|, CODE, READONLY
 | 
			
		||||
 | 
			
		||||
; Reset Handler
 | 
			
		||||
 | 
			
		||||
Reset_Handler   PROC
 | 
			
		||||
                EXPORT   Reset_Handler             [WEAK]
 | 
			
		||||
                IMPORT   SystemInit
 | 
			
		||||
                IMPORT   __main
 | 
			
		||||
 | 
			
		||||
                LDR      R0, =SystemInit
 | 
			
		||||
                BLX      R0
 | 
			
		||||
                LDR      R0, =__main
 | 
			
		||||
                BX       R0
 | 
			
		||||
                ENDP
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
; Macro to define default exception/interrupt handlers.
 | 
			
		||||
; Default handler are weak symbols with an endless loop.
 | 
			
		||||
; They can be overwritten by real handlers.
 | 
			
		||||
                MACRO
 | 
			
		||||
                Set_Default_Handler  $Handler_Name
 | 
			
		||||
$Handler_Name   PROC
 | 
			
		||||
                EXPORT   $Handler_Name             [WEAK]
 | 
			
		||||
                B        .
 | 
			
		||||
                ENDP
 | 
			
		||||
                MEND
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
; Default exception/interrupt handler
 | 
			
		||||
 | 
			
		||||
                Set_Default_Handler  NMI_Handler
 | 
			
		||||
                Set_Default_Handler  HardFault_Handler
 | 
			
		||||
                Set_Default_Handler  SVC_Handler
 | 
			
		||||
                Set_Default_Handler  PendSV_Handler
 | 
			
		||||
                Set_Default_Handler  SysTick_Handler
 | 
			
		||||
 | 
			
		||||
                Set_Default_Handler  Interrupt0_Handler
 | 
			
		||||
                Set_Default_Handler  Interrupt1_Handler
 | 
			
		||||
                Set_Default_Handler  Interrupt2_Handler
 | 
			
		||||
                Set_Default_Handler  Interrupt3_Handler
 | 
			
		||||
                Set_Default_Handler  Interrupt4_Handler
 | 
			
		||||
                Set_Default_Handler  Interrupt5_Handler
 | 
			
		||||
                Set_Default_Handler  Interrupt6_Handler
 | 
			
		||||
                Set_Default_Handler  Interrupt7_Handler
 | 
			
		||||
                Set_Default_Handler  Interrupt8_Handler
 | 
			
		||||
                Set_Default_Handler  Interrupt9_Handler
 | 
			
		||||
 | 
			
		||||
                ALIGN
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
; User setup Stack & Heap
 | 
			
		||||
 | 
			
		||||
                EXPORT   __stack_limit
 | 
			
		||||
                EXPORT   __initial_sp
 | 
			
		||||
                IF       Heap_Size != 0                      ; Heap is provided
 | 
			
		||||
                EXPORT   __heap_base
 | 
			
		||||
                EXPORT   __heap_limit
 | 
			
		||||
                ENDIF
 | 
			
		||||
 | 
			
		||||
                END
 | 
			
		||||
@ -0,0 +1,56 @@
 | 
			
		||||
/**************************************************************************//**
 | 
			
		||||
 * @file     system_ARMCM0.c
 | 
			
		||||
 * @brief    CMSIS Device System Source File for
 | 
			
		||||
 *           ARMCM0 Device
 | 
			
		||||
 * @version  V5.3.1
 | 
			
		||||
 * @date     09. July 2018
 | 
			
		||||
 ******************************************************************************/
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright (c) 2009-2018 Arm Limited. All rights reserved.
 | 
			
		||||
 *
 | 
			
		||||
 * SPDX-License-Identifier: Apache-2.0
 | 
			
		||||
 *
 | 
			
		||||
 * Licensed under the Apache License, Version 2.0 (the License); you may
 | 
			
		||||
 * not use this file except in compliance with the License.
 | 
			
		||||
 * You may obtain a copy of the License at
 | 
			
		||||
 *
 | 
			
		||||
 * www.apache.org/licenses/LICENSE-2.0
 | 
			
		||||
 *
 | 
			
		||||
 * Unless required by applicable law or agreed to in writing, software
 | 
			
		||||
 * distributed under the License is distributed on an AS IS BASIS, WITHOUT
 | 
			
		||||
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
			
		||||
 * See the License for the specific language governing permissions and
 | 
			
		||||
 * limitations under the License.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include "ARMCM0.h"
 | 
			
		||||
 | 
			
		||||
/*----------------------------------------------------------------------------
 | 
			
		||||
  Define clocks
 | 
			
		||||
 *----------------------------------------------------------------------------*/
 | 
			
		||||
#define  XTAL            (50000000UL)     /* Oscillator frequency */
 | 
			
		||||
 | 
			
		||||
#define  SYSTEM_CLOCK    (XTAL / 2U)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*----------------------------------------------------------------------------
 | 
			
		||||
  System Core Clock Variable
 | 
			
		||||
 *----------------------------------------------------------------------------*/
 | 
			
		||||
uint32_t SystemCoreClock = SYSTEM_CLOCK;  /* System Core Clock Frequency */
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*----------------------------------------------------------------------------
 | 
			
		||||
  System Core Clock update function
 | 
			
		||||
 *----------------------------------------------------------------------------*/
 | 
			
		||||
void SystemCoreClockUpdate (void)
 | 
			
		||||
{
 | 
			
		||||
  SystemCoreClock = SYSTEM_CLOCK;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/*----------------------------------------------------------------------------
 | 
			
		||||
  System initialization function
 | 
			
		||||
 *----------------------------------------------------------------------------*/
 | 
			
		||||
void SystemInit (void)
 | 
			
		||||
{
 | 
			
		||||
  SystemCoreClock = SYSTEM_CLOCK;
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,163 @@
 | 
			
		||||
;/**************************************************************************//**
 | 
			
		||||
; * @file     startup_ARMCM3.s
 | 
			
		||||
; * @brief    CMSIS Core Device Startup File for
 | 
			
		||||
; *           ARMCM3 Device
 | 
			
		||||
; * @version  V5.3.1
 | 
			
		||||
; * @date     09. July 2018
 | 
			
		||||
; ******************************************************************************/
 | 
			
		||||
;/*
 | 
			
		||||
; * Copyright (c) 2009-2018 Arm Limited. All rights reserved.
 | 
			
		||||
; *
 | 
			
		||||
; * SPDX-License-Identifier: Apache-2.0
 | 
			
		||||
; *
 | 
			
		||||
; * Licensed under the Apache License, Version 2.0 (the License); you may
 | 
			
		||||
; * not use this file except in compliance with the License.
 | 
			
		||||
; * You may obtain a copy of the License at
 | 
			
		||||
; *
 | 
			
		||||
; * www.apache.org/licenses/LICENSE-2.0
 | 
			
		||||
; *
 | 
			
		||||
; * Unless required by applicable law or agreed to in writing, software
 | 
			
		||||
; * distributed under the License is distributed on an AS IS BASIS, WITHOUT
 | 
			
		||||
; * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
			
		||||
; * See the License for the specific language governing permissions and
 | 
			
		||||
; * limitations under the License.
 | 
			
		||||
; */
 | 
			
		||||
 | 
			
		||||
;//-------- <<< Use Configuration Wizard in Context Menu >>> ------------------
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
;<h> Stack Configuration
 | 
			
		||||
;  <o> Stack Size (in Bytes) <0x0-0xFFFFFFFF:8>
 | 
			
		||||
;</h>
 | 
			
		||||
 | 
			
		||||
Stack_Size      EQU      0x00000400
 | 
			
		||||
 | 
			
		||||
                AREA     STACK, NOINIT, READWRITE, ALIGN=3
 | 
			
		||||
__stack_limit
 | 
			
		||||
Stack_Mem       SPACE    Stack_Size
 | 
			
		||||
__initial_sp
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
;<h> Heap Configuration
 | 
			
		||||
;  <o> Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>
 | 
			
		||||
;</h>
 | 
			
		||||
 | 
			
		||||
Heap_Size       EQU      0x00000C00
 | 
			
		||||
 | 
			
		||||
                IF       Heap_Size != 0                      ; Heap is provided
 | 
			
		||||
                AREA     HEAP, NOINIT, READWRITE, ALIGN=3
 | 
			
		||||
__heap_base
 | 
			
		||||
Heap_Mem        SPACE    Heap_Size
 | 
			
		||||
__heap_limit
 | 
			
		||||
                ENDIF
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
                PRESERVE8
 | 
			
		||||
                THUMB
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
; Vector Table Mapped to Address 0 at Reset
 | 
			
		||||
 | 
			
		||||
                AREA     RESET, DATA, READONLY
 | 
			
		||||
                EXPORT   __Vectors
 | 
			
		||||
                EXPORT   __Vectors_End
 | 
			
		||||
                EXPORT   __Vectors_Size
 | 
			
		||||
 | 
			
		||||
__Vectors       DCD      __initial_sp                        ;     Top of Stack
 | 
			
		||||
                DCD      Reset_Handler                       ;     Reset Handler
 | 
			
		||||
                DCD      NMI_Handler                         ; -14 NMI Handler
 | 
			
		||||
                DCD      HardFault_Handler                   ; -13 Hard Fault Handler
 | 
			
		||||
                DCD      MemManage_Handler                   ; -12 MPU Fault Handler
 | 
			
		||||
                DCD      BusFault_Handler                    ; -11 Bus Fault Handler
 | 
			
		||||
                DCD      UsageFault_Handler                  ; -10 Usage Fault Handler
 | 
			
		||||
                DCD      0                                   ;     Reserved
 | 
			
		||||
                DCD      0                                   ;     Reserved
 | 
			
		||||
                DCD      0                                   ;     Reserved
 | 
			
		||||
                DCD      0                                   ;     Reserved
 | 
			
		||||
                DCD      SVC_Handler                         ;  -5 SVCall Handler
 | 
			
		||||
                DCD      DebugMon_Handler                    ;  -4 Debug Monitor Handler
 | 
			
		||||
                DCD      0                                   ;     Reserved
 | 
			
		||||
                DCD      PendSV_Handler                      ;  -2 PendSV Handler
 | 
			
		||||
                DCD      SysTick_Handler                     ;  -1 SysTick Handler
 | 
			
		||||
 | 
			
		||||
                ; Interrupts
 | 
			
		||||
                DCD      Interrupt0_Handler                  ;   0 Interrupt 0
 | 
			
		||||
                DCD      Interrupt1_Handler                  ;   1 Interrupt 1
 | 
			
		||||
                DCD      Interrupt2_Handler                  ;   2 Interrupt 2
 | 
			
		||||
                DCD      Interrupt3_Handler                  ;   3 Interrupt 3
 | 
			
		||||
                DCD      Interrupt4_Handler                  ;   4 Interrupt 4
 | 
			
		||||
                DCD      Interrupt5_Handler                  ;   5 Interrupt 5
 | 
			
		||||
                DCD      Interrupt6_Handler                  ;   6 Interrupt 6
 | 
			
		||||
                DCD      Interrupt7_Handler                  ;   7 Interrupt 7
 | 
			
		||||
                DCD      Interrupt8_Handler                  ;   8 Interrupt 8
 | 
			
		||||
                DCD      Interrupt9_Handler                  ;   9 Interrupt 9
 | 
			
		||||
 | 
			
		||||
                SPACE    (214 * 4)                           ; Interrupts 10 .. 224 are left out
 | 
			
		||||
__Vectors_End
 | 
			
		||||
__Vectors_Size  EQU      __Vectors_End - __Vectors
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
                AREA     |.text|, CODE, READONLY
 | 
			
		||||
 | 
			
		||||
; Reset Handler
 | 
			
		||||
 | 
			
		||||
Reset_Handler   PROC
 | 
			
		||||
                EXPORT   Reset_Handler             [WEAK]
 | 
			
		||||
                IMPORT   SystemInit
 | 
			
		||||
                IMPORT   __main
 | 
			
		||||
 | 
			
		||||
                LDR      R0, =SystemInit
 | 
			
		||||
                BLX      R0
 | 
			
		||||
                LDR      R0, =__main
 | 
			
		||||
                BX       R0
 | 
			
		||||
                ENDP
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
; Macro to define default exception/interrupt handlers.
 | 
			
		||||
; Default handler are weak symbols with an endless loop.
 | 
			
		||||
; They can be overwritten by real handlers.
 | 
			
		||||
                MACRO
 | 
			
		||||
                Set_Default_Handler  $Handler_Name
 | 
			
		||||
$Handler_Name   PROC
 | 
			
		||||
                EXPORT   $Handler_Name             [WEAK]
 | 
			
		||||
                B        .
 | 
			
		||||
                ENDP
 | 
			
		||||
                MEND
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
; Default exception/interrupt handler
 | 
			
		||||
 | 
			
		||||
                Set_Default_Handler  NMI_Handler
 | 
			
		||||
                Set_Default_Handler  HardFault_Handler
 | 
			
		||||
                Set_Default_Handler  MemManage_Handler
 | 
			
		||||
                Set_Default_Handler  BusFault_Handler
 | 
			
		||||
                Set_Default_Handler  UsageFault_Handler
 | 
			
		||||
                Set_Default_Handler  SVC_Handler
 | 
			
		||||
                Set_Default_Handler  DebugMon_Handler
 | 
			
		||||
                Set_Default_Handler  PendSV_Handler
 | 
			
		||||
                Set_Default_Handler  SysTick_Handler
 | 
			
		||||
 | 
			
		||||
                Set_Default_Handler  Interrupt0_Handler
 | 
			
		||||
                Set_Default_Handler  Interrupt1_Handler
 | 
			
		||||
                Set_Default_Handler  Interrupt2_Handler
 | 
			
		||||
                Set_Default_Handler  Interrupt3_Handler
 | 
			
		||||
                Set_Default_Handler  Interrupt4_Handler
 | 
			
		||||
                Set_Default_Handler  Interrupt5_Handler
 | 
			
		||||
                Set_Default_Handler  Interrupt6_Handler
 | 
			
		||||
                Set_Default_Handler  Interrupt7_Handler
 | 
			
		||||
                Set_Default_Handler  Interrupt8_Handler
 | 
			
		||||
                Set_Default_Handler  Interrupt9_Handler
 | 
			
		||||
 | 
			
		||||
                ALIGN
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
; User setup Stack & Heap
 | 
			
		||||
 | 
			
		||||
                EXPORT   __stack_limit
 | 
			
		||||
                EXPORT   __initial_sp
 | 
			
		||||
                IF       Heap_Size != 0                      ; Heap is provided
 | 
			
		||||
                EXPORT   __heap_base
 | 
			
		||||
                EXPORT   __heap_limit
 | 
			
		||||
                ENDIF
 | 
			
		||||
 | 
			
		||||
                END
 | 
			
		||||
@ -0,0 +1,68 @@
 | 
			
		||||
/**************************************************************************//**
 | 
			
		||||
 * @file     system_ARMCM3.c
 | 
			
		||||
 * @brief    CMSIS Device System Source File for
 | 
			
		||||
 *           ARMCM3 Device
 | 
			
		||||
 * @version  V5.3.1
 | 
			
		||||
 * @date     09. July 2018
 | 
			
		||||
 ******************************************************************************/
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright (c) 2009-2018 Arm Limited. All rights reserved.
 | 
			
		||||
 *
 | 
			
		||||
 * SPDX-License-Identifier: Apache-2.0
 | 
			
		||||
 *
 | 
			
		||||
 * Licensed under the Apache License, Version 2.0 (the License); you may
 | 
			
		||||
 * not use this file except in compliance with the License.
 | 
			
		||||
 * You may obtain a copy of the License at
 | 
			
		||||
 *
 | 
			
		||||
 * www.apache.org/licenses/LICENSE-2.0
 | 
			
		||||
 *
 | 
			
		||||
 * Unless required by applicable law or agreed to in writing, software
 | 
			
		||||
 * distributed under the License is distributed on an AS IS BASIS, WITHOUT
 | 
			
		||||
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
			
		||||
 * See the License for the specific language governing permissions and
 | 
			
		||||
 * limitations under the License.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include "ARMCM3.h"
 | 
			
		||||
 | 
			
		||||
/*----------------------------------------------------------------------------
 | 
			
		||||
  Define clocks
 | 
			
		||||
 *----------------------------------------------------------------------------*/
 | 
			
		||||
#define  XTAL            (50000000UL)     /* Oscillator frequency */
 | 
			
		||||
 | 
			
		||||
#define  SYSTEM_CLOCK    (XTAL / 2U)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*----------------------------------------------------------------------------
 | 
			
		||||
  Externals
 | 
			
		||||
 *----------------------------------------------------------------------------*/
 | 
			
		||||
#if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U)
 | 
			
		||||
  extern uint32_t __Vectors;
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/*----------------------------------------------------------------------------
 | 
			
		||||
  System Core Clock Variable
 | 
			
		||||
 *----------------------------------------------------------------------------*/
 | 
			
		||||
uint32_t SystemCoreClock = SYSTEM_CLOCK;  /* System Core Clock Frequency */
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*----------------------------------------------------------------------------
 | 
			
		||||
  System Core Clock update function
 | 
			
		||||
 *----------------------------------------------------------------------------*/
 | 
			
		||||
void SystemCoreClockUpdate (void)
 | 
			
		||||
{
 | 
			
		||||
  SystemCoreClock = SYSTEM_CLOCK;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/*----------------------------------------------------------------------------
 | 
			
		||||
  System initialization function
 | 
			
		||||
 *----------------------------------------------------------------------------*/
 | 
			
		||||
void SystemInit (void)
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
#if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U)
 | 
			
		||||
  SCB->VTOR = (uint32_t) &__Vectors;
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
  SystemCoreClock = SYSTEM_CLOCK;
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,163 @@
 | 
			
		||||
;/**************************************************************************//**
 | 
			
		||||
; * @file     startup_ARMCM4.s
 | 
			
		||||
; * @brief    CMSIS Core Device Startup File for
 | 
			
		||||
; *           ARMCM4 Device
 | 
			
		||||
; * @version  V5.3.1
 | 
			
		||||
; * @date     09. July 2018
 | 
			
		||||
; ******************************************************************************/
 | 
			
		||||
;/*
 | 
			
		||||
; * Copyright (c) 2009-2018 Arm Limited. All rights reserved.
 | 
			
		||||
; *
 | 
			
		||||
; * SPDX-License-Identifier: Apache-2.0
 | 
			
		||||
; *
 | 
			
		||||
; * Licensed under the Apache License, Version 2.0 (the License); you may
 | 
			
		||||
; * not use this file except in compliance with the License.
 | 
			
		||||
; * You may obtain a copy of the License at
 | 
			
		||||
; *
 | 
			
		||||
; * www.apache.org/licenses/LICENSE-2.0
 | 
			
		||||
; *
 | 
			
		||||
; * Unless required by applicable law or agreed to in writing, software
 | 
			
		||||
; * distributed under the License is distributed on an AS IS BASIS, WITHOUT
 | 
			
		||||
; * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
			
		||||
; * See the License for the specific language governing permissions and
 | 
			
		||||
; * limitations under the License.
 | 
			
		||||
; */
 | 
			
		||||
 | 
			
		||||
;//-------- <<< Use Configuration Wizard in Context Menu >>> ------------------
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
;<h> Stack Configuration
 | 
			
		||||
;  <o> Stack Size (in Bytes) <0x0-0xFFFFFFFF:8>
 | 
			
		||||
;</h>
 | 
			
		||||
 | 
			
		||||
Stack_Size      EQU      0x00000400
 | 
			
		||||
 | 
			
		||||
                AREA     STACK, NOINIT, READWRITE, ALIGN=3
 | 
			
		||||
__stack_limit
 | 
			
		||||
Stack_Mem       SPACE    Stack_Size
 | 
			
		||||
__initial_sp
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
;<h> Heap Configuration
 | 
			
		||||
;  <o> Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>
 | 
			
		||||
;</h>
 | 
			
		||||
 | 
			
		||||
Heap_Size       EQU      0x00000C00
 | 
			
		||||
 | 
			
		||||
                IF       Heap_Size != 0                      ; Heap is provided
 | 
			
		||||
                AREA     HEAP, NOINIT, READWRITE, ALIGN=3
 | 
			
		||||
__heap_base
 | 
			
		||||
Heap_Mem        SPACE    Heap_Size
 | 
			
		||||
__heap_limit
 | 
			
		||||
                ENDIF
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
                PRESERVE8
 | 
			
		||||
                THUMB
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
; Vector Table Mapped to Address 0 at Reset
 | 
			
		||||
 | 
			
		||||
                AREA     RESET, DATA, READONLY
 | 
			
		||||
                EXPORT   __Vectors
 | 
			
		||||
                EXPORT   __Vectors_End
 | 
			
		||||
                EXPORT   __Vectors_Size
 | 
			
		||||
 | 
			
		||||
__Vectors       DCD      __initial_sp                        ;     Top of Stack
 | 
			
		||||
                DCD      Reset_Handler                       ;     Reset Handler
 | 
			
		||||
                DCD      NMI_Handler                         ; -14 NMI Handler
 | 
			
		||||
                DCD      HardFault_Handler                   ; -13 Hard Fault Handler
 | 
			
		||||
                DCD      MemManage_Handler                   ; -12 MPU Fault Handler
 | 
			
		||||
                DCD      BusFault_Handler                    ; -11 Bus Fault Handler
 | 
			
		||||
                DCD      UsageFault_Handler                  ; -10 Usage Fault Handler
 | 
			
		||||
                DCD      0                                   ;     Reserved
 | 
			
		||||
                DCD      0                                   ;     Reserved
 | 
			
		||||
                DCD      0                                   ;     Reserved
 | 
			
		||||
                DCD      0                                   ;     Reserved
 | 
			
		||||
                DCD      SVC_Handler                         ;  -5 SVCall Handler
 | 
			
		||||
                DCD      DebugMon_Handler                    ;  -4 Debug Monitor Handler
 | 
			
		||||
                DCD      0                                   ;     Reserved
 | 
			
		||||
                DCD      PendSV_Handler                      ;  -2 PendSV Handler
 | 
			
		||||
                DCD      SysTick_Handler                     ;  -1 SysTick Handler
 | 
			
		||||
 | 
			
		||||
                ; Interrupts
 | 
			
		||||
                DCD      Interrupt0_Handler                  ;   0 Interrupt 0
 | 
			
		||||
                DCD      Interrupt1_Handler                  ;   1 Interrupt 1
 | 
			
		||||
                DCD      Interrupt2_Handler                  ;   2 Interrupt 2
 | 
			
		||||
                DCD      Interrupt3_Handler                  ;   3 Interrupt 3
 | 
			
		||||
                DCD      Interrupt4_Handler                  ;   4 Interrupt 4
 | 
			
		||||
                DCD      Interrupt5_Handler                  ;   5 Interrupt 5
 | 
			
		||||
                DCD      Interrupt6_Handler                  ;   6 Interrupt 6
 | 
			
		||||
                DCD      Interrupt7_Handler                  ;   7 Interrupt 7
 | 
			
		||||
                DCD      Interrupt8_Handler                  ;   8 Interrupt 8
 | 
			
		||||
                DCD      Interrupt9_Handler                  ;   9 Interrupt 9
 | 
			
		||||
 | 
			
		||||
                SPACE    (214 * 4)                           ; Interrupts 10 .. 224 are left out
 | 
			
		||||
__Vectors_End
 | 
			
		||||
__Vectors_Size  EQU      __Vectors_End - __Vectors
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
                AREA     |.text|, CODE, READONLY
 | 
			
		||||
 | 
			
		||||
; Reset Handler
 | 
			
		||||
 | 
			
		||||
Reset_Handler   PROC
 | 
			
		||||
                EXPORT   Reset_Handler             [WEAK]
 | 
			
		||||
                IMPORT   SystemInit
 | 
			
		||||
                IMPORT   __main
 | 
			
		||||
 | 
			
		||||
                LDR      R0, =SystemInit
 | 
			
		||||
                BLX      R0
 | 
			
		||||
                LDR      R0, =__main
 | 
			
		||||
                BX       R0
 | 
			
		||||
                ENDP
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
; Macro to define default exception/interrupt handlers.
 | 
			
		||||
; Default handler are weak symbols with an endless loop.
 | 
			
		||||
; They can be overwritten by real handlers.
 | 
			
		||||
                MACRO
 | 
			
		||||
                Set_Default_Handler  $Handler_Name
 | 
			
		||||
$Handler_Name   PROC
 | 
			
		||||
                EXPORT   $Handler_Name             [WEAK]
 | 
			
		||||
                B        .
 | 
			
		||||
                ENDP
 | 
			
		||||
                MEND
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
; Default exception/interrupt handler
 | 
			
		||||
 | 
			
		||||
                Set_Default_Handler  NMI_Handler
 | 
			
		||||
                Set_Default_Handler  HardFault_Handler
 | 
			
		||||
                Set_Default_Handler  MemManage_Handler
 | 
			
		||||
                Set_Default_Handler  BusFault_Handler
 | 
			
		||||
                Set_Default_Handler  UsageFault_Handler
 | 
			
		||||
                Set_Default_Handler  SVC_Handler
 | 
			
		||||
                Set_Default_Handler  DebugMon_Handler
 | 
			
		||||
                Set_Default_Handler  PendSV_Handler
 | 
			
		||||
                Set_Default_Handler  SysTick_Handler
 | 
			
		||||
 | 
			
		||||
                Set_Default_Handler  Interrupt0_Handler
 | 
			
		||||
                Set_Default_Handler  Interrupt1_Handler
 | 
			
		||||
                Set_Default_Handler  Interrupt2_Handler
 | 
			
		||||
                Set_Default_Handler  Interrupt3_Handler
 | 
			
		||||
                Set_Default_Handler  Interrupt4_Handler
 | 
			
		||||
                Set_Default_Handler  Interrupt5_Handler
 | 
			
		||||
                Set_Default_Handler  Interrupt6_Handler
 | 
			
		||||
                Set_Default_Handler  Interrupt7_Handler
 | 
			
		||||
                Set_Default_Handler  Interrupt8_Handler
 | 
			
		||||
                Set_Default_Handler  Interrupt9_Handler
 | 
			
		||||
 | 
			
		||||
                ALIGN
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
; User setup Stack & Heap
 | 
			
		||||
 | 
			
		||||
                EXPORT   __stack_limit
 | 
			
		||||
                EXPORT   __initial_sp
 | 
			
		||||
                IF       Heap_Size != 0                      ; Heap is provided
 | 
			
		||||
                EXPORT   __heap_base
 | 
			
		||||
                EXPORT   __heap_limit
 | 
			
		||||
                ENDIF
 | 
			
		||||
 | 
			
		||||
                END
 | 
			
		||||
@ -0,0 +1,83 @@
 | 
			
		||||
/**************************************************************************//**
 | 
			
		||||
 * @file     system_ARMCM4.c
 | 
			
		||||
 * @brief    CMSIS Device System Source File for
 | 
			
		||||
 *           ARMCM4 Device
 | 
			
		||||
 * @version  V5.3.1
 | 
			
		||||
 * @date     09. July 2018
 | 
			
		||||
 ******************************************************************************/
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright (c) 2009-2018 Arm Limited. All rights reserved.
 | 
			
		||||
 *
 | 
			
		||||
 * SPDX-License-Identifier: Apache-2.0
 | 
			
		||||
 *
 | 
			
		||||
 * Licensed under the Apache License, Version 2.0 (the License); you may
 | 
			
		||||
 * not use this file except in compliance with the License.
 | 
			
		||||
 * You may obtain a copy of the License at
 | 
			
		||||
 *
 | 
			
		||||
 * www.apache.org/licenses/LICENSE-2.0
 | 
			
		||||
 *
 | 
			
		||||
 * Unless required by applicable law or agreed to in writing, software
 | 
			
		||||
 * distributed under the License is distributed on an AS IS BASIS, WITHOUT
 | 
			
		||||
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
			
		||||
 * See the License for the specific language governing permissions and
 | 
			
		||||
 * limitations under the License.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#if defined (ARMCM4)
 | 
			
		||||
  #include "ARMCM4.h"
 | 
			
		||||
#elif defined (ARMCM4_FP)
 | 
			
		||||
  #include "ARMCM4_FP.h"
 | 
			
		||||
#else
 | 
			
		||||
  #error device not specified!
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/*----------------------------------------------------------------------------
 | 
			
		||||
  Define clocks
 | 
			
		||||
 *----------------------------------------------------------------------------*/
 | 
			
		||||
#define  XTAL            (50000000UL)     /* Oscillator frequency */
 | 
			
		||||
 | 
			
		||||
#define  SYSTEM_CLOCK    (XTAL / 2U)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*----------------------------------------------------------------------------
 | 
			
		||||
  Externals
 | 
			
		||||
 *----------------------------------------------------------------------------*/
 | 
			
		||||
#if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U)
 | 
			
		||||
  extern uint32_t __Vectors;
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/*----------------------------------------------------------------------------
 | 
			
		||||
  System Core Clock Variable
 | 
			
		||||
 *----------------------------------------------------------------------------*/
 | 
			
		||||
uint32_t SystemCoreClock = SYSTEM_CLOCK;  /* System Core Clock Frequency */
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*----------------------------------------------------------------------------
 | 
			
		||||
  System Core Clock update function
 | 
			
		||||
 *----------------------------------------------------------------------------*/
 | 
			
		||||
void SystemCoreClockUpdate (void)
 | 
			
		||||
{
 | 
			
		||||
  SystemCoreClock = SYSTEM_CLOCK;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/*----------------------------------------------------------------------------
 | 
			
		||||
  System initialization function
 | 
			
		||||
 *----------------------------------------------------------------------------*/
 | 
			
		||||
void SystemInit (void)
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
#if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U)
 | 
			
		||||
  SCB->VTOR = (uint32_t) &__Vectors;
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if defined (__FPU_USED) && (__FPU_USED == 1U)
 | 
			
		||||
  SCB->CPACR |= ((3U << 10U*2U) |           /* enable CP10 Full Access */
 | 
			
		||||
                 (3U << 11U*2U)  );         /* enable CP11 Full Access */
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifdef UNALIGNED_SUPPORT_DISABLE
 | 
			
		||||
  SCB->CCR |= SCB_CCR_UNALIGN_TRP_Msk;
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
  SystemCoreClock = SYSTEM_CLOCK;
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,163 @@
 | 
			
		||||
;/**************************************************************************//**
 | 
			
		||||
; * @file     startup_ARMCM7.s
 | 
			
		||||
; * @brief    CMSIS Core Device Startup File for
 | 
			
		||||
; *           ARMCM7 Device
 | 
			
		||||
; * @version  V5.3.1
 | 
			
		||||
; * @date     09. July 2018
 | 
			
		||||
; ******************************************************************************/
 | 
			
		||||
;/*
 | 
			
		||||
; * Copyright (c) 2009-2018 Arm Limited. All rights reserved.
 | 
			
		||||
; *
 | 
			
		||||
; * SPDX-License-Identifier: Apache-2.0
 | 
			
		||||
; *
 | 
			
		||||
; * Licensed under the Apache License, Version 2.0 (the License); you may
 | 
			
		||||
; * not use this file except in compliance with the License.
 | 
			
		||||
; * You may obtain a copy of the License at
 | 
			
		||||
; *
 | 
			
		||||
; * www.apache.org/licenses/LICENSE-2.0
 | 
			
		||||
; *
 | 
			
		||||
; * Unless required by applicable law or agreed to in writing, software
 | 
			
		||||
; * distributed under the License is distributed on an AS IS BASIS, WITHOUT
 | 
			
		||||
; * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
			
		||||
; * See the License for the specific language governing permissions and
 | 
			
		||||
; * limitations under the License.
 | 
			
		||||
; */
 | 
			
		||||
 | 
			
		||||
;//-------- <<< Use Configuration Wizard in Context Menu >>> ------------------
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
;<h> Stack Configuration
 | 
			
		||||
;  <o> Stack Size (in Bytes) <0x0-0xFFFFFFFF:8>
 | 
			
		||||
;</h>
 | 
			
		||||
 | 
			
		||||
Stack_Size      EQU      0x00000400
 | 
			
		||||
 | 
			
		||||
                AREA     STACK, NOINIT, READWRITE, ALIGN=3
 | 
			
		||||
__stack_limit
 | 
			
		||||
Stack_Mem       SPACE    Stack_Size
 | 
			
		||||
__initial_sp
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
;<h> Heap Configuration
 | 
			
		||||
;  <o> Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>
 | 
			
		||||
;</h>
 | 
			
		||||
 | 
			
		||||
Heap_Size       EQU      0x00000C00
 | 
			
		||||
 | 
			
		||||
                IF       Heap_Size != 0                      ; Heap is provided
 | 
			
		||||
                AREA     HEAP, NOINIT, READWRITE, ALIGN=3
 | 
			
		||||
__heap_base
 | 
			
		||||
Heap_Mem        SPACE    Heap_Size
 | 
			
		||||
__heap_limit
 | 
			
		||||
                ENDIF
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
                PRESERVE8
 | 
			
		||||
                THUMB
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
; Vector Table Mapped to Address 0 at Reset
 | 
			
		||||
 | 
			
		||||
                AREA     RESET, DATA, READONLY
 | 
			
		||||
                EXPORT   __Vectors
 | 
			
		||||
                EXPORT   __Vectors_End
 | 
			
		||||
                EXPORT   __Vectors_Size
 | 
			
		||||
 | 
			
		||||
__Vectors       DCD      __initial_sp                        ;     Top of Stack
 | 
			
		||||
                DCD      Reset_Handler                       ;     Reset Handler
 | 
			
		||||
                DCD      NMI_Handler                         ; -14 NMI Handler
 | 
			
		||||
                DCD      HardFault_Handler                   ; -13 Hard Fault Handler
 | 
			
		||||
                DCD      MemManage_Handler                   ; -12 MPU Fault Handler
 | 
			
		||||
                DCD      BusFault_Handler                    ; -11 Bus Fault Handler
 | 
			
		||||
                DCD      UsageFault_Handler                  ; -10 Usage Fault Handler
 | 
			
		||||
                DCD      0                                   ;     Reserved
 | 
			
		||||
                DCD      0                                   ;     Reserved
 | 
			
		||||
                DCD      0                                   ;     Reserved
 | 
			
		||||
                DCD      0                                   ;     Reserved
 | 
			
		||||
                DCD      SVC_Handler                         ;  -5 SVCall Handler
 | 
			
		||||
                DCD      DebugMon_Handler                    ;  -4 Debug Monitor Handler
 | 
			
		||||
                DCD      0                                   ;     Reserved
 | 
			
		||||
                DCD      PendSV_Handler                      ;  -2 PendSV Handler
 | 
			
		||||
                DCD      SysTick_Handler                     ;  -1 SysTick Handler
 | 
			
		||||
 | 
			
		||||
                ; Interrupts
 | 
			
		||||
                DCD      Interrupt0_Handler                  ;   0 Interrupt 0
 | 
			
		||||
                DCD      Interrupt1_Handler                  ;   1 Interrupt 1
 | 
			
		||||
                DCD      Interrupt2_Handler                  ;   2 Interrupt 2
 | 
			
		||||
                DCD      Interrupt3_Handler                  ;   3 Interrupt 3
 | 
			
		||||
                DCD      Interrupt4_Handler                  ;   4 Interrupt 4
 | 
			
		||||
                DCD      Interrupt5_Handler                  ;   5 Interrupt 5
 | 
			
		||||
                DCD      Interrupt6_Handler                  ;   6 Interrupt 6
 | 
			
		||||
                DCD      Interrupt7_Handler                  ;   7 Interrupt 7
 | 
			
		||||
                DCD      Interrupt8_Handler                  ;   8 Interrupt 8
 | 
			
		||||
                DCD      Interrupt9_Handler                  ;   9 Interrupt 9
 | 
			
		||||
 | 
			
		||||
                SPACE    (214 * 4)                           ; Interrupts 10 .. 224 are left out
 | 
			
		||||
__Vectors_End
 | 
			
		||||
__Vectors_Size  EQU      __Vectors_End - __Vectors
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
                AREA     |.text|, CODE, READONLY
 | 
			
		||||
 | 
			
		||||
; Reset Handler
 | 
			
		||||
 | 
			
		||||
Reset_Handler   PROC
 | 
			
		||||
                EXPORT   Reset_Handler             [WEAK]
 | 
			
		||||
                IMPORT   SystemInit
 | 
			
		||||
                IMPORT   __main
 | 
			
		||||
 | 
			
		||||
                LDR      R0, =SystemInit
 | 
			
		||||
                BLX      R0
 | 
			
		||||
                LDR      R0, =__main
 | 
			
		||||
                BX       R0
 | 
			
		||||
                ENDP
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
; Macro to define default exception/interrupt handlers.
 | 
			
		||||
; Default handler are weak symbols with an endless loop.
 | 
			
		||||
; They can be overwritten by real handlers.
 | 
			
		||||
                MACRO
 | 
			
		||||
                Set_Default_Handler  $Handler_Name
 | 
			
		||||
$Handler_Name   PROC
 | 
			
		||||
                EXPORT   $Handler_Name             [WEAK]
 | 
			
		||||
                B        .
 | 
			
		||||
                ENDP
 | 
			
		||||
                MEND
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
; Default exception/interrupt handler
 | 
			
		||||
 | 
			
		||||
                Set_Default_Handler  NMI_Handler
 | 
			
		||||
                Set_Default_Handler  HardFault_Handler
 | 
			
		||||
                Set_Default_Handler  MemManage_Handler
 | 
			
		||||
                Set_Default_Handler  BusFault_Handler
 | 
			
		||||
                Set_Default_Handler  UsageFault_Handler
 | 
			
		||||
                Set_Default_Handler  SVC_Handler
 | 
			
		||||
                Set_Default_Handler  DebugMon_Handler
 | 
			
		||||
                Set_Default_Handler  PendSV_Handler
 | 
			
		||||
                Set_Default_Handler  SysTick_Handler
 | 
			
		||||
 | 
			
		||||
                Set_Default_Handler  Interrupt0_Handler
 | 
			
		||||
                Set_Default_Handler  Interrupt1_Handler
 | 
			
		||||
                Set_Default_Handler  Interrupt2_Handler
 | 
			
		||||
                Set_Default_Handler  Interrupt3_Handler
 | 
			
		||||
                Set_Default_Handler  Interrupt4_Handler
 | 
			
		||||
                Set_Default_Handler  Interrupt5_Handler
 | 
			
		||||
                Set_Default_Handler  Interrupt6_Handler
 | 
			
		||||
                Set_Default_Handler  Interrupt7_Handler
 | 
			
		||||
                Set_Default_Handler  Interrupt8_Handler
 | 
			
		||||
                Set_Default_Handler  Interrupt9_Handler
 | 
			
		||||
 | 
			
		||||
                ALIGN
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
; User setup Stack & Heap
 | 
			
		||||
 | 
			
		||||
                EXPORT   __stack_limit
 | 
			
		||||
                EXPORT   __initial_sp
 | 
			
		||||
                IF       Heap_Size != 0                      ; Heap is provided
 | 
			
		||||
                EXPORT   __heap_base
 | 
			
		||||
                EXPORT   __heap_limit
 | 
			
		||||
                ENDIF
 | 
			
		||||
 | 
			
		||||
                END
 | 
			
		||||
@ -0,0 +1,85 @@
 | 
			
		||||
/**************************************************************************//**
 | 
			
		||||
 * @file     system_ARMCM7.c
 | 
			
		||||
 * @brief    CMSIS Device System Source File for
 | 
			
		||||
 *           ARMCM7 Device
 | 
			
		||||
 * @version  V5.3.1
 | 
			
		||||
 * @date     09. July 2018
 | 
			
		||||
 ******************************************************************************/
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright (c) 2009-2018 Arm Limited. All rights reserved.
 | 
			
		||||
 *
 | 
			
		||||
 * SPDX-License-Identifier: Apache-2.0
 | 
			
		||||
 *
 | 
			
		||||
 * Licensed under the Apache License, Version 2.0 (the License); you may
 | 
			
		||||
 * not use this file except in compliance with the License.
 | 
			
		||||
 * You may obtain a copy of the License at
 | 
			
		||||
 *
 | 
			
		||||
 * www.apache.org/licenses/LICENSE-2.0
 | 
			
		||||
 *
 | 
			
		||||
 * Unless required by applicable law or agreed to in writing, software
 | 
			
		||||
 * distributed under the License is distributed on an AS IS BASIS, WITHOUT
 | 
			
		||||
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
			
		||||
 * See the License for the specific language governing permissions and
 | 
			
		||||
 * limitations under the License.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#if defined (ARMCM7)
 | 
			
		||||
  #include "ARMCM7.h"
 | 
			
		||||
#elif defined (ARMCM7_SP)
 | 
			
		||||
  #include "ARMCM7_SP.h"
 | 
			
		||||
#elif defined (ARMCM7_DP)
 | 
			
		||||
  #include "ARMCM7_DP.h"
 | 
			
		||||
#else
 | 
			
		||||
  #error device not specified!
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/*----------------------------------------------------------------------------
 | 
			
		||||
  Define clocks
 | 
			
		||||
 *----------------------------------------------------------------------------*/
 | 
			
		||||
#define  XTAL            (50000000UL)     /* Oscillator frequency */
 | 
			
		||||
 | 
			
		||||
#define  SYSTEM_CLOCK    (XTAL / 2U)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*----------------------------------------------------------------------------
 | 
			
		||||
  Externals
 | 
			
		||||
 *----------------------------------------------------------------------------*/
 | 
			
		||||
#if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U)
 | 
			
		||||
  extern uint32_t __Vectors;
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/*----------------------------------------------------------------------------
 | 
			
		||||
  System Core Clock Variable
 | 
			
		||||
 *----------------------------------------------------------------------------*/
 | 
			
		||||
uint32_t SystemCoreClock = SYSTEM_CLOCK;  /* System Core Clock Frequency */
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*----------------------------------------------------------------------------
 | 
			
		||||
  System Core Clock update function
 | 
			
		||||
 *----------------------------------------------------------------------------*/
 | 
			
		||||
void SystemCoreClockUpdate (void)
 | 
			
		||||
{
 | 
			
		||||
  SystemCoreClock = SYSTEM_CLOCK;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/*----------------------------------------------------------------------------
 | 
			
		||||
  System initialization function
 | 
			
		||||
 *----------------------------------------------------------------------------*/
 | 
			
		||||
void SystemInit (void)
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
#if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U)
 | 
			
		||||
  SCB->VTOR = (uint32_t) &__Vectors;
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if defined (__FPU_USED) && (__FPU_USED == 1U)
 | 
			
		||||
  SCB->CPACR |= ((3U << 10U*2U) |           /* enable CP10 Full Access */
 | 
			
		||||
                 (3U << 11U*2U)  );         /* enable CP11 Full Access */
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifdef UNALIGNED_SUPPORT_DISABLE
 | 
			
		||||
  SCB->CCR |= SCB_CCR_UNALIGN_TRP_Msk;
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
  SystemCoreClock = SYSTEM_CLOCK;
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,211 @@
 | 
			
		||||
/* ----------------------------------------------------------------------
 | 
			
		||||
* Copyright (C) 2010-2012 ARM Limited. All rights reserved.
 | 
			
		||||
*
 | 
			
		||||
* $Date:         17. January 2013
 | 
			
		||||
* $Revision:     V1.4.0
 | 
			
		||||
*
 | 
			
		||||
* Project:       CMSIS DSP Library
 | 
			
		||||
* Title:         arm_class_marks_example_f32.c
 | 
			
		||||
*
 | 
			
		||||
* Description:   Example code to calculate Minimum, Maximum
 | 
			
		||||
*                Mean, std and variance of marks obtained in a class
 | 
			
		||||
*
 | 
			
		||||
* Target Processor: Cortex-M4/Cortex-M3
 | 
			
		||||
*
 | 
			
		||||
* Redistribution and use in source and binary forms, with or without
 | 
			
		||||
* modification, are permitted provided that the following conditions
 | 
			
		||||
* are met:
 | 
			
		||||
*   - Redistributions of source code must retain the above copyright
 | 
			
		||||
*     notice, this list of conditions and the following disclaimer.
 | 
			
		||||
*   - Redistributions in binary form must reproduce the above copyright
 | 
			
		||||
*     notice, this list of conditions and the following disclaimer in
 | 
			
		||||
*     the documentation and/or other materials provided with the
 | 
			
		||||
*     distribution.
 | 
			
		||||
*   - Neither the name of ARM LIMITED nor the names of its contributors
 | 
			
		||||
*     may be used to endorse or promote products derived from this
 | 
			
		||||
*     software without specific prior written permission.
 | 
			
		||||
*
 | 
			
		||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 | 
			
		||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 | 
			
		||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
 | 
			
		||||
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
 | 
			
		||||
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
 | 
			
		||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
 | 
			
		||||
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 | 
			
		||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
 | 
			
		||||
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 | 
			
		||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
 | 
			
		||||
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 | 
			
		||||
* POSSIBILITY OF SUCH DAMAGE.
 | 
			
		||||
* -------------------------------------------------------------------- */
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @ingroup groupExamples
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @defgroup ClassMarks Class Marks Example
 | 
			
		||||
 *
 | 
			
		||||
 * \par Description:
 | 
			
		||||
 * \par
 | 
			
		||||
 * Demonstrates the use the Maximum, Minimum, Mean, Standard Deviation, Variance
 | 
			
		||||
 * and Matrix functions to calculate statistical values of marks obtained in a class.
 | 
			
		||||
 *
 | 
			
		||||
 * \note This example also demonstrates the usage of static initialization.
 | 
			
		||||
 *
 | 
			
		||||
 * \par Variables Description:
 | 
			
		||||
 * \par
 | 
			
		||||
 * \li \c testMarks_f32 points to the marks scored by 20 students in 4 subjects
 | 
			
		||||
 * \li \c max_marks     Maximum of all marks
 | 
			
		||||
 * \li \c min_marks     Minimum of all marks
 | 
			
		||||
 * \li \c mean          Mean of all marks
 | 
			
		||||
 * \li \c var           Variance of the marks
 | 
			
		||||
 * \li \c std           Standard deviation of the marks
 | 
			
		||||
 * \li \c numStudents   Total number of students in the class
 | 
			
		||||
 *
 | 
			
		||||
 * \par CMSIS DSP Software Library Functions Used:
 | 
			
		||||
 * \par
 | 
			
		||||
 * - arm_mat_init_f32()
 | 
			
		||||
 * - arm_mat_mult_f32()
 | 
			
		||||
 * - arm_max_f32()
 | 
			
		||||
 * - arm_min_f32()
 | 
			
		||||
 * - arm_mean_f32()
 | 
			
		||||
 * - arm_std_f32()
 | 
			
		||||
 * - arm_var_f32()
 | 
			
		||||
 *
 | 
			
		||||
 * <b> Refer  </b>
 | 
			
		||||
 * \link arm_class_marks_example_f32.c \endlink
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/** \example arm_class_marks_example_f32.c
 | 
			
		||||
  */
 | 
			
		||||
#include "arm_math.h"
 | 
			
		||||
 | 
			
		||||
#define USE_STATIC_INIT
 | 
			
		||||
 | 
			
		||||
 /* ----------------------------------------------------------------------
 | 
			
		||||
** Global defines
 | 
			
		||||
** ------------------------------------------------------------------- */
 | 
			
		||||
 | 
			
		||||
#define TEST_LENGTH_SAMPLES   (20*4)
 | 
			
		||||
 | 
			
		||||
/* ----------------------------------------------------------------------
 | 
			
		||||
** List of Marks scored by 20 students for 4 subjects
 | 
			
		||||
** ------------------------------------------------------------------- */
 | 
			
		||||
const float32_t testMarks_f32[TEST_LENGTH_SAMPLES] =
 | 
			
		||||
{
 | 
			
		||||
  42.000000,  37.000000,  81.000000,  28.000000,
 | 
			
		||||
  83.000000,  72.000000,  36.000000,  38.000000,
 | 
			
		||||
  32.000000,  51.000000,  63.000000,  64.000000,
 | 
			
		||||
  97.000000,  82.000000,  95.000000,  90.000000,
 | 
			
		||||
  66.000000,  51.000000,  54.000000,  42.000000,
 | 
			
		||||
  67.000000,  56.000000,  45.000000,  57.000000,
 | 
			
		||||
  67.000000,  69.000000,  35.000000,  52.000000,
 | 
			
		||||
  29.000000,  81.000000,  58.000000,  47.000000,
 | 
			
		||||
  38.000000,  76.000000, 100.000000,  29.000000,
 | 
			
		||||
  33.000000,  47.000000,  29.000000,  50.000000,
 | 
			
		||||
  34.000000,  41.000000,  61.000000,  46.000000,
 | 
			
		||||
  52.000000,  50.000000,  48.000000,  36.000000,
 | 
			
		||||
  47.000000,  55.000000,  44.000000,  40.000000,
 | 
			
		||||
 100.000000,  94.000000,  84.000000,  37.000000,
 | 
			
		||||
  32.000000,  71.000000,  47.000000,  77.000000,
 | 
			
		||||
  31.000000,  50.000000,  49.000000,  35.000000,
 | 
			
		||||
  63.000000,  67.000000,  40.000000,  31.000000,
 | 
			
		||||
  29.000000,  68.000000,  61.000000,  38.000000,
 | 
			
		||||
  31.000000,  28.000000,  28.000000,  76.000000,
 | 
			
		||||
  55.000000,  33.000000,  29.000000,  39.000000
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* ----------------------------------------------------------------------
 | 
			
		||||
* Number of subjects X 1
 | 
			
		||||
* ------------------------------------------------------------------- */
 | 
			
		||||
const float32_t testUnity_f32[4] =
 | 
			
		||||
{
 | 
			
		||||
  1.000,  1.000,   1.000,  1.000
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* ----------------------------------------------------------------------
 | 
			
		||||
** f32 Output buffer
 | 
			
		||||
** ------------------------------------------------------------------- */
 | 
			
		||||
static float32_t testOutput[TEST_LENGTH_SAMPLES];
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* ------------------------------------------------------------------
 | 
			
		||||
* Global defines
 | 
			
		||||
*------------------------------------------------------------------- */
 | 
			
		||||
#define   NUMSTUDENTS  20
 | 
			
		||||
#define     NUMSUBJECTS  4
 | 
			
		||||
 | 
			
		||||
/* ------------------------------------------------------------------
 | 
			
		||||
* Global variables
 | 
			
		||||
*------------------------------------------------------------------- */
 | 
			
		||||
 | 
			
		||||
 uint32_t    numStudents = 20;
 | 
			
		||||
 uint32_t    numSubjects = 4;
 | 
			
		||||
float32_t    max_marks, min_marks, mean, std, var;
 | 
			
		||||
 uint32_t    student_num;
 | 
			
		||||
 | 
			
		||||
/* ----------------------------------------------------------------------------------
 | 
			
		||||
* Main f32 test function.  It returns maximum marks secured and student number
 | 
			
		||||
* ------------------------------------------------------------------------------- */
 | 
			
		||||
 | 
			
		||||
int32_t main()
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
#ifndef  USE_STATIC_INIT
 | 
			
		||||
 | 
			
		||||
  arm_matrix_instance_f32 srcA;
 | 
			
		||||
  arm_matrix_instance_f32 srcB;
 | 
			
		||||
  arm_matrix_instance_f32 dstC;
 | 
			
		||||
 | 
			
		||||
  /* Input and output matrices initializations */
 | 
			
		||||
  arm_mat_init_f32(&srcA, numStudents, numSubjects, (float32_t *)testMarks_f32);
 | 
			
		||||
  arm_mat_init_f32(&srcB, numSubjects, 1, (float32_t *)testUnity_f32);
 | 
			
		||||
  arm_mat_init_f32(&dstC, numStudents, 1, testOutput);
 | 
			
		||||
 | 
			
		||||
#else
 | 
			
		||||
 | 
			
		||||
  /* Static Initializations of Input and output matrix sizes and array */
 | 
			
		||||
  arm_matrix_instance_f32 srcA = {NUMSTUDENTS, NUMSUBJECTS, (float32_t *)testMarks_f32};
 | 
			
		||||
  arm_matrix_instance_f32 srcB = {NUMSUBJECTS, 1, (float32_t *)testUnity_f32};
 | 
			
		||||
  arm_matrix_instance_f32 dstC = {NUMSTUDENTS, 1, testOutput};
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  /* ----------------------------------------------------------------------
 | 
			
		||||
  *Call the Matrix multiplication process function
 | 
			
		||||
  * ------------------------------------------------------------------- */
 | 
			
		||||
  arm_mat_mult_f32(&srcA, &srcB, &dstC);
 | 
			
		||||
 | 
			
		||||
  /* ----------------------------------------------------------------------
 | 
			
		||||
  ** Call the Max function to calculate max marks among numStudents
 | 
			
		||||
  ** ------------------------------------------------------------------- */
 | 
			
		||||
  arm_max_f32(testOutput, numStudents, &max_marks, &student_num);
 | 
			
		||||
 | 
			
		||||
  /* ----------------------------------------------------------------------
 | 
			
		||||
  ** Call the Min function to calculate min marks among numStudents
 | 
			
		||||
  ** ------------------------------------------------------------------- */
 | 
			
		||||
  arm_min_f32(testOutput, numStudents, &min_marks, &student_num);
 | 
			
		||||
 | 
			
		||||
  /* ----------------------------------------------------------------------
 | 
			
		||||
  ** Call the Mean function to calculate mean
 | 
			
		||||
  ** ------------------------------------------------------------------- */
 | 
			
		||||
  arm_mean_f32(testOutput, numStudents, &mean);
 | 
			
		||||
 | 
			
		||||
  /* ----------------------------------------------------------------------
 | 
			
		||||
  ** Call the std function to calculate standard deviation
 | 
			
		||||
  ** ------------------------------------------------------------------- */
 | 
			
		||||
  arm_std_f32(testOutput, numStudents, &std);
 | 
			
		||||
 | 
			
		||||
  /* ----------------------------------------------------------------------
 | 
			
		||||
  ** Call the var function to calculate variance
 | 
			
		||||
  ** ------------------------------------------------------------------- */
 | 
			
		||||
  arm_var_f32(testOutput, numStudents, &var);
 | 
			
		||||
 | 
			
		||||
  while (1);                             /* main function does not return */
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user