mirror of
https://github.com/FreeRTOS/FreeRTOS-Kernel.git
synced 2025-10-14 08:47:45 -04:00
* Added explicit cast to allow roll over and avoid integer promotion during cycles counters comparison in recmutex.c. * Fixed type mismatch between declaration and definition of function xAreSemaphoreTasksStillRunning( void ). * Added Atmel Studio demo projects for ATMega4809 and AVR128DA48. * Per https://www.freertos.org/upgrading-to-FreeRTOS-V8.html, I'm updating portBASE_TYPE to BaseType_t. Signed-off-by: Yuhui Zheng <10982575+yuhui-zheng@users.noreply.github.com> * Update register test for ATmega4809 - to cover r28, r29, r31. - call public API taskYIELD() instead of portYIELD(). * Update ATmega4809 readme.md to include info for serial port setup, and minor wording fix. Co-authored-by: Alexandru Niculae - M17336 <alexandru.niculae@microchip.com>
76 lines
2.4 KiB
C
76 lines
2.4 KiB
C
/*
|
|
(C) 2020 Microchip Technology Inc. and its subsidiaries.
|
|
|
|
Subject to your compliance with these terms, you may use Microchip software and
|
|
any derivatives exclusively with Microchip products. It is your responsibility
|
|
to comply with third party license terms applicable to your use of third party
|
|
software (including open source software) that may accompany Microchip software.
|
|
|
|
THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, WHETHER EXPRESS,
|
|
IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, INCLUDING ANY IMPLIED WARRANTIES
|
|
OF NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.
|
|
IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE,
|
|
INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER
|
|
RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF
|
|
THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT ALLOWED
|
|
BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY RELATED TO THIS
|
|
SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY, THAT YOU HAVE PAID DIRECTLY
|
|
TO MICROCHIP FOR THIS SOFTWARE.
|
|
*/
|
|
|
|
#include <avr/io.h>
|
|
#include "FreeRTOS.h"
|
|
#include "clk_config.h"
|
|
|
|
#define mainSELECTED_APPLICATION 0
|
|
|
|
/*
|
|
* Configure the hardware as necessary to run this demo.
|
|
*/
|
|
static void prvSetupHardware( void );
|
|
|
|
#if ( mainSELECTED_APPLICATION == 0 )
|
|
extern void main_blinky( void );
|
|
extern void init_blinky( void );
|
|
#elif ( mainSELECTED_APPLICATION == 1 )
|
|
extern void main_minimal( void );
|
|
extern void init_minimal( void );
|
|
#elif ( mainSELECTED_APPLICATION == 2 )
|
|
extern void main_full( void );
|
|
extern void init_full( void );
|
|
#else
|
|
#error Invalid mainSELECTED_APPLICATION setting. See the comments at the top of this file and above the mainSELECTED_APPLICATION definition.
|
|
#endif
|
|
|
|
int main( void )
|
|
{
|
|
prvSetupHardware();
|
|
|
|
#if( mainSELECTED_APPLICATION == 0 )
|
|
main_blinky();
|
|
#elif ( mainSELECTED_APPLICATION == 1 )
|
|
main_minimal();
|
|
#elif ( mainSELECTED_APPLICATION == 2 )
|
|
main_full();
|
|
#endif
|
|
|
|
return 0;
|
|
}
|
|
|
|
static void prvSetupHardware( void )
|
|
{
|
|
/* Ensure no interrupts execute while the scheduler is in an inconsistent
|
|
state. Interrupts are automatically enabled when the scheduler is
|
|
started. */
|
|
portDISABLE_INTERRUPTS();
|
|
|
|
CLK_init();
|
|
|
|
#if( mainSELECTED_APPLICATION == 0 )
|
|
init_blinky();
|
|
#elif ( mainSELECTED_APPLICATION == 1 )
|
|
init_minimal();
|
|
#elif ( mainSELECTED_APPLICATION == 2 )
|
|
init_full();
|
|
#endif
|
|
}
|