summaryrefslogtreecommitdiff
path: root/FreeRTOS/Demo/AVR_ATMega4809_IAR/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'FreeRTOS/Demo/AVR_ATMega4809_IAR/main.c')
-rw-r--r--FreeRTOS/Demo/AVR_ATMega4809_IAR/main.c94
1 files changed, 94 insertions, 0 deletions
diff --git a/FreeRTOS/Demo/AVR_ATMega4809_IAR/main.c b/FreeRTOS/Demo/AVR_ATMega4809_IAR/main.c
new file mode 100644
index 000000000..27e816e10
--- /dev/null
+++ b/FreeRTOS/Demo/AVR_ATMega4809_IAR/main.c
@@ -0,0 +1,94 @@
+/*
+(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 <ioavr.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
+}
+
+/* vApplicationStackOverflowHook is called when a stack overflow occurs.
+This is usefull in application development, for debugging. To use this
+hook, uncomment it, and set configCHECK_FOR_STACK_OVERFLOW to 1 in
+"FreeRTOSConfig.h" header file. */
+
+// void vApplicationStackOverflowHook(TaskHandle_t *pxTask, signed char *pcTaskName )
+// {
+// for( ;; );
+// }
+
+/* vApplicationMallocFailedHook is called when memorry allocation fails.
+This is usefull in application development, for debugging. To use this
+hook, uncomment it, and set configUSE_MALLOC_FAILED_HOOK to 1 in
+"FreeRTOSConfig.h" header file. */
+
+// void vApplicationMallocFailedHook( void )
+// {
+// for( ;; );
+// }