diff options
author | Nicolas "Pixel" Noble <pixel@nobis-crew.org> | 2011-01-27 20:07:13 +0100 |
---|---|---|
committer | Nicolas "Pixel" Noble <pixel@nobis-crew.org> | 2011-01-27 20:07:17 +0100 |
commit | 18d53779c4fef3efca606aead2da3af40ec76332 (patch) | |
tree | c188db847d9ccc3073dc2f28bfc9d4ab16d8d06a | |
parent | d29a7d2ad9fa2d8c9815fe602c7f4647735d549d (diff) |
FreeRTOS now boots and run properly. Yay!
-rw-r--r-- | arch/arm/lpc17xx/hooks.c | 4 | ||||
-rw-r--r-- | arch/arm/lpc17xx/startup.s | 25 | ||||
-rw-r--r-- | config/target.mk | 2 | ||||
-rw-r--r-- | demo.c | 27 |
4 files changed, 29 insertions, 29 deletions
diff --git a/arch/arm/lpc17xx/hooks.c b/arch/arm/lpc17xx/hooks.c index 5aeb335..e68c74a 100644 --- a/arch/arm/lpc17xx/hooks.c +++ b/arch/arm/lpc17xx/hooks.c @@ -7,7 +7,7 @@ void vConfigureTimerForRunTimeStats() { } void vApplicationTickHook() { - DBGOUT("vApplicationTickHook()\r\n"); +// DBGOUT("vApplicationTickHook()\r\n"); } void vApplicationStackOverflowHook(xTaskHandle *pxTask, signed portCHAR *pcTaskName) { @@ -15,5 +15,5 @@ void vApplicationStackOverflowHook(xTaskHandle *pxTask, signed portCHAR *pcTaskN } void vApplicationIdleHook() { - DBGOUT("vApplicationIdleHook()\r\n"); +// DBGOUT("vApplicationIdleHook()\r\n"); } diff --git a/arch/arm/lpc17xx/startup.s b/arch/arm/lpc17xx/startup.s index 2f79741..7b9e56c 100644 --- a/arch/arm/lpc17xx/startup.s +++ b/arch/arm/lpc17xx/startup.s @@ -71,11 +71,11 @@ __cs3_interrupt_vector_cortex_m: .long 0 /* Reserved */ .long 0 /* Reserved */ .long 0 /* Reserved */ - .long SVC_Handler /* SVCall Handler */ + .long vPortSVCHandler /* SVCall Handler */ .long DebugMon_Handler /* Debug Monitor Handler */ .long 0 /* Reserved */ - .long PendSV_Handler /* PendSV Handler */ - .long SysTick_Handler /* SysTick Handler */ + .long xPortPendSVHandler /* PendSV Handler */ + .long xPortSysTickHandler /* SysTick Handler */ /* External Interrupts */ .long WDT_IRQHandler /* 16: Watchdog Timer */ @@ -190,13 +190,6 @@ __cs3_reset_cortex_m: .section ".privileged_code" -/* Exception Handlers */ - - .weak SVC_Handler - .type SVC_Handler, %function -SVC_Handler: - B . - .size SVC_Handler, . - SVC_Handler .weak DebugMon_Handler .type DebugMon_Handler, %function @@ -204,18 +197,6 @@ 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 */ diff --git a/config/target.mk b/config/target.mk index 2b3a3a2..7ba3d0a 100644 --- a/config/target.mk +++ b/config/target.mk @@ -1,5 +1,5 @@ export BOARD = mbed -export USE_MPU = true +export USE_MPU = false ifeq ($(BOARD),mbed) @@ -2,6 +2,7 @@ #include <task.h> #include <lpc17xx_gpio.h> #include <BoardConsole.h> +#include <osdebug.h> #define LED1_wire 18 #define LED2_wire 20 @@ -12,7 +13,7 @@ static void setupLEDs() { GPIO_SetDir(1, (1 << LED1_wire) | (1 << LED2_wire) | (1 << LED3_wire) | (1 << LED4_wire), 1); } -void litLED(int led, int value) { +static void litLED(int led, int value) { if ((led > 4) || (led < 0)) return; @@ -30,13 +31,31 @@ void litLED(int led, int value) { } } +static void simpleTask1(void *p) { + while (1) { + BoardConsolePuts("Task 1"); + vTaskDelay(1234); + } +} + +static void simpleTask2(void *p) { + while (1) { + BoardConsolePuts("Task 2"); + vTaskDelay(1357); + } +} + int main() { setupLEDs(); - litLED(1, 1); + litLED(1, 0); litLED(2, 0); - litLED(3, 1); + litLED(3, 0); litLED(4, 0); - BoardConsolePuts("Hello World."); + BoardConsolePuts("Creating simple tasks."); + xTaskCreate(simpleTask1, (signed char *) "st1", configMINIMAL_STACK_SIZE, (void *)NULL, tskIDLE_PRIORITY | portPRIVILEGE_BIT, NULL); + xTaskCreate(simpleTask2, (signed char *) "st2", configMINIMAL_STACK_SIZE, (void *)NULL, tskIDLE_PRIORITY | portPRIVILEGE_BIT, NULL); + BoardConsolePuts("Scheduler starting."); vTaskStartScheduler(); + BoardConsolePuts("Scheduler exitting."); return 0; } |