X-Git-Url: https://git.sur5r.net/?p=freertos;a=blobdiff_plain;f=FreeRTOS%2FDemo%2FRL78_E2Studio_GCC%2Fsrc%2Fmain.c;fp=FreeRTOS%2FDemo%2FRL78_E2Studio_GCC%2Fsrc%2Fmain.c;h=0000000000000000000000000000000000000000;hp=b3f0fc05a6758b525c7ec019623bac84b68c1f6d;hb=b15dfacb6026af3b0ba697e5753844923b468d2b;hpb=4334233a064299a09d167a497889d3860932a587 diff --git a/FreeRTOS/Demo/RL78_E2Studio_GCC/src/main.c b/FreeRTOS/Demo/RL78_E2Studio_GCC/src/main.c deleted file mode 100644 index b3f0fc05a..000000000 --- a/FreeRTOS/Demo/RL78_E2Studio_GCC/src/main.c +++ /dev/null @@ -1,210 +0,0 @@ -/* - * FreeRTOS Kernel V10.1.0 - * Copyright (C) 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy of - * this software and associated documentation files (the "Software"), to deal in - * the Software without restriction, including without limitation the rights to - * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of - * the Software, and to permit persons to whom the Software is furnished to do so, - * subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS - * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR - * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER - * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * http://www.FreeRTOS.org - * http://aws.amazon.com/freertos - * - * 1 tab == 4 spaces! - */ - -/****************************************************************************** - * This project provides two demo applications. A simple blinky style project, - * and a more comprehensive test and demo application. The - * mainCREATE_SIMPLE_BLINKY_DEMO_ONLY setting (defined in this file) is used to - * select between the two. The simply blinky demo is implemented and described - * in main_blinky.c. The more comprehensive test and demo application is - * implemented and described in main_full.c. - * - * This file implements the code that is not demo specific, including the - * hardware setup and FreeRTOS hook functions. - * - * This project does not provide an example of how to write an RTOS compatible - * interrupt service routine (other than the tick interrupt itself), so this - * file contains the function vAnExampleISR_C_Handler() as a dummy example (that - * is not actually installed) that can be used as a reference. Also see the - * file ExampleISR.S, and the documentation page for this demo on the - * FreeRTOS.org website for full instructions. - * - * ENSURE TO READ THE DOCUMENTATION PAGE FOR THIS PORT AND DEMO APPLICATION ON - * THE http://www.FreeRTOS.org WEB SITE FOR FULL INFORMATION ON USING THIS DEMO - * APPLICATION, AND ITS ASSOCIATE FreeRTOS ARCHITECTURE PORT! - * - */ - -/* Scheduler include files. */ -#include "FreeRTOS.h" -#include "task.h" -#include "semphr.h" - -/* Set mainCREATE_SIMPLE_BLINKY_DEMO_ONLY to one to run the simple blinky demo, -or 0 to run the more comprehensive test and demo application. */ -#define mainCREATE_SIMPLE_BLINKY_DEMO_ONLY 0 - -/*-----------------------------------------------------------*/ - -/* - * main_blinky() is used when mainCREATE_SIMPLE_BLINKY_DEMO_ONLY is set to 1. - * main_full() is used when mainCREATE_SIMPLE_BLINKY_DEMO_ONLY is set to 0. - */ -#if mainCREATE_SIMPLE_BLINKY_DEMO_ONLY == 1 - extern void main_blinky( void ); -#else - extern void main_full( void ); -#endif - -/* Prototypes for the standard FreeRTOS callback/hook functions implemented -within this file. */ -void vApplicationMallocFailedHook( void ); -void vApplicationIdleHook( void ); -void vApplicationStackOverflowHook( TaskHandle_t pxTask, char *pcTaskName ); -void vApplicationTickHook( void ); - -/* This variable is not actually used, but provided to allow an example of how -to write an ISR to be included in this file. */ -static SemaphoreHandle_t xSemaphore = NULL; -/*-----------------------------------------------------------*/ - -#define portPSW ( 0xc6UL ) -volatile uint32_t *pulAddress; -volatile uint32_t ulValue, ulError = 0; - -int main( void ) -{ - /* Store an address below 0x8000 */ - pulAddress = ( uint32_t * ) 0x7fff; - - /* Cast and OR with a value that uses the two most significant - bytes. */ - ulValue = ( ( uint32_t ) pulAddress ) | ( portPSW << 24UL ); - - /* This test passes. */ - if( ulValue != 0xc6007fff ) - { - /* This line of code is not executed. */ - ulError = 1; - } - - /* Now do the same, but with an address above 0x7fff, but - still slower than the max 16-bit value. */ - pulAddress = ( uint32_t * ) 0x8000; - ulValue = ( ( uint32_t ) pulAddress ) | ( portPSW << 24UL ); - - /* This test *fails*. */ - if( ulValue != 0xc6008000 ) - { - /* This line of code *is* executed. */ - ulError = 1; - } - - - /* The mainCREATE_SIMPLE_BLINKY_DEMO_ONLY setting is - described at the top of this file. */ - #if mainCREATE_SIMPLE_BLINKY_DEMO_ONLY == 1 - { - main_blinky(); - } - #else - { - main_full(); - } - #endif - - /* Should not get here. See the definitions of main_blinky() and - main_full(). */ - return 0; -} -/*-----------------------------------------------------------*/ - -void vAnExampleISR_C_Handler( void ) -{ - /* - * This demo does not include a functional interrupt service routine - so - * this dummy handler (which is not actually installed) is provided as an - * example of how an ISR that needs to cause a context switch needs to be - * implemented. ISRs that do not cause a context switch have no special - * requirements and can be written as per the compiler documentation. - * - * This C function is called from a wrapper function that is implemented - * in assembly code. See vANExampleISR_ASM_Wrapper() in ExampleISR.S. Also - * see the documentation page for this demo on the FreeRTOS.org website for - * full instructions. - */ -short sHigherPriorityTaskWoken = pdFALSE; - - /* Handler code goes here...*/ - - /* For purposes of demonstration, assume at some point the hander calls - xSemaphoreGiveFromISR().*/ - xSemaphoreGiveFromISR( xSemaphore, &sHigherPriorityTaskWoken ); - - /* If giving the semaphore unblocked a task, and the unblocked task has a - priority higher than or equal to the currently running task, then - sHigherPriorityTaskWoken will have been set to pdTRUE internally within the - xSemaphoreGiveFromISR() function. Passing a pdTRUE value to - portYIELD_FROM_ISR() will cause this interrupt to return directly to the - higher priority unblocked task. */ - portYIELD_FROM_ISR( sHigherPriorityTaskWoken ); -} -/*-----------------------------------------------------------*/ - -void vApplicationMallocFailedHook( void ) -{ - /* Called if a call to pvPortMalloc() fails because there is insufficient - free memory available in the FreeRTOS heap. pvPortMalloc() is called - internally by FreeRTOS API functions that create tasks, queues, software - timers, and semaphores. The size of the FreeRTOS heap is set by the - configTOTAL_HEAP_SIZE configuration constant in FreeRTOSConfig.h. */ - taskDISABLE_INTERRUPTS(); - for( ;; ); -} -/*-----------------------------------------------------------*/ - -void vApplicationStackOverflowHook( TaskHandle_t pxTask, char *pcTaskName ) -{ - ( void ) pcTaskName; - ( void ) pxTask; - - /* Run time stack overflow checking is performed if - configCHECK_FOR_STACK_OVERFLOW is defined to 1 or 2. This hook - function is called if a stack overflow is detected. */ - taskDISABLE_INTERRUPTS(); - for( ;; ); -} -/*-----------------------------------------------------------*/ - -void vApplicationIdleHook( void ) -{ -volatile size_t xFreeHeapSpace; - - /* This is just a trivial example of an idle hook. It is called on each - cycle of the idle task. It must *NOT* attempt to block. In this case the - idle task just queries the amount of FreeRTOS heap that remains. See the - memory management section on the http://www.FreeRTOS.org web site for memory - management options. If there is a lot of heap memory free then the - configTOTAL_HEAP_SIZE value in FreeRTOSConfig.h can be reduced to free up - RAM. */ - xFreeHeapSpace = xPortGetFreeHeapSize(); - - /* Remove compiler warning about xFreeHeapSpace being set but never used. */ - ( void ) xFreeHeapSpace; -} - -