LPC214x board files and demos updated.

git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@2499 35acf78f-673a-0410-8e92-d51de3d6d3f4
master
gdisirio 2010-12-19 10:03:11 +00:00
parent ada9fb82aa
commit f131e4297d
10 changed files with 84 additions and 78 deletions

View File

@ -54,25 +54,18 @@ static CH_IRQ_HANDLER(T0IrqHandler) {
/*
* Early initialization code.
* This initialization is performed just after reset before BSS and DATA
* segments initialization.
* This initialization must be performed just after stack setup and before
* any other initialization.
*/
void hwinit0(void) {
void __early_init(void) {
lpc214x_clock_init();
}
/*
* Late initialization code.
* This initialization is performed after BSS and DATA segments initialization
* and before invoking the main() function.
* Board-specific initialization code.
*/
void hwinit1(void) {
/*
* HAL initialization.
*/
halInit();
void boardInit(void) {
/*
* System Timer initialization, 1ms intervals.
@ -85,9 +78,4 @@ void hwinit1(void) {
timer->TC_MCR = 3; /* Interrupt and clear TC on match MR0. */
timer->TC_TCR = 2; /* Reset counter and prescaler. */
timer->TC_TCR = 1; /* Timer enabled. */
/*
* ChibiOS/RT initialization.
*/
chSysInit();
}

View File

@ -82,4 +82,14 @@
#define PB_WP1 24
#define PB_CP1 25
#if !defined(_FROM_ASM_)
#ifdef __cplusplus
extern "C" {
#endif
void boardInit(void);
#ifdef __cplusplus
}
#endif
#endif /* _FROM_ASM_ */
#endif /* _BOARD_H_ */

View File

@ -221,8 +221,7 @@ static void RemoveHandler(eventid_t id) {
}
/*
* Entry point, note, the main() function is already a thread in the system
* on entry.
* Application entry point.
*/
int main(int argc, char **argv) {
static const evhandler_t evhndl[] = {
@ -236,6 +235,16 @@ int main(int argc, char **argv) {
(void)argc;
(void)argv;
/*
* System initializations.
* - HAL initialization, this also initializes the configured device drivers
* and performs the board-specific initializations.
* - Kernel initialization, the main() function becomes a thread and the
* RTOS is active.
*/
halInit();
chSysInit();
/*
* Activates the serial driver 2 using the driver default configuration.
*/

View File

@ -142,8 +142,7 @@ static void TimerHandler(eventid_t id) {
}
/*
* Entry point, note, the main() function is already a thread in the system
* on entry.
* Application entry point.
*/
int main(int argc, char **argv) {
static const evhandler_t evhndl[] = {
@ -155,6 +154,16 @@ int main(int argc, char **argv) {
(void)argc;
(void)argv;
/*
* System initializations.
* - HAL initialization, this also initializes the configured device drivers
* and performs the board-specific initializations.
* - Kernel initialization, the main() function becomes a thread and the
* RTOS is active.
*/
halInit();
System::Init();
/*
* Activates the serial driver 2 using the driver default configuration.
*/

View File

@ -60,14 +60,23 @@ static msg_t Thread2(void *arg) {
}
/*
* Entry point, note, the main() function is already a thread in the system
* on entry.
* Application entry point.
*/
int main(int argc, char **argv) {
(void)argc;
(void)argv;
/*
* System initializations.
* - HAL initialization, this also initializes the configured device drivers
* and performs the board-specific initializations.
* - Kernel initialization, the main() function becomes a thread and the
* RTOS is active.
*/
halInit();
chSysInit();
/*
* Activates the serial driver 2 using the driver default configuration.
*/

View File

@ -5,7 +5,7 @@ Settings: CCLK=48, MAMCR=2, MAMTIM=3 (3 wait states)
*** ChibiOS/RT test suite
***
*** Kernel: 2.1.4unstable
*** Kernel: 2.1.6unstable
*** GCC Version: 4.5.1
*** Architecture: ARM7
*** Core Variant: ARM7TDMI
@ -114,11 +114,11 @@ Settings: CCLK=48, MAMCR=2, MAMTIM=3 (3 wait states)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.5 (Benchmark, threads, full cycle)
--- Score : 89745 threads/S
--- Score : 88089 threads/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.6 (Benchmark, threads, create only)
--- Score : 128237 threads/S
--- Score : 126542 threads/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.7 (Benchmark, mass reschedule, 5 threads)
@ -126,7 +126,7 @@ Settings: CCLK=48, MAMCR=2, MAMTIM=3 (3 wait states)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.8 (Benchmark, round robin context switching)
--- Score : 276080 ctxswc/S
--- Score : 276084 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.9 (Benchmark, I/O Queues throughput)

View File

@ -5,7 +5,7 @@ Settings: CCLK=48, MAMCR=2, MAMTIM=3 (3 wait states)
*** ChibiOS/RT test suite
***
*** Kernel: 2.1.4unstable
*** Kernel: 2.1.6unstable
*** GCC Version: 4.5.1
*** Architecture: ARM7
*** Core Variant: ARM7TDMI
@ -98,7 +98,7 @@ Settings: CCLK=48, MAMCR=2, MAMTIM=3 (3 wait states)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.1 (Benchmark, messages #1)
--- Score : 106223 msgs/S, 212446 ctxswc/S
--- Score : 106224 msgs/S, 212448 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.2 (Benchmark, messages #2)
@ -114,11 +114,11 @@ Settings: CCLK=48, MAMCR=2, MAMTIM=3 (3 wait states)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.5 (Benchmark, threads, full cycle)
--- Score : 71990 threads/S
--- Score : 70297 threads/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.6 (Benchmark, threads, create only)
--- Score : 110394 threads/S
--- Score : 109135 threads/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.7 (Benchmark, mass reschedule, 5 threads)

View File

@ -27,25 +27,25 @@
#if !defined(__DOXYGEN__)
.set MODE_USR, 0x10
.set MODE_FIQ, 0x11
.set MODE_IRQ, 0x12
.set MODE_SVC, 0x13
.set MODE_ABT, 0x17
.set MODE_UND, 0x1B
.set MODE_SYS, 0x1F
.set MODE_USR, 0x10
.set MODE_FIQ, 0x11
.set MODE_IRQ, 0x12
.set MODE_SVC, 0x13
.set MODE_ABT, 0x17
.set MODE_UND, 0x1B
.set MODE_SYS, 0x1F
.equ I_BIT, 0x80
.equ F_BIT, 0x40
.set I_BIT, 0x80
.set F_BIT, 0x40
.text
.code 32
.balign 4
.text
.code 32
.balign 4
/*
* Reset handler.
*/
.global ResetHandler
.global ResetHandler
ResetHandler:
/*
* Stack pointers initialization.
@ -85,15 +85,15 @@ ResetHandler:
* Early initialization.
*/
#ifndef THUMB_NO_INTERWORKING
bl hwinit0
bl __early_init
#else
add r0, pc, #1
bx r0
.code 16
bl hwinit0
.code 16
bl __early_init
mov r0, pc
bx r0
.code 32
.code 32
#endif
/*
* Data initialization.
@ -119,21 +119,19 @@ bssloop:
strlo r0, [r1], #4
blo bssloop
/*
* Late initialization.
* Main program invocation.
*/
#ifdef THUMB_NO_INTERWORKING
add r0, pc, #1
bx r0
.code 16
bl hwinit1
.code 16
mov r0, #0
mov r1, r0
bl main
ldr r1, =MainExitHandler
bx r1
.code 32
.code 32
#else
bl hwinit1
mov r0, #0
mov r1, r0
bl main
@ -143,10 +141,9 @@ bssloop:
/*
* Default main function exit handler.
*/
.weak MainExitHandler
.globl MainExitHandler
.weak MainExitHandler
.global MainExitHandler
MainExitHandler:
.loop: b .loop
/*
@ -156,29 +153,13 @@ MainExitHandler:
* segments initialization.
*/
#ifdef THUMB_NO_INTERWORKING
.thumb_func
.code 16
.thumb_func
.code 16
#endif
.weak hwinit0
.weak __early_init
hwinit0:
bx lr
.code 32
/*
* Default late initialization code. It is declared weak in order to be
* replaced by the real initialization code.
* Late initialization is performed after BSS and DATA segments initialization
* and before invoking the main() function.
*/
#ifdef THUMB_NO_INTERWORKING
.thumb_func
.code 16
#endif
.weak hwinit1
hwinit1:
bx lr
.code 32
.code 32
#endif
/** @} */

View File

@ -100,7 +100,7 @@ endbloop:
msr CONTROL, r0
isb
/*
* Main program invokation.
* Main program invocation.
*/
movs r0, #0
mov r1, r0

View File

@ -95,7 +95,7 @@ bloop:
msr CONTROL, r0
isb
/*
* Main program invokation.
* Main program invocation.
*/
movs r0, #0
mov r1, r0