kopia lustrzana https://github.com/OpenRTX/OpenRTX
Add main file stub and display demo
Initial MVP of a main file that prints a text on the radio display. The code is already platform independent, to be ported effortlessly to any of the supported platforms.replace/fc89c2218535176e39ff505d90a6e8cb717677e8
rodzic
f6df51c3c3
commit
02209e4c1a
|
@ -78,7 +78,7 @@ endif
|
||||||
|
|
||||||
|
|
||||||
## TYT MD380
|
## TYT MD380
|
||||||
md380_src = src + ['tests/platform/MD380_display.c',
|
md380_src = src + ['openrtx/src/main.c',
|
||||||
'platform/mcu/STM32F4xx/boot/startup.c',
|
'platform/mcu/STM32F4xx/boot/startup.c',
|
||||||
'platform/mcu/STM32F4xx/boot/libc_integration.c',
|
'platform/mcu/STM32F4xx/boot/libc_integration.c',
|
||||||
'platform/mcu/STM32F4xx/drivers/usb/usb_bsp.c',
|
'platform/mcu/STM32F4xx/drivers/usb/usb_bsp.c',
|
||||||
|
|
|
@ -0,0 +1,117 @@
|
||||||
|
/***************************************************************************
|
||||||
|
* Copyright (C) 2020 by Federico Izzo IU2NUO, Niccolò Izzo IU2KIN and *
|
||||||
|
* Silvano Seva IU2KWO *
|
||||||
|
* *
|
||||||
|
* This program is free software; you can redistribute it and/or modify *
|
||||||
|
* it under the terms of the GNU General Public License as published by *
|
||||||
|
* the Free Software Foundation; either version 3 of the License, or *
|
||||||
|
* (at your option) any later version. *
|
||||||
|
* *
|
||||||
|
* This program is distributed in the hope that it will be useful, *
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||||
|
* GNU General Public License for more details. *
|
||||||
|
* *
|
||||||
|
* You should have received a copy of the GNU General Public License *
|
||||||
|
* along with this program; if not, see <http://www.gnu.org/licenses/> *
|
||||||
|
***************************************************************************/
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <app_cfg.h>
|
||||||
|
#include <os.h>
|
||||||
|
#include <lib_mem.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include "stm32f4xx.h"
|
||||||
|
#include "gpio.h"
|
||||||
|
#include "delays.h"
|
||||||
|
#include "display.h"
|
||||||
|
#include "graphics.h"
|
||||||
|
|
||||||
|
static OS_TCB startTCB;
|
||||||
|
static CPU_STK_SIZE startStk[APP_CFG_TASK_START_STK_SIZE];
|
||||||
|
static void startTask(void *arg);
|
||||||
|
|
||||||
|
static OS_TCB uiTaskTCB;
|
||||||
|
static CPU_STK_SIZE uiTaskStk[128];
|
||||||
|
static void uiTask(void *arg);
|
||||||
|
|
||||||
|
int main(void)
|
||||||
|
{
|
||||||
|
OS_ERR err;
|
||||||
|
|
||||||
|
OSInit(&err);
|
||||||
|
|
||||||
|
OSTaskCreate((OS_TCB *)&startTCB,
|
||||||
|
(CPU_CHAR *)" ",
|
||||||
|
(OS_TASK_PTR ) startTask,
|
||||||
|
(void *) 0,
|
||||||
|
(OS_PRIO ) APP_CFG_TASK_START_PRIO,
|
||||||
|
(CPU_STK *)&startStk[0],
|
||||||
|
(CPU_STK )startStk[APP_CFG_TASK_START_STK_SIZE / 10u],
|
||||||
|
(CPU_STK_SIZE) APP_CFG_TASK_START_STK_SIZE,
|
||||||
|
(OS_MSG_QTY ) 0,
|
||||||
|
(OS_TICK ) 0,
|
||||||
|
(void *) 0,
|
||||||
|
(OS_OPT )(OS_OPT_TASK_STK_CHK | OS_OPT_TASK_STK_CLR),
|
||||||
|
(OS_ERR *)&err);
|
||||||
|
|
||||||
|
OSStart(&err);
|
||||||
|
|
||||||
|
for(;;) ;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void startTask(void* arg)
|
||||||
|
{
|
||||||
|
|
||||||
|
(void) arg;
|
||||||
|
OS_ERR err;
|
||||||
|
|
||||||
|
gpio_setMode(GPIOE, 0, OUTPUT);
|
||||||
|
gpio_setMode(GPIOE, 1, OUTPUT);
|
||||||
|
|
||||||
|
CPU_Init();
|
||||||
|
OS_CPU_SysTickInitFreq(SystemCoreClock);
|
||||||
|
|
||||||
|
OSTaskCreate((OS_TCB *)&uiTaskTCB,
|
||||||
|
(CPU_CHAR *)" ",
|
||||||
|
(OS_TASK_PTR ) uiTask,
|
||||||
|
(void *) 0,
|
||||||
|
(OS_PRIO ) 5,
|
||||||
|
(CPU_STK *)&uiTaskStk[0],
|
||||||
|
(CPU_STK ) 0,
|
||||||
|
(CPU_STK_SIZE) 128,
|
||||||
|
(OS_MSG_QTY ) 0,
|
||||||
|
(OS_TICK ) 0,
|
||||||
|
(void *) 0,
|
||||||
|
(OS_OPT )(OS_OPT_TASK_STK_CHK | OS_OPT_TASK_STK_CLR),
|
||||||
|
(OS_ERR *)&err);
|
||||||
|
|
||||||
|
while(1) ;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void uiTask(void *arg)
|
||||||
|
{
|
||||||
|
(void) arg;
|
||||||
|
OS_ERR os_err;
|
||||||
|
|
||||||
|
// Init the graphic stack
|
||||||
|
gfx_init();
|
||||||
|
gfx_setBacklightLevel(255);
|
||||||
|
|
||||||
|
point_t origin = {0, SCREEN_HEIGHT / 2};
|
||||||
|
color_t color_yellow = {250, 180, 19};
|
||||||
|
char *buffer = "OpenRTX";
|
||||||
|
|
||||||
|
// Task infinite loop
|
||||||
|
while(DEF_ON)
|
||||||
|
{
|
||||||
|
gfx_clearScreen();
|
||||||
|
gfx_print(origin, buffer, FONT_SIZE_4, TEXT_ALIGN_CENTER, color_yellow);
|
||||||
|
gfx_render();
|
||||||
|
while(gfx_renderingInProgress());
|
||||||
|
OSTimeDlyHMSM(0u, 0u, 0u, 100u, OS_OPT_TIME_HMSM_STRICT, &os_err);
|
||||||
|
}
|
||||||
|
}
|
Ładowanie…
Reference in New Issue