aboutsummaryrefslogtreecommitdiffstats
path: root/boards/base/RaspberryPi/FreeRTOS/freertos_main.c
diff options
context:
space:
mode:
Diffstat (limited to 'boards/base/RaspberryPi/FreeRTOS/freertos_main.c')
-rw-r--r--boards/base/RaspberryPi/FreeRTOS/freertos_main.c62
1 files changed, 62 insertions, 0 deletions
diff --git a/boards/base/RaspberryPi/FreeRTOS/freertos_main.c b/boards/base/RaspberryPi/FreeRTOS/freertos_main.c
new file mode 100644
index 00000000..821a679b
--- /dev/null
+++ b/boards/base/RaspberryPi/FreeRTOS/freertos_main.c
@@ -0,0 +1,62 @@
+#include <FreeRTOS.h>
+#include <task.h>
+
+#include "Drivers/interrupts.h"
+
+extern int main(void);
+
+static void mainTask(void *pvParameters) {
+ (void) pvParameters;
+ main();
+}
+
+/**
+ * This is the systems main entry, some call it a boot thread.
+ **/
+int FreeRTOS_Main(void) {
+
+ DisableInterrupts();
+ InitInterruptController();
+
+ xTaskCreate(mainTask,
+ (portCHAR *)"Main Task",
+ 128,
+ NULL,
+ 0,
+ NULL);
+
+ vTaskStartScheduler();
+
+ /*
+ * We should never get here, but just in case something goes wrong,
+ * we'll place the CPU into a safe loop.
+ */
+ while(1) {
+ ;
+ }
+
+ return 0;
+}
+
+void vApplicationStackOverflowHook( TaskHandle_t pxTask, char *pcTaskName )
+{
+ ( void ) pcTaskName;
+ ( void ) pxTask;
+
+ /* Run time task stack overflow checking is performed if
+ configCHECK_FOR_STACK_OVERFLOW is defined to 1 or 2. This hook function is
+ called if a task stack overflow is detected. Note the system/interrupt
+ stack is not checked. */
+ taskDISABLE_INTERRUPTS();
+ for( ;; );
+}
+/*-----------------------------------------------------------*/
+
+void vApplicationTickHook( void )
+{
+ /* This function will be called by each tick interrupt if
+ configUSE_TICK_HOOK is set to 1 in FreeRTOSConfig.h. User code can be
+ added here, but the tick hook is called from an interrupt context, so
+ code must not attempt to block, and only the interrupt safe FreeRTOS API
+ functions can be used (those that end in FromISR()). */
+}