-
Notifications
You must be signed in to change notification settings - Fork 3k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #1522 from dinau/disco-uvision4-exporter
Add uVision4 exporters for DISCO-{F051R8, F100RB, F303VC, F407VG}
- Loading branch information
Showing
36 changed files
with
4,388 additions
and
23 deletions.
There are no files selected for viewing
242 changes: 242 additions & 0 deletions
242
...s/TARGET_STM/TARGET_STM32F0/TARGET_DISCO_F051R8/TOOLCHAIN_ARM_MICRO/startup_stm32f051x8.s
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,242 @@ | ||
;******************** (C) COPYRIGHT 2015 STMicroelectronics ******************** | ||
;* File Name : startup_stm32f051x8.s | ||
;* Author : MCD Application Team | ||
;* Version : V2.2.2 | ||
;* Date : 26-June-2015 | ||
;* Description : STM32F051x4/STM32F051x6/STM32F051x8 devices vector table for MDK-ARM toolchain. | ||
;* This module performs: | ||
;* - Set the initial SP | ||
;* - Set the initial PC == Reset_Handler | ||
;* - Set the vector table entries with the exceptions ISR address | ||
;* - Branches to __main in the C library (which eventually | ||
;* calls main()). | ||
;* After Reset the CortexM0 processor is in Thread mode, | ||
;* priority is Privileged, and the Stack is set to Main. | ||
;* <<< Use Configuration Wizard in Context Menu >>> | ||
;******************************************************************************* | ||
; | ||
;* Redistribution and use in source and binary forms, with or without modification, | ||
;* are permitted provided that the following conditions are met: | ||
;* 1. Redistributions of source code must retain the above copyright notice, | ||
;* this list of conditions and the following disclaimer. | ||
;* 2. 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. | ||
;* 3. Neither the name of STMicroelectronics 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 HOLDER 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. | ||
; | ||
;******************************************************************************* | ||
|
||
; Amount of memory (in bytes) allocated for Stack | ||
; Tailor this value to your application needs | ||
; <h> Stack Configuration | ||
; <o> Stack Size (in Bytes) <0x0-0xFFFFFFFF:8> | ||
; </h> | ||
|
||
Stack_Size EQU 0x00000400 | ||
|
||
AREA STACK, NOINIT, READWRITE, ALIGN=3 | ||
EXPORT __initial_sp | ||
|
||
Stack_Mem SPACE Stack_Size | ||
__initial_sp EQU 0x20002000 ; Top of RAM (8 KB for STM32F030R8) | ||
|
||
|
||
; <h> Heap Configuration | ||
; <o> Heap Size (in Bytes) <0x0-0xFFFFFFFF:8> | ||
; </h> | ||
|
||
Heap_Size EQU 0x00000400 | ||
|
||
AREA HEAP, NOINIT, READWRITE, ALIGN=3 | ||
EXPORT __heap_base | ||
EXPORT __heap_limit | ||
|
||
__heap_base | ||
Heap_Mem SPACE Heap_Size | ||
__heap_limit EQU (__initial_sp - Stack_Size) | ||
|
||
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 ; 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 | ||
DCD WWDG_IRQHandler ; Window Watchdog | ||
DCD PVD_IRQHandler ; PVD through EXTI Line detect | ||
DCD RTC_IRQHandler ; RTC through EXTI Line | ||
DCD FLASH_IRQHandler ; FLASH | ||
DCD RCC_IRQHandler ; RCC | ||
DCD EXTI0_1_IRQHandler ; EXTI Line 0 and 1 | ||
DCD EXTI2_3_IRQHandler ; EXTI Line 2 and 3 | ||
DCD EXTI4_15_IRQHandler ; EXTI Line 4 to 15 | ||
DCD TSC_IRQHandler ; TS | ||
DCD DMA1_Channel1_IRQHandler ; DMA1 Channel 1 | ||
DCD DMA1_Channel2_3_IRQHandler ; DMA1 Channel 2 and Channel 3 | ||
DCD DMA1_Channel4_5_IRQHandler ; DMA1 Channel 4 and Channel 5 | ||
DCD ADC1_COMP_IRQHandler ; ADC1, COMP1 and COMP2 | ||
DCD TIM1_BRK_UP_TRG_COM_IRQHandler ; TIM1 Break, Update, Trigger and Commutation | ||
DCD TIM1_CC_IRQHandler ; TIM1 Capture Compare | ||
DCD TIM2_IRQHandler ; TIM2 | ||
DCD TIM3_IRQHandler ; TIM3 | ||
DCD TIM6_DAC_IRQHandler ; TIM6 and DAC | ||
DCD 0 ; Reserved | ||
DCD TIM14_IRQHandler ; TIM14 | ||
DCD TIM15_IRQHandler ; TIM15 | ||
DCD TIM16_IRQHandler ; TIM16 | ||
DCD TIM17_IRQHandler ; TIM17 | ||
DCD I2C1_IRQHandler ; I2C1 | ||
DCD I2C2_IRQHandler ; I2C2 | ||
DCD SPI1_IRQHandler ; SPI1 | ||
DCD SPI2_IRQHandler ; SPI2 | ||
DCD USART1_IRQHandler ; USART1 | ||
DCD USART2_IRQHandler ; USART2 | ||
DCD 0 ; Reserved | ||
DCD CEC_IRQHandler ; CEC | ||
|
||
__Vectors_End | ||
|
||
__Vectors_Size EQU __Vectors_End - __Vectors | ||
|
||
AREA |.text|, CODE, READONLY | ||
|
||
; Reset handler routine | ||
Reset_Handler PROC | ||
EXPORT Reset_Handler [WEAK] | ||
IMPORT __main | ||
IMPORT SystemInit | ||
LDR R0, =SystemInit | ||
BLX R0 | ||
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 WWDG_IRQHandler [WEAK] | ||
EXPORT PVD_IRQHandler [WEAK] | ||
EXPORT RTC_IRQHandler [WEAK] | ||
EXPORT FLASH_IRQHandler [WEAK] | ||
EXPORT RCC_IRQHandler [WEAK] | ||
EXPORT EXTI0_1_IRQHandler [WEAK] | ||
EXPORT EXTI2_3_IRQHandler [WEAK] | ||
EXPORT EXTI4_15_IRQHandler [WEAK] | ||
EXPORT TSC_IRQHandler [WEAK] | ||
EXPORT DMA1_Channel1_IRQHandler [WEAK] | ||
EXPORT DMA1_Channel2_3_IRQHandler [WEAK] | ||
EXPORT DMA1_Channel4_5_IRQHandler [WEAK] | ||
EXPORT ADC1_COMP_IRQHandler [WEAK] | ||
EXPORT TIM1_BRK_UP_TRG_COM_IRQHandler [WEAK] | ||
EXPORT TIM1_CC_IRQHandler [WEAK] | ||
EXPORT TIM2_IRQHandler [WEAK] | ||
EXPORT TIM3_IRQHandler [WEAK] | ||
EXPORT TIM6_DAC_IRQHandler [WEAK] | ||
EXPORT TIM14_IRQHandler [WEAK] | ||
EXPORT TIM15_IRQHandler [WEAK] | ||
EXPORT TIM16_IRQHandler [WEAK] | ||
EXPORT TIM17_IRQHandler [WEAK] | ||
EXPORT I2C1_IRQHandler [WEAK] | ||
EXPORT I2C2_IRQHandler [WEAK] | ||
EXPORT SPI1_IRQHandler [WEAK] | ||
EXPORT SPI2_IRQHandler [WEAK] | ||
EXPORT USART1_IRQHandler [WEAK] | ||
EXPORT USART2_IRQHandler [WEAK] | ||
EXPORT CEC_IRQHandler [WEAK] | ||
|
||
|
||
WWDG_IRQHandler | ||
PVD_IRQHandler | ||
RTC_IRQHandler | ||
FLASH_IRQHandler | ||
RCC_IRQHandler | ||
EXTI0_1_IRQHandler | ||
EXTI2_3_IRQHandler | ||
EXTI4_15_IRQHandler | ||
TSC_IRQHandler | ||
DMA1_Channel1_IRQHandler | ||
DMA1_Channel2_3_IRQHandler | ||
DMA1_Channel4_5_IRQHandler | ||
ADC1_COMP_IRQHandler | ||
TIM1_BRK_UP_TRG_COM_IRQHandler | ||
TIM1_CC_IRQHandler | ||
TIM2_IRQHandler | ||
TIM3_IRQHandler | ||
TIM6_DAC_IRQHandler | ||
TIM14_IRQHandler | ||
TIM15_IRQHandler | ||
TIM16_IRQHandler | ||
TIM17_IRQHandler | ||
I2C1_IRQHandler | ||
I2C2_IRQHandler | ||
SPI1_IRQHandler | ||
SPI2_IRQHandler | ||
USART1_IRQHandler | ||
USART2_IRQHandler | ||
CEC_IRQHandler | ||
|
||
B . | ||
|
||
ENDP | ||
|
||
ALIGN | ||
END | ||
|
||
;************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE***** |
45 changes: 45 additions & 0 deletions
45
...ets/cmsis/TARGET_STM/TARGET_STM32F0/TARGET_DISCO_F051R8/TOOLCHAIN_ARM_MICRO/stm32f0xx.sct
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
; Scatter-Loading Description File | ||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
; Copyright (c) 2014, STMicroelectronics | ||
; All rights reserved. | ||
; | ||
; Redistribution and use in source and binary forms, with or without | ||
; modification, are permitted provided that the following conditions are met: | ||
; | ||
; 1. Redistributions of source code must retain the above copyright notice, | ||
; this list of conditions and the following disclaimer. | ||
; 2. 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. | ||
; 3. Neither the name of STMicroelectronics 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 HOLDER 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. | ||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
|
||
; STM32F030R8: 64KB FLASH (0x10000) + 8KB RAM (0x2000) | ||
|
||
LR_IROM1 0x08000000 0x10000 { ; load region size_region | ||
ER_IROM1 0x08000000 0x10000 { ; load address = execution address | ||
*.o (RESET, +First) | ||
*(InRoot$$Sections) | ||
.ANY (+RO) | ||
} | ||
|
||
; 48 vectors = 192 bytes (0xC0) to be reserved in RAM | ||
RW_IRAM1 (0x20000000+0xC0) (0x2000-0xC0) { ; RW data | ||
.ANY (+RW +ZI) | ||
} | ||
|
||
} | ||
|
56 changes: 56 additions & 0 deletions
56
...d/targets/cmsis/TARGET_STM/TARGET_STM32F0/TARGET_DISCO_F051R8/TOOLCHAIN_ARM_MICRO/sys.cpp
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,56 @@ | ||
/* mbed Microcontroller Library - stackheap | ||
* Setup a fixed single stack/heap memory model, | ||
* between the top of the RW/ZI region and the stackpointer | ||
******************************************************************************* | ||
* Copyright (c) 2014, STMicroelectronics | ||
* All rights reserved. | ||
* | ||
* Redistribution and use in source and binary forms, with or without | ||
* modification, are permitted provided that the following conditions are met: | ||
* | ||
* 1. Redistributions of source code must retain the above copyright notice, | ||
* this list of conditions and the following disclaimer. | ||
* 2. 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. | ||
* 3. Neither the name of STMicroelectronics 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 HOLDER 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. | ||
******************************************************************************* | ||
*/ | ||
|
||
#ifdef __cplusplus | ||
extern "C" { | ||
#endif | ||
|
||
#include <rt_misc.h> | ||
#include <stdint.h> | ||
|
||
extern char Image$$RW_IRAM1$$ZI$$Limit[]; | ||
|
||
extern __value_in_regs struct __initial_stackheap __user_setup_stackheap(uint32_t R0, uint32_t R1, uint32_t R2, uint32_t R3) { | ||
uint32_t zi_limit = (uint32_t)Image$$RW_IRAM1$$ZI$$Limit; | ||
uint32_t sp_limit = __current_sp(); | ||
|
||
zi_limit = (zi_limit + 7) & ~0x7; // ensure zi_limit is 8-byte aligned | ||
|
||
struct __initial_stackheap r; | ||
r.heap_base = zi_limit; | ||
r.heap_limit = sp_limit; | ||
return r; | ||
} | ||
|
||
#ifdef __cplusplus | ||
} | ||
#endif |
Oops, something went wrong.