From b6a9fad9eed5ceb7cff8635335fbb225777c41c5 Mon Sep 17 00:00:00 2001 From: Bernard Xiong Date: Mon, 3 Nov 2014 13:23:56 +0800 Subject: [BSP] Add GCC compiler support for mb9bf568r --- .../CMSIS/DeviceSupport/arm/startup_mb9bf56xr.s | 584 ++++++++++++++ .../CMSIS/DeviceSupport/gcc/startup_mb9bf56xr.S | 288 +++++++ .../CMSIS/DeviceSupport/startup_mb9bf56xr.s | 584 -------------- bsp/mb9bf568r/CMSIS/SConscript | 5 +- bsp/mb9bf568r/SConstruct | 3 +- bsp/mb9bf568r/project.uvopt | 844 --------------------- bsp/mb9bf568r/project.uvproj | 625 --------------- bsp/mb9bf568r/rtconfig.py | 18 +- bsp/mb9bf568r/rtthread-mb9bf568r.ld | 222 ++++++ bsp/mb9bf568r/rtthread-mb9bf568r.sct | 23 + 10 files changed, 1132 insertions(+), 2064 deletions(-) create mode 100644 bsp/mb9bf568r/CMSIS/DeviceSupport/arm/startup_mb9bf56xr.s create mode 100644 bsp/mb9bf568r/CMSIS/DeviceSupport/gcc/startup_mb9bf56xr.S delete mode 100644 bsp/mb9bf568r/CMSIS/DeviceSupport/startup_mb9bf56xr.s delete mode 100644 bsp/mb9bf568r/project.uvopt delete mode 100644 bsp/mb9bf568r/project.uvproj create mode 100644 bsp/mb9bf568r/rtthread-mb9bf568r.ld create mode 100644 bsp/mb9bf568r/rtthread-mb9bf568r.sct diff --git a/bsp/mb9bf568r/CMSIS/DeviceSupport/arm/startup_mb9bf56xr.s b/bsp/mb9bf568r/CMSIS/DeviceSupport/arm/startup_mb9bf56xr.s new file mode 100644 index 0000000000..416a56f41d --- /dev/null +++ b/bsp/mb9bf568r/CMSIS/DeviceSupport/arm/startup_mb9bf56xr.s @@ -0,0 +1,584 @@ +;******************************************************************************* +; Copyright (C) 2013 Spansion LLC. All Rights Reserved. +; +; This software is owned and published by: +; Spansion LLC, 915 DeGuigne Dr. Sunnyvale, CA 94088-3453 ("Spansion"). +; +; BY DOWNLOADING, INSTALLING OR USING THIS SOFTWARE, YOU AGREE TO BE BOUND +; BY ALL THE TERMS AND CONDITIONS OF THIS AGREEMENT. +; +; This software contains source code for use with Spansion +; components. This software is licensed by Spansion to be adapted only +; for use in systems utilizing Spansion components. Spansion shall not be +; responsible for misuse or illegal use of this software for devices not +; supported herein. Spansion is providing this software "AS IS" and will +; not be responsible for issues arising from incorrect user implementation +; of the software. +; +; SPANSION MAKES NO WARRANTY, EXPRESS OR IMPLIED, ARISING BY LAW OR OTHERWISE, +; REGARDING THE SOFTWARE (INCLUDING ANY ACOOMPANYING WRITTEN MATERIALS), +; ITS PERFORMANCE OR SUITABILITY FOR YOUR INTENDED USE, INCLUDING, +; WITHOUT LIMITATION, THE IMPLIED WARRANTY OF MERCHANTABILITY, THE IMPLIED +; WARRANTY OF FITNESS FOR A PARTICULAR PURPOSE OR USE, AND THE IMPLIED +; WARRANTY OF NONINFRINGEMENT. +; SPANSION SHALL HAVE NO LIABILITY (WHETHER IN CONTRACT, WARRANTY, TORT, +; NEGLIGENCE OR OTHERWISE) FOR ANY DAMAGES WHATSOEVER (INCLUDING, WITHOUT +; LIMITATION, DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS INTERRUPTION, +; LOSS OF BUSINESS INFORMATION, OR OTHER PECUNIARY LOSS) ARISING FROM USE OR +; INABILITY TO USE THE SOFTWARE, INCLUDING, WITHOUT LIMITATION, ANY DIRECT, +; INDIRECT, INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES OR LOSS OF DATA, +; SAVINGS OR PROFITS, +; EVEN IF SPANSION HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. +; YOU ASSUME ALL RESPONSIBILITIES FOR SELECTION OF THE SOFTWARE TO ACHIEVE YOUR +; INTENDED RESULTS, AND FOR THE INSTALLATION OF, USE OF, AND RESULTS OBTAINED +; FROM, THE SOFTWARE. +; +; This software may be replicated in part or whole for the licensed use, +; with the restriction that this Disclaimer and Copyright notice must be +; included with each copy of this software, whether used in part or whole, +; at all times. +; + +; Stack Configuration +; Stack Size (in Bytes) <0x0-0xFFFFFFFF:8> + +Stack_Size EQU 0x00000400 + + AREA STACK, NOINIT, READWRITE, ALIGN=3 +Stack_Mem SPACE Stack_Size +__initial_sp + + +; Heap Configuration +; Heap Size (in Bytes) <0x0-0xFFFFFFFF:8> + +Heap_Size EQU 0x00000200 + + 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 + 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 MemManage_Handler ; MPU Fault Handler + DCD BusFault_Handler ; Bus Fault Handler + DCD UsageFault_Handler ; Usage Fault Handler + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD SVC_Handler ; SVCall Handler + DCD DebugMon_Handler ; Debug Monitor Handler + DCD 0 ; Reserved + DCD PendSV_Handler ; PendSV Handler + DCD SysTick_Handler ; SysTick Handler + +; Numbered IRQ handler vectors + +; Note: renaming to device dependent ISR function names are done in +; pdl.h (section "IRQ name definition for all type MCUs" + + DCD CSV_IRQHandler + DCD SWDT_IRQHandler + DCD LVD_IRQHandler + DCD IRQ003SEL_IRQHandler + DCD IRQ004SEL_IRQHandler + DCD IRQ005SEL_IRQHandler + DCD IRQ006SEL_IRQHandler + DCD IRQ007SEL_IRQHandler + DCD IRQ008SEL_IRQHandler + DCD IRQ009SEL_IRQHandler + DCD IRQ010SEL_IRQHandler + DCD EXINT0_IRQHandler + DCD EXINT1_IRQHandler + DCD EXINT2_IRQHandler + DCD EXINT3_IRQHandler + DCD EXINT4_IRQHandler + DCD EXINT5_IRQHandler + DCD EXINT6_IRQHandler + DCD EXINT7_IRQHandler + DCD QPRC0_IRQHandler + DCD QPRC1_IRQHandler + DCD WFG0_DTIF0_IRQHandler + DCD WFG1_DTIF1_IRQHandler + DCD WFG2_DTIF2_IRQHandler + DCD FRT0_PEAK_IRQHandler + DCD FRT0_ZERO_IRQHandler + DCD ICU0_IRQHandler + DCD OCU0_IRQHandler + DCD FRT1_PEAK_IRQHandler + DCD FRT1_ZERO_IRQHandler + DCD ICU1_IRQHandler + DCD OCU1_IRQHandler + DCD FRT2_PEAK_IRQHandler + DCD FRT2_ZERO_IRQHandler + DCD ICU2_IRQHandler + DCD OCU2_IRQHandler + DCD PPG00_02_04_IRQHandler + DCD PPG08_10_12_IRQHandler + DCD PPG16_18_20_IRQHandler + DCD BT0_IRQHandler + DCD BT1_IRQHandler + DCD BT2_IRQHandler + DCD BT3_IRQHandler + DCD BT4_IRQHandler + DCD BT5_IRQHandler + DCD BT6_IRQHandler + DCD BT7_IRQHandler + DCD DT1_2_IRAHandler + DCD WC_IRQHandler + DCD EXTBUS_ERR_Handler + DCD RTC_IRQHandler + DCD EXTINT8_IRQHandler + DCD EXTINT9_IRQHandler + DCD EXTINT10_IRQHandler + DCD EXTINT11_IRQHandler + DCD EXTINT12_IRQHandler + DCD EXTINT13_IRQHandler + DCD EXTINT14_IRQHandler + DCD EXTINT15_IRQHandler + DCD TIM_IRQHandler + DCD MFS0_RX_IRQHandler + DCD MFS0_TX_IRQHandler + DCD MFS1_RX_IRQHandler + DCD MFS1_TX_IRQHandler + DCD MFS2_RX_IRQHandler + DCD MFS2_TX_IRQHandler + DCD MFS3_RX_IRQHandler + DCD MFS3_TX_IRQHandler + DCD MFS4_RX_IRQHandler + DCD MFS4_TX_IRQHandler + DCD MFS5_RX_IRQHandler + DCD MFS5_TX_IRQHandler + DCD MFS6_RX_IRQHandler + DCD MFS6_TX_IRQHandler + DCD MFS7_RX_IRQHandler + DCD MFS7_TX_IRQHandler + DCD ADC0_IRQHandler + DCD ADC1_IRQHandler + DCD USB0_IRQHandler + DCD USB0_HOST_IRQHandler + DCD CAN0_IRQHandler + DCD CAN1_IRQHandler + DCD ETHER0_IRQHandler + DCD DMAC0_IRQHandler + DCD DMAC1_IRQHandler + DCD DMAC2_IRQHandler + DCD DMAC3_IRQHandler + DCD DMAC4_IRQHandler + DCD DMAC5_IRQHandler + DCD DMAC6_IRQHandler + DCD DMAC7_IRQHandler + DCD DSTC_IRQHandler + DCD EXINT16_17_18_19_IRQHandler + DCD EXINT20_21_22_23_IRQHandler + DCD EXINT24_25_26_27_IRQHandler + DCD EXINT28_29_30_31_IRQHandler + DCD QPRC2_IRQHandler + DCD QPRC3_IRQHandler + DCD BT8_IRQHandler + DCD BT9_IRQHandler + DCD BT10_IRQHandler + DCD BT11_IRQHandler + DCD BT12_15_IRQHandler + DCD MFS8_RX_IRQHandler + DCD MFS8_TX_IRQHandler + DCD MFS9_RX_IRQHandler + DCD MFS9_TX_IRQHandler + DCD MFS10_RX_IRQHandler + DCD MFS10_TX_IRQHandler + DCD MFS11_RX_IRQHandler + DCD MFS11_TX_IRQHandler + DCD ADC2_IRQHandler + DCD Dummy + DCD USB1_IRQHandler + DCD USB1_HOST_IRQHandler + DCD Dummy + DCD Dummy + DCD Dummy + DCD SD_IRQHandler + DCD FLASHIF_IRQHandler + DCD MFS12_RX_IRQHandler + DCD MFS12_TX_IRQHandler + DCD MFS13_RX_IRQHandler + DCD MFS13_TX_IRQHandler + DCD MFS14_RX_IRQHandler + DCD MFS14_TX_IRQHandler + DCD MFS15_RX_IRQHandler + DCD MFS15_TX_IRQHandler +__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.W R0, =0xE000ED88 ; CPACR is located at address 0xE000ED88 + LDR R1, [R0] ; Read CPACR + ORR R1, R1, #(0xF << 20) ; Set bits 20-23 to enable CP10 and CP11 coprocessors + STR R1, [R0] ; Write back the modified value to the CPACR + + 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 +MemManage_Handler\ + PROC + EXPORT MemManage_Handler [WEAK] + B . + ENDP +BusFault_Handler\ + PROC + EXPORT BusFault_Handler [WEAK] + B . + ENDP +UsageFault_Handler\ + PROC + EXPORT UsageFault_Handler [WEAK] + B . + ENDP +SVC_Handler PROC + EXPORT SVC_Handler [WEAK] + B . + ENDP +DebugMon_Handler\ + PROC + EXPORT DebugMon_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 CSV_IRQHandler [WEAK] + EXPORT SWDT_IRQHandler [WEAK] + EXPORT LVD_IRQHandler [WEAK] + EXPORT IRQ003SEL_IRQHandler [WEAK] + EXPORT IRQ004SEL_IRQHandler [WEAK] + EXPORT IRQ005SEL_IRQHandler [WEAK] + EXPORT IRQ006SEL_IRQHandler [WEAK] + EXPORT IRQ007SEL_IRQHandler [WEAK] + EXPORT IRQ008SEL_IRQHandler [WEAK] + EXPORT IRQ009SEL_IRQHandler [WEAK] + EXPORT IRQ010SEL_IRQHandler [WEAK] + EXPORT EXINT0_IRQHandler [WEAK] + EXPORT EXINT1_IRQHandler [WEAK] + EXPORT EXINT2_IRQHandler [WEAK] + EXPORT EXINT3_IRQHandler [WEAK] + EXPORT EXINT4_IRQHandler [WEAK] + EXPORT EXINT5_IRQHandler [WEAK] + EXPORT EXINT6_IRQHandler [WEAK] + EXPORT EXINT7_IRQHandler [WEAK] + EXPORT QPRC0_IRQHandler [WEAK] + EXPORT QPRC1_IRQHandler [WEAK] + EXPORT WFG0_DTIF0_IRQHandler [WEAK] + EXPORT WFG1_DTIF1_IRQHandler [WEAK] + EXPORT WFG2_DTIF2_IRQHandler [WEAK] + EXPORT FRT0_PEAK_IRQHandler [WEAK] + EXPORT FRT0_ZERO_IRQHandler [WEAK] + EXPORT ICU0_IRQHandler [WEAK] + EXPORT OCU0_IRQHandler [WEAK] + EXPORT FRT1_PEAK_IRQHandler [WEAK] + EXPORT FRT1_ZERO_IRQHandler [WEAK] + EXPORT ICU1_IRQHandler [WEAK] + EXPORT OCU1_IRQHandler [WEAK] + EXPORT FRT2_PEAK_IRQHandler [WEAK] + EXPORT FRT2_ZERO_IRQHandler [WEAK] + EXPORT ICU2_IRQHandler [WEAK] + EXPORT OCU2_IRQHandler [WEAK] + EXPORT PPG00_02_04_IRQHandler [WEAK] + EXPORT PPG08_10_12_IRQHandler [WEAK] + EXPORT PPG16_18_20_IRQHandler [WEAK] + EXPORT BT0_IRQHandler [WEAK] + EXPORT BT1_IRQHandler [WEAK] + EXPORT BT2_IRQHandler [WEAK] + EXPORT BT3_IRQHandler [WEAK] + EXPORT BT4_IRQHandler [WEAK] + EXPORT BT5_IRQHandler [WEAK] + EXPORT BT6_IRQHandler [WEAK] + EXPORT BT7_IRQHandler [WEAK] + EXPORT DT1_2_IRAHandler [WEAK] + EXPORT WC_IRQHandler [WEAK] + EXPORT EXTBUS_ERR_Handler [WEAK] + EXPORT RTC_IRQHandler [WEAK] + EXPORT EXTINT8_IRQHandler [WEAK] + EXPORT EXTINT9_IRQHandler [WEAK] + EXPORT EXTINT10_IRQHandler [WEAK] + EXPORT EXTINT11_IRQHandler [WEAK] + EXPORT EXTINT12_IRQHandler [WEAK] + EXPORT EXTINT13_IRQHandler [WEAK] + EXPORT EXTINT14_IRQHandler [WEAK] + EXPORT EXTINT15_IRQHandler [WEAK] + EXPORT TIM_IRQHandler [WEAK] + EXPORT MFS0_RX_IRQHandler [WEAK] + EXPORT MFS0_TX_IRQHandler [WEAK] + EXPORT MFS1_RX_IRQHandler [WEAK] + EXPORT MFS1_TX_IRQHandler [WEAK] + EXPORT MFS2_RX_IRQHandler [WEAK] + EXPORT MFS2_TX_IRQHandler [WEAK] + EXPORT MFS3_RX_IRQHandler [WEAK] + EXPORT MFS3_TX_IRQHandler [WEAK] + EXPORT MFS4_RX_IRQHandler [WEAK] + EXPORT MFS4_TX_IRQHandler [WEAK] + EXPORT MFS5_RX_IRQHandler [WEAK] + EXPORT MFS5_TX_IRQHandler [WEAK] + EXPORT MFS6_RX_IRQHandler [WEAK] + EXPORT MFS6_TX_IRQHandler [WEAK] + EXPORT MFS7_RX_IRQHandler [WEAK] + EXPORT MFS7_TX_IRQHandler [WEAK] + EXPORT ADC0_IRQHandler [WEAK] + EXPORT ADC1_IRQHandler [WEAK] + EXPORT USB0_IRQHandler [WEAK] + EXPORT USB0_HOST_IRQHandler [WEAK] + EXPORT CAN0_IRQHandler [WEAK] + EXPORT CAN1_IRQHandler [WEAK] + EXPORT ETHER0_IRQHandler [WEAK] + EXPORT DMAC0_IRQHandler [WEAK] + EXPORT DMAC1_IRQHandler [WEAK] + EXPORT DMAC2_IRQHandler [WEAK] + EXPORT DMAC3_IRQHandler [WEAK] + EXPORT DMAC4_IRQHandler [WEAK] + EXPORT DMAC5_IRQHandler [WEAK] + EXPORT DMAC6_IRQHandler [WEAK] + EXPORT DMAC7_IRQHandler [WEAK] + EXPORT DSTC_IRQHandler [WEAK] + EXPORT EXINT16_17_18_19_IRQHandler [WEAK] + EXPORT EXINT20_21_22_23_IRQHandler [WEAK] + EXPORT EXINT24_25_26_27_IRQHandler [WEAK] + EXPORT EXINT28_29_30_31_IRQHandler [WEAK] + EXPORT QPRC2_IRQHandler [WEAK] + EXPORT QPRC3_IRQHandler [WEAK] + EXPORT BT8_IRQHandler [WEAK] + EXPORT BT9_IRQHandler [WEAK] + EXPORT BT10_IRQHandler [WEAK] + EXPORT BT11_IRQHandler [WEAK] + EXPORT BT12_15_IRQHandler [WEAK] + EXPORT MFS8_RX_IRQHandler [WEAK] + EXPORT MFS8_TX_IRQHandler [WEAK] + EXPORT MFS9_RX_IRQHandler [WEAK] + EXPORT MFS9_TX_IRQHandler [WEAK] + EXPORT MFS10_RX_IRQHandler [WEAK] + EXPORT MFS10_TX_IRQHandler [WEAK] + EXPORT MFS11_RX_IRQHandler [WEAK] + EXPORT MFS11_TX_IRQHandler [WEAK] + EXPORT ADC2_IRQHandler [WEAK] + EXPORT USB1_IRQHandler [WEAK] + EXPORT USB1_HOST_IRQHandler [WEAK] + EXPORT SD_IRQHandler [WEAK] + EXPORT FLASHIF_IRQHandler [WEAK] + EXPORT MFS12_RX_IRQHandler [WEAK] + EXPORT MFS12_TX_IRQHandler [WEAK] + EXPORT MFS13_RX_IRQHandler [WEAK] + EXPORT MFS13_TX_IRQHandler [WEAK] + EXPORT MFS14_RX_IRQHandler [WEAK] + EXPORT MFS14_TX_IRQHandler [WEAK] + EXPORT MFS15_RX_IRQHandler [WEAK] + EXPORT MFS15_TX_IRQHandler [WEAK] + EXPORT Dummy [WEAK] + + + +CSV_IRQHandler +SWDT_IRQHandler +LVD_IRQHandler +IRQ003SEL_IRQHandler +IRQ004SEL_IRQHandler +IRQ005SEL_IRQHandler +IRQ006SEL_IRQHandler +IRQ007SEL_IRQHandler +IRQ008SEL_IRQHandler +IRQ009SEL_IRQHandler +IRQ010SEL_IRQHandler +EXINT0_IRQHandler +EXINT1_IRQHandler +EXINT2_IRQHandler +EXINT3_IRQHandler +EXINT4_IRQHandler +EXINT5_IRQHandler +EXINT6_IRQHandler +EXINT7_IRQHandler +QPRC0_IRQHandler +QPRC1_IRQHandler +WFG0_DTIF0_IRQHandler +WFG1_DTIF1_IRQHandler +WFG2_DTIF2_IRQHandler +FRT0_PEAK_IRQHandler +FRT0_ZERO_IRQHandler +ICU0_IRQHandler +OCU0_IRQHandler +FRT1_PEAK_IRQHandler +FRT1_ZERO_IRQHandler +ICU1_IRQHandler +OCU1_IRQHandler +FRT2_PEAK_IRQHandler +FRT2_ZERO_IRQHandler +ICU2_IRQHandler +OCU2_IRQHandler +PPG00_02_04_IRQHandler +PPG08_10_12_IRQHandler +PPG16_18_20_IRQHandler +BT0_IRQHandler +BT1_IRQHandler +BT2_IRQHandler +BT3_IRQHandler +BT4_IRQHandler +BT5_IRQHandler +BT6_IRQHandler +BT7_IRQHandler +DT1_2_IRAHandler +WC_IRQHandler +EXTBUS_ERR_Handler +RTC_IRQHandler +EXTINT8_IRQHandler +EXTINT9_IRQHandler +EXTINT10_IRQHandler +EXTINT11_IRQHandler +EXTINT12_IRQHandler +EXTINT13_IRQHandler +EXTINT14_IRQHandler +EXTINT15_IRQHandler +TIM_IRQHandler +MFS0_RX_IRQHandler +MFS0_TX_IRQHandler +MFS1_RX_IRQHandler +MFS1_TX_IRQHandler +MFS2_RX_IRQHandler +MFS2_TX_IRQHandler +MFS3_RX_IRQHandler +MFS3_TX_IRQHandler +MFS4_RX_IRQHandler +MFS4_TX_IRQHandler +MFS5_RX_IRQHandler +MFS5_TX_IRQHandler +MFS6_RX_IRQHandler +MFS6_TX_IRQHandler +MFS7_RX_IRQHandler +MFS7_TX_IRQHandler +ADC0_IRQHandler +ADC1_IRQHandler +USB0_IRQHandler +USB0_HOST_IRQHandler +CAN0_IRQHandler +CAN1_IRQHandler +ETHER0_IRQHandler +DMAC0_IRQHandler +DMAC1_IRQHandler +DMAC2_IRQHandler +DMAC3_IRQHandler +DMAC4_IRQHandler +DMAC5_IRQHandler +DMAC6_IRQHandler +DMAC7_IRQHandler +DSTC_IRQHandler +EXINT16_17_18_19_IRQHandler +EXINT20_21_22_23_IRQHandler +EXINT24_25_26_27_IRQHandler +EXINT28_29_30_31_IRQHandler +QPRC2_IRQHandler +QPRC3_IRQHandler +BT8_IRQHandler +BT9_IRQHandler +BT10_IRQHandler +BT11_IRQHandler +BT12_15_IRQHandler +MFS8_RX_IRQHandler +MFS8_TX_IRQHandler +MFS9_RX_IRQHandler +MFS9_TX_IRQHandler +MFS10_RX_IRQHandler +MFS10_TX_IRQHandler +MFS11_RX_IRQHandler +MFS11_TX_IRQHandler +ADC2_IRQHandler +USB1_IRQHandler +USB1_HOST_IRQHandler +SD_IRQHandler +FLASHIF_IRQHandler +MFS12_RX_IRQHandler +MFS12_TX_IRQHandler +MFS13_RX_IRQHandler +MFS13_TX_IRQHandler +MFS14_RX_IRQHandler +MFS14_TX_IRQHandler +MFS15_RX_IRQHandler +MFS15_TX_IRQHandler +Dummy + + + 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 diff --git a/bsp/mb9bf568r/CMSIS/DeviceSupport/gcc/startup_mb9bf56xr.S b/bsp/mb9bf568r/CMSIS/DeviceSupport/gcc/startup_mb9bf56xr.S new file mode 100644 index 0000000000..8830a4d2c7 --- /dev/null +++ b/bsp/mb9bf568r/CMSIS/DeviceSupport/gcc/startup_mb9bf56xr.S @@ -0,0 +1,288 @@ +/**************************************************************************//** + * @file startup_.s + * @brief CMSIS Cortex-M# Core Device Startup File for + * Device + * @version V3.01 + * @date 06. March 2012 + * + * @note Version CodeSourcery Sourcery G++ Lite (with CS3) + * Copyright (C) 2012 ARM Limited. All rights reserved. + * + * @par + * ARM Limited (ARM) is supplying this software for use with Cortex-M + * processor based microcontrollers. This file can be freely distributed + * within development tools that are supporting such ARM based processors. + * + * @par + * THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED + * OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. + * ARM SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR + * CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER. + * + ******************************************************************************/ +/* +//-------- <<< Use Configuration Wizard in Context Menu >>> ------------------ +*/ + + +/* +// Stack Configuration +// Stack Size (in Bytes) <0x0-0xFFFFFFFF:8> +// +*/ + + .equ Stack_Size, 0x00000400 + .section ".stack", "w" + .align 3 + .globl __cs3_stack_mem + .globl __cs3_stack_size +__cs3_stack_mem: + .if Stack_Size + .space Stack_Size + .endif + .size __cs3_stack_mem, . - __cs3_stack_mem + .set __cs3_stack_size, . - __cs3_stack_mem + + +/* +// Heap Configuration +// Heap Size (in Bytes) <0x0-0xFFFFFFFF:8> +// +*/ + + .equ Heap_Size, 0x00000100 + + .section ".heap", "w" + .align 3 + .globl __cs3_heap_start + .globl __cs3_heap_end +__cs3_heap_start: + .if Heap_Size + .space Heap_Size + .endif +__cs3_heap_end: + + +/* Vector Table */ + + .section ".cs3.interrupt_vector" + .globl __cs3_interrupt_vector_cortex_m + .type __cs3_interrupt_vector_cortex_m, %object + +__cs3_interrupt_vector_cortex_m: + .long __cs3_stack /* Top of Stack */ + .long __cs3_reset /* Reset Handler */ + .long NMI_Handler /* NMI Handler */ + .long HardFault_Handler /* Hard Fault Handler */ + .long MemManage_Handler /* MPU Fault Handler */ + .long BusFault_Handler /* Bus Fault Handler */ + .long UsageFault_Handler /* Usage Fault Handler */ + .long 0 /* Reserved */ + .long 0 /* Reserved */ + .long 0 /* Reserved */ + .long 0 /* Reserved */ + .long SVC_Handler /* SVCall Handler */ + .long DebugMon_Handler /* Debug Monitor Handler */ + .long 0 /* Reserved */ + .long PendSV_Handler /* PendSV Handler */ + .long SysTick_Handler /* SysTick Handler */ + + /* External Interrupts */ +/* ToDo: Add here the vectors for the device specific external interrupts handler */ + .long CSV_Handler /* 0: Clock Super Visor */ + .long SWDT_Handler /* 1: Software Watchdog Timer */ + .long LVD_Handler /* 2: Low Voltage Detector */ + .long MFT_WG_IRQHandler /* 3: Wave Form Generator / DTIF */ + .long INT0_7_Handler /* 4: External Interrupt Request ch.0 to ch.7 */ + .long INT8_15_Handler /* 5: External Interrupt Request ch.8 to ch.15 */ + .long DT_Handler /* 6: Dual Timer / Quad Decoder */ + .long MFS0RX_IRQHandler /* 7: MultiFunction Serial ch.0 */ + .long MFS0TX_IRQHandler /* 8: MultiFunction Serial ch.0 */ + .long MFS1RX_IRQHandler /* 9: MultiFunction Serial ch.1 */ + .long MFS1TX_IRQHandler /* 10: MultiFunction Serial ch.1 */ + .long MFS2RX_IRQHandler /* 11: MultiFunction Serial ch.2 */ + .long MFS2TX_IRQHandler /* 12: MultiFunction Serial ch.2 */ + .long MFS3RX_IRQHandler /* 13: MultiFunction Serial ch.3 */ + .long MFS3TX_IRQHandler /* 14: MultiFunction Serial ch.3 */ + .long MFS4RX_IRQHandler /* 15: MultiFunction Serial ch.4 */ + .long MFS4TX_IRQHandler /* 16: MultiFunction Serial ch.4 */ + .long MFS5RX_IRQHandler /* 17: MultiFunction Serial ch.5 */ + .long MFS5TX_IRQHandler /* 18: MultiFunction Serial ch.5 */ + .long MFS6RX_IRQHandler /* 19: MultiFunction Serial ch.6 */ + .long MFS6TX_IRQHandler /* 20: MultiFunction Serial ch.6 */ + .long MFS7RX_IRQHandler /* 21: MultiFunction Serial ch.7 */ + .long MFS7TX_IRQHandler /* 22: MultiFunction Serial ch.7 */ + .long PPG_Handler /* 23: PPG */ + .long TIM_IRQHandler /* 24: OSC / PLL / Watch Counter */ + .long ADC0_IRQHandler /* 25: ADC0 */ + .long ADC1_IRQHandler /* 26: ADC1 */ + .long ADC2_IRQHandler /* 27: ADC2 */ + .long MFT_FRT_IRQHandler /* 28: Free-run Timer */ + .long MFT_IPC_IRQHandler /* 29: Input Capture */ + .long MFT_OPC_IRQHandler /* 30: Output Compare */ + .long BT_IRQHandler /* 31: Base Timer ch.0 to ch.7 */ + .long CAN0_IRQHandler /* 32: CAN ch.0 */ + .long CAN1_IRQHandler /* 33: CAN ch.1 */ + .long USBF_Handler /* 34: USB Function */ + .long USB_Handler /* 35: USB Function / USB HOST */ + .long RESERVED_1_IRQHandler /* 36: Reserved */ + .long RESERVED_2_IRQHandler /* 37: Reserved */ + .long DMAC0_Handler /* 38: DMAC ch.0 */ + .long DMAC1_Handler /* 39: DMAC ch.1 */ + .long DMAC2_Handler /* 40: DMAC ch.2 */ + .long DMAC3_Handler /* 41: DMAC ch.3 */ + .long DMAC4_Handler /* 42: DMAC ch.4 */ + .long DMAC5_Handler /* 43: DMAC ch.5 */ + .long DMAC6_Handler /* 44: DMAC ch.6 */ + .long DMAC7_Handler /* 45: DMAC ch.7 */ + .long RESERVED_3_IRQHandler /* 46: Reserved */ + .long RESERVED_4_IRQHandler /* 47: Reserved */ + + .size __cs3_interrupt_vector_cortex_m, . - __cs3_interrupt_vector_cortex_m + + + .thumb + + +/* Reset Handler */ + + .section .cs3.reset,"x",%progbits + .thumb_func + .globl __cs3_reset_cortex_m + .type __cs3_reset_cortex_m, %function +__cs3_reset_cortex_m: + .fnstart + LDR R0, =SystemInit + BLX R0 + LDR R0,=_start + BX R0 + .pool + .cantunwind + .fnend + .size __cs3_reset_cortex_m,.-__cs3_reset_cortex_m + + .section ".text" + +/* Exception Handlers */ + + .weak NMI_Handler + .type NMI_Handler, %function +NMI_Handler: + B . + .size NMI_Handler, . - NMI_Handler + + .weak HardFault_Handler + .type HardFault_Handler, %function +HardFault_Handler: + B . + .size HardFault_Handler, . - HardFault_Handler + + .weak MemManage_Handler + .type MemManage_Handler, %function +MemManage_Handler: + B . + .size MemManage_Handler, . - MemManage_Handler + + .weak BusFault_Handler + .type BusFault_Handler, %function +BusFault_Handler: + B . + .size BusFault_Handler, . - BusFault_Handler + + .weak UsageFault_Handler + .type UsageFault_Handler, %function +UsageFault_Handler: + B . + .size UsageFault_Handler, . - UsageFault_Handler + + .weak SVC_Handler + .type SVC_Handler, %function +SVC_Handler: + B . + .size SVC_Handler, . - SVC_Handler + + .weak DebugMon_Handler + .type DebugMon_Handler, %function +DebugMon_Handler: + B . + .size DebugMon_Handler, . - DebugMon_Handler + + .weak PendSV_Handler + .type PendSV_Handler, %function +PendSV_Handler: + B . + .size PendSV_Handler, . - PendSV_Handler + + .weak SysTick_Handler + .type SysTick_Handler, %function +SysTick_Handler: + B . + .size SysTick_Handler, . - SysTick_Handler + + +/* IRQ Handlers */ + +/* ToDo: Add here the export definition for the device specific external interrupts handler */ +/* ToDo: Add here the names for the device specific external interrupts handler */ + .globl Default_Handler + .type Default_Handler, %function +Default_Handler: + B . + .size Default_Handler, . - Default_Handler + + .macro IRQ handler + .weak \handler + .set \handler, Default_Handler + .endm + + IRQ CSV_Handler /* 0: Clock Super Visor */ + IRQ SWDT_Handler /* 1: Software Watchdog Timer */ + IRQ LVD_Handler /* 2: Low Voltage Detector */ + IRQ MFT_WG_IRQHandler /* 3: Wave Form Generator / DTIF */ + IRQ INT0_7_Handler /* 4: External Interrupt Request ch.0 to ch.7 */ + IRQ INT8_15_Handler /* 5: External Interrupt Request ch.8 to ch.15 */ + IRQ DT_Handler /* 6: Dual Timer / Quad Decoder */ + IRQ MFS0RX_IRQHandler /* 7: MultiFunction Serial ch.0 */ + IRQ MFS0TX_IRQHandler /* 8: MultiFunction Serial ch.0 */ + IRQ MFS1RX_IRQHandler /* 9: MultiFunction Serial ch.1 */ + IRQ MFS1TX_IRQHandler /* 10: MultiFunction Serial ch.1 */ + IRQ MFS2RX_IRQHandler /* 11: MultiFunction Serial ch.2 */ + IRQ MFS2TX_IRQHandler /* 12: MultiFunction Serial ch.2 */ + IRQ MFS3RX_IRQHandler /* 13: MultiFunction Serial ch.3 */ + IRQ MFS3TX_IRQHandler /* 14: MultiFunction Serial ch.3 */ + IRQ MFS4RX_IRQHandler /* 15: MultiFunction Serial ch.4 */ + IRQ MFS4TX_IRQHandler /* 16: MultiFunction Serial ch.4 */ + IRQ MFS5RX_IRQHandler /* 17: MultiFunction Serial ch.5 */ + IRQ MFS5TX_IRQHandler /* 18: MultiFunction Serial ch.5 */ + IRQ MFS6RX_IRQHandler /* 19: MultiFunction Serial ch.6 */ + IRQ MFS6TX_IRQHandler /* 20: MultiFunction Serial ch.6 */ + IRQ MFS7RX_IRQHandler /* 21: MultiFunction Serial ch.7 */ + IRQ MFS7TX_IRQHandler /* 22: MultiFunction Serial ch.7 */ + IRQ PPG_Handler /* 23: PPG */ + IRQ TIM_IRQHandler /* 24: OSC / PLL / Watch Counter */ + IRQ ADC0_IRQHandler /* 25: ADC0 */ + IRQ ADC1_IRQHandler /* 26: ADC1 */ + IRQ ADC2_IRQHandler /* 27: ADC2 */ + IRQ MFT_FRT_IRQHandler /* 28: Free-run Timer */ + IRQ MFT_IPC_IRQHandler /* 29: Input Capture */ + IRQ MFT_OPC_IRQHandler /* 30: Output Compare */ + IRQ BT_IRQHandler /* 31: Base Timer ch.0 to ch.7 */ + IRQ CAN0_IRQHandler /* 32: CAN ch.0 */ + IRQ CAN1_IRQHandler /* 33: CAN ch.1 */ + IRQ USBF_Handler /* 34: USB Function */ + IRQ USB_Handler /* 35: USB Function / USB HOST */ + IRQ RESERVED_1_IRQHandler /* 36: Reserved */ + IRQ RESERVED_2_IRQHandler /* 37: Reserved */ + IRQ DMAC0_Handler /* 38: DMAC ch.0 */ + IRQ DMAC1_Handler /* 39: DMAC ch.1 */ + IRQ DMAC2_Handler /* 40: DMAC ch.2 */ + IRQ DMAC3_Handler /* 41: DMAC ch.3 */ + IRQ DMAC4_Handler /* 42: DMAC ch.4 */ + IRQ DMAC5_Handler /* 43: DMAC ch.5 */ + IRQ DMAC6_Handler /* 44: DMAC ch.6 */ + IRQ DMAC7_Handler /* 45: DMAC ch.7 */ + IRQ RESERVED_3_IRQHandler /* 46: Reserved */ + IRQ RESERVED_4_IRQHandler /* 47: Reserved */ + + .end diff --git a/bsp/mb9bf568r/CMSIS/DeviceSupport/startup_mb9bf56xr.s b/bsp/mb9bf568r/CMSIS/DeviceSupport/startup_mb9bf56xr.s deleted file mode 100644 index 416a56f41d..0000000000 --- a/bsp/mb9bf568r/CMSIS/DeviceSupport/startup_mb9bf56xr.s +++ /dev/null @@ -1,584 +0,0 @@ -;******************************************************************************* -; Copyright (C) 2013 Spansion LLC. All Rights Reserved. -; -; This software is owned and published by: -; Spansion LLC, 915 DeGuigne Dr. Sunnyvale, CA 94088-3453 ("Spansion"). -; -; BY DOWNLOADING, INSTALLING OR USING THIS SOFTWARE, YOU AGREE TO BE BOUND -; BY ALL THE TERMS AND CONDITIONS OF THIS AGREEMENT. -; -; This software contains source code for use with Spansion -; components. This software is licensed by Spansion to be adapted only -; for use in systems utilizing Spansion components. Spansion shall not be -; responsible for misuse or illegal use of this software for devices not -; supported herein. Spansion is providing this software "AS IS" and will -; not be responsible for issues arising from incorrect user implementation -; of the software. -; -; SPANSION MAKES NO WARRANTY, EXPRESS OR IMPLIED, ARISING BY LAW OR OTHERWISE, -; REGARDING THE SOFTWARE (INCLUDING ANY ACOOMPANYING WRITTEN MATERIALS), -; ITS PERFORMANCE OR SUITABILITY FOR YOUR INTENDED USE, INCLUDING, -; WITHOUT LIMITATION, THE IMPLIED WARRANTY OF MERCHANTABILITY, THE IMPLIED -; WARRANTY OF FITNESS FOR A PARTICULAR PURPOSE OR USE, AND THE IMPLIED -; WARRANTY OF NONINFRINGEMENT. -; SPANSION SHALL HAVE NO LIABILITY (WHETHER IN CONTRACT, WARRANTY, TORT, -; NEGLIGENCE OR OTHERWISE) FOR ANY DAMAGES WHATSOEVER (INCLUDING, WITHOUT -; LIMITATION, DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS INTERRUPTION, -; LOSS OF BUSINESS INFORMATION, OR OTHER PECUNIARY LOSS) ARISING FROM USE OR -; INABILITY TO USE THE SOFTWARE, INCLUDING, WITHOUT LIMITATION, ANY DIRECT, -; INDIRECT, INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES OR LOSS OF DATA, -; SAVINGS OR PROFITS, -; EVEN IF SPANSION HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. -; YOU ASSUME ALL RESPONSIBILITIES FOR SELECTION OF THE SOFTWARE TO ACHIEVE YOUR -; INTENDED RESULTS, AND FOR THE INSTALLATION OF, USE OF, AND RESULTS OBTAINED -; FROM, THE SOFTWARE. -; -; This software may be replicated in part or whole for the licensed use, -; with the restriction that this Disclaimer and Copyright notice must be -; included with each copy of this software, whether used in part or whole, -; at all times. -; - -; Stack Configuration -; Stack Size (in Bytes) <0x0-0xFFFFFFFF:8> - -Stack_Size EQU 0x00000400 - - AREA STACK, NOINIT, READWRITE, ALIGN=3 -Stack_Mem SPACE Stack_Size -__initial_sp - - -; Heap Configuration -; Heap Size (in Bytes) <0x0-0xFFFFFFFF:8> - -Heap_Size EQU 0x00000200 - - 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 - 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 MemManage_Handler ; MPU Fault Handler - DCD BusFault_Handler ; Bus Fault Handler - DCD UsageFault_Handler ; Usage Fault Handler - DCD 0 ; Reserved - DCD 0 ; Reserved - DCD 0 ; Reserved - DCD 0 ; Reserved - DCD SVC_Handler ; SVCall Handler - DCD DebugMon_Handler ; Debug Monitor Handler - DCD 0 ; Reserved - DCD PendSV_Handler ; PendSV Handler - DCD SysTick_Handler ; SysTick Handler - -; Numbered IRQ handler vectors - -; Note: renaming to device dependent ISR function names are done in -; pdl.h (section "IRQ name definition for all type MCUs" - - DCD CSV_IRQHandler - DCD SWDT_IRQHandler - DCD LVD_IRQHandler - DCD IRQ003SEL_IRQHandler - DCD IRQ004SEL_IRQHandler - DCD IRQ005SEL_IRQHandler - DCD IRQ006SEL_IRQHandler - DCD IRQ007SEL_IRQHandler - DCD IRQ008SEL_IRQHandler - DCD IRQ009SEL_IRQHandler - DCD IRQ010SEL_IRQHandler - DCD EXINT0_IRQHandler - DCD EXINT1_IRQHandler - DCD EXINT2_IRQHandler - DCD EXINT3_IRQHandler - DCD EXINT4_IRQHandler - DCD EXINT5_IRQHandler - DCD EXINT6_IRQHandler - DCD EXINT7_IRQHandler - DCD QPRC0_IRQHandler - DCD QPRC1_IRQHandler - DCD WFG0_DTIF0_IRQHandler - DCD WFG1_DTIF1_IRQHandler - DCD WFG2_DTIF2_IRQHandler - DCD FRT0_PEAK_IRQHandler - DCD FRT0_ZERO_IRQHandler - DCD ICU0_IRQHandler - DCD OCU0_IRQHandler - DCD FRT1_PEAK_IRQHandler - DCD FRT1_ZERO_IRQHandler - DCD ICU1_IRQHandler - DCD OCU1_IRQHandler - DCD FRT2_PEAK_IRQHandler - DCD FRT2_ZERO_IRQHandler - DCD ICU2_IRQHandler - DCD OCU2_IRQHandler - DCD PPG00_02_04_IRQHandler - DCD PPG08_10_12_IRQHandler - DCD PPG16_18_20_IRQHandler - DCD BT0_IRQHandler - DCD BT1_IRQHandler - DCD BT2_IRQHandler - DCD BT3_IRQHandler - DCD BT4_IRQHandler - DCD BT5_IRQHandler - DCD BT6_IRQHandler - DCD BT7_IRQHandler - DCD DT1_2_IRAHandler - DCD WC_IRQHandler - DCD EXTBUS_ERR_Handler - DCD RTC_IRQHandler - DCD EXTINT8_IRQHandler - DCD EXTINT9_IRQHandler - DCD EXTINT10_IRQHandler - DCD EXTINT11_IRQHandler - DCD EXTINT12_IRQHandler - DCD EXTINT13_IRQHandler - DCD EXTINT14_IRQHandler - DCD EXTINT15_IRQHandler - DCD TIM_IRQHandler - DCD MFS0_RX_IRQHandler - DCD MFS0_TX_IRQHandler - DCD MFS1_RX_IRQHandler - DCD MFS1_TX_IRQHandler - DCD MFS2_RX_IRQHandler - DCD MFS2_TX_IRQHandler - DCD MFS3_RX_IRQHandler - DCD MFS3_TX_IRQHandler - DCD MFS4_RX_IRQHandler - DCD MFS4_TX_IRQHandler - DCD MFS5_RX_IRQHandler - DCD MFS5_TX_IRQHandler - DCD MFS6_RX_IRQHandler - DCD MFS6_TX_IRQHandler - DCD MFS7_RX_IRQHandler - DCD MFS7_TX_IRQHandler - DCD ADC0_IRQHandler - DCD ADC1_IRQHandler - DCD USB0_IRQHandler - DCD USB0_HOST_IRQHandler - DCD CAN0_IRQHandler - DCD CAN1_IRQHandler - DCD ETHER0_IRQHandler - DCD DMAC0_IRQHandler - DCD DMAC1_IRQHandler - DCD DMAC2_IRQHandler - DCD DMAC3_IRQHandler - DCD DMAC4_IRQHandler - DCD DMAC5_IRQHandler - DCD DMAC6_IRQHandler - DCD DMAC7_IRQHandler - DCD DSTC_IRQHandler - DCD EXINT16_17_18_19_IRQHandler - DCD EXINT20_21_22_23_IRQHandler - DCD EXINT24_25_26_27_IRQHandler - DCD EXINT28_29_30_31_IRQHandler - DCD QPRC2_IRQHandler - DCD QPRC3_IRQHandler - DCD BT8_IRQHandler - DCD BT9_IRQHandler - DCD BT10_IRQHandler - DCD BT11_IRQHandler - DCD BT12_15_IRQHandler - DCD MFS8_RX_IRQHandler - DCD MFS8_TX_IRQHandler - DCD MFS9_RX_IRQHandler - DCD MFS9_TX_IRQHandler - DCD MFS10_RX_IRQHandler - DCD MFS10_TX_IRQHandler - DCD MFS11_RX_IRQHandler - DCD MFS11_TX_IRQHandler - DCD ADC2_IRQHandler - DCD Dummy - DCD USB1_IRQHandler - DCD USB1_HOST_IRQHandler - DCD Dummy - DCD Dummy - DCD Dummy - DCD SD_IRQHandler - DCD FLASHIF_IRQHandler - DCD MFS12_RX_IRQHandler - DCD MFS12_TX_IRQHandler - DCD MFS13_RX_IRQHandler - DCD MFS13_TX_IRQHandler - DCD MFS14_RX_IRQHandler - DCD MFS14_TX_IRQHandler - DCD MFS15_RX_IRQHandler - DCD MFS15_TX_IRQHandler -__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.W R0, =0xE000ED88 ; CPACR is located at address 0xE000ED88 - LDR R1, [R0] ; Read CPACR - ORR R1, R1, #(0xF << 20) ; Set bits 20-23 to enable CP10 and CP11 coprocessors - STR R1, [R0] ; Write back the modified value to the CPACR - - 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 -MemManage_Handler\ - PROC - EXPORT MemManage_Handler [WEAK] - B . - ENDP -BusFault_Handler\ - PROC - EXPORT BusFault_Handler [WEAK] - B . - ENDP -UsageFault_Handler\ - PROC - EXPORT UsageFault_Handler [WEAK] - B . - ENDP -SVC_Handler PROC - EXPORT SVC_Handler [WEAK] - B . - ENDP -DebugMon_Handler\ - PROC - EXPORT DebugMon_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 CSV_IRQHandler [WEAK] - EXPORT SWDT_IRQHandler [WEAK] - EXPORT LVD_IRQHandler [WEAK] - EXPORT IRQ003SEL_IRQHandler [WEAK] - EXPORT IRQ004SEL_IRQHandler [WEAK] - EXPORT IRQ005SEL_IRQHandler [WEAK] - EXPORT IRQ006SEL_IRQHandler [WEAK] - EXPORT IRQ007SEL_IRQHandler [WEAK] - EXPORT IRQ008SEL_IRQHandler [WEAK] - EXPORT IRQ009SEL_IRQHandler [WEAK] - EXPORT IRQ010SEL_IRQHandler [WEAK] - EXPORT EXINT0_IRQHandler [WEAK] - EXPORT EXINT1_IRQHandler [WEAK] - EXPORT EXINT2_IRQHandler [WEAK] - EXPORT EXINT3_IRQHandler [WEAK] - EXPORT EXINT4_IRQHandler [WEAK] - EXPORT EXINT5_IRQHandler [WEAK] - EXPORT EXINT6_IRQHandler [WEAK] - EXPORT EXINT7_IRQHandler [WEAK] - EXPORT QPRC0_IRQHandler [WEAK] - EXPORT QPRC1_IRQHandler [WEAK] - EXPORT WFG0_DTIF0_IRQHandler [WEAK] - EXPORT WFG1_DTIF1_IRQHandler [WEAK] - EXPORT WFG2_DTIF2_IRQHandler [WEAK] - EXPORT FRT0_PEAK_IRQHandler [WEAK] - EXPORT FRT0_ZERO_IRQHandler [WEAK] - EXPORT ICU0_IRQHandler [WEAK] - EXPORT OCU0_IRQHandler [WEAK] - EXPORT FRT1_PEAK_IRQHandler [WEAK] - EXPORT FRT1_ZERO_IRQHandler [WEAK] - EXPORT ICU1_IRQHandler [WEAK] - EXPORT OCU1_IRQHandler [WEAK] - EXPORT FRT2_PEAK_IRQHandler [WEAK] - EXPORT FRT2_ZERO_IRQHandler [WEAK] - EXPORT ICU2_IRQHandler [WEAK] - EXPORT OCU2_IRQHandler [WEAK] - EXPORT PPG00_02_04_IRQHandler [WEAK] - EXPORT PPG08_10_12_IRQHandler [WEAK] - EXPORT PPG16_18_20_IRQHandler [WEAK] - EXPORT BT0_IRQHandler [WEAK] - EXPORT BT1_IRQHandler [WEAK] - EXPORT BT2_IRQHandler [WEAK] - EXPORT BT3_IRQHandler [WEAK] - EXPORT BT4_IRQHandler [WEAK] - EXPORT BT5_IRQHandler [WEAK] - EXPORT BT6_IRQHandler [WEAK] - EXPORT BT7_IRQHandler [WEAK] - EXPORT DT1_2_IRAHandler [WEAK] - EXPORT WC_IRQHandler [WEAK] - EXPORT EXTBUS_ERR_Handler [WEAK] - EXPORT RTC_IRQHandler [WEAK] - EXPORT EXTINT8_IRQHandler [WEAK] - EXPORT EXTINT9_IRQHandler [WEAK] - EXPORT EXTINT10_IRQHandler [WEAK] - EXPORT EXTINT11_IRQHandler [WEAK] - EXPORT EXTINT12_IRQHandler [WEAK] - EXPORT EXTINT13_IRQHandler [WEAK] - EXPORT EXTINT14_IRQHandler [WEAK] - EXPORT EXTINT15_IRQHandler [WEAK] - EXPORT TIM_IRQHandler [WEAK] - EXPORT MFS0_RX_IRQHandler [WEAK] - EXPORT MFS0_TX_IRQHandler [WEAK] - EXPORT MFS1_RX_IRQHandler [WEAK] - EXPORT MFS1_TX_IRQHandler [WEAK] - EXPORT MFS2_RX_IRQHandler [WEAK] - EXPORT MFS2_TX_IRQHandler [WEAK] - EXPORT MFS3_RX_IRQHandler [WEAK] - EXPORT MFS3_TX_IRQHandler [WEAK] - EXPORT MFS4_RX_IRQHandler [WEAK] - EXPORT MFS4_TX_IRQHandler [WEAK] - EXPORT MFS5_RX_IRQHandler [WEAK] - EXPORT MFS5_TX_IRQHandler [WEAK] - EXPORT MFS6_RX_IRQHandler [WEAK] - EXPORT MFS6_TX_IRQHandler [WEAK] - EXPORT MFS7_RX_IRQHandler [WEAK] - EXPORT MFS7_TX_IRQHandler [WEAK] - EXPORT ADC0_IRQHandler [WEAK] - EXPORT ADC1_IRQHandler [WEAK] - EXPORT USB0_IRQHandler [WEAK] - EXPORT USB0_HOST_IRQHandler [WEAK] - EXPORT CAN0_IRQHandler [WEAK] - EXPORT CAN1_IRQHandler [WEAK] - EXPORT ETHER0_IRQHandler [WEAK] - EXPORT DMAC0_IRQHandler [WEAK] - EXPORT DMAC1_IRQHandler [WEAK] - EXPORT DMAC2_IRQHandler [WEAK] - EXPORT DMAC3_IRQHandler [WEAK] - EXPORT DMAC4_IRQHandler [WEAK] - EXPORT DMAC5_IRQHandler [WEAK] - EXPORT DMAC6_IRQHandler [WEAK] - EXPORT DMAC7_IRQHandler [WEAK] - EXPORT DSTC_IRQHandler [WEAK] - EXPORT EXINT16_17_18_19_IRQHandler [WEAK] - EXPORT EXINT20_21_22_23_IRQHandler [WEAK] - EXPORT EXINT24_25_26_27_IRQHandler [WEAK] - EXPORT EXINT28_29_30_31_IRQHandler [WEAK] - EXPORT QPRC2_IRQHandler [WEAK] - EXPORT QPRC3_IRQHandler [WEAK] - EXPORT BT8_IRQHandler [WEAK] - EXPORT BT9_IRQHandler [WEAK] - EXPORT BT10_IRQHandler [WEAK] - EXPORT BT11_IRQHandler [WEAK] - EXPORT BT12_15_IRQHandler [WEAK] - EXPORT MFS8_RX_IRQHandler [WEAK] - EXPORT MFS8_TX_IRQHandler [WEAK] - EXPORT MFS9_RX_IRQHandler [WEAK] - EXPORT MFS9_TX_IRQHandler [WEAK] - EXPORT MFS10_RX_IRQHandler [WEAK] - EXPORT MFS10_TX_IRQHandler [WEAK] - EXPORT MFS11_RX_IRQHandler [WEAK] - EXPORT MFS11_TX_IRQHandler [WEAK] - EXPORT ADC2_IRQHandler [WEAK] - EXPORT USB1_IRQHandler [WEAK] - EXPORT USB1_HOST_IRQHandler [WEAK] - EXPORT SD_IRQHandler [WEAK] - EXPORT FLASHIF_IRQHandler [WEAK] - EXPORT MFS12_RX_IRQHandler [WEAK] - EXPORT MFS12_TX_IRQHandler [WEAK] - EXPORT MFS13_RX_IRQHandler [WEAK] - EXPORT MFS13_TX_IRQHandler [WEAK] - EXPORT MFS14_RX_IRQHandler [WEAK] - EXPORT MFS14_TX_IRQHandler [WEAK] - EXPORT MFS15_RX_IRQHandler [WEAK] - EXPORT MFS15_TX_IRQHandler [WEAK] - EXPORT Dummy [WEAK] - - - -CSV_IRQHandler -SWDT_IRQHandler -LVD_IRQHandler -IRQ003SEL_IRQHandler -IRQ004SEL_IRQHandler -IRQ005SEL_IRQHandler -IRQ006SEL_IRQHandler -IRQ007SEL_IRQHandler -IRQ008SEL_IRQHandler -IRQ009SEL_IRQHandler -IRQ010SEL_IRQHandler -EXINT0_IRQHandler -EXINT1_IRQHandler -EXINT2_IRQHandler -EXINT3_IRQHandler -EXINT4_IRQHandler -EXINT5_IRQHandler -EXINT6_IRQHandler -EXINT7_IRQHandler -QPRC0_IRQHandler -QPRC1_IRQHandler -WFG0_DTIF0_IRQHandler -WFG1_DTIF1_IRQHandler -WFG2_DTIF2_IRQHandler -FRT0_PEAK_IRQHandler -FRT0_ZERO_IRQHandler -ICU0_IRQHandler -OCU0_IRQHandler -FRT1_PEAK_IRQHandler -FRT1_ZERO_IRQHandler -ICU1_IRQHandler -OCU1_IRQHandler -FRT2_PEAK_IRQHandler -FRT2_ZERO_IRQHandler -ICU2_IRQHandler -OCU2_IRQHandler -PPG00_02_04_IRQHandler -PPG08_10_12_IRQHandler -PPG16_18_20_IRQHandler -BT0_IRQHandler -BT1_IRQHandler -BT2_IRQHandler -BT3_IRQHandler -BT4_IRQHandler -BT5_IRQHandler -BT6_IRQHandler -BT7_IRQHandler -DT1_2_IRAHandler -WC_IRQHandler -EXTBUS_ERR_Handler -RTC_IRQHandler -EXTINT8_IRQHandler -EXTINT9_IRQHandler -EXTINT10_IRQHandler -EXTINT11_IRQHandler -EXTINT12_IRQHandler -EXTINT13_IRQHandler -EXTINT14_IRQHandler -EXTINT15_IRQHandler -TIM_IRQHandler -MFS0_RX_IRQHandler -MFS0_TX_IRQHandler -MFS1_RX_IRQHandler -MFS1_TX_IRQHandler -MFS2_RX_IRQHandler -MFS2_TX_IRQHandler -MFS3_RX_IRQHandler -MFS3_TX_IRQHandler -MFS4_RX_IRQHandler -MFS4_TX_IRQHandler -MFS5_RX_IRQHandler -MFS5_TX_IRQHandler -MFS6_RX_IRQHandler -MFS6_TX_IRQHandler -MFS7_RX_IRQHandler -MFS7_TX_IRQHandler -ADC0_IRQHandler -ADC1_IRQHandler -USB0_IRQHandler -USB0_HOST_IRQHandler -CAN0_IRQHandler -CAN1_IRQHandler -ETHER0_IRQHandler -DMAC0_IRQHandler -DMAC1_IRQHandler -DMAC2_IRQHandler -DMAC3_IRQHandler -DMAC4_IRQHandler -DMAC5_IRQHandler -DMAC6_IRQHandler -DMAC7_IRQHandler -DSTC_IRQHandler -EXINT16_17_18_19_IRQHandler -EXINT20_21_22_23_IRQHandler -EXINT24_25_26_27_IRQHandler -EXINT28_29_30_31_IRQHandler -QPRC2_IRQHandler -QPRC3_IRQHandler -BT8_IRQHandler -BT9_IRQHandler -BT10_IRQHandler -BT11_IRQHandler -BT12_15_IRQHandler -MFS8_RX_IRQHandler -MFS8_TX_IRQHandler -MFS9_RX_IRQHandler -MFS9_TX_IRQHandler -MFS10_RX_IRQHandler -MFS10_TX_IRQHandler -MFS11_RX_IRQHandler -MFS11_TX_IRQHandler -ADC2_IRQHandler -USB1_IRQHandler -USB1_HOST_IRQHandler -SD_IRQHandler -FLASHIF_IRQHandler -MFS12_RX_IRQHandler -MFS12_TX_IRQHandler -MFS13_RX_IRQHandler -MFS13_TX_IRQHandler -MFS14_RX_IRQHandler -MFS14_TX_IRQHandler -MFS15_RX_IRQHandler -MFS15_TX_IRQHandler -Dummy - - - 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 diff --git a/bsp/mb9bf568r/CMSIS/SConscript b/bsp/mb9bf568r/CMSIS/SConscript index f48594dfa3..6ab907fca5 100644 --- a/bsp/mb9bf568r/CMSIS/SConscript +++ b/bsp/mb9bf568r/CMSIS/SConscript @@ -9,9 +9,10 @@ CPPPATH = [cwd + '/Include', cwd + '/DeviceSupport'] # add for startup script if rtconfig.CROSS_TOOL == 'keil': - src += ['DeviceSupport/startup_mb9bf56xr.s'] - + src += ['DeviceSupport/arm/startup_mb9bf56xr.s'] +if rtconfig.CROSS_TOOL == 'gcc': + src += ['DeviceSupport/gcc/startup_mb9bf56xr.S'] group = DefineGroup('CMSIS', src, depend = [''], CPPPATH = CPPPATH) diff --git a/bsp/mb9bf568r/SConstruct b/bsp/mb9bf568r/SConstruct index a58e07aa4b..2a092f5a7e 100644 --- a/bsp/mb9bf568r/SConstruct +++ b/bsp/mb9bf568r/SConstruct @@ -10,11 +10,12 @@ else: sys.path = sys.path + [os.path.join(RTT_ROOT, 'tools')] from building import * -TARGET = 'rtthread-stm32f4xx.' + rtconfig.TARGET_EXT +TARGET = 'rtthread-fm4.' + rtconfig.TARGET_EXT env = Environment(tools = ['mingw'], AS = rtconfig.AS, ASFLAGS = rtconfig.AFLAGS, CC = rtconfig.CC, CCFLAGS = rtconfig.CFLAGS, + CXX = rtconfig.CXX, CXXFLAGS = rtconfig.CXXFLAGS, AR = rtconfig.AR, ARFLAGS = '-rc', LINK = rtconfig.LINK, LINKFLAGS = rtconfig.LFLAGS) env.PrependENVPath('PATH', rtconfig.EXEC_PATH) diff --git a/bsp/mb9bf568r/project.uvopt b/bsp/mb9bf568r/project.uvopt deleted file mode 100644 index 9046d919e5..0000000000 --- a/bsp/mb9bf568r/project.uvopt +++ /dev/null @@ -1,844 +0,0 @@ - - - - 1.0 - -
### uVision Project, (C) Keil Software
- - - *.c - *.s*; *.src; *.a* - *.obj - *.lib - *.txt; *.h; *.inc - *.plm - *.cpp - - - - 0 - 0 - - - - rtthread-fm4 - 0x4 - ARM-ADS - - 4000000 - - 1 - 1 - 1 - 0 - - - 1 - 65535 - 0 - 0 - 0 - - - 79 - 66 - 8 - .\build\ - - - 1 - 1 - 1 - 0 - 1 - 1 - 0 - 1 - 0 - 0 - 0 - 0 - - - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 0 - 0 - - - 0 - 0 - 1 - - 255 - - SARMCM3.DLL - - DCM.DLL - -pCM4 - SARMCM3.DLL - - TCM.DLL - -pCM4 - - - 0 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 0 - 1 - 1 - 0 - 0 - 14 - - - - - - - - - - - BIN\CMSIS_AGDI.dll - - - - 0 - CMSIS_AGDI - -X"CMSIS-DAP" -U -O175 -S0 -C0 -P00 -N00("ARM CoreSight JTAG-DP") -D00(4BA00477) -L00(0) -FO15 -FD20000000 -FC8000 -FN2 -FF0MB9B560_1024 -FS00 -FL0100000 -FF1MB9B560_WORK32 -FS1200C0000 -FL18000 - - - - - 0 - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - - - 0 - - - - - - - - Applications - 0 - 0 - 0 - 0 - - 1 - 1 - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - applications\application.c - application.c - 0 - 0 - - - 1 - 2 - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - applications\demo.c - demo.c - 0 - 0 - - - 1 - 3 - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - applications\startup.c - startup.c - 0 - 0 - - - - - CMSIS - 0 - 0 - 0 - 0 - - 2 - 4 - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - CMSIS\DeviceSupport\system_mb9abxxx.c - system_mb9abxxx.c - 0 - 0 - - - 2 - 5 - 2 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - CMSIS\DeviceSupport\startup_mb9bf56xr.s - startup_mb9bf56xr.s - 0 - 0 - - - - - Drivers - 0 - 0 - 0 - 0 - - 3 - 6 - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - drivers\board.c - board.c - 0 - 0 - - - 3 - 7 - 1 - 0 - 0 - 29 - 0 - 0 - 0 - 0 - drivers\led.c - led.c - 0 - 0 - - - 3 - 8 - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - drivers\serial.c - serial.c - 0 - 0 - - - - - Kernel - 0 - 0 - 0 - 0 - - 4 - 9 - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - E:/work/xiaoyang/rt-thread/src\clock.c - clock.c - 0 - 0 - - - 4 - 10 - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - E:/work/xiaoyang/rt-thread/src\device.c - device.c - 0 - 0 - - - 4 - 11 - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - E:/work/xiaoyang/rt-thread/src\idle.c - idle.c - 0 - 0 - - - 4 - 12 - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - E:/work/xiaoyang/rt-thread/src\ipc.c - ipc.c - 0 - 0 - - - 4 - 13 - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - E:/work/xiaoyang/rt-thread/src\irq.c - irq.c - 0 - 0 - - - 4 - 14 - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - E:/work/xiaoyang/rt-thread/src\kservice.c - kservice.c - 0 - 0 - - - 4 - 15 - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - E:/work/xiaoyang/rt-thread/src\mem.c - mem.c - 0 - 0 - - - 4 - 16 - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - E:/work/xiaoyang/rt-thread/src\mempool.c - mempool.c - 0 - 0 - - - 4 - 17 - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - E:/work/xiaoyang/rt-thread/src\object.c - object.c - 0 - 0 - - - 4 - 18 - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - E:/work/xiaoyang/rt-thread/src\scheduler.c - scheduler.c - 0 - 0 - - - 4 - 19 - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - E:/work/xiaoyang/rt-thread/src\thread.c - thread.c - 0 - 0 - - - 4 - 20 - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - E:/work/xiaoyang/rt-thread/src\timer.c - timer.c - 0 - 0 - - - - - CORTEX-M4 - 0 - 0 - 0 - 0 - - 5 - 21 - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - E:/work/xiaoyang/rt-thread/libcpu/arm/cortex-m4\cpuport.c - cpuport.c - 0 - 0 - - - 5 - 22 - 2 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - E:/work/xiaoyang/rt-thread/libcpu/arm/cortex-m4\context_rvds.S - context_rvds.S - 0 - 0 - - - 5 - 23 - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - E:/work/xiaoyang/rt-thread/libcpu/arm/common\backtrace.c - backtrace.c - 0 - 0 - - - 5 - 24 - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - E:/work/xiaoyang/rt-thread/libcpu/arm/common\div0.c - div0.c - 0 - 0 - - - 5 - 25 - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - E:/work/xiaoyang/rt-thread/libcpu/arm/common\showmem.c - showmem.c - 0 - 0 - - - - - finsh - 0 - 0 - 0 - 0 - - 6 - 26 - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - E:/work/xiaoyang/rt-thread/components/finsh\shell.c - shell.c - 0 - 0 - - - 6 - 27 - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - E:/work/xiaoyang/rt-thread/components/finsh\symbol.c - symbol.c - 0 - 0 - - - 6 - 28 - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - E:/work/xiaoyang/rt-thread/components/finsh\cmd.c - cmd.c - 0 - 0 - - - 6 - 29 - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - E:/work/xiaoyang/rt-thread/components/finsh\finsh_compiler.c - finsh_compiler.c - 0 - 0 - - - 6 - 30 - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - E:/work/xiaoyang/rt-thread/components/finsh\finsh_error.c - finsh_error.c - 0 - 0 - - - 6 - 31 - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - E:/work/xiaoyang/rt-thread/components/finsh\finsh_heap.c - finsh_heap.c - 0 - 0 - - - 6 - 32 - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - E:/work/xiaoyang/rt-thread/components/finsh\finsh_init.c - finsh_init.c - 0 - 0 - - - 6 - 33 - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - E:/work/xiaoyang/rt-thread/components/finsh\finsh_node.c - finsh_node.c - 0 - 0 - - - 6 - 34 - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - E:/work/xiaoyang/rt-thread/components/finsh\finsh_ops.c - finsh_ops.c - 0 - 0 - - - 6 - 35 - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - E:/work/xiaoyang/rt-thread/components/finsh\finsh_parser.c - finsh_parser.c - 0 - 0 - - - 6 - 36 - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - E:/work/xiaoyang/rt-thread/components/finsh\finsh_var.c - finsh_var.c - 0 - 0 - - - 6 - 37 - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - E:/work/xiaoyang/rt-thread/components/finsh\finsh_vm.c - finsh_vm.c - 0 - 0 - - - 6 - 38 - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - E:/work/xiaoyang/rt-thread/components/finsh\finsh_token.c - finsh_token.c - 0 - 0 - - - - - Components - 0 - 0 - 0 - 0 - - 7 - 39 - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - E:/work/xiaoyang/rt-thread/components/init\components.c - components.c - 0 - 0 - - - -
diff --git a/bsp/mb9bf568r/project.uvproj b/bsp/mb9bf568r/project.uvproj deleted file mode 100644 index 13b6d8ea6e..0000000000 --- a/bsp/mb9bf568r/project.uvproj +++ /dev/null @@ -1,625 +0,0 @@ - - - - 1.1 - -
### uVision Project, (C) Keil Software
- - - - rtthread-fm4 - 0x4 - ARM-ADS - - - Cortex-M4 FPU - ARM - CLOCK(12000000) CPUTYPE("Cortex-M4") ESEL ELITTLE FPU2 - - - - 5237 - - - - - - - - - - - - 0 - - - - - - - 0 - 0 - 0 - 0 - 1 - - .\build\ - template_mb9b56xx - 1 - 0 - 0 - 1 - 1 - .\build\ - 1 - 0 - 0 - - 0 - 0 - - - 0 - 0 - 0 - 0 - - - 0 - 0 - - - 0 - 0 - - - 0 - 0 - - - 0 - 0 - - 0 - - - - 0 - 0 - 0 - 0 - 0 - 1 - 0 - 0 - 0 - 0 - 3 - - - - - SARMCM3.DLL - - DCM.DLL - -pCM4 - SARMCM3.DLL - - TCM.DLL - -pCM4 - - - - 1 - 0 - 0 - 0 - 16 - - - 0 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 0 - - - 1 - 1 - 1 - 1 - 1 - 1 - 0 - 1 - 1 - - 0 - 14 - - - - - - - - - - - - - - BIN\CMSIS_AGDI.dll - - - - - 1 - 0 - 0 - 0 - 1 - 4105 - - BIN\CMSIS_AGDI.dll - "" () - - - - - 0 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 0 - 1 - 1 - 0 - 0 - 0 - 0 - 0 - 1 - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - "Cortex-M4" - - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 2 - 0 - 0 - 8 - 0 - 1 - 0 - 3 - 5 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 1 - 1 - 0 - 0 - 0 - 1 - 1 - - - 0 - 0x0 - 0x0 - - - 0 - 0x0 - 0x0 - - - 0 - 0x0 - 0x0 - - - 0 - 0x0 - 0x0 - - - 0 - 0x0 - 0x0 - - - 0 - 0x0 - 0x0 - - - 0 - 0x0 - 0x0 - - - 0 - 0x0 - 0x0 - - - 0 - 0x0 - 0x0 - - - 1 - 0x0 - 0x0 - - - 1 - 0x0 - 0x0 - - - 1 - 0x0 - 0x0 - - - 1 - 0x0 - 0x100000 - - - 1 - 0x200c0000 - 0x8000 - - - 0 - 0x0 - 0x0 - - - 0 - 0x0 - 0x0 - - - 0 - 0x0 - 0x0 - - - 0 - 0x1fff0000 - 0x10000 - - - 0 - 0x20038000 - 0x10000 - - - - - - 1 - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - - - - - applications;.;CMSIS\Include;CMSIS\DeviceSupport;drivers;E:/work/xiaoyang/rt-thread/include;E:/work/xiaoyang/rt-thread/libcpu/arm/cortex-m4;E:/work/xiaoyang/rt-thread/libcpu/arm/common;E:/work/xiaoyang/rt-thread/components/finsh;E:/work/xiaoyang/rt-thread/components/init - - - - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - - - - - - - - - 1 - 0 - 0 - 0 - 1 - 0 - 0x00000000 - 0x00000000 - - - - --keep __fsym_* --keep __vsym_* --keep __rt_init* - - - - - - - - Applications - - - application.c - 1 - applications\application.c - - - demo.c - 1 - applications\demo.c - - - startup.c - 1 - applications\startup.c - - - - - CMSIS - - - system_mb9abxxx.c - 1 - CMSIS\DeviceSupport\system_mb9abxxx.c - - - startup_mb9bf56xr.s - 2 - CMSIS\DeviceSupport\startup_mb9bf56xr.s - - - - - Drivers - - - board.c - 1 - drivers\board.c - - - led.c - 1 - drivers\led.c - - - serial.c - 1 - drivers\serial.c - - - - - Kernel - - - clock.c - 1 - E:/work/xiaoyang/rt-thread/src\clock.c - - - device.c - 1 - E:/work/xiaoyang/rt-thread/src\device.c - - - idle.c - 1 - E:/work/xiaoyang/rt-thread/src\idle.c - - - ipc.c - 1 - E:/work/xiaoyang/rt-thread/src\ipc.c - - - irq.c - 1 - E:/work/xiaoyang/rt-thread/src\irq.c - - - kservice.c - 1 - E:/work/xiaoyang/rt-thread/src\kservice.c - - - mem.c - 1 - E:/work/xiaoyang/rt-thread/src\mem.c - - - mempool.c - 1 - E:/work/xiaoyang/rt-thread/src\mempool.c - - - object.c - 1 - E:/work/xiaoyang/rt-thread/src\object.c - - - scheduler.c - 1 - E:/work/xiaoyang/rt-thread/src\scheduler.c - - - thread.c - 1 - E:/work/xiaoyang/rt-thread/src\thread.c - - - timer.c - 1 - E:/work/xiaoyang/rt-thread/src\timer.c - - - - - CORTEX-M4 - - - cpuport.c - 1 - E:/work/xiaoyang/rt-thread/libcpu/arm/cortex-m4\cpuport.c - - - context_rvds.S - 2 - E:/work/xiaoyang/rt-thread/libcpu/arm/cortex-m4\context_rvds.S - - - backtrace.c - 1 - E:/work/xiaoyang/rt-thread/libcpu/arm/common\backtrace.c - - - div0.c - 1 - E:/work/xiaoyang/rt-thread/libcpu/arm/common\div0.c - - - showmem.c - 1 - E:/work/xiaoyang/rt-thread/libcpu/arm/common\showmem.c - - - - - finsh - - - shell.c - 1 - E:/work/xiaoyang/rt-thread/components/finsh\shell.c - - - symbol.c - 1 - E:/work/xiaoyang/rt-thread/components/finsh\symbol.c - - - cmd.c - 1 - E:/work/xiaoyang/rt-thread/components/finsh\cmd.c - - - finsh_compiler.c - 1 - E:/work/xiaoyang/rt-thread/components/finsh\finsh_compiler.c - - - finsh_error.c - 1 - E:/work/xiaoyang/rt-thread/components/finsh\finsh_error.c - - - finsh_heap.c - 1 - E:/work/xiaoyang/rt-thread/components/finsh\finsh_heap.c - - - finsh_init.c - 1 - E:/work/xiaoyang/rt-thread/components/finsh\finsh_init.c - - - finsh_node.c - 1 - E:/work/xiaoyang/rt-thread/components/finsh\finsh_node.c - - - finsh_ops.c - 1 - E:/work/xiaoyang/rt-thread/components/finsh\finsh_ops.c - - - finsh_parser.c - 1 - E:/work/xiaoyang/rt-thread/components/finsh\finsh_parser.c - - - finsh_var.c - 1 - E:/work/xiaoyang/rt-thread/components/finsh\finsh_var.c - - - finsh_vm.c - 1 - E:/work/xiaoyang/rt-thread/components/finsh\finsh_vm.c - - - finsh_token.c - 1 - E:/work/xiaoyang/rt-thread/components/finsh\finsh_token.c - - - - - Components - - - components.c - 1 - E:/work/xiaoyang/rt-thread/components/init\components.c - - - - - - - -
diff --git a/bsp/mb9bf568r/rtconfig.py b/bsp/mb9bf568r/rtconfig.py index 4d97373f4e..d3cc5e967f 100644 --- a/bsp/mb9bf568r/rtconfig.py +++ b/bsp/mb9bf568r/rtconfig.py @@ -4,17 +4,17 @@ import os ARCH='arm' CPU='cortex-m4' CROSS_TOOL='keil' -BOARD_NAME = 'lpc408x' +BOARD_NAME = 'mb9bf568r' if os.getenv('RTT_CC'): - CROSS_TOOL = os.getenv('RTT_CC') + CROSS_TOOL = os.getenv('RTT_CC') if CROSS_TOOL == 'gcc': - PLATFORM = 'gcc' - EXEC_PATH = r'D:/Program Files (x86)/CodeSourcery/Sourcery_CodeBench_Lite_for_ARM_EABI/bin' + PLATFORM = 'gcc' + EXEC_PATH = r'D:/Program Files (x86)/CodeSourcery/Sourcery_CodeBench_Lite_for_ARM_EABI/bin' elif CROSS_TOOL == 'keil': - PLATFORM = 'armcc' - EXEC_PATH = 'D:/Keil' + PLATFORM = 'armcc' + EXEC_PATH = 'D:/Keil' elif CROSS_TOOL == 'iar': print '================ERROR============================' print 'Not support iar yet!' @@ -22,7 +22,7 @@ elif CROSS_TOOL == 'iar': exit(0) if os.getenv('RTT_EXEC_PATH'): - EXEC_PATH = os.getenv('RTT_EXEC_PATH') + EXEC_PATH = os.getenv('RTT_EXEC_PATH') BUILD = 'debug' @@ -30,9 +30,10 @@ if PLATFORM == 'gcc': # toolchains PREFIX = 'arm-none-eabi-' CC = PREFIX + 'gcc' + CXX = PREFIX + 'g++' AS = PREFIX + 'gcc' AR = PREFIX + 'ar' - LINK = PREFIX + 'gcc' + LINK = PREFIX + 'g++' TARGET_EXT = 'elf' SIZE = PREFIX + 'size' OBJDUMP = PREFIX + 'objdump' @@ -51,6 +52,7 @@ if PLATFORM == 'gcc': AFLAGS += ' -gdwarf-2' else: CFLAGS += ' -O2' + CXXFLAGS = CFLAGS POST_ACTION = OBJCPY + ' -O binary $TARGET rtthread.bin\n' + SIZE + ' $TARGET \n' diff --git a/bsp/mb9bf568r/rtthread-mb9bf568r.ld b/bsp/mb9bf568r/rtthread-mb9bf568r.ld new file mode 100644 index 0000000000..8b9a6a37ac --- /dev/null +++ b/bsp/mb9bf568r/rtthread-mb9bf568r.ld @@ -0,0 +1,222 @@ +/* Linker script to configure memory regions + * + * Version:CodeSourcery Sourcery G++ Lite 2007q3-53 + * BugURL:https://support.codesourcery.com/GNUToolchain/ + * + * Copyright 2007 CodeSourcery. + * + * The authors hereby grant permission to use, copy, modify, distribute, + * and license this software and its documentation for any purpose, provided + * that existing copyright notices are retained in all copies and that this + * notice is included verbatim in any distributions. No written agreement, + * license, or royalty fee is required for any of the authorized uses. + * Modifications to this software may be copyrighted by their authors + * and need not follow the licensing terms described here, provided that + * the new terms are clearly indicated on the first page of each file where + * they apply. */ + +OUTPUT_FORMAT ("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") +ENTRY(_start) +SEARCH_DIR(.) +GROUP(-lgcc -lc -lcs3 -lcs3unhosted -lcs3micro) + +MEMORY +{ + rom (rx) : ORIGIN = 0x00000000, LENGTH = 0x00100000 /* 1024k */ + ram (rwx) : ORIGIN = 0x1FFF0000, LENGTH = 0x00010000 /* 64k */ +} + +/* These force the linker to search for particular symbols from + * the start of the link process and thus ensure the user's + * overrides are picked up + */ +EXTERN(__cs3_reset_cortex_m) +EXTERN(__cs3_interrupt_vector_cortex_m) +EXTERN(__cs3_start_c main __cs3_stack __cs3_stack_size __cs3_heap_end) + +PROVIDE(__cs3_stack = __cs3_region_start_ram + __cs3_region_size_ram); +PROVIDE(__cs3_stack_size = __cs3_region_start_ram + __cs3_region_size_ram - _end); +PROVIDE(__cs3_heap_start = _end); +PROVIDE(__cs3_heap_end = __cs3_region_start_ram + __cs3_region_size_ram); + +SECTIONS +{ + .text : + { + CREATE_OBJECT_SYMBOLS + __cs3_region_start_rom = .; + *(.cs3.region-head.rom) + __cs3_interrupt_vector = __cs3_interrupt_vector_cortex_m; + *(.cs3.interrupt_vector) + /* Make sure we pulled in an interrupt vector. */ + ASSERT (. != __cs3_interrupt_vector_cortex_m, "No interrupt vector"); + *(.rom) + *(.rom.b) + + __cs3_reset = __cs3_reset_cortex_m; + *(.cs3.reset) + /* Make sure we pulled in some reset code. */ + ASSERT (. != __cs3_reset, "No reset code"); + + *(.text .text.* .gnu.linkonce.t.*) + *(.plt) + *(.gnu.warning) + *(.glue_7t) *(.glue_7) *(.vfp11_veneer) + + *(.rodata .rodata.* .gnu.linkonce.r.*) + + *(.ARM.extab* .gnu.linkonce.armextab.*) + *(.gcc_except_table) + *(.eh_frame_hdr) + *(.eh_frame) + + . = ALIGN(4); + KEEP(*(.init)) + + . = ALIGN(4); + __preinit_array_start = .; + KEEP (*(.preinit_array)) + __preinit_array_end = .; + + . = ALIGN(4); + __init_array_start = .; + KEEP (*(SORT(.init_array.*))) + KEEP (*(.init_array)) + __init_array_end = .; + + . = ALIGN(0x4); + KEEP (*crtbegin.o(.ctors)) + KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors)) + KEEP (*(SORT(.ctors.*))) + KEEP (*crtend.o(.ctors)) + + . = ALIGN(4); + KEEP(*(.fini)) + + . = ALIGN(4); + __fini_array_start = .; + KEEP (*(.fini_array)) + KEEP (*(SORT(.fini_array.*))) + __fini_array_end = .; + + KEEP (*crtbegin.o(.dtors)) + KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors)) + KEEP (*(SORT(.dtors.*))) + KEEP (*crtend.o(.dtors)) + + . = ALIGN(4); + __cs3_regions = .; + LONG (0) + LONG (__cs3_region_init_ram) + LONG (__cs3_region_start_ram) + LONG (__cs3_region_init_size_ram) + LONG (__cs3_region_zero_size_ram) + + /* section information for finsh shell */ + . = ALIGN(4); + __fsymtab_start = .; + KEEP(*(FSymTab)) + __fsymtab_end = .; + . = ALIGN(4); + __vsymtab_start = .; + KEEP(*(VSymTab)) + __vsymtab_end = .; + . = ALIGN(4); + + . = ALIGN(4); + __rt_init_start = .; + KEEP(*(SORT(.rti_fn*))) + __rt_init_end = .; + . = ALIGN(4); + + } + + /* .ARM.exidx is sorted, so has to go in its own output section. */ + __exidx_start = .; + .ARM.exidx : + { + *(.ARM.exidx* .gnu.linkonce.armexidx.*) + } >rom + __exidx_end = .; + .text.align : + { + . = ALIGN(8); + _etext = .; + } >rom + __cs3_region_size_rom = LENGTH(rom); + __cs3_region_num = 1; + + .data : + { + __cs3_region_start_ram = .; + *(.cs3.region-head.ram) + KEEP(*(.jcr)) + *(.got.plt) *(.got) + *(.shdata) + *(.data .data.* .gnu.linkonce.d.*) + *(.ram) + . = ALIGN (8); + _edata = .; + } >ram AT>rom + + .bss : + { + *(.shbss) + *(.bss .bss.* .gnu.linkonce.b.*) + *(COMMON) + *(.ram.b) + . = ALIGN (8); + _end = .; + __end = .; + } >ram AT>rom + + .heap : + { + *(.heap) + } >ram + + __bss_end = .; + + .stack (__cs3_stack - __cs3_stack_size) : + { + *(.stack) + } >ram + + __cs3_region_init_ram = LOADADDR (.data); + __cs3_region_init_size_ram = _edata - __cs3_region_start_ram; + __cs3_region_zero_size_ram = _end - _edata; + __cs3_region_size_ram = LENGTH(ram); + __cs3_region_num = 1; + + .stab 0 (NOLOAD) : { *(.stab) } + .stabstr 0 (NOLOAD) : { *(.stabstr) } + /* DWARF debug sections. + * Symbols in the DWARF debugging sections are relative to the beginning + * of the section so we begin them at 0. */ + /* DWARF 1 */ + .debug 0 : { *(.debug) } + .line 0 : { *(.line) } + /* GNU DWARF 1 extensions */ + .debug_srcinfo 0 : { *(.debug_srcinfo) } + .debug_sfnames 0 : { *(.debug_sfnames) } + /* DWARF 1.1 and DWARF 2 */ + .debug_aranges 0 : { *(.debug_aranges) } + .debug_pubnames 0 : { *(.debug_pubnames) } + /* DWARF 2 */ + .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } + .debug_abbrev 0 : { *(.debug_abbrev) } + .debug_line 0 : { *(.debug_line) } + .debug_frame 0 : { *(.debug_frame) } + .debug_str 0 : { *(.debug_str) } + .debug_loc 0 : { *(.debug_loc) } + .debug_macinfo 0 : { *(.debug_macinfo) } + /* SGI/MIPS DWARF 2 extensions */ + .debug_weaknames 0 : { *(.debug_weaknames) } + .debug_funcnames 0 : { *(.debug_funcnames) } + .debug_typenames 0 : { *(.debug_typenames) } + .debug_varnames 0 : { *(.debug_varnames) } + + .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } + .ARM.attributes 0 : { KEEP (*(.ARM.attributes)) } + /DISCARD/ : { *(.note.GNU-stack) } +} diff --git a/bsp/mb9bf568r/rtthread-mb9bf568r.sct b/bsp/mb9bf568r/rtthread-mb9bf568r.sct new file mode 100644 index 0000000000..5b025eb611 --- /dev/null +++ b/bsp/mb9bf568r/rtthread-mb9bf568r.sct @@ -0,0 +1,23 @@ +; ************************************************************* +; *** Scatter-Loading Description File generated by uVision *** +; ************************************************************* + +LR_IROM1 0x00000000 0x00100000 { ; load region size_region + ER_IROM1 0x00000000 0x00100000 { ; load address = execution address + *.o (RESET, +First) + *(InRoot$$Sections) + .ANY (+RO) + } + RW_IRAM1 0x1FFF0000 0x00010000 { ; RW data + .ANY (+RW +ZI) + } + RW_IRAM2 0x20038000 0x00010000 { + .ANY (+RW +ZI) + } +} + +LR_IROM2 0x200C0000 0x00008000 { + ER_IROM2 0x200C0000 0x00008000 { ; load address = execution address + .ANY (+RO) + } +} -- cgit v1.3.1