- added IODevice support

- fixed some issues with the logger and stack sizes

git-svn-id: https://svn.vbchaos.nl/svn/hsb/trunk@216 05563f52-14a8-4384-a975-3d1654cca0fa
This commit is contained in:
mmi
2017-09-26 11:11:33 +00:00
parent 7bcde7ff5d
commit 1bcb4809db
48 changed files with 1033 additions and 11740 deletions

View File

@@ -25,16 +25,19 @@
// Include files
// -----------------------------------------------------------------------------
#include <FreeRTOSFixes.h>
#include <stdio.h>
// FreeRTOS includes
#include "FreeRTOS.h"
#include "task.h"
#include "freeRTOSFixes.h"
#include "Logger.h"
#include "misc.h"
#include "stm32f10x_rcc.h"
#include "nhd0420.h"
#include "keypadMatrix.h"
#include "platform.h"
#include "led.h"
@@ -69,11 +72,13 @@ unsigned long ulRunTimeStatsClock = 0UL;
static struct LedTaskArguments ledTaskArguments;
static xTaskHandle initTaskHandle;
static xTaskHandle ledTaskHandle;
static xTaskHandle sysTaskHandle;
// -----------------------------------------------------------------------------
// Function declarations
// -----------------------------------------------------------------------------
static ErrorStatus systeminfoCommandHandler(void);
static void initTask(void* parameters);
static void ledBlinkTask(void* parameters);
// -----------------------------------------------------------------------------
@@ -91,10 +96,7 @@ int main (void)
ledTaskArguments.led = ledOrange;
ledTaskArguments.frequency = 2;
xTaskCreate(initTask, (const char* const)"initTask", 1024, NULL, 0, &initTaskHandle);
xTaskCreate(ledBlinkTask, (const char* const)"ledTask", 1024, &ledTaskArguments, 0, &ledTaskHandle);
LOGGER_INFO("Starting the scheduler");
xTaskCreate(initTask, (const char* const)"initTask", 1024, NULL, 5, &initTaskHandle);
/* Start the scheduler. */
vTaskStartScheduler();
@@ -113,11 +115,44 @@ void vApplicationTickHook ()
}
static void printSystemInfoTask(void* parameters)
{
while (1)
{
systeminfoCommandHandler();
vTaskDelay(60000);
}
}
static ErrorStatus systeminfoCommandHandler(void)
{
ErrorStatus errorStatus = SUCCESS;
size_t freeMemory;
char text[128];
freeMemory = xPortGetFreeHeapSize();
snprintf(text, sizeof(text), "Free heap memory: %d bytes", freeMemory);
LOGGER_INFO(text);
errorStatus &= Logger_logModuleInfo();
vTaskDelay(100);
errorStatus &= Keypad_logModuleInfo();
vTaskDelay(100);
OS_logTaskInfo(ledTaskHandle);
vTaskDelay(100);
OS_logTaskInfo(sysTaskHandle);
return errorStatus;
}
static void initTask(void* parameters)
{
initPlatform();
Logger_initialize(uart1);
Logger_construct(&uart1->device);
Keypad_construct();
NHD0420_construct(spiDisplay);
@@ -133,10 +168,13 @@ static void initTask(void* parameters)
vTaskDelay(1000);
NHD0420_setCursorToHome();
vTaskDelay(1000);
NHD0420_sendData("Hallo Welt", 10);
vTaskDelay(1);
NHD0420_setCursorToPosition(4, 5);
NHD0420_sendData("Koetjeboe", 9);
xTaskCreate(ledBlinkTask, (const char* const)"ledTask", 40, &ledTaskArguments, 0, &ledTaskHandle);
xTaskCreate(printSystemInfoTask, (const char* const)"SysInfoTask", 512, NULL, 1, &sysTaskHandle);
// Delete this init task
vTaskDelete(NULL);
}