update lm4f232 startup files for PDL r8246.
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@1874 bbd45198-f89e-11dd-88c7-29a3b14d5316
This commit is contained in:
parent
bf4de2f204
commit
f8afab609a
@ -19,7 +19,7 @@
|
|||||||
; CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL
|
; CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL
|
||||||
; DAMAGES, FOR ANY REASON WHATSOEVER.
|
; DAMAGES, FOR ANY REASON WHATSOEVER.
|
||||||
;
|
;
|
||||||
; This is part of revision 8049 of the EK-LM4F232 Firmware Package.
|
; This is part of revision 8264 of the EK-LM4F232 Firmware Package.
|
||||||
;
|
;
|
||||||
;******************************************************************************
|
;******************************************************************************
|
||||||
|
|
||||||
@ -89,7 +89,7 @@ __Vectors
|
|||||||
DCD StackMem + Stack ; Top of Stack
|
DCD StackMem + Stack ; Top of Stack
|
||||||
DCD Reset_Handler ; Reset Handler
|
DCD Reset_Handler ; Reset Handler
|
||||||
DCD NmiSR ; NMI Handler
|
DCD NmiSR ; NMI Handler
|
||||||
DCD HardFault_Handler ; Hard Fault Handler
|
DCD HardFault_Handler ; Hard Fault Handler
|
||||||
DCD IntDefaultHandler ; The MPU fault handler
|
DCD IntDefaultHandler ; The MPU fault handler
|
||||||
DCD IntDefaultHandler ; The bus fault handler
|
DCD IntDefaultHandler ; The bus fault handler
|
||||||
DCD IntDefaultHandler ; The usage fault handler
|
DCD IntDefaultHandler ; The usage fault handler
|
||||||
@ -144,7 +144,7 @@ __Vectors
|
|||||||
DCD IntDefaultHandler ; CAN0
|
DCD IntDefaultHandler ; CAN0
|
||||||
DCD IntDefaultHandler ; CAN1
|
DCD IntDefaultHandler ; CAN1
|
||||||
DCD IntDefaultHandler ; CAN2
|
DCD IntDefaultHandler ; CAN2
|
||||||
DCD rt_hw_eth_handler ; Ethernet
|
DCD IntDefaultHandler ; Ethernet
|
||||||
DCD IntDefaultHandler ; Hibernate
|
DCD IntDefaultHandler ; Hibernate
|
||||||
DCD IntDefaultHandler ; USB0
|
DCD IntDefaultHandler ; USB0
|
||||||
DCD IntDefaultHandler ; PWM Generator 3
|
DCD IntDefaultHandler ; PWM Generator 3
|
||||||
@ -250,6 +250,23 @@ __Vectors
|
|||||||
;******************************************************************************
|
;******************************************************************************
|
||||||
EXPORT Reset_Handler
|
EXPORT Reset_Handler
|
||||||
Reset_Handler
|
Reset_Handler
|
||||||
|
;
|
||||||
|
; Enable the floating-point unit. This must be done here to handle the
|
||||||
|
; case where main() uses floating-point and the function prologue saves
|
||||||
|
; floating-point registers (which will fault if floating-point is not
|
||||||
|
; enabled). Any configuration of the floating-point unit using
|
||||||
|
; DriverLib APIs must be done here prior to the floating-point unit
|
||||||
|
; being enabled.
|
||||||
|
;
|
||||||
|
; Note that this does not use DriverLib since it might not be included
|
||||||
|
; in this project.
|
||||||
|
;
|
||||||
|
MOVW R0, #0xED88
|
||||||
|
MOVT R0, #0xE000
|
||||||
|
LDR R1, [R0]
|
||||||
|
ORR R1, #0x00F00000
|
||||||
|
STR R1, [R0]
|
||||||
|
|
||||||
;
|
;
|
||||||
; Call the C library enty point that handles startup. This will copy
|
; Call the C library enty point that handles startup. This will copy
|
||||||
; the .data section initializers from flash to SRAM and zero fill the
|
; the .data section initializers from flash to SRAM and zero fill the
|
||||||
|
@ -18,10 +18,13 @@
|
|||||||
// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL
|
// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL
|
||||||
// DAMAGES, FOR ANY REASON WHATSOEVER.
|
// DAMAGES, FOR ANY REASON WHATSOEVER.
|
||||||
//
|
//
|
||||||
// This is part of revision 8049 of the EK-LM4F232 Firmware Package.
|
// This is part of revision 8264 of the EK-LM4F232 Firmware Package.
|
||||||
//
|
//
|
||||||
//*****************************************************************************
|
//*****************************************************************************
|
||||||
|
|
||||||
|
#include "inc/hw_nvic.h"
|
||||||
|
#include "inc/hw_types.h"
|
||||||
|
|
||||||
//*****************************************************************************
|
//*****************************************************************************
|
||||||
//
|
//
|
||||||
// Forward declaration of the default fault handlers.
|
// Forward declaration of the default fault handlers.
|
||||||
@ -32,11 +35,16 @@ static void NmiSR(void);
|
|||||||
static void FaultISR(void);
|
static void FaultISR(void);
|
||||||
static void IntDefaultHandler(void);
|
static void IntDefaultHandler(void);
|
||||||
|
|
||||||
|
//*****************************************************************************
|
||||||
|
//
|
||||||
|
// External declaration for the interrupt handler used by the application.
|
||||||
|
//
|
||||||
|
//*****************************************************************************
|
||||||
/* RT-Thread interface */
|
/* RT-Thread interface */
|
||||||
static void HardFault_Handler(void);
|
static void HardFault_Handler(void);
|
||||||
static void PendSV_Handler(void);
|
static void PendSV_Handler(void);
|
||||||
static void rt_hw_timer_handler(void);
|
static void rt_hw_timer_handler(void);
|
||||||
|
static void rt_hw_uart_isr_1(void);
|
||||||
//*****************************************************************************
|
//*****************************************************************************
|
||||||
//
|
//
|
||||||
// The entry point for the application.
|
// The entry point for the application.
|
||||||
@ -64,7 +72,7 @@ void (* const g_pfnVectors[])(void) =
|
|||||||
// The initial stack pointer
|
// The initial stack pointer
|
||||||
ResetISR, // The reset handler
|
ResetISR, // The reset handler
|
||||||
NmiSR, // The NMI handler
|
NmiSR, // The NMI handler
|
||||||
HardFault_Handler, // The hard fault handler
|
HardFault_Handler, // The hard fault handler
|
||||||
IntDefaultHandler, // The MPU fault handler
|
IntDefaultHandler, // The MPU fault handler
|
||||||
IntDefaultHandler, // The bus fault handler
|
IntDefaultHandler, // The bus fault handler
|
||||||
IntDefaultHandler, // The usage fault handler
|
IntDefaultHandler, // The usage fault handler
|
||||||
@ -75,14 +83,14 @@ void (* const g_pfnVectors[])(void) =
|
|||||||
IntDefaultHandler, // SVCall handler
|
IntDefaultHandler, // SVCall handler
|
||||||
IntDefaultHandler, // Debug monitor handler
|
IntDefaultHandler, // Debug monitor handler
|
||||||
0, // Reserved
|
0, // Reserved
|
||||||
PendSV_Handler, // The PendSV handler
|
PendSV_Handler, // The PendSV handler
|
||||||
rt_hw_timer_handler, // The SysTick handler
|
rt_hw_timer_handler, // The SysTick handler
|
||||||
IntDefaultHandler, // GPIO Port A
|
IntDefaultHandler, // GPIO Port A
|
||||||
IntDefaultHandler, // GPIO Port B
|
IntDefaultHandler, // GPIO Port B
|
||||||
IntDefaultHandler, // GPIO Port C
|
IntDefaultHandler, // GPIO Port C
|
||||||
IntDefaultHandler, // GPIO Port D
|
IntDefaultHandler, // GPIO Port D
|
||||||
IntDefaultHandler, // GPIO Port E
|
IntDefaultHandler, // GPIO Port E
|
||||||
IntDefaultHandler, // UART0 Rx and Tx
|
rt_hw_uart_isr_1, // UART0 Rx and Tx
|
||||||
IntDefaultHandler, // UART1 Rx and Tx
|
IntDefaultHandler, // UART1 Rx and Tx
|
||||||
IntDefaultHandler, // SSI0 Rx and Tx
|
IntDefaultHandler, // SSI0 Rx and Tx
|
||||||
IntDefaultHandler, // I2C0 Master and Slave
|
IntDefaultHandler, // I2C0 Master and Slave
|
||||||
@ -268,6 +276,20 @@ ResetISR(void)
|
|||||||
" strlt r2, [r0], #4\n"
|
" strlt r2, [r0], #4\n"
|
||||||
" blt zero_loop");
|
" blt zero_loop");
|
||||||
|
|
||||||
|
//
|
||||||
|
// Enable the floating-point unit. This must be done here to handle the
|
||||||
|
// case where main() uses floating-point and the function prologue saves
|
||||||
|
// floating-point registers (which will fault if floating-point is not
|
||||||
|
// enabled). Any configuration of the floating-point unit using DriverLib
|
||||||
|
// APIs must be done here prior to the floating-point unit being enabled.
|
||||||
|
//
|
||||||
|
// Note that this does not use DriverLib since it might not be included in
|
||||||
|
// this project.
|
||||||
|
//
|
||||||
|
HWREG(NVIC_CPAC) = ((HWREG(NVIC_CPAC) &
|
||||||
|
~(NVIC_CPAC_CP10_M | NVIC_CPAC_CP11_M)) |
|
||||||
|
NVIC_CPAC_CP10_FULL | NVIC_CPAC_CP11_FULL);
|
||||||
|
|
||||||
//
|
//
|
||||||
// Call the application's entry point.
|
// Call the application's entry point.
|
||||||
//
|
//
|
||||||
|
@ -77,17 +77,11 @@ void rt_hw_eth_handler(void)
|
|||||||
void rt_hw_board_init()
|
void rt_hw_board_init()
|
||||||
{
|
{
|
||||||
|
|
||||||
//
|
|
||||||
// The FPU should be enabled because some compilers will use floating-
|
|
||||||
// point registers, even for non-floating-point code. If the FPU is not
|
|
||||||
// enabled this will cause a fault. This also ensures that floating-
|
|
||||||
// point operations could be added to this application and would work
|
|
||||||
// correctly and use the hardware floating-point unit. Finally, lazy
|
|
||||||
// stacking is enabled for interrupt handlers. This allows floating-
|
|
||||||
// point instructions to be used within interrupt handlers, but at the
|
|
||||||
// expense of extra stack usage.
|
|
||||||
//
|
//
|
||||||
FPUEnable();
|
// Enable lazy stacking for interrupt handlers. This allows floating-point
|
||||||
|
// instructions to be used within interrupt handlers, but at the expense of
|
||||||
|
// extra stack usage.
|
||||||
|
//
|
||||||
FPULazyStackingEnable();
|
FPULazyStackingEnable();
|
||||||
|
|
||||||
// set sysclock to 80M
|
// set sysclock to 80M
|
||||||
|
@ -14,11 +14,8 @@ if CROSS_TOOL == 'gcc':
|
|||||||
elif CROSS_TOOL == 'keil':
|
elif CROSS_TOOL == 'keil':
|
||||||
PLATFORM = 'armcc'
|
PLATFORM = 'armcc'
|
||||||
EXEC_PATH = 'E:/Keil'
|
EXEC_PATH = 'E:/Keil'
|
||||||
elif CROSS_TOOL == 'iar':
|
|
||||||
PLATFORM = 'iar'
|
|
||||||
IAR_PATH = 'E:/Program Files/IAR Systems/Embedded Workbench 6.0'
|
|
||||||
|
|
||||||
#
|
|
||||||
BUILD = 'debug'
|
BUILD = 'debug'
|
||||||
|
|
||||||
if PLATFORM == 'gcc':
|
if PLATFORM == 'gcc':
|
||||||
@ -75,45 +72,4 @@ elif PLATFORM == 'armcc':
|
|||||||
|
|
||||||
POST_ACTION = 'fromelf --bin $TARGET --output rtthread.bin \nfromelf -z $TARGET'
|
POST_ACTION = 'fromelf --bin $TARGET --output rtthread.bin \nfromelf -z $TARGET'
|
||||||
|
|
||||||
elif PLATFORM == 'iar':
|
|
||||||
# toolchains
|
|
||||||
CC = 'iccarm'
|
|
||||||
AS = 'iasmarm'
|
|
||||||
AR = 'iarchive'
|
|
||||||
LINK = 'ilinkarm'
|
|
||||||
TARGET_EXT = 'out'
|
|
||||||
|
|
||||||
DEVICE = ' -D USE_STDPERIPH_DRIVER' + ' -D STM32F10X_HD'
|
|
||||||
|
|
||||||
CFLAGS = DEVICE
|
|
||||||
CFLAGS += ' --diag_suppress Pa050'
|
|
||||||
CFLAGS += ' --no_cse'
|
|
||||||
CFLAGS += ' --no_unroll'
|
|
||||||
CFLAGS += ' --no_inline'
|
|
||||||
CFLAGS += ' --no_code_motion'
|
|
||||||
CFLAGS += ' --no_tbaa'
|
|
||||||
CFLAGS += ' --no_clustering'
|
|
||||||
CFLAGS += ' --no_scheduling'
|
|
||||||
CFLAGS += ' --debug'
|
|
||||||
CFLAGS += ' --endian=little'
|
|
||||||
CFLAGS += ' --cpu=Cortex-M3'
|
|
||||||
CFLAGS += ' -e'
|
|
||||||
CFLAGS += ' --fpu=None'
|
|
||||||
CFLAGS += ' --dlib_config "' + IAR_PATH + '/arm/INC/c/DLib_Config_Normal.h"'
|
|
||||||
CFLAGS += ' -Ol'
|
|
||||||
CFLAGS += ' --use_c++_inline'
|
|
||||||
|
|
||||||
AFLAGS = ''
|
|
||||||
AFLAGS += ' -s+'
|
|
||||||
AFLAGS += ' -w+'
|
|
||||||
AFLAGS += ' -r'
|
|
||||||
AFLAGS += ' --cpu Cortex-M3'
|
|
||||||
AFLAGS += ' --fpu None'
|
|
||||||
|
|
||||||
LFLAGS = ' --config stm32f10x_flash.icf'
|
|
||||||
LFLAGS += ' --redirect _Printf=_PrintfTiny'
|
|
||||||
LFLAGS += ' --redirect _Scanf=_ScanfSmall'
|
|
||||||
LFLAGS += ' --entry __iar_program_start'
|
|
||||||
|
|
||||||
EXEC_PATH = IAR_PATH + '/arm/bin/'
|
|
||||||
POST_ACTION = ''
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user