├── .travis.yml ├── FreeRTOS_on_Mi-V_Processor ├── README.md └── miv-rv32im-freertos-port-test │ ├── .cproject │ ├── .gitignore │ ├── .project │ ├── FreeRTOS │ ├── croutine.c │ ├── event_groups.c │ ├── include │ │ ├── FreeRTOS.h │ │ ├── FreeRTOS.h.gch │ │ ├── StackMacros.h │ │ ├── croutine.h │ │ ├── deprecated_definitions.h │ │ ├── event_groups.h │ │ ├── list.h │ │ ├── mpu_prototypes.h │ │ ├── mpu_wrappers.h │ │ ├── portable.h │ │ ├── projdefs.h │ │ ├── queue.h │ │ ├── semphr.h │ │ ├── stdint.readme │ │ ├── task.h │ │ └── timers.h │ ├── list.c │ ├── portable │ │ ├── GCC │ │ │ └── RISCV │ │ │ │ ├── port.c │ │ │ │ ├── portasm.S │ │ │ │ └── portmacro.h │ │ ├── MemMang │ │ │ ├── ReadMe.url │ │ │ ├── heap_1.c │ │ │ ├── heap_2.c │ │ │ ├── heap_3.c │ │ │ ├── heap_4.c │ │ │ └── heap_5.c │ │ └── readme.txt │ ├── queue.c │ ├── readme.txt │ ├── string.c │ ├── tasks.c │ └── timers.c │ ├── FreeRTOSConfig.h │ ├── README.md │ ├── drivers │ ├── Core16550 │ │ ├── core16550_regs.h │ │ ├── core_16550.c │ │ └── core_16550.h │ ├── CoreGPIO │ │ ├── core_gpio.c │ │ ├── core_gpio.h │ │ └── coregpio_regs.h │ ├── CoreI2C │ │ ├── core_i2c.c │ │ ├── core_i2c.h │ │ ├── core_smbus_regs.h │ │ └── i2c_interrupt.c │ ├── CoreTimer │ │ ├── core_timer.c │ │ ├── core_timer.h │ │ └── coretimer_regs.h │ └── CoreUARTapb │ │ ├── core_uart_apb.c │ │ ├── core_uart_apb.h │ │ └── coreuartapb_regs.h │ ├── hal │ ├── cpu_types.h │ ├── hal.h │ ├── hal_assert.h │ ├── hal_irq.c │ ├── hw_macros.h │ ├── hw_reg_access.S │ └── hw_reg_access.h │ ├── hw_platform.h │ ├── main.c │ ├── miv-rv32im-freertos-port-test Attach-to-Renode.launch │ ├── miv-rv32im-freertos-port-test Debug.launch │ ├── miv-rv32im-freertos-port-test Start-Renode-emulator-and-attach.launch │ └── riscv_hal │ ├── encoding.h │ ├── entry.S │ ├── init.c │ ├── microsemi-riscv-igloo2.ld │ ├── microsemi-riscv-ram.ld │ ├── riscv_hal.c │ ├── riscv_hal.h │ ├── riscv_hal_stubs.c │ ├── riscv_plic.h │ ├── sample_hw_platform.h │ └── syscall.c ├── FreeRTOS_on_Spike ├── Demo │ ├── Common │ │ ├── Full │ │ │ ├── BlockQ.c │ │ │ ├── PollQ.c │ │ │ ├── comtest.c │ │ │ ├── death.c │ │ │ ├── dynamic.c │ │ │ ├── events.c │ │ │ ├── flash.c │ │ │ ├── flop.c │ │ │ ├── integer.c │ │ │ ├── print.c │ │ │ └── semtest.c │ │ ├── Minimal │ │ │ ├── AltBlckQ.c │ │ │ ├── AltBlock.c │ │ │ ├── AltPollQ.c │ │ │ ├── AltQTest.c │ │ │ ├── BlockQ.c │ │ │ ├── EventGroupsDemo.c │ │ │ ├── GenQTest.c │ │ │ ├── IntQueue.c │ │ │ ├── IntSemTest.c │ │ │ ├── PollQ.c │ │ │ ├── QPeek.c │ │ │ ├── QueueOverwrite.c │ │ │ ├── QueueSet.c │ │ │ ├── QueueSetPolling.c │ │ │ ├── TaskNotify.c │ │ │ ├── TimerDemo.c │ │ │ ├── blocktim.c │ │ │ ├── comtest.c │ │ │ ├── comtest_strings.c │ │ │ ├── countsem.c │ │ │ ├── crflash.c │ │ │ ├── crhook.c │ │ │ ├── death.c │ │ │ ├── dynamic.c │ │ │ ├── flash.c │ │ │ ├── flash_timer.c │ │ │ ├── flop.c │ │ │ ├── integer.c │ │ │ ├── recmutex.c │ │ │ ├── semtest.c │ │ │ └── sp_flop.c │ │ └── include │ │ │ ├── AltBlckQ.h │ │ │ ├── AltBlock.h │ │ │ ├── AltPollQ.h │ │ │ ├── AltQTest.h │ │ │ ├── BlockQ.h │ │ │ ├── EventGroupsDemo.h │ │ │ ├── GenQTest.h │ │ │ ├── IntQueue.h │ │ │ ├── IntSemTest.h │ │ │ ├── PollQ.h │ │ │ ├── QPeek.h │ │ │ ├── QueueOverwrite.h │ │ │ ├── QueueSet.h │ │ │ ├── QueueSetPolling.h │ │ │ ├── TaskNotify.h │ │ │ ├── TimerDemo.h │ │ │ ├── blocktim.h │ │ │ ├── comtest.h │ │ │ ├── comtest2.h │ │ │ ├── comtest_strings.h │ │ │ ├── countsem.h │ │ │ ├── crflash.h │ │ │ ├── crhook.h │ │ │ ├── death.h │ │ │ ├── dynamic.h │ │ │ ├── fileIO.h │ │ │ ├── flash.h │ │ │ ├── flash_timer.h │ │ │ ├── flop.h │ │ │ ├── integer.h │ │ │ ├── mevents.h │ │ │ ├── partest.h │ │ │ ├── print.h │ │ │ ├── recmutex.h │ │ │ ├── semtest.h │ │ │ └── serial.h │ └── riscv-spike │ │ ├── Makefile │ │ ├── Makefile.inc │ │ ├── arch │ │ ├── boot.S │ │ ├── clib.c │ │ ├── clib.h │ │ ├── link.ld │ │ ├── syscalls.c │ │ └── syscalls.h │ │ ├── conf │ │ └── FreeRTOSConfig.h │ │ └── main.c ├── README.md └── Source │ ├── croutine.c │ ├── event_groups.c │ ├── include │ ├── FreeRTOS.h │ ├── FreeRTOS.h.gch │ ├── StackMacros.h │ ├── croutine.h │ ├── deprecated_definitions.h │ ├── event_groups.h │ ├── list.h │ ├── mpu_wrappers.h │ ├── portable.h │ ├── projdefs.h │ ├── queue.h │ ├── semphr.h │ ├── stdint.readme │ ├── task.h │ └── timers.h │ ├── list.c │ ├── portable │ ├── GCC │ │ └── RISCV │ │ │ ├── port.c │ │ │ ├── portasm.S │ │ │ └── portmacro.h │ ├── MemMang │ │ ├── ReadMe.url │ │ ├── heap_1.c │ │ ├── heap_2.c │ │ ├── heap_3.c │ │ ├── heap_4.c │ │ └── heap_5.c │ └── readme.txt │ ├── queue.c │ ├── readme.txt │ ├── string.c │ ├── tasks.c │ └── timers.c └── README.md /.travis.yml: -------------------------------------------------------------------------------- 1 | sudo: required 2 | language: generic 3 | script: 4 | - docker run -v ${TRAVIS_BUILD_DIR}:/projects microsemiproess/softconsole-headless-slim:5.3 bash -c "sch -i=/projects" 5 | -------------------------------------------------------------------------------- /FreeRTOS_on_Mi-V_Processor/README.md: -------------------------------------------------------------------------------- 1 | ## FreeRTOS port on Mi-V Soft Processors 2 | This Folder contains the FreeRTOS example projects running on the Mi-V Soft Processors (RV32). 3 | Refer the README.md in each project folder for more details. 4 | 5 | -------------------------------------------------------------------------------- /FreeRTOS_on_Mi-V_Processor/miv-rv32im-freertos-port-test/.gitignore: -------------------------------------------------------------------------------- 1 | /Debug/ 2 | /Release/ -------------------------------------------------------------------------------- /FreeRTOS_on_Mi-V_Processor/miv-rv32im-freertos-port-test/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | miv-rv32im-freertos-port-test 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.cdt.managedbuilder.core.genmakebuilder 10 | clean,full,incremental, 11 | 12 | 13 | 14 | 15 | org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder 16 | full,incremental, 17 | 18 | 19 | 20 | 21 | 22 | org.eclipse.cdt.core.cnature 23 | org.eclipse.cdt.managedbuilder.core.managedBuildNature 24 | org.eclipse.cdt.managedbuilder.core.ScannerConfigNature 25 | 26 | 27 | -------------------------------------------------------------------------------- /FreeRTOS_on_Mi-V_Processor/miv-rv32im-freertos-port-test/FreeRTOS/include/FreeRTOS.h.gch: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RISCV-on-Microsemi-FPGA/FreeRTOS/7af2b761c0775ee7663cc643d13f5a3eb610cd21/FreeRTOS_on_Mi-V_Processor/miv-rv32im-freertos-port-test/FreeRTOS/include/FreeRTOS.h.gch -------------------------------------------------------------------------------- /FreeRTOS_on_Mi-V_Processor/miv-rv32im-freertos-port-test/FreeRTOS/include/stdint.readme: -------------------------------------------------------------------------------- 1 | 2 | #ifndef FREERTOS_STDINT 3 | #define FREERTOS_STDINT 4 | 5 | /******************************************************************************* 6 | * THIS IS NOT A FULL stdint.h IMPLEMENTATION - It only contains the definitions 7 | * necessary to build the FreeRTOS code. It is provided to allow FreeRTOS to be 8 | * built using compilers that do not provide their own stdint.h definition. 9 | * 10 | * To use this file: 11 | * 12 | * 1) Copy this file into the directory that contains your FreeRTOSConfig.h 13 | * header file, as that directory will already be in the compilers include 14 | * path. 15 | * 16 | * 2) Rename the copied file stdint.h. 17 | * 18 | */ 19 | 20 | typedef signed char int8_t; 21 | typedef unsigned char uint8_t; 22 | typedef short int16_t; 23 | typedef unsigned short uint16_t; 24 | typedef long int32_t; 25 | typedef unsigned long uint32_t; 26 | 27 | #endif /* FREERTOS_STDINT */ 28 | -------------------------------------------------------------------------------- /FreeRTOS_on_Mi-V_Processor/miv-rv32im-freertos-port-test/FreeRTOS/portable/MemMang/ReadMe.url: -------------------------------------------------------------------------------- 1 | [{000214A0-0000-0000-C000-000000000046}] 2 | Prop3=19,2 3 | [InternetShortcut] 4 | URL=http://www.freertos.org/a00111.html 5 | IDList= 6 | IconFile=http://www.freertos.org/favicon.ico 7 | IconIndex=1 8 | -------------------------------------------------------------------------------- /FreeRTOS_on_Mi-V_Processor/miv-rv32im-freertos-port-test/FreeRTOS/portable/readme.txt: -------------------------------------------------------------------------------- 1 | Each real time kernel port consists of three files that contain the core kernel 2 | components and are common to every port, and one or more files that are 3 | specific to a particular microcontroller and/or compiler. 4 | 5 | 6 | + The FreeRTOS/Source/Portable/MemMang directory contains the five sample 7 | memory allocators as described on the http://www.FreeRTOS.org WEB site. 8 | 9 | + The other directories each contain files specific to a particular 10 | microcontroller or compiler, where the directory name denotes the compiler 11 | specific files the directory contains. 12 | 13 | 14 | 15 | For example, if you are interested in the [compiler] port for the [architecture] 16 | microcontroller, then the port specific files are contained in 17 | FreeRTOS/Source/Portable/[compiler]/[architecture] directory. If this is the 18 | only port you are interested in then all the other directories can be 19 | ignored. 20 | 21 | -------------------------------------------------------------------------------- /FreeRTOS_on_Mi-V_Processor/miv-rv32im-freertos-port-test/FreeRTOS/readme.txt: -------------------------------------------------------------------------------- 1 | Each real time kernel port consists of three files that contain the core kernel 2 | components and are common to every port, and one or more files that are 3 | specific to a particular microcontroller and or compiler. 4 | 5 | + The FreeRTOS/Source directory contains the three files that are common to 6 | every port - list.c, queue.c and tasks.c. The kernel is contained within these 7 | three files. croutine.c implements the optional co-routine functionality - which 8 | is normally only used on very memory limited systems. 9 | 10 | + The FreeRTOS/Source/Portable directory contains the files that are specific to 11 | a particular microcontroller and or compiler. 12 | 13 | + The FreeRTOS/Source/include directory contains the real time kernel header 14 | files. 15 | 16 | See the readme file in the FreeRTOS/Source/Portable directory for more 17 | information. -------------------------------------------------------------------------------- /FreeRTOS_on_Mi-V_Processor/miv-rv32im-freertos-port-test/FreeRTOS/string.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | void* memcpy(void* dest, const void* src, size_t len) 6 | { 7 | const char* s = src; 8 | char *d = dest; 9 | 10 | if ((((uintptr_t)dest | (uintptr_t)src) & (sizeof(uintptr_t)-1)) == 0) { 11 | while ((void*)d < (dest + len - (sizeof(uintptr_t)-1))) { 12 | *(uintptr_t*)d = *(const uintptr_t*)s; 13 | d += sizeof(uintptr_t); 14 | s += sizeof(uintptr_t); 15 | } 16 | } 17 | 18 | while (d < (char*)(dest + len)) 19 | *d++ = *s++; 20 | 21 | return dest; 22 | } 23 | 24 | void* memset(void* dest, int byte, size_t len) 25 | { 26 | if ((((uintptr_t)dest | len) & (sizeof(uintptr_t)-1)) == 0) { 27 | uintptr_t word = byte & 0xFF; 28 | word |= word << 8; 29 | word |= word << 16; 30 | word |= word << 16 << 16; 31 | 32 | uintptr_t *d = dest; 33 | while (d < (uintptr_t*)(dest + len)) 34 | *d++ = word; 35 | } else { 36 | char *d = dest; 37 | while (d < (char*)(dest + len)) 38 | *d++ = byte; 39 | } 40 | return dest; 41 | } 42 | 43 | size_t strlen(const char *s) 44 | { 45 | const char *p = s; 46 | while (*p) 47 | p++; 48 | return p - s; 49 | } 50 | 51 | int strcmp(const char* s1, const char* s2) 52 | { 53 | unsigned char c1, c2; 54 | 55 | do { 56 | c1 = *s1++; 57 | c2 = *s2++; 58 | } while (c1 != 0 && c1 == c2); 59 | 60 | return c1 - c2; 61 | } 62 | 63 | char* strcpy(char* dest, const char* src) 64 | { 65 | char* d = dest; 66 | while ((*d++ = *src++)) 67 | ; 68 | return dest; 69 | } 70 | 71 | long atol(const char* str) 72 | { 73 | long res = 0; 74 | int sign = 0; 75 | 76 | while (*str == ' ') 77 | str++; 78 | 79 | if (*str == '-' || *str == '+') { 80 | sign = *str == '-'; 81 | str++; 82 | } 83 | 84 | while (*str) { 85 | res *= 10; 86 | res += *str++ - '0'; 87 | } 88 | 89 | return sign ? -res : res; 90 | } 91 | -------------------------------------------------------------------------------- /FreeRTOS_on_Mi-V_Processor/miv-rv32im-freertos-port-test/README.md: -------------------------------------------------------------------------------- 1 | ## FreeRTOS port for Mi-V Soft Processor 2 | 3 | ### HW Platform and FPGA design: 4 | This project is tested on following hardware platforms: 5 | 6 | RISCV-Creative-Board 7 | - [RISC-V Creative board Mi-V Sample Design](https://github.com/RISCV-on-Microsemi-FPGA/RISC-V-Creative-Board/tree/master/Programming_The_Target_Device/PROC_SUBSYSTEM_MIV_RV32IMA_BaseDesign) 8 | 9 | PolarFire-Eval-Kit 10 | - [PolarFire Eval Kit RISC-V Sample Design](https://github.com/RISCV-on-Microsemi-FPGA/PolarFire-Eval-Kit/tree/master/Programming_The_Target_Device/PF_MIV_RV32IMA_L1_AHB_BaseDesign) 11 | 12 | SmartFusion2-Advanced-Dev-Kit 13 | - [SmartFusion2 Advanced Development Kit RISC-V Sample Design](https://github.com/RISCV-on-Microsemi-FPGA/SmartFusion2-Advanced-Dev-Kit/tree/master/Programming_The_Target_Device/PROC_SUBSYSTEM_MIV_RV32IMA_BaseDesign) 14 | 15 | ### How to run the FreeRTOS RISC-V port: 16 | To know how to use the SoftConsole workspace, please refer the [Readme.md](https://github.com/RISCV-on-Microsemi-FPGA/SoftConsole/blob/master/README.md) 17 | 18 | The miv-rv32im-freertos-port-test is a self contained project. This project demonstrates 19 | the FreeRTOS running with Microsemi RISC-V processor. This project creates two 20 | tasks and runs them at regular intervals. 21 | 22 | This example project requires USB-UART interface to be connected to a host PC. 23 | The host PC must connect to the serial port using a terminal emulator such as 24 | TeraTerm or PuTTY configured as follows: 25 | 26 | - 115200 baud 27 | - 8 data bits 28 | - 1 stop bit 29 | - no parity 30 | - no flow control 31 | 32 | The ./hw_platform.h file contains the design related information that is required 33 | for this project. If you update the design, the hw_platform.h must be updated 34 | accordingly. 35 | 36 | ### FreeRTOS Configurations 37 | You must configure the FreeRTOS as per your applications need. Please read and modify FreeRTOSConfig.h. 38 | E.g. You must set configCPU_CLOCK_HZ parameter in FreeRTOSConfig.h according to the hardware platform 39 | design that you are using. 40 | 41 | The RISC-V creative board design uses 66Mhz processor clock. The PolarFire Eval Kit design uses 50Mhz processor clock. The SmartFusion2 Adv. Development kit design uses 83Mhz processor clock. 42 | 43 | ### Microsemi SoftConsole Toolchain 44 | To know more please refer: [SoftConsole](https://github.com/RISCV-on-Microsemi-FPGA/SoftConsole) 45 | 46 | ### Documentation for Microsemi RISC-V processor, SoftConsole toochain, Debug Tools, FPGA design etc. 47 | To know more please refer: [Documentation](https://github.com/RISCV-on-Microsemi-FPGA/Documentation) 48 | 49 | -------------------------------------------------------------------------------- /FreeRTOS_on_Mi-V_Processor/miv-rv32im-freertos-port-test/drivers/Core16550/core_16550.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RISCV-on-Microsemi-FPGA/FreeRTOS/7af2b761c0775ee7663cc643d13f5a3eb610cd21/FreeRTOS_on_Mi-V_Processor/miv-rv32im-freertos-port-test/drivers/Core16550/core_16550.h -------------------------------------------------------------------------------- /FreeRTOS_on_Mi-V_Processor/miv-rv32im-freertos-port-test/drivers/CoreGPIO/coregpio_regs.h: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * (c) Copyright 2009-2015 Microsemi SoC Products Group. All rights reserved. 3 | * 4 | * SVN $Revision: 7964 $ 5 | * SVN $Date: 2015-10-09 18:26:53 +0530 (Fri, 09 Oct 2015) $ 6 | */ 7 | #ifndef __CORE_GPIO_REGISTERS_H 8 | #define __CORE_GPIO_REGISTERS_H 1 9 | 10 | /*------------------------------------------------------------------------------ 11 | * 12 | */ 13 | #define IRQ_REG_OFFSET 0x80 14 | 15 | #define IRQ0_REG_OFFSET 0x80 16 | #define IRQ1_REG_OFFSET 0x84 17 | #define IRQ2_REG_OFFSET 0x88 18 | #define IRQ3_REG_OFFSET 0x8C 19 | 20 | /*------------------------------------------------------------------------------ 21 | * 22 | */ 23 | #define GPIO_IN_REG_OFFSET 0x90 24 | 25 | #define GPIO_IN0_REG_OFFSET 0x90 26 | #define GPIO_IN1_REG_OFFSET 0x94 27 | #define GPIO_IN2_REG_OFFSET 0x98 28 | #define GPIO_IN3_REG_OFFSET 0x9C 29 | 30 | /*------------------------------------------------------------------------------ 31 | * 32 | */ 33 | #define GPIO_OUT_REG_OFFSET 0xA0 34 | 35 | #define GPIO_OUT0_REG_OFFSET 0xA0 36 | #define GPIO_OUT1_REG_OFFSET 0xA4 37 | #define GPIO_OUT2_REG_OFFSET 0xA8 38 | #define GPIO_OUT3_REG_OFFSET 0xAC 39 | 40 | #endif /* __CORE_GPIO_REGISTERS_H */ 41 | -------------------------------------------------------------------------------- /FreeRTOS_on_Mi-V_Processor/miv-rv32im-freertos-port-test/drivers/CoreI2C/core_i2c.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RISCV-on-Microsemi-FPGA/FreeRTOS/7af2b761c0775ee7663cc643d13f5a3eb610cd21/FreeRTOS_on_Mi-V_Processor/miv-rv32im-freertos-port-test/drivers/CoreI2C/core_i2c.h -------------------------------------------------------------------------------- /FreeRTOS_on_Mi-V_Processor/miv-rv32im-freertos-port-test/drivers/CoreI2C/core_smbus_regs.h: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * (c) Copyright 2009-2015 Microsemi SoC Products Group. All rights reserved. 3 | * 4 | * SVN $Revision: 7984 $ 5 | * SVN $Date: 2015-10-12 12:07:40 +0530 (Mon, 12 Oct 2015) $ 6 | */ 7 | 8 | #ifndef __CORE_SMBUS_REGISTERS 9 | #define __CORE_SMBUS_REGISTERS 1 10 | 11 | /*------------------------------------------------------------------------------ 12 | * CONTROL register details 13 | */ 14 | #define CONTROL_REG_OFFSET 0x00u 15 | 16 | /* 17 | * CR0 bits. 18 | */ 19 | #define CR0_OFFSET 0x00u 20 | #define CR0_MASK 0x01u 21 | #define CR0_SHIFT 0u 22 | 23 | /* 24 | * CR1 bits. 25 | */ 26 | #define CR1_OFFSET 0x00u 27 | #define CR1_MASK 0x02u 28 | #define CR1_SHIFT 1u 29 | 30 | /* 31 | * AA bits. 32 | */ 33 | #define AA_OFFSET 0x00u 34 | #define AA_MASK 0x04u 35 | #define AA_SHIFT 2u 36 | 37 | /* 38 | * SI bits. 39 | */ 40 | #define SI_OFFSET 0x00u 41 | #define SI_MASK 0x08u 42 | #define SI_SHIFT 3u 43 | 44 | /* 45 | * STO bits. 46 | */ 47 | #define STO_OFFSET 0x00u 48 | #define STO_MASK 0x10u 49 | #define STO_SHIFT 4u 50 | 51 | /* 52 | * STA bits. 53 | */ 54 | #define STA_OFFSET 0x00u 55 | #define STA_MASK 0x20u 56 | #define STA_SHIFT 5u 57 | 58 | /* 59 | * ENS1 bits. 60 | */ 61 | #define ENS1_OFFSET 0x00u 62 | #define ENS1_MASK 0x40u 63 | #define ENS1_SHIFT 6u 64 | 65 | /* 66 | * CR2 bits. 67 | */ 68 | #define CR2_OFFSET 0x00u 69 | #define CR2_MASK 0x80u 70 | #define CR2_SHIFT 7u 71 | 72 | /*------------------------------------------------------------------------------ 73 | * STATUS register details 74 | */ 75 | #define STATUS_REG_OFFSET 0x04u 76 | 77 | /*------------------------------------------------------------------------------ 78 | * DATA register details 79 | */ 80 | #define DATA_REG_OFFSET 0x08u 81 | 82 | /* 83 | * TARGET_ADDR bits. 84 | */ 85 | #define TARGET_ADDR_OFFSET 0x08u 86 | #define TARGET_ADDR_MASK 0xFEu 87 | #define TARGET_ADDR_SHIFT 1u 88 | 89 | /* 90 | * DIR bit. 91 | */ 92 | #define DIR_OFFSET 0x08u 93 | #define DIR_MASK 0x01u 94 | #define DIR_SHIFT 0u 95 | 96 | 97 | /*------------------------------------------------------------------------------ 98 | * ADDRESS register details 99 | */ 100 | #define ADDRESS_REG_OFFSET 0x0Cu 101 | 102 | /* 103 | * GC bits. 104 | */ 105 | #define GC_OFFSET 0x0Cu 106 | #define GC_MASK 0x01u 107 | #define GC_SHIFT 0u 108 | 109 | /* 110 | * ADR bits. 111 | */ 112 | #define OWN_SLAVE_ADDR_OFFSET 0x0Cu 113 | #define OWN_SLAVE_ADDR_MASK 0xFEu 114 | #define OWN_SLAVE_ADDR_SHIFT 1u 115 | 116 | /*------------------------------------------------------------------------------ 117 | * SMBUS register details 118 | */ 119 | #define SMBUS_REG_OFFSET 0x10u 120 | 121 | /* 122 | * SMBALERT_IE bits. 123 | */ 124 | #define SMBALERT_IE_OFFSET 0x10u 125 | #define SMBALERT_IE_MASK 0x01u 126 | #define SMBALERT_IE_SHIFT 0u 127 | 128 | /* 129 | * SMBSUS_IE bits. 130 | */ 131 | #define SMBSUS_IE_OFFSET 0x10u 132 | #define SMBSUS_IE_MASK 0x02u 133 | #define SMBSUS_IE_SHIFT 1u 134 | 135 | /* 136 | * SMB_IPMI_EN bits. 137 | */ 138 | #define SMB_IPMI_EN_OFFSET 0x10u 139 | #define SMB_IPMI_EN_MASK 0x04u 140 | #define SMB_IPMI_EN_SHIFT 2u 141 | 142 | /* 143 | * SMBALERT_NI_STATUS bits. 144 | */ 145 | #define SMBALERT_NI_STATUS_OFFSET 0x10u 146 | #define SMBALERT_NI_STATUS_MASK 0x08u 147 | #define SMBALERT_NI_STATUS_SHIFT 3u 148 | 149 | /* 150 | * SMBALERT_NO_CONTROL bits. 151 | */ 152 | #define SMBALERT_NO_CONTROL_OFFSET 0x10u 153 | #define SMBALERT_NO_CONTROL_MASK 0x10u 154 | #define SMBALERT_NO_CONTROL_SHIFT 4u 155 | 156 | /* 157 | * SMBSUS_NI_STATUS bits. 158 | */ 159 | #define SMBSUS_NI_STATUS_OFFSET 0x10u 160 | #define SMBSUS_NI_STATUS_MASK 0x20u 161 | #define SMBSUS_NI_STATUS_SHIFT 5u 162 | 163 | /* 164 | * SMBSUS_NO_CONTROL bits. 165 | */ 166 | #define SMBSUS_NO_CONTROL_OFFSET 0x10u 167 | #define SMBSUS_NO_CONTROL_MASK 0x40u 168 | #define SMBSUS_NO_CONTROL_SHIFT 6u 169 | 170 | /* 171 | * SMBUS_MST_RESET bits. 172 | */ 173 | #define SMBUS_MST_RESET_OFFSET 0x10u 174 | #define SMBUS_MST_RESET_MASK 0x80u 175 | #define SMBUS_MST_RESET_SHIFT 7u 176 | 177 | /*------------------------------------------------------------------------------ 178 | * SLAVE ADDRESS 1 register details 179 | */ 180 | 181 | #define ADDRESS1_REG_OFFSET 0x1Cu 182 | 183 | /* 184 | * SLAVE1_EN bit of Slave Address 1 . 185 | */ 186 | #define SLAVE1_EN_OFFSET 0x1Cu 187 | #define SLAVE1_EN_MASK 0x01u 188 | #define SLAVE1_EN_SHIFT 0u 189 | 190 | #endif /* __CORE_SMBUS_REGISTERS */ 191 | -------------------------------------------------------------------------------- /FreeRTOS_on_Mi-V_Processor/miv-rv32im-freertos-port-test/drivers/CoreI2C/i2c_interrupt.c: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * (c) Copyright 2009-2015 Microsemi SoC Products Group. All rights reserved. 3 | * 4 | * CoreI2C driver interrupt control. 5 | * 6 | * SVN $Revision: 7984 $ 7 | * SVN $Date: 2015-10-12 12:07:40 +0530 (Mon, 12 Oct 2015) $ 8 | */ 9 | #include "hal.h" 10 | #include "hal_assert.h" 11 | #include "core_i2c.h" 12 | #include "riscv_hal.h" 13 | 14 | 15 | #define I2C_IRQn External_29_IRQn 16 | 17 | /*------------------------------------------------------------------------------ 18 | * This function must be modified to enable interrupts generated from the 19 | * CoreI2C instance identified as parameter. 20 | */ 21 | void I2C_enable_irq( i2c_instance_t * this_i2c ) 22 | { 23 | PLIC_EnableIRQ(I2C_IRQn); 24 | // HAL_ASSERT(0) 25 | } 26 | 27 | /*------------------------------------------------------------------------------ 28 | * This function must be modified to disable interrupts generated from the 29 | * CoreI2C instance identified as parameter. 30 | */ 31 | void I2C_disable_irq( i2c_instance_t * this_i2c ) 32 | { 33 | PLIC_DisableIRQ(I2C_IRQn); 34 | // HAL_ASSERT(0) 35 | } 36 | -------------------------------------------------------------------------------- /FreeRTOS_on_Mi-V_Processor/miv-rv32im-freertos-port-test/drivers/CoreTimer/core_timer.c: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * (c) Copyright 2007-2015 Microsemi SoC Products Group. All rights reserved. 3 | * 4 | * CoreTimer driver implementation. 5 | * 6 | * SVN $Revision: 7967 $ 7 | * SVN $Date: 2015-10-09 18:48:26 +0530 (Fri, 09 Oct 2015) $ 8 | */ 9 | 10 | #include "core_timer.h" 11 | #include "coretimer_regs.h" 12 | #include "hal.h" 13 | #include "hal_assert.h" 14 | 15 | #ifndef NDEBUG 16 | static timer_instance_t* NULL_timer_instance; 17 | #endif 18 | 19 | /***************************************************************************//** 20 | * TMR_init() 21 | * See "core_timer.h" for details of how to use this function. 22 | */ 23 | void 24 | TMR_init 25 | ( 26 | timer_instance_t * this_timer, 27 | addr_t address, 28 | uint8_t mode, 29 | uint32_t prescale, 30 | uint32_t load_value 31 | ) 32 | { 33 | HAL_ASSERT( this_timer != NULL_timer_instance ) 34 | HAL_ASSERT( prescale <= PRESCALER_DIV_1024 ) 35 | HAL_ASSERT( load_value != 0 ) 36 | 37 | this_timer->base_address = address; 38 | 39 | /* Disable interrupts. */ 40 | HAL_set_32bit_reg_field( address, InterruptEnable,0 ); 41 | 42 | /* Disable timer. */ 43 | HAL_set_32bit_reg_field( address, TimerEnable, 0 ); 44 | 45 | /* Clear pending interrupt. */ 46 | HAL_set_32bit_reg( address, TimerIntClr, 1 ); 47 | 48 | /* Configure prescaler and load value. */ 49 | HAL_set_32bit_reg( address, TimerPrescale, prescale ); 50 | HAL_set_32bit_reg( address, TimerLoad, load_value ); 51 | 52 | /* Set the interrupt mode. */ 53 | if ( mode == TMR_CONTINUOUS_MODE ) 54 | { 55 | HAL_set_32bit_reg_field( address, TimerMode, 0 ); 56 | } 57 | else 58 | { 59 | /* TMR_ONE_SHOT_MODE */ 60 | HAL_set_32bit_reg_field( address, TimerMode, 1 ); 61 | } 62 | } 63 | 64 | /***************************************************************************//** 65 | * TMR_start() 66 | * See "core_timer.h" for details of how to use this function. 67 | */ 68 | void 69 | TMR_start 70 | ( 71 | timer_instance_t * this_timer 72 | ) 73 | { 74 | HAL_ASSERT( this_timer != NULL_timer_instance ) 75 | 76 | HAL_set_32bit_reg_field( this_timer->base_address, TimerEnable, 1 ); 77 | } 78 | 79 | /***************************************************************************//** 80 | * TMR_stop() 81 | * See "core_timer.h" for details of how to use this function. 82 | */ 83 | void 84 | TMR_stop 85 | ( 86 | timer_instance_t * this_timer 87 | ) 88 | { 89 | HAL_ASSERT( this_timer != NULL_timer_instance ) 90 | 91 | HAL_set_32bit_reg_field( this_timer->base_address, TimerEnable, 0 ); 92 | } 93 | 94 | 95 | /***************************************************************************//** 96 | * TMR_enable_int() 97 | * See "core_timer.h" for details of how to use this function. 98 | */ 99 | void 100 | TMR_enable_int 101 | ( 102 | timer_instance_t * this_timer 103 | ) 104 | { 105 | HAL_ASSERT( this_timer != NULL_timer_instance ) 106 | 107 | HAL_set_32bit_reg_field( this_timer->base_address, InterruptEnable, 1 ); 108 | } 109 | 110 | /***************************************************************************//** 111 | * TMR_clear_int() 112 | * See "core_timer.h" for details of how to use this function. 113 | */ 114 | void 115 | TMR_clear_int 116 | ( 117 | timer_instance_t * this_timer 118 | ) 119 | { 120 | HAL_ASSERT( this_timer != NULL_timer_instance ) 121 | 122 | HAL_set_32bit_reg( this_timer->base_address, TimerIntClr, 0x01 ); 123 | } 124 | 125 | /***************************************************************************//** 126 | * TMR_current_value() 127 | * See "core_timer.h" for details of how to use this function. 128 | */ 129 | uint32_t 130 | TMR_current_value 131 | ( 132 | timer_instance_t * this_timer 133 | ) 134 | { 135 | uint32_t value = 0; 136 | HAL_ASSERT( this_timer != NULL_timer_instance ) 137 | 138 | value = HAL_get_32bit_reg( this_timer->base_address, TimerValue ); 139 | 140 | return value; 141 | } 142 | 143 | /***************************************************************************//** 144 | * TMR_reload() 145 | * See "core_timer.h" for details of how to use this function. 146 | */ 147 | void TMR_reload 148 | ( 149 | timer_instance_t * this_timer, 150 | uint32_t load_value 151 | ) 152 | { 153 | HAL_ASSERT( this_timer != NULL_timer_instance ) 154 | HAL_ASSERT( load_value != 0 ) 155 | 156 | HAL_set_32bit_reg(this_timer->base_address, TimerLoad, load_value ); 157 | } 158 | 159 | -------------------------------------------------------------------------------- /FreeRTOS_on_Mi-V_Processor/miv-rv32im-freertos-port-test/drivers/CoreTimer/core_timer.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RISCV-on-Microsemi-FPGA/FreeRTOS/7af2b761c0775ee7663cc643d13f5a3eb610cd21/FreeRTOS_on_Mi-V_Processor/miv-rv32im-freertos-port-test/drivers/CoreTimer/core_timer.h -------------------------------------------------------------------------------- /FreeRTOS_on_Mi-V_Processor/miv-rv32im-freertos-port-test/drivers/CoreTimer/coretimer_regs.h: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * (c) Copyright 2007-2015 Microsemi SoC Products Group. All rights reserved. 3 | * 4 | * SVN $Revision: 7967 $ 5 | * SVN $Date: 2015-10-09 18:48:26 +0530 (Fri, 09 Oct 2015) $ 6 | */ 7 | 8 | #ifndef __CORE_TIMER_REGISTERS 9 | #define __CORE_TIMER_REGISTERS 1 10 | 11 | /*------------------------------------------------------------------------------ 12 | * TimerLoad register details 13 | */ 14 | #define TimerLoad_REG_OFFSET 0x00 15 | 16 | /* 17 | * LoadValue bits. 18 | */ 19 | #define LoadValue_OFFSET 0x00 20 | #define LoadValue_MASK 0xFFFFFFFF 21 | #define LoadValue_SHIFT 0 22 | 23 | /*------------------------------------------------------------------------------ 24 | * TimerValue register details 25 | */ 26 | #define TimerValue_REG_OFFSET 0x04 27 | 28 | /* 29 | * CurrentValue bits. 30 | */ 31 | #define CurrentValue_OFFSET 0x04 32 | #define CurrentValue_MASK 0xFFFFFFFF 33 | #define CurrentValue_SHIFT 0 34 | 35 | /*------------------------------------------------------------------------------ 36 | * TimerControl register details 37 | */ 38 | #define TimerControl_REG_OFFSET 0x08 39 | 40 | /* 41 | * TimerEnable bits. 42 | */ 43 | #define TimerEnable_OFFSET 0x08 44 | #define TimerEnable_MASK 0x00000001 45 | #define TimerEnable_SHIFT 0 46 | 47 | /* 48 | * InterruptEnable bits. 49 | */ 50 | #define InterruptEnable_OFFSET 0x08 51 | #define InterruptEnable_MASK 0x00000002 52 | #define InterruptEnable_SHIFT 1 53 | 54 | /* 55 | * TimerMode bits. 56 | */ 57 | #define TimerMode_OFFSET 0x08 58 | #define TimerMode_MASK 0x00000004 59 | #define TimerMode_SHIFT 2 60 | 61 | /*------------------------------------------------------------------------------ 62 | * TimerPrescale register details 63 | */ 64 | #define TimerPrescale_REG_OFFSET 0x0C 65 | 66 | /* 67 | * Prescale bits. 68 | */ 69 | #define Prescale_OFFSET 0x0C 70 | #define Prescale_MASK 0x0000000F 71 | #define Prescale_SHIFT 0 72 | 73 | /*------------------------------------------------------------------------------ 74 | * TimerIntClr register details 75 | */ 76 | #define TimerIntClr_REG_OFFSET 0x10 77 | 78 | /* 79 | * TimerIntClr bits. 80 | */ 81 | #define TimerIntClr_OFFSET 0x10 82 | #define TimerIntClr_MASK 0xFFFFFFFF 83 | #define TimerIntClr_SHIFT 0 84 | 85 | /*------------------------------------------------------------------------------ 86 | * TimerRIS register details 87 | */ 88 | #define TimerRIS_REG_OFFSET 0x14 89 | 90 | /* 91 | * RawTimerInterrupt bits. 92 | */ 93 | #define RawTimerInterrupt_OFFSET 0x14 94 | #define RawTimerInterrupt_MASK 0x00000001 95 | #define RawTimerInterrupt_SHIFT 0 96 | 97 | /*------------------------------------------------------------------------------ 98 | * TimerMIS register details 99 | */ 100 | #define TimerMIS_REG_OFFSET 0x18 101 | 102 | /* 103 | * TimerInterrupt bits. 104 | */ 105 | #define TimerInterrupt_OFFSET 0x18 106 | #define TimerInterrupt_MASK 0x00000001 107 | #define TimerInterrupt_SHIFT 0 108 | 109 | #endif /* __CORE_TIMER_REGISTERS */ 110 | -------------------------------------------------------------------------------- /FreeRTOS_on_Mi-V_Processor/miv-rv32im-freertos-port-test/drivers/CoreUARTapb/coreuartapb_regs.h: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * (c) Copyright 2007-2017 Microsemi SoC Products Group. All rights reserved. 3 | * 4 | * SVN $Revision: 9082 $ 5 | * SVN $Date: 2017-04-28 11:51:36 +0530 (Fri, 28 Apr 2017) $ 6 | */ 7 | 8 | #ifndef __CORE_UART_APB_REGISTERS 9 | #define __CORE_UART_APB_REGISTERS 1 10 | 11 | #ifdef __cplusplus 12 | extern "C" { 13 | #endif 14 | 15 | /*------------------------------------------------------------------------------ 16 | * TxData register details 17 | */ 18 | #define TXDATA_REG_OFFSET 0x0u 19 | 20 | /* 21 | * TxData bits. 22 | */ 23 | #define TXDATA_OFFSET 0x0u 24 | #define TXDATA_MASK 0xFFu 25 | #define TXDATA_SHIFT 0u 26 | 27 | /*------------------------------------------------------------------------------ 28 | * RxData register details 29 | */ 30 | #define RXDATA_REG_OFFSET 0x4u 31 | 32 | /* 33 | * RxData bits. 34 | */ 35 | #define RXDATA_OFFSET 0x4u 36 | #define RXDATA_MASK 0xFFu 37 | #define RXDATA_SHIFT 0u 38 | 39 | /*------------------------------------------------------------------------------ 40 | * ControReg1 register details 41 | */ 42 | #define CTRL1_REG_OFFSET 0x8u 43 | 44 | /* 45 | * Baud value (Lower 8-bits) 46 | */ 47 | #define CTRL1_BAUDVALUE_OFFSET 0x8u 48 | #define CTRL1_BAUDVALUE_MASK 0xFFu 49 | #define CTRL1_BAUDVALUE_SHIFT 0u 50 | 51 | /*------------------------------------------------------------------------------ 52 | * ControReg2 register details 53 | */ 54 | #define CTRL2_REG_OFFSET 0xCu 55 | 56 | /* 57 | * Bit length 58 | */ 59 | #define CTRL2_BIT_LENGTH_OFFSET 0xCu 60 | #define CTRL2_BIT_LENGTH_MASK 0x01u 61 | #define CTRL2_BIT_LENGTH_SHIFT 0u 62 | 63 | /* 64 | * Parity enable. 65 | */ 66 | #define CTRL2_PARITY_EN_OFFSET 0xCu 67 | #define CTRL2_PARITY_EN_MASK 0x02u 68 | #define CTRL2_PARITY_EN_SHIFT 1u 69 | 70 | /* 71 | * Odd/even parity selection. 72 | */ 73 | #define CTRL2_ODD_EVEN_OFFSET 0xCu 74 | #define CTRL2_ODD_EVEN_MASK 0x04u 75 | #define CTRL2_ODD_EVEN_SHIFT 2u 76 | 77 | /* 78 | * Baud value (Higher 5-bits) 79 | */ 80 | #define CTRL2_BAUDVALUE_OFFSET 0xCu 81 | #define CTRL2_BAUDVALUE_MASK 0xF8u 82 | #define CTRL2_BAUDVALUE_SHIFT 3u 83 | 84 | /*------------------------------------------------------------------------------ 85 | * StatusReg register details 86 | */ 87 | #define StatusReg_REG_OFFSET 0x10u 88 | 89 | #define STATUS_REG_OFFSET 0x10u 90 | 91 | /* 92 | * Transmit ready. 93 | */ 94 | #define STATUS_TXRDY_OFFSET 0x10u 95 | #define STATUS_TXRDY_MASK 0x01u 96 | #define STATUS_TXRDY_SHIFT 0u 97 | 98 | /* 99 | * Receive full. 100 | */ 101 | #define STATUS_RXFULL_OFFSET 0x10u 102 | #define STATUS_RXFULL_MASK 0x02u 103 | #define STATUS_RXFULL_SHIFT 1u 104 | 105 | /* 106 | * Parity error. 107 | */ 108 | #define STATUS_PARITYERR_OFFSET 0x10u 109 | #define STATUS_PARITYERR_MASK 0x04u 110 | #define STATUS_PARITYERR_SHIFT 2u 111 | 112 | /* 113 | * Overflow. 114 | */ 115 | #define STATUS_OVERFLOW_OFFSET 0x10u 116 | #define STATUS_OVERFLOW_MASK 0x08u 117 | #define STATUS_OVERFLOW_SHIFT 3u 118 | 119 | /* 120 | * Frame Error. 121 | */ 122 | #define STATUS_FRAMERR_OFFSET 0x10u 123 | #define STATUS_FRAMERR_MASK 0x10u 124 | #define STATUS_FRAMERR_SHIFT 4u 125 | 126 | #ifdef __cplusplus 127 | } 128 | #endif 129 | 130 | #endif /* __CORE_UART_APB_REGISTERS */ 131 | -------------------------------------------------------------------------------- /FreeRTOS_on_Mi-V_Processor/miv-rv32im-freertos-port-test/hal/cpu_types.h: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * (c) Copyright 2007-2018 Microsemi SoC Products Group. All rights reserved. 3 | * 4 | * SVN $Revision: 9661 $ 5 | * SVN $Date: 2018-01-15 16:13:33 +0530 (Mon, 15 Jan 2018) $ 6 | */ 7 | #ifndef __CPU_TYPES_H 8 | #define __CPU_TYPES_H 1 9 | 10 | #include 11 | 12 | /*------------------------------------------------------------------------------ 13 | */ 14 | typedef unsigned int size_t; 15 | 16 | /*------------------------------------------------------------------------------ 17 | * addr_t: address type. 18 | * Used to specify the address of peripherals present in the processor's memory 19 | * map. 20 | */ 21 | typedef unsigned int addr_t; 22 | 23 | /*------------------------------------------------------------------------------ 24 | * psr_t: processor state register. 25 | * Used by HAL_disable_interrupts() and HAL_restore_interrupts() to store the 26 | * processor's state between disabling and restoring interrupts. 27 | */ 28 | typedef unsigned int psr_t; 29 | 30 | #endif /* __CPU_TYPES_H */ 31 | 32 | -------------------------------------------------------------------------------- /FreeRTOS_on_Mi-V_Processor/miv-rv32im-freertos-port-test/hal/hal_assert.h: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * (c) Copyright 2008-2018 Microsemi SoC Products Group. All rights reserved. 3 | * 4 | * SVN $Revision: 9661 $ 5 | * SVN $Date: 2018-01-15 16:13:33 +0530 (Mon, 15 Jan 2018) $ 6 | */ 7 | #ifndef HAL_ASSERT_HEADER 8 | #define HAL_ASSERT_HEADER 9 | 10 | #define NDEBUG 1 11 | 12 | #if defined(NDEBUG) 13 | /***************************************************************************//** 14 | * HAL_ASSERT() is defined out when the NDEBUG symbol is used. 15 | ******************************************************************************/ 16 | #define HAL_ASSERT(CHECK) 17 | 18 | #else 19 | /***************************************************************************//** 20 | * Default behaviour for HAL_ASSERT() macro: 21 | *------------------------------------------------------------------------------ 22 | The behaviour is toolchain specific and project setting specific. 23 | ******************************************************************************/ 24 | #define HAL_ASSERT(CHECK) ASSERT(CHECK); 25 | 26 | #endif /* NDEBUG */ 27 | 28 | #endif /* HAL_ASSERT_HEADER */ 29 | 30 | -------------------------------------------------------------------------------- /FreeRTOS_on_Mi-V_Processor/miv-rv32im-freertos-port-test/hal/hal_irq.c: -------------------------------------------------------------------------------- 1 | /***************************************************************************//** 2 | * (c) Copyright 2007-2018 Microsemi SoC Products Group. All rights reserved. 3 | * 4 | * Legacy interrupt control functions for the Microsemi driver library hardware 5 | * abstraction layer. 6 | * 7 | * SVN $Revision: 9661 $ 8 | * SVN $Date: 2018-01-15 16:13:33 +0530 (Mon, 15 Jan 2018) $ 9 | */ 10 | #include "hal.h" 11 | #include "riscv_hal.h" 12 | 13 | /*------------------------------------------------------------------------------ 14 | * 15 | */ 16 | void HAL_enable_interrupts(void) { 17 | __enable_irq(); 18 | } 19 | 20 | /*------------------------------------------------------------------------------ 21 | * 22 | */ 23 | psr_t HAL_disable_interrupts(void) { 24 | psr_t psr; 25 | psr = read_csr(mstatus); 26 | __disable_irq(); 27 | return(psr); 28 | } 29 | 30 | /*------------------------------------------------------------------------------ 31 | * 32 | */ 33 | void HAL_restore_interrupts(psr_t saved_psr) { 34 | write_csr(mstatus, saved_psr); 35 | } 36 | 37 | -------------------------------------------------------------------------------- /FreeRTOS_on_Mi-V_Processor/miv-rv32im-freertos-port-test/hal/hw_macros.h: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * (c) Copyright 2007-2018 Microsemi SoC Products Group. All rights reserved. 3 | * 4 | * Hardware registers access macros. 5 | * 6 | * THE MACROS DEFINED IN THIS FILE ARE DEPRECATED. DO NOT USED FOR NEW 7 | * DEVELOPMENT. 8 | * 9 | * These macros are used to access peripheral's registers. They allow access to 10 | * 8, 16 and 32 bit wide registers. All accesses to peripheral registers should 11 | * be done through these macros in order to ease porting across different 12 | * processors/bus architectures. 13 | * 14 | * Some of these macros also allow to access a specific register field. 15 | * 16 | * SVN $Revision: 9661 $ 17 | * SVN $Date: 2018-01-15 16:13:33 +0530 (Mon, 15 Jan 2018) $ 18 | */ 19 | #ifndef __HW_REGISTER_MACROS_H 20 | #define __HW_REGISTER_MACROS_H 1 21 | 22 | /*------------------------------------------------------------------------------ 23 | * 32 bits registers access: 24 | */ 25 | #define HW_get_uint32_reg(BASE_ADDR, REG_OFFSET) (*((uint32_t volatile *)(BASE_ADDR + REG_OFFSET##_REG_OFFSET))) 26 | 27 | #define HW_set_uint32_reg(BASE_ADDR, REG_OFFSET, VALUE) (*((uint32_t volatile *)(BASE_ADDR + REG_OFFSET##_REG_OFFSET)) = (VALUE)) 28 | 29 | #define HW_set_uint32_reg_field(BASE_ADDR, FIELD, VALUE) \ 30 | (*((uint32_t volatile *)(BASE_ADDR + FIELD##_OFFSET)) = \ 31 | ( \ 32 | (uint32_t) \ 33 | ( \ 34 | (*((uint32_t volatile *)(BASE_ADDR + FIELD##_OFFSET))) & ~FIELD##_MASK) | \ 35 | (uint32_t)(((VALUE) << FIELD##_SHIFT) & FIELD##_MASK) \ 36 | ) \ 37 | ) 38 | 39 | #define HW_get_uint32_reg_field( BASE_ADDR, FIELD ) \ 40 | (( (*((uint32_t volatile *)(BASE_ADDR + FIELD##_OFFSET))) & FIELD##_MASK) >> FIELD##_SHIFT) 41 | 42 | /*------------------------------------------------------------------------------ 43 | * 32 bits memory access: 44 | */ 45 | #define HW_get_uint32(BASE_ADDR) (*((uint32_t volatile *)(BASE_ADDR))) 46 | 47 | #define HW_set_uint32(BASE_ADDR, VALUE) (*((uint32_t volatile *)(BASE_ADDR)) = (VALUE)) 48 | 49 | /*------------------------------------------------------------------------------ 50 | * 16 bits registers access: 51 | */ 52 | #define HW_get_uint16_reg(BASE_ADDR, REG_OFFSET) (*((uint16_t volatile *)(BASE_ADDR + REG_OFFSET##_REG_OFFSET))) 53 | 54 | #define HW_set_uint16_reg(BASE_ADDR, REG_OFFSET, VALUE) (*((uint16_t volatile *)(BASE_ADDR + REG_OFFSET##_REG_OFFSET)) = (VALUE)) 55 | 56 | #define HW_set_uint16_reg_field(BASE_ADDR, FIELD, VALUE) \ 57 | (*((uint16_t volatile *)(BASE_ADDR + FIELD##_OFFSET)) = \ 58 | ( \ 59 | (uint16_t) \ 60 | ( \ 61 | (*((uint16_t volatile *)(BASE_ADDR + FIELD##_OFFSET))) & ~FIELD##_MASK) | \ 62 | (uint16_t)(((VALUE) << FIELD##_SHIFT) & FIELD##_MASK) \ 63 | ) \ 64 | ) 65 | 66 | #define HW_get_uint16_reg_field( BASE_ADDR, FIELD ) \ 67 | (( (*((uint16_t volatile *)(BASE_ADDR + FIELD##_OFFSET))) & FIELD##_MASK) >> FIELD##_SHIFT) 68 | 69 | /*------------------------------------------------------------------------------ 70 | * 8 bits registers access: 71 | */ 72 | #define HW_get_uint8_reg(BASE_ADDR, REG_OFFSET) (*((uint8_t volatile *)(BASE_ADDR + REG_OFFSET##_REG_OFFSET))) 73 | 74 | #define HW_set_uint8_reg(BASE_ADDR, REG_OFFSET, VALUE) (*((uint8_t volatile *)(BASE_ADDR + REG_OFFSET##_REG_OFFSET)) = (VALUE)) 75 | 76 | #define HW_set_uint8_reg_field(BASE_ADDR, FIELD, VALUE) \ 77 | (*((uint8_t volatile *)(BASE_ADDR + FIELD##_OFFSET)) = \ 78 | ( \ 79 | (uint8_t) \ 80 | ( \ 81 | (*((uint8_t volatile *)(BASE_ADDR + FIELD##_OFFSET))) & ~FIELD##_MASK) | \ 82 | (uint8_t)(((VALUE) << FIELD##_SHIFT) & FIELD##_MASK) \ 83 | ) \ 84 | ) 85 | 86 | #define HW_get_uint8_reg_field( BASE_ADDR, FIELD ) \ 87 | (( (*((uint8_t volatile *)(BASE_ADDR + FIELD##_OFFSET))) & FIELD##_MASK) >> FIELD##_SHIFT) 88 | 89 | /*------------------------------------------------------------------------------ 90 | * 8 bits memory access: 91 | */ 92 | #define HW_get_uint8(BASE_ADDR) (*((uint8_t volatile *)(BASE_ADDR))) 93 | 94 | #define HW_set_uint8(BASE_ADDR, VALUE) (*((uint8_t volatile *)(BASE_ADDR)) = (VALUE)) 95 | 96 | #endif /* __HW_REGISTER_MACROS_H */ 97 | 98 | -------------------------------------------------------------------------------- /FreeRTOS_on_Mi-V_Processor/miv-rv32im-freertos-port-test/miv-rv32im-freertos-port-test Start-Renode-emulator-and-attach.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /FreeRTOS_on_Mi-V_Processor/miv-rv32im-freertos-port-test/riscv_hal/entry.S: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * (c) Copyright 2016-2018 Microsemi SoC Products Group. All rights reserved. 3 | * 4 | * @file entry.S 5 | * @author Microsemi SoC Products Group 6 | * @brief Mi-V soft processor vectors, trap handling and startup code. 7 | * 8 | * SVN $Revision: 9947 $ 9 | * SVN $Date: 2018-04-30 20:28:49 +0530 (Mon, 30 Apr 2018) $ 10 | */ 11 | #ifndef ENTRY_S 12 | #define ENTRY_S 13 | 14 | #include "encoding.h" 15 | 16 | #if __riscv_xlen == 64 17 | # define LREG ld 18 | # define SREG sd 19 | # define REGBYTES 8 20 | #else 21 | # define LREG lw 22 | # define SREG sw 23 | # define REGBYTES 4 24 | #endif 25 | 26 | .section .text.entry 27 | .globl _start 28 | 29 | _start: 30 | j handle_reset 31 | 32 | nmi_vector: 33 | j nmi_vector 34 | 35 | trap_vector: 36 | j trap_entry 37 | 38 | handle_reset: 39 | la t0, trap_entry 40 | csrw mtvec, t0 41 | csrwi mstatus, 0 42 | csrwi mie, 0 43 | 44 | /*Floating point support configuration*/ 45 | 46 | #ifdef __riscv_flen 47 | csrr t0, mstatus 48 | lui t1, 0xffffa 49 | addi t1, t1, -1 50 | and t0, t0, t1 51 | lui t1, 0x4 52 | or t1, t0, t1 53 | csrw mstatus, t1 54 | 55 | lui t0, 0x0 56 | fscsr t0 57 | #endif 58 | .option push 59 | 60 | # Ensure the instruction is not optimized, since gp is not yet set 61 | 62 | .option norelax 63 | # initialize global pointer 64 | la gp, __global_pointer$ 65 | 66 | .option pop 67 | 68 | # initialize stack pointer 69 | la sp, __stack_top 70 | 71 | # perform the rest of initialization in C 72 | j _init 73 | 74 | 75 | trap_entry: 76 | addi sp, sp, -32*REGBYTES 77 | 78 | SREG x1, 0 * REGBYTES(sp) 79 | SREG x2, 1 * REGBYTES(sp) 80 | SREG x3, 2 * REGBYTES(sp) 81 | SREG x4, 3 * REGBYTES(sp) 82 | SREG x5, 4 * REGBYTES(sp) 83 | SREG x6, 5 * REGBYTES(sp) 84 | SREG x7, 6 * REGBYTES(sp) 85 | SREG x8, 7 * REGBYTES(sp) 86 | SREG x9, 8 * REGBYTES(sp) 87 | SREG x10, 9 * REGBYTES(sp) 88 | SREG x11, 10 * REGBYTES(sp) 89 | SREG x12, 11 * REGBYTES(sp) 90 | SREG x13, 12 * REGBYTES(sp) 91 | SREG x14, 13 * REGBYTES(sp) 92 | SREG x15, 14 * REGBYTES(sp) 93 | SREG x16, 15 * REGBYTES(sp) 94 | SREG x17, 16 * REGBYTES(sp) 95 | SREG x18, 17 * REGBYTES(sp) 96 | SREG x19, 18 * REGBYTES(sp) 97 | SREG x20, 19 * REGBYTES(sp) 98 | SREG x21, 20 * REGBYTES(sp) 99 | SREG x22, 21 * REGBYTES(sp) 100 | SREG x23, 22 * REGBYTES(sp) 101 | SREG x24, 23 * REGBYTES(sp) 102 | SREG x25, 24 * REGBYTES(sp) 103 | SREG x26, 25 * REGBYTES(sp) 104 | SREG x27, 26 * REGBYTES(sp) 105 | SREG x28, 27 * REGBYTES(sp) 106 | SREG x29, 28 * REGBYTES(sp) 107 | SREG x30, 29 * REGBYTES(sp) 108 | SREG x31, 30 * REGBYTES(sp) 109 | 110 | 111 | csrr t0, mepc 112 | SREG t0, 31 * REGBYTES(sp) 113 | 114 | csrr a0, mcause 115 | csrr a1, mepc 116 | mv a2, sp 117 | jal handle_trap 118 | csrw mepc, a0 119 | 120 | # Remain in M-mode after mret 121 | li t0, MSTATUS_MPP 122 | csrs mstatus, t0 123 | 124 | LREG x1, 0 * REGBYTES(sp) 125 | LREG x2, 1 * REGBYTES(sp) 126 | LREG x3, 2 * REGBYTES(sp) 127 | LREG x4, 3 * REGBYTES(sp) 128 | LREG x5, 4 * REGBYTES(sp) 129 | LREG x6, 5 * REGBYTES(sp) 130 | LREG x7, 6 * REGBYTES(sp) 131 | LREG x8, 7 * REGBYTES(sp) 132 | LREG x9, 8 * REGBYTES(sp) 133 | LREG x10, 9 * REGBYTES(sp) 134 | LREG x11, 10 * REGBYTES(sp) 135 | LREG x12, 11 * REGBYTES(sp) 136 | LREG x13, 12 * REGBYTES(sp) 137 | LREG x14, 13 * REGBYTES(sp) 138 | LREG x15, 14 * REGBYTES(sp) 139 | LREG x16, 15 * REGBYTES(sp) 140 | LREG x17, 16 * REGBYTES(sp) 141 | LREG x18, 17 * REGBYTES(sp) 142 | LREG x19, 18 * REGBYTES(sp) 143 | LREG x20, 19 * REGBYTES(sp) 144 | LREG x21, 20 * REGBYTES(sp) 145 | LREG x22, 21 * REGBYTES(sp) 146 | LREG x23, 22 * REGBYTES(sp) 147 | LREG x24, 23 * REGBYTES(sp) 148 | LREG x25, 24 * REGBYTES(sp) 149 | LREG x26, 25 * REGBYTES(sp) 150 | LREG x27, 26 * REGBYTES(sp) 151 | LREG x28, 27 * REGBYTES(sp) 152 | LREG x29, 28 * REGBYTES(sp) 153 | LREG x30, 29 * REGBYTES(sp) 154 | LREG x31, 30 * REGBYTES(sp) 155 | 156 | addi sp, sp, 32*REGBYTES 157 | mret 158 | 159 | #endif 160 | 161 | -------------------------------------------------------------------------------- /FreeRTOS_on_Mi-V_Processor/miv-rv32im-freertos-port-test/riscv_hal/init.c: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * (c) Copyright 2016-2018 Microsemi SoC Products Group. All rights reserved. 3 | * 4 | * @file init.c 5 | * @author Microsemi SoC Products Group 6 | * @brief Mi-V soft processor memory section initializations and start-up code. 7 | * 8 | * SVN $Revision: 9661 $ 9 | * SVN $Date: 2018-01-15 16:13:33 +0530 (Mon, 15 Jan 2018) $ 10 | */ 11 | 12 | #include 13 | #include 14 | #include 15 | 16 | #include "encoding.h" 17 | 18 | #ifdef __cplusplus 19 | extern "C" { 20 | #endif 21 | 22 | extern uint32_t __sdata_load; 23 | extern uint32_t __sdata_start; 24 | extern uint32_t __sdata_end; 25 | 26 | extern uint32_t __data_load; 27 | extern uint32_t __data_start; 28 | extern uint32_t __data_end; 29 | 30 | extern uint32_t __sbss_start; 31 | extern uint32_t __sbss_end; 32 | extern uint32_t __bss_start; 33 | extern uint32_t __bss_end; 34 | 35 | 36 | static void copy_section(uint32_t * p_load, uint32_t * p_vma, uint32_t * p_vma_end) 37 | { 38 | while(p_vma <= p_vma_end) 39 | { 40 | *p_vma = *p_load; 41 | ++p_load; 42 | ++p_vma; 43 | } 44 | } 45 | 46 | static void zero_section(uint32_t * start, uint32_t * end) 47 | { 48 | uint32_t * p_zero = start; 49 | 50 | while(p_zero <= end) 51 | { 52 | *p_zero = 0; 53 | ++p_zero; 54 | } 55 | } 56 | 57 | void _init(void) 58 | { 59 | extern int main(int, char**); 60 | const char *argv0 = "hello"; 61 | char *argv[] = {(char *)argv0, NULL, NULL}; 62 | 63 | copy_section(&__sdata_load, &__sdata_start, &__sdata_end); 64 | copy_section(&__data_load, &__data_start, &__data_end); 65 | zero_section(&__sbss_start, &__sbss_end); 66 | zero_section(&__bss_start, &__bss_end); 67 | 68 | main(1, argv); 69 | } 70 | 71 | /* Function called after main() finishes */ 72 | void 73 | _fini() 74 | { 75 | } 76 | 77 | #ifdef __cplusplus 78 | } 79 | #endif 80 | 81 | -------------------------------------------------------------------------------- /FreeRTOS_on_Mi-V_Processor/miv-rv32im-freertos-port-test/riscv_hal/microsemi-riscv-igloo2.ld: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * (c) Copyright 2016-2018 Microsemi SoC Products Group. All rights reserved. 3 | * 4 | * file name : microsemi-riscv-igloo2.ld 5 | * Mi-V soft processor linker script for creating a SoftConsole downloadable 6 | * image executing in eNVM. 7 | * 8 | * This linker script assumes that the eNVM is connected at on the Mi-V soft 9 | * processor memory space. 10 | * 11 | * SVN $Revision: 9661 $ 12 | * SVN $Date: 2018-01-15 16:13:33 +0530 (Mon, 15 Jan 2018) $ 13 | */ 14 | 15 | OUTPUT_ARCH( "riscv" ) 16 | ENTRY(_start) 17 | 18 | 19 | MEMORY 20 | { 21 | envm (rx) : ORIGIN = 0x60000000, LENGTH = 240k 22 | ram (rwx) : ORIGIN = 0x80000000, LENGTH = 64k 23 | } 24 | 25 | RAM_START_ADDRESS = 0x80000000; /* Must be the same value MEMORY region ram ORIGIN above. */ 26 | RAM_SIZE = 64k; /* Must be the same value MEMORY region ram LENGTH above. */ 27 | STACK_SIZE = 2k; /* needs to be calculated for your application */ 28 | HEAP_SIZE = 2k; /* needs to be calculated for your application */ 29 | 30 | SECTIONS 31 | { 32 | .text : ALIGN(0x10) 33 | { 34 | KEEP (*(SORT_NONE(.text.entry))) 35 | . = ALIGN(0x10); 36 | *(.text .text.* .gnu.linkonce.t.*) 37 | *(.plt) 38 | . = ALIGN(0x10); 39 | 40 | KEEP (*crtbegin.o(.ctors)) 41 | KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors)) 42 | KEEP (*(SORT(.ctors.*))) 43 | KEEP (*crtend.o(.ctors)) 44 | KEEP (*crtbegin.o(.dtors)) 45 | KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors)) 46 | KEEP (*(SORT(.dtors.*))) 47 | KEEP (*crtend.o(.dtors)) 48 | 49 | *(.rodata .rodata.* .gnu.linkonce.r.*) 50 | *(.gcc_except_table) 51 | *(.eh_frame_hdr) 52 | *(.eh_frame) 53 | 54 | KEEP (*(.init)) 55 | KEEP (*(.fini)) 56 | 57 | PROVIDE_HIDDEN (__preinit_array_start = .); 58 | KEEP (*(.preinit_array)) 59 | PROVIDE_HIDDEN (__preinit_array_end = .); 60 | PROVIDE_HIDDEN (__init_array_start = .); 61 | KEEP (*(SORT(.init_array.*))) 62 | KEEP (*(.init_array)) 63 | PROVIDE_HIDDEN (__init_array_end = .); 64 | PROVIDE_HIDDEN (__fini_array_start = .); 65 | KEEP (*(.fini_array)) 66 | KEEP (*(SORT(.fini_array.*))) 67 | PROVIDE_HIDDEN (__fini_array_end = .); 68 | . = ALIGN(0x10); 69 | 70 | } >envm 71 | 72 | /* short/global data section */ 73 | .sdata : ALIGN(0x10) 74 | { 75 | __sdata_load = LOADADDR(.sdata); 76 | __sdata_start = .; 77 | PROVIDE( __global_pointer$ = . + 0x800); 78 | *(.srodata.cst16) *(.srodata.cst8) *(.srodata.cst4) *(.srodata.cst2) 79 | *(.srodata*) 80 | *(.sdata .sdata.* .gnu.linkonce.s.*) 81 | . = ALIGN(0x10); 82 | __sdata_end = .; 83 | } >ram AT>envm 84 | 85 | /* data section */ 86 | .data : ALIGN(0x10) 87 | { 88 | __data_load = LOADADDR(.data); 89 | __data_start = .; 90 | *(.got.plt) *(.got) 91 | *(.shdata) 92 | *(.data .data.* .gnu.linkonce.d.*) 93 | . = ALIGN(0x10); 94 | __data_end = .; 95 | } >ram AT>envm 96 | 97 | /* sbss section */ 98 | .sbss : ALIGN(0x10) 99 | { 100 | __sbss_start = .; 101 | *(.sbss .sbss.* .gnu.linkonce.sb.*) 102 | *(.scommon) 103 | . = ALIGN(0x10); 104 | __sbss_end = .; 105 | } > ram 106 | 107 | /* sbss section */ 108 | .bss : ALIGN(0x10) 109 | { 110 | __bss_start = .; 111 | *(.shbss) 112 | *(.bss .bss.* .gnu.linkonce.b.*) 113 | *(COMMON) 114 | . = ALIGN(0x10); 115 | __bss_end = .; 116 | } > ram 117 | 118 | /* End of uninitialized data segment */ 119 | _end = .; 120 | 121 | .heap : ALIGN(0x10) 122 | { 123 | __heap_start = .; 124 | . += HEAP_SIZE; 125 | __heap_end = .; 126 | . = ALIGN(0x10); 127 | _heap_end = __heap_end; 128 | } > ram 129 | 130 | .stack : ALIGN(0x10) 131 | { 132 | __stack_bottom = .; 133 | . += STACK_SIZE; 134 | __stack_top = .; 135 | } > ram 136 | } 137 | 138 | -------------------------------------------------------------------------------- /FreeRTOS_on_Mi-V_Processor/miv-rv32im-freertos-port-test/riscv_hal/microsemi-riscv-ram.ld: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * (c) Copyright 2016-2018 Microsemi SoC Products Group. All rights reserved. 3 | * 4 | * file name : microsemi-riscv-ram.ld 5 | * Mi-V soft processor linker script for creating a SoftConsole downloadable 6 | * debug image executing in SRAM. 7 | * 8 | * This linker script assumes that the SRAM is connected at on the Mi-V soft 9 | * processor memory space. The start address and size of the memory space must 10 | * be correct as per the Libero design. 11 | * 12 | * SVN $Revision: 9661 $ 13 | * SVN $Date: 2018-01-15 16:13:33 +0530 (Mon, 15 Jan 2018) $ 14 | */ 15 | 16 | OUTPUT_ARCH( "riscv" ) 17 | ENTRY(_start) 18 | 19 | 20 | MEMORY 21 | { 22 | ram (rwx) : ORIGIN = 0x80000000, LENGTH = 512k 23 | } 24 | 25 | RAM_START_ADDRESS = 0x80000000; /* Must be the same value MEMORY region ram ORIGIN above. */ 26 | RAM_SIZE = 512k; /* Must be the same value MEMORY region ram LENGTH above. */ 27 | STACK_SIZE = 64k; /* needs to be calculated for your application */ 28 | HEAP_SIZE = 64k; /* needs to be calculated for your application */ 29 | 30 | SECTIONS 31 | { 32 | .text : ALIGN(0x10) 33 | { 34 | KEEP (*(SORT_NONE(.text.entry))) 35 | . = ALIGN(0x10); 36 | *(.text .text.* .gnu.linkonce.t.*) 37 | *(.plt) 38 | . = ALIGN(0x10); 39 | 40 | KEEP (*crtbegin.o(.ctors)) 41 | KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors)) 42 | KEEP (*(SORT(.ctors.*))) 43 | KEEP (*crtend.o(.ctors)) 44 | KEEP (*crtbegin.o(.dtors)) 45 | KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors)) 46 | KEEP (*(SORT(.dtors.*))) 47 | KEEP (*crtend.o(.dtors)) 48 | 49 | *(.rodata .rodata.* .gnu.linkonce.r.*) 50 | *(.gcc_except_table) 51 | *(.eh_frame_hdr) 52 | *(.eh_frame) 53 | 54 | KEEP (*(.init)) 55 | KEEP (*(.fini)) 56 | 57 | PROVIDE_HIDDEN (__preinit_array_start = .); 58 | KEEP (*(.preinit_array)) 59 | PROVIDE_HIDDEN (__preinit_array_end = .); 60 | PROVIDE_HIDDEN (__init_array_start = .); 61 | KEEP (*(SORT(.init_array.*))) 62 | KEEP (*(.init_array)) 63 | PROVIDE_HIDDEN (__init_array_end = .); 64 | PROVIDE_HIDDEN (__fini_array_start = .); 65 | KEEP (*(.fini_array)) 66 | KEEP (*(SORT(.fini_array.*))) 67 | PROVIDE_HIDDEN (__fini_array_end = .); 68 | . = ALIGN(0x10); 69 | 70 | } > ram 71 | 72 | /* short/global data section */ 73 | .sdata : ALIGN(0x10) 74 | { 75 | __sdata_load = LOADADDR(.sdata); 76 | __sdata_start = .; 77 | PROVIDE( __global_pointer$ = . + 0x800); 78 | *(.srodata.cst16) *(.srodata.cst8) *(.srodata.cst4) *(.srodata.cst2) 79 | *(.srodata*) 80 | *(.sdata .sdata.* .gnu.linkonce.s.*) 81 | . = ALIGN(0x10); 82 | __sdata_end = .; 83 | } > ram 84 | 85 | /* data section */ 86 | .data : ALIGN(0x10) 87 | { 88 | __data_load = LOADADDR(.data); 89 | __data_start = .; 90 | *(.got.plt) *(.got) 91 | *(.shdata) 92 | *(.data .data.* .gnu.linkonce.d.*) 93 | . = ALIGN(0x10); 94 | __data_end = .; 95 | } > ram 96 | 97 | /* sbss section */ 98 | .sbss : ALIGN(0x10) 99 | { 100 | __sbss_start = .; 101 | *(.sbss .sbss.* .gnu.linkonce.sb.*) 102 | *(.scommon) 103 | . = ALIGN(0x10); 104 | __sbss_end = .; 105 | } > ram 106 | 107 | /* sbss section */ 108 | .bss : ALIGN(0x10) 109 | { 110 | __bss_start = .; 111 | *(.shbss) 112 | *(.bss .bss.* .gnu.linkonce.b.*) 113 | *(COMMON) 114 | . = ALIGN(0x10); 115 | __bss_end = .; 116 | } > ram 117 | 118 | /* End of uninitialized data segment */ 119 | _end = .; 120 | 121 | .heap : ALIGN(0x10) 122 | { 123 | __heap_start = .; 124 | . += HEAP_SIZE; 125 | __heap_end = .; 126 | . = ALIGN(0x10); 127 | _heap_end = __heap_end; 128 | } > ram 129 | 130 | .stack : ALIGN(0x10) 131 | { 132 | __stack_bottom = .; 133 | . += STACK_SIZE; 134 | __stack_top = .; 135 | } > ram 136 | } 137 | 138 | -------------------------------------------------------------------------------- /FreeRTOS_on_Mi-V_Processor/miv-rv32im-freertos-port-test/riscv_hal/riscv_hal.h: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * (c) Copyright 2016-2018 Microsemi SoC Products Group. All rights reserved. 3 | * 4 | * @file riscv_hal.h 5 | * @author Microsemi SoC Products Group 6 | * @brief Hardware Abstraction Layer functions for Mi-V soft processors 7 | * 8 | * SVN $Revision: 9835 $ 9 | * SVN $Date: 2018-03-19 19:11:35 +0530 (Mon, 19 Mar 2018) $ 10 | */ 11 | 12 | #ifndef RISCV_HAL_H 13 | #define RISCV_HAL_H 14 | 15 | #include "riscv_plic.h" 16 | 17 | #ifdef __cplusplus 18 | extern "C" { 19 | #endif 20 | 21 | /* 22 | *Return value from External IRQ handler. This will be used to disable the External 23 | *interrupt. 24 | */ 25 | #define EXT_IRQ_KEEP_ENABLED 0U 26 | #define EXT_IRQ_DISABLE 1U 27 | 28 | /*------------------------------------------------------------------------------ 29 | * Interrupt enable/disable. 30 | */ 31 | void __disable_irq(void); 32 | void __enable_irq(void); 33 | 34 | /*------------------------------------------------------------------------------ 35 | * System tick handler. This is generated from the RISC-V machine timer. 36 | */ 37 | void SysTick_Handler(void); 38 | 39 | /*------------------------------------------------------------------------------ 40 | * System tick configuration. 41 | * Configures the machine timer to generate a system tick interrupt at regular 42 | * intervals. 43 | * Takes the number of system clock ticks between interrupts. 44 | * 45 | * Returns 0 if successful. 46 | * Returns 1 if the interrupt interval cannot be achieved. 47 | */ 48 | uint32_t SysTick_Config(uint32_t ticks); 49 | 50 | #ifdef __cplusplus 51 | } 52 | #endif 53 | 54 | #endif /* RISCV_HAL_H */ 55 | 56 | -------------------------------------------------------------------------------- /FreeRTOS_on_Spike/Demo/Common/include/AltBlckQ.h: -------------------------------------------------------------------------------- 1 | /* 2 | FreeRTOS V8.2.3 - Copyright (C) 2015 Real Time Engineers Ltd. 3 | All rights reserved 4 | 5 | VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. 6 | 7 | This file is part of the FreeRTOS distribution. 8 | 9 | FreeRTOS is free software; you can redistribute it and/or modify it under 10 | the terms of the GNU General Public License (version 2) as published by the 11 | Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. 12 | 13 | *************************************************************************** 14 | >>! NOTE: The modification to the GPL is included to allow you to !<< 15 | >>! distribute a combined work that includes FreeRTOS without being !<< 16 | >>! obliged to provide the source code for proprietary components !<< 17 | >>! outside of the FreeRTOS kernel. !<< 18 | *************************************************************************** 19 | 20 | FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY 21 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 22 | FOR A PARTICULAR PURPOSE. Full license text is available on the following 23 | link: http://www.freertos.org/a00114.html 24 | 25 | *************************************************************************** 26 | * * 27 | * FreeRTOS provides completely free yet professionally developed, * 28 | * robust, strictly quality controlled, supported, and cross * 29 | * platform software that is more than just the market leader, it * 30 | * is the industry's de facto standard. * 31 | * * 32 | * Help yourself get started quickly while simultaneously helping * 33 | * to support the FreeRTOS project by purchasing a FreeRTOS * 34 | * tutorial book, reference manual, or both: * 35 | * http://www.FreeRTOS.org/Documentation * 36 | * * 37 | *************************************************************************** 38 | 39 | http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading 40 | the FAQ page "My application does not run, what could be wrong?". Have you 41 | defined configASSERT()? 42 | 43 | http://www.FreeRTOS.org/support - In return for receiving this top quality 44 | embedded software for free we request you assist our global community by 45 | participating in the support forum. 46 | 47 | http://www.FreeRTOS.org/training - Investing in training allows your team to 48 | be as productive as possible as early as possible. Now you can receive 49 | FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers 50 | Ltd, and the world's leading authority on the world's leading RTOS. 51 | 52 | http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, 53 | including FreeRTOS+Trace - an indispensable productivity tool, a DOS 54 | compatible FAT file system, and our tiny thread aware UDP/IP stack. 55 | 56 | http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. 57 | Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. 58 | 59 | http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High 60 | Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS 61 | licenses offer ticketed support, indemnification and commercial middleware. 62 | 63 | http://www.SafeRTOS.com - High Integrity Systems also provide a safety 64 | engineered and independently SIL3 certified version for use in safety and 65 | mission critical applications that require provable dependability. 66 | 67 | 1 tab == 4 spaces! 68 | */ 69 | 70 | #ifndef ALT_BLOCK_Q_H 71 | #define ALT_BLOCK_Q_H 72 | 73 | void vStartAltBlockingQueueTasks( UBaseType_t uxPriority ); 74 | BaseType_t xAreAltBlockingQueuesStillRunning( void ); 75 | 76 | #endif 77 | 78 | 79 | -------------------------------------------------------------------------------- /FreeRTOS_on_Spike/Demo/Common/include/AltBlock.h: -------------------------------------------------------------------------------- 1 | /* 2 | FreeRTOS V8.2.3 - Copyright (C) 2015 Real Time Engineers Ltd. 3 | All rights reserved 4 | 5 | VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. 6 | 7 | This file is part of the FreeRTOS distribution. 8 | 9 | FreeRTOS is free software; you can redistribute it and/or modify it under 10 | the terms of the GNU General Public License (version 2) as published by the 11 | Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. 12 | 13 | *************************************************************************** 14 | >>! NOTE: The modification to the GPL is included to allow you to !<< 15 | >>! distribute a combined work that includes FreeRTOS without being !<< 16 | >>! obliged to provide the source code for proprietary components !<< 17 | >>! outside of the FreeRTOS kernel. !<< 18 | *************************************************************************** 19 | 20 | FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY 21 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 22 | FOR A PARTICULAR PURPOSE. Full license text is available on the following 23 | link: http://www.freertos.org/a00114.html 24 | 25 | *************************************************************************** 26 | * * 27 | * FreeRTOS provides completely free yet professionally developed, * 28 | * robust, strictly quality controlled, supported, and cross * 29 | * platform software that is more than just the market leader, it * 30 | * is the industry's de facto standard. * 31 | * * 32 | * Help yourself get started quickly while simultaneously helping * 33 | * to support the FreeRTOS project by purchasing a FreeRTOS * 34 | * tutorial book, reference manual, or both: * 35 | * http://www.FreeRTOS.org/Documentation * 36 | * * 37 | *************************************************************************** 38 | 39 | http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading 40 | the FAQ page "My application does not run, what could be wrong?". Have you 41 | defined configASSERT()? 42 | 43 | http://www.FreeRTOS.org/support - In return for receiving this top quality 44 | embedded software for free we request you assist our global community by 45 | participating in the support forum. 46 | 47 | http://www.FreeRTOS.org/training - Investing in training allows your team to 48 | be as productive as possible as early as possible. Now you can receive 49 | FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers 50 | Ltd, and the world's leading authority on the world's leading RTOS. 51 | 52 | http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, 53 | including FreeRTOS+Trace - an indispensable productivity tool, a DOS 54 | compatible FAT file system, and our tiny thread aware UDP/IP stack. 55 | 56 | http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. 57 | Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. 58 | 59 | http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High 60 | Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS 61 | licenses offer ticketed support, indemnification and commercial middleware. 62 | 63 | http://www.SafeRTOS.com - High Integrity Systems also provide a safety 64 | engineered and independently SIL3 certified version for use in safety and 65 | mission critical applications that require provable dependability. 66 | 67 | 1 tab == 4 spaces! 68 | */ 69 | 70 | #ifndef FAST_BLOCK_TIME_TEST_H 71 | #define FAST_BLOCK_TIME_TEST_H 72 | 73 | void vCreateAltBlockTimeTasks( void ); 74 | BaseType_t xAreAltBlockTimeTestTasksStillRunning( void ); 75 | 76 | #endif 77 | 78 | 79 | -------------------------------------------------------------------------------- /FreeRTOS_on_Spike/Demo/Common/include/AltPollQ.h: -------------------------------------------------------------------------------- 1 | /* 2 | FreeRTOS V8.2.3 - Copyright (C) 2015 Real Time Engineers Ltd. 3 | All rights reserved 4 | 5 | VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. 6 | 7 | This file is part of the FreeRTOS distribution. 8 | 9 | FreeRTOS is free software; you can redistribute it and/or modify it under 10 | the terms of the GNU General Public License (version 2) as published by the 11 | Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. 12 | 13 | *************************************************************************** 14 | >>! NOTE: The modification to the GPL is included to allow you to !<< 15 | >>! distribute a combined work that includes FreeRTOS without being !<< 16 | >>! obliged to provide the source code for proprietary components !<< 17 | >>! outside of the FreeRTOS kernel. !<< 18 | *************************************************************************** 19 | 20 | FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY 21 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 22 | FOR A PARTICULAR PURPOSE. Full license text is available on the following 23 | link: http://www.freertos.org/a00114.html 24 | 25 | *************************************************************************** 26 | * * 27 | * FreeRTOS provides completely free yet professionally developed, * 28 | * robust, strictly quality controlled, supported, and cross * 29 | * platform software that is more than just the market leader, it * 30 | * is the industry's de facto standard. * 31 | * * 32 | * Help yourself get started quickly while simultaneously helping * 33 | * to support the FreeRTOS project by purchasing a FreeRTOS * 34 | * tutorial book, reference manual, or both: * 35 | * http://www.FreeRTOS.org/Documentation * 36 | * * 37 | *************************************************************************** 38 | 39 | http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading 40 | the FAQ page "My application does not run, what could be wrong?". Have you 41 | defined configASSERT()? 42 | 43 | http://www.FreeRTOS.org/support - In return for receiving this top quality 44 | embedded software for free we request you assist our global community by 45 | participating in the support forum. 46 | 47 | http://www.FreeRTOS.org/training - Investing in training allows your team to 48 | be as productive as possible as early as possible. Now you can receive 49 | FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers 50 | Ltd, and the world's leading authority on the world's leading RTOS. 51 | 52 | http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, 53 | including FreeRTOS+Trace - an indispensable productivity tool, a DOS 54 | compatible FAT file system, and our tiny thread aware UDP/IP stack. 55 | 56 | http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. 57 | Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. 58 | 59 | http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High 60 | Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS 61 | licenses offer ticketed support, indemnification and commercial middleware. 62 | 63 | http://www.SafeRTOS.com - High Integrity Systems also provide a safety 64 | engineered and independently SIL3 certified version for use in safety and 65 | mission critical applications that require provable dependability. 66 | 67 | 1 tab == 4 spaces! 68 | */ 69 | 70 | #ifndef ALT_POLLED_Q_H 71 | #define ALT_POLLED_Q_H 72 | 73 | void vStartAltPolledQueueTasks( UBaseType_t uxPriority ); 74 | BaseType_t xAreAltPollingQueuesStillRunning( void ); 75 | 76 | #endif 77 | 78 | 79 | -------------------------------------------------------------------------------- /FreeRTOS_on_Spike/Demo/Common/include/AltQTest.h: -------------------------------------------------------------------------------- 1 | /* 2 | FreeRTOS V8.2.3 - Copyright (C) 2015 Real Time Engineers Ltd. 3 | All rights reserved 4 | 5 | VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. 6 | 7 | This file is part of the FreeRTOS distribution. 8 | 9 | FreeRTOS is free software; you can redistribute it and/or modify it under 10 | the terms of the GNU General Public License (version 2) as published by the 11 | Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. 12 | 13 | *************************************************************************** 14 | >>! NOTE: The modification to the GPL is included to allow you to !<< 15 | >>! distribute a combined work that includes FreeRTOS without being !<< 16 | >>! obliged to provide the source code for proprietary components !<< 17 | >>! outside of the FreeRTOS kernel. !<< 18 | *************************************************************************** 19 | 20 | FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY 21 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 22 | FOR A PARTICULAR PURPOSE. Full license text is available on the following 23 | link: http://www.freertos.org/a00114.html 24 | 25 | *************************************************************************** 26 | * * 27 | * FreeRTOS provides completely free yet professionally developed, * 28 | * robust, strictly quality controlled, supported, and cross * 29 | * platform software that is more than just the market leader, it * 30 | * is the industry's de facto standard. * 31 | * * 32 | * Help yourself get started quickly while simultaneously helping * 33 | * to support the FreeRTOS project by purchasing a FreeRTOS * 34 | * tutorial book, reference manual, or both: * 35 | * http://www.FreeRTOS.org/Documentation * 36 | * * 37 | *************************************************************************** 38 | 39 | http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading 40 | the FAQ page "My application does not run, what could be wrong?". Have you 41 | defined configASSERT()? 42 | 43 | http://www.FreeRTOS.org/support - In return for receiving this top quality 44 | embedded software for free we request you assist our global community by 45 | participating in the support forum. 46 | 47 | http://www.FreeRTOS.org/training - Investing in training allows your team to 48 | be as productive as possible as early as possible. Now you can receive 49 | FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers 50 | Ltd, and the world's leading authority on the world's leading RTOS. 51 | 52 | http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, 53 | including FreeRTOS+Trace - an indispensable productivity tool, a DOS 54 | compatible FAT file system, and our tiny thread aware UDP/IP stack. 55 | 56 | http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. 57 | Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. 58 | 59 | http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High 60 | Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS 61 | licenses offer ticketed support, indemnification and commercial middleware. 62 | 63 | http://www.SafeRTOS.com - High Integrity Systems also provide a safety 64 | engineered and independently SIL3 certified version for use in safety and 65 | mission critical applications that require provable dependability. 66 | 67 | 1 tab == 4 spaces! 68 | */ 69 | 70 | #ifndef FAST_GEN_Q_TEST_H 71 | #define FAST_GEN_Q_TEST_H 72 | 73 | void vStartAltGenericQueueTasks( UBaseType_t uxPriority ); 74 | BaseType_t xAreAltGenericQueueTasksStillRunning( void ); 75 | 76 | #endif /* GEN_Q_TEST_H */ 77 | 78 | 79 | 80 | -------------------------------------------------------------------------------- /FreeRTOS_on_Spike/Demo/Common/include/BlockQ.h: -------------------------------------------------------------------------------- 1 | /* 2 | FreeRTOS V8.2.3 - Copyright (C) 2015 Real Time Engineers Ltd. 3 | All rights reserved 4 | 5 | VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. 6 | 7 | This file is part of the FreeRTOS distribution. 8 | 9 | FreeRTOS is free software; you can redistribute it and/or modify it under 10 | the terms of the GNU General Public License (version 2) as published by the 11 | Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. 12 | 13 | *************************************************************************** 14 | >>! NOTE: The modification to the GPL is included to allow you to !<< 15 | >>! distribute a combined work that includes FreeRTOS without being !<< 16 | >>! obliged to provide the source code for proprietary components !<< 17 | >>! outside of the FreeRTOS kernel. !<< 18 | *************************************************************************** 19 | 20 | FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY 21 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 22 | FOR A PARTICULAR PURPOSE. Full license text is available on the following 23 | link: http://www.freertos.org/a00114.html 24 | 25 | *************************************************************************** 26 | * * 27 | * FreeRTOS provides completely free yet professionally developed, * 28 | * robust, strictly quality controlled, supported, and cross * 29 | * platform software that is more than just the market leader, it * 30 | * is the industry's de facto standard. * 31 | * * 32 | * Help yourself get started quickly while simultaneously helping * 33 | * to support the FreeRTOS project by purchasing a FreeRTOS * 34 | * tutorial book, reference manual, or both: * 35 | * http://www.FreeRTOS.org/Documentation * 36 | * * 37 | *************************************************************************** 38 | 39 | http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading 40 | the FAQ page "My application does not run, what could be wrong?". Have you 41 | defined configASSERT()? 42 | 43 | http://www.FreeRTOS.org/support - In return for receiving this top quality 44 | embedded software for free we request you assist our global community by 45 | participating in the support forum. 46 | 47 | http://www.FreeRTOS.org/training - Investing in training allows your team to 48 | be as productive as possible as early as possible. Now you can receive 49 | FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers 50 | Ltd, and the world's leading authority on the world's leading RTOS. 51 | 52 | http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, 53 | including FreeRTOS+Trace - an indispensable productivity tool, a DOS 54 | compatible FAT file system, and our tiny thread aware UDP/IP stack. 55 | 56 | http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. 57 | Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. 58 | 59 | http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High 60 | Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS 61 | licenses offer ticketed support, indemnification and commercial middleware. 62 | 63 | http://www.SafeRTOS.com - High Integrity Systems also provide a safety 64 | engineered and independently SIL3 certified version for use in safety and 65 | mission critical applications that require provable dependability. 66 | 67 | 1 tab == 4 spaces! 68 | */ 69 | 70 | #ifndef BLOCK_Q_H 71 | #define BLOCK_Q_H 72 | 73 | void vStartBlockingQueueTasks( UBaseType_t uxPriority ); 74 | BaseType_t xAreBlockingQueuesStillRunning( void ); 75 | 76 | #endif 77 | 78 | 79 | -------------------------------------------------------------------------------- /FreeRTOS_on_Spike/Demo/Common/include/EventGroupsDemo.h: -------------------------------------------------------------------------------- 1 | /* 2 | FreeRTOS V8.2.3 - Copyright (C) 2015 Real Time Engineers Ltd. 3 | All rights reserved 4 | 5 | VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. 6 | 7 | This file is part of the FreeRTOS distribution. 8 | 9 | FreeRTOS is free software; you can redistribute it and/or modify it under 10 | the terms of the GNU General Public License (version 2) as published by the 11 | Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. 12 | 13 | *************************************************************************** 14 | >>! NOTE: The modification to the GPL is included to allow you to !<< 15 | >>! distribute a combined work that includes FreeRTOS without being !<< 16 | >>! obliged to provide the source code for proprietary components !<< 17 | >>! outside of the FreeRTOS kernel. !<< 18 | *************************************************************************** 19 | 20 | FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY 21 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 22 | FOR A PARTICULAR PURPOSE. Full license text is available on the following 23 | link: http://www.freertos.org/a00114.html 24 | 25 | *************************************************************************** 26 | * * 27 | * FreeRTOS provides completely free yet professionally developed, * 28 | * robust, strictly quality controlled, supported, and cross * 29 | * platform software that is more than just the market leader, it * 30 | * is the industry's de facto standard. * 31 | * * 32 | * Help yourself get started quickly while simultaneously helping * 33 | * to support the FreeRTOS project by purchasing a FreeRTOS * 34 | * tutorial book, reference manual, or both: * 35 | * http://www.FreeRTOS.org/Documentation * 36 | * * 37 | *************************************************************************** 38 | 39 | http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading 40 | the FAQ page "My application does not run, what could be wrong?". Have you 41 | defined configASSERT()? 42 | 43 | http://www.FreeRTOS.org/support - In return for receiving this top quality 44 | embedded software for free we request you assist our global community by 45 | participating in the support forum. 46 | 47 | http://www.FreeRTOS.org/training - Investing in training allows your team to 48 | be as productive as possible as early as possible. Now you can receive 49 | FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers 50 | Ltd, and the world's leading authority on the world's leading RTOS. 51 | 52 | http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, 53 | including FreeRTOS+Trace - an indispensable productivity tool, a DOS 54 | compatible FAT file system, and our tiny thread aware UDP/IP stack. 55 | 56 | http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. 57 | Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. 58 | 59 | http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High 60 | Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS 61 | licenses offer ticketed support, indemnification and commercial middleware. 62 | 63 | http://www.SafeRTOS.com - High Integrity Systems also provide a safety 64 | engineered and independently SIL3 certified version for use in safety and 65 | mission critical applications that require provable dependability. 66 | 67 | 1 tab == 4 spaces! 68 | */ 69 | 70 | 71 | 72 | /* 73 | * This file contains fairly comprehensive checks on the behaviour of event 74 | * groups. It is not intended to be a user friendly demonstration of the event 75 | * groups API. 76 | */ 77 | 78 | #ifndef EVENT_GROUPS_DEMO_H 79 | #define EVENT_GROUPS_DEMO_H 80 | 81 | void vStartEventGroupTasks( void ); 82 | BaseType_t xAreEventGroupTasksStillRunning( void ); 83 | void vPeriodicEventGroupsProcessing( void ); 84 | 85 | #endif /* EVENT_GROUPS_DEMO_H */ 86 | 87 | -------------------------------------------------------------------------------- /FreeRTOS_on_Spike/Demo/Common/include/GenQTest.h: -------------------------------------------------------------------------------- 1 | /* 2 | FreeRTOS V8.2.3 - Copyright (C) 2015 Real Time Engineers Ltd. 3 | All rights reserved 4 | 5 | VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. 6 | 7 | This file is part of the FreeRTOS distribution. 8 | 9 | FreeRTOS is free software; you can redistribute it and/or modify it under 10 | the terms of the GNU General Public License (version 2) as published by the 11 | Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. 12 | 13 | *************************************************************************** 14 | >>! NOTE: The modification to the GPL is included to allow you to !<< 15 | >>! distribute a combined work that includes FreeRTOS without being !<< 16 | >>! obliged to provide the source code for proprietary components !<< 17 | >>! outside of the FreeRTOS kernel. !<< 18 | *************************************************************************** 19 | 20 | FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY 21 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 22 | FOR A PARTICULAR PURPOSE. Full license text is available on the following 23 | link: http://www.freertos.org/a00114.html 24 | 25 | *************************************************************************** 26 | * * 27 | * FreeRTOS provides completely free yet professionally developed, * 28 | * robust, strictly quality controlled, supported, and cross * 29 | * platform software that is more than just the market leader, it * 30 | * is the industry's de facto standard. * 31 | * * 32 | * Help yourself get started quickly while simultaneously helping * 33 | * to support the FreeRTOS project by purchasing a FreeRTOS * 34 | * tutorial book, reference manual, or both: * 35 | * http://www.FreeRTOS.org/Documentation * 36 | * * 37 | *************************************************************************** 38 | 39 | http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading 40 | the FAQ page "My application does not run, what could be wrong?". Have you 41 | defined configASSERT()? 42 | 43 | http://www.FreeRTOS.org/support - In return for receiving this top quality 44 | embedded software for free we request you assist our global community by 45 | participating in the support forum. 46 | 47 | http://www.FreeRTOS.org/training - Investing in training allows your team to 48 | be as productive as possible as early as possible. Now you can receive 49 | FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers 50 | Ltd, and the world's leading authority on the world's leading RTOS. 51 | 52 | http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, 53 | including FreeRTOS+Trace - an indispensable productivity tool, a DOS 54 | compatible FAT file system, and our tiny thread aware UDP/IP stack. 55 | 56 | http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. 57 | Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. 58 | 59 | http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High 60 | Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS 61 | licenses offer ticketed support, indemnification and commercial middleware. 62 | 63 | http://www.SafeRTOS.com - High Integrity Systems also provide a safety 64 | engineered and independently SIL3 certified version for use in safety and 65 | mission critical applications that require provable dependability. 66 | 67 | 1 tab == 4 spaces! 68 | */ 69 | 70 | #ifndef GEN_Q_TEST_H 71 | #define GEN_Q_TEST_H 72 | 73 | void vStartGenericQueueTasks( UBaseType_t uxPriority ); 74 | BaseType_t xAreGenericQueueTasksStillRunning( void ); 75 | void vMutexISRInteractionTest( void ); 76 | 77 | #endif /* GEN_Q_TEST_H */ 78 | 79 | 80 | 81 | -------------------------------------------------------------------------------- /FreeRTOS_on_Spike/Demo/Common/include/IntQueue.h: -------------------------------------------------------------------------------- 1 | /* 2 | FreeRTOS V8.2.3 - Copyright (C) 2015 Real Time Engineers Ltd. 3 | All rights reserved 4 | 5 | VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. 6 | 7 | This file is part of the FreeRTOS distribution. 8 | 9 | FreeRTOS is free software; you can redistribute it and/or modify it under 10 | the terms of the GNU General Public License (version 2) as published by the 11 | Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. 12 | 13 | *************************************************************************** 14 | >>! NOTE: The modification to the GPL is included to allow you to !<< 15 | >>! distribute a combined work that includes FreeRTOS without being !<< 16 | >>! obliged to provide the source code for proprietary components !<< 17 | >>! outside of the FreeRTOS kernel. !<< 18 | *************************************************************************** 19 | 20 | FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY 21 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 22 | FOR A PARTICULAR PURPOSE. Full license text is available on the following 23 | link: http://www.freertos.org/a00114.html 24 | 25 | *************************************************************************** 26 | * * 27 | * FreeRTOS provides completely free yet professionally developed, * 28 | * robust, strictly quality controlled, supported, and cross * 29 | * platform software that is more than just the market leader, it * 30 | * is the industry's de facto standard. * 31 | * * 32 | * Help yourself get started quickly while simultaneously helping * 33 | * to support the FreeRTOS project by purchasing a FreeRTOS * 34 | * tutorial book, reference manual, or both: * 35 | * http://www.FreeRTOS.org/Documentation * 36 | * * 37 | *************************************************************************** 38 | 39 | http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading 40 | the FAQ page "My application does not run, what could be wrong?". Have you 41 | defined configASSERT()? 42 | 43 | http://www.FreeRTOS.org/support - In return for receiving this top quality 44 | embedded software for free we request you assist our global community by 45 | participating in the support forum. 46 | 47 | http://www.FreeRTOS.org/training - Investing in training allows your team to 48 | be as productive as possible as early as possible. Now you can receive 49 | FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers 50 | Ltd, and the world's leading authority on the world's leading RTOS. 51 | 52 | http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, 53 | including FreeRTOS+Trace - an indispensable productivity tool, a DOS 54 | compatible FAT file system, and our tiny thread aware UDP/IP stack. 55 | 56 | http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. 57 | Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. 58 | 59 | http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High 60 | Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS 61 | licenses offer ticketed support, indemnification and commercial middleware. 62 | 63 | http://www.SafeRTOS.com - High Integrity Systems also provide a safety 64 | engineered and independently SIL3 certified version for use in safety and 65 | mission critical applications that require provable dependability. 66 | 67 | 1 tab == 4 spaces! 68 | */ 69 | 70 | #ifndef QUEUE_ACCESS_TEST 71 | #define QUEUE_ACCESS_TEST 72 | 73 | void vStartInterruptQueueTasks( void ); 74 | BaseType_t xAreIntQueueTasksStillRunning( void ); 75 | BaseType_t xFirstTimerHandler( void ); 76 | BaseType_t xSecondTimerHandler( void ); 77 | 78 | #endif /* QUEUE_ACCESS_TEST */ 79 | 80 | 81 | 82 | 83 | 84 | 85 | -------------------------------------------------------------------------------- /FreeRTOS_on_Spike/Demo/Common/include/IntSemTest.h: -------------------------------------------------------------------------------- 1 | /* 2 | FreeRTOS V8.2.3 - Copyright (C) 2015 Real Time Engineers Ltd. 3 | All rights reserved 4 | 5 | VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. 6 | 7 | This file is part of the FreeRTOS distribution. 8 | 9 | FreeRTOS is free software; you can redistribute it and/or modify it under 10 | the terms of the GNU General Public License (version 2) as published by the 11 | Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. 12 | 13 | *************************************************************************** 14 | >>! NOTE: The modification to the GPL is included to allow you to !<< 15 | >>! distribute a combined work that includes FreeRTOS without being !<< 16 | >>! obliged to provide the source code for proprietary components !<< 17 | >>! outside of the FreeRTOS kernel. !<< 18 | *************************************************************************** 19 | 20 | FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY 21 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 22 | FOR A PARTICULAR PURPOSE. Full license text is available on the following 23 | link: http://www.freertos.org/a00114.html 24 | 25 | *************************************************************************** 26 | * * 27 | * FreeRTOS provides completely free yet professionally developed, * 28 | * robust, strictly quality controlled, supported, and cross * 29 | * platform software that is more than just the market leader, it * 30 | * is the industry's de facto standard. * 31 | * * 32 | * Help yourself get started quickly while simultaneously helping * 33 | * to support the FreeRTOS project by purchasing a FreeRTOS * 34 | * tutorial book, reference manual, or both: * 35 | * http://www.FreeRTOS.org/Documentation * 36 | * * 37 | *************************************************************************** 38 | 39 | http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading 40 | the FAQ page "My application does not run, what could be wrong?". Have you 41 | defined configASSERT()? 42 | 43 | http://www.FreeRTOS.org/support - In return for receiving this top quality 44 | embedded software for free we request you assist our global community by 45 | participating in the support forum. 46 | 47 | http://www.FreeRTOS.org/training - Investing in training allows your team to 48 | be as productive as possible as early as possible. Now you can receive 49 | FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers 50 | Ltd, and the world's leading authority on the world's leading RTOS. 51 | 52 | http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, 53 | including FreeRTOS+Trace - an indispensable productivity tool, a DOS 54 | compatible FAT file system, and our tiny thread aware UDP/IP stack. 55 | 56 | http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. 57 | Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. 58 | 59 | http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High 60 | Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS 61 | licenses offer ticketed support, indemnification and commercial middleware. 62 | 63 | http://www.SafeRTOS.com - High Integrity Systems also provide a safety 64 | engineered and independently SIL3 certified version for use in safety and 65 | mission critical applications that require provable dependability. 66 | 67 | 1 tab == 4 spaces! 68 | */ 69 | 70 | #ifndef INT_SEM_TEST_H 71 | #define INT_SEM_TEST_H 72 | 73 | void vStartInterruptSemaphoreTasks( void ); 74 | BaseType_t xAreInterruptSemaphoreTasksStillRunning( void ); 75 | void vInterruptSemaphorePeriodicTest( void ); 76 | 77 | #endif /* INT_SEM_TEST_H */ 78 | 79 | 80 | 81 | -------------------------------------------------------------------------------- /FreeRTOS_on_Spike/Demo/Common/include/PollQ.h: -------------------------------------------------------------------------------- 1 | /* 2 | FreeRTOS V8.2.3 - Copyright (C) 2015 Real Time Engineers Ltd. 3 | All rights reserved 4 | 5 | VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. 6 | 7 | This file is part of the FreeRTOS distribution. 8 | 9 | FreeRTOS is free software; you can redistribute it and/or modify it under 10 | the terms of the GNU General Public License (version 2) as published by the 11 | Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. 12 | 13 | *************************************************************************** 14 | >>! NOTE: The modification to the GPL is included to allow you to !<< 15 | >>! distribute a combined work that includes FreeRTOS without being !<< 16 | >>! obliged to provide the source code for proprietary components !<< 17 | >>! outside of the FreeRTOS kernel. !<< 18 | *************************************************************************** 19 | 20 | FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY 21 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 22 | FOR A PARTICULAR PURPOSE. Full license text is available on the following 23 | link: http://www.freertos.org/a00114.html 24 | 25 | *************************************************************************** 26 | * * 27 | * FreeRTOS provides completely free yet professionally developed, * 28 | * robust, strictly quality controlled, supported, and cross * 29 | * platform software that is more than just the market leader, it * 30 | * is the industry's de facto standard. * 31 | * * 32 | * Help yourself get started quickly while simultaneously helping * 33 | * to support the FreeRTOS project by purchasing a FreeRTOS * 34 | * tutorial book, reference manual, or both: * 35 | * http://www.FreeRTOS.org/Documentation * 36 | * * 37 | *************************************************************************** 38 | 39 | http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading 40 | the FAQ page "My application does not run, what could be wrong?". Have you 41 | defined configASSERT()? 42 | 43 | http://www.FreeRTOS.org/support - In return for receiving this top quality 44 | embedded software for free we request you assist our global community by 45 | participating in the support forum. 46 | 47 | http://www.FreeRTOS.org/training - Investing in training allows your team to 48 | be as productive as possible as early as possible. Now you can receive 49 | FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers 50 | Ltd, and the world's leading authority on the world's leading RTOS. 51 | 52 | http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, 53 | including FreeRTOS+Trace - an indispensable productivity tool, a DOS 54 | compatible FAT file system, and our tiny thread aware UDP/IP stack. 55 | 56 | http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. 57 | Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. 58 | 59 | http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High 60 | Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS 61 | licenses offer ticketed support, indemnification and commercial middleware. 62 | 63 | http://www.SafeRTOS.com - High Integrity Systems also provide a safety 64 | engineered and independently SIL3 certified version for use in safety and 65 | mission critical applications that require provable dependability. 66 | 67 | 1 tab == 4 spaces! 68 | */ 69 | 70 | #ifndef POLLED_Q_H 71 | #define POLLED_Q_H 72 | 73 | void vStartPolledQueueTasks( UBaseType_t uxPriority ); 74 | BaseType_t xArePollingQueuesStillRunning( void ); 75 | 76 | #endif 77 | 78 | 79 | -------------------------------------------------------------------------------- /FreeRTOS_on_Spike/Demo/Common/include/QPeek.h: -------------------------------------------------------------------------------- 1 | /* 2 | FreeRTOS V8.2.3 - Copyright (C) 2015 Real Time Engineers Ltd. 3 | All rights reserved 4 | 5 | VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. 6 | 7 | This file is part of the FreeRTOS distribution. 8 | 9 | FreeRTOS is free software; you can redistribute it and/or modify it under 10 | the terms of the GNU General Public License (version 2) as published by the 11 | Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. 12 | 13 | *************************************************************************** 14 | >>! NOTE: The modification to the GPL is included to allow you to !<< 15 | >>! distribute a combined work that includes FreeRTOS without being !<< 16 | >>! obliged to provide the source code for proprietary components !<< 17 | >>! outside of the FreeRTOS kernel. !<< 18 | *************************************************************************** 19 | 20 | FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY 21 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 22 | FOR A PARTICULAR PURPOSE. Full license text is available on the following 23 | link: http://www.freertos.org/a00114.html 24 | 25 | *************************************************************************** 26 | * * 27 | * FreeRTOS provides completely free yet professionally developed, * 28 | * robust, strictly quality controlled, supported, and cross * 29 | * platform software that is more than just the market leader, it * 30 | * is the industry's de facto standard. * 31 | * * 32 | * Help yourself get started quickly while simultaneously helping * 33 | * to support the FreeRTOS project by purchasing a FreeRTOS * 34 | * tutorial book, reference manual, or both: * 35 | * http://www.FreeRTOS.org/Documentation * 36 | * * 37 | *************************************************************************** 38 | 39 | http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading 40 | the FAQ page "My application does not run, what could be wrong?". Have you 41 | defined configASSERT()? 42 | 43 | http://www.FreeRTOS.org/support - In return for receiving this top quality 44 | embedded software for free we request you assist our global community by 45 | participating in the support forum. 46 | 47 | http://www.FreeRTOS.org/training - Investing in training allows your team to 48 | be as productive as possible as early as possible. Now you can receive 49 | FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers 50 | Ltd, and the world's leading authority on the world's leading RTOS. 51 | 52 | http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, 53 | including FreeRTOS+Trace - an indispensable productivity tool, a DOS 54 | compatible FAT file system, and our tiny thread aware UDP/IP stack. 55 | 56 | http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. 57 | Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. 58 | 59 | http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High 60 | Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS 61 | licenses offer ticketed support, indemnification and commercial middleware. 62 | 63 | http://www.SafeRTOS.com - High Integrity Systems also provide a safety 64 | engineered and independently SIL3 certified version for use in safety and 65 | mission critical applications that require provable dependability. 66 | 67 | 1 tab == 4 spaces! 68 | */ 69 | 70 | #ifndef Q_PEEK_TEST_H 71 | #define Q_PEEK_TEST_H 72 | 73 | void vStartQueuePeekTasks( void ); 74 | BaseType_t xAreQueuePeekTasksStillRunning( void ); 75 | 76 | #endif /* Q_PEEK_TEST_H */ 77 | 78 | 79 | 80 | -------------------------------------------------------------------------------- /FreeRTOS_on_Spike/Demo/Common/include/QueueOverwrite.h: -------------------------------------------------------------------------------- 1 | /* 2 | FreeRTOS V8.2.3 - Copyright (C) 2015 Real Time Engineers Ltd. 3 | All rights reserved 4 | 5 | VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. 6 | 7 | This file is part of the FreeRTOS distribution. 8 | 9 | FreeRTOS is free software; you can redistribute it and/or modify it under 10 | the terms of the GNU General Public License (version 2) as published by the 11 | Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. 12 | 13 | *************************************************************************** 14 | >>! NOTE: The modification to the GPL is included to allow you to !<< 15 | >>! distribute a combined work that includes FreeRTOS without being !<< 16 | >>! obliged to provide the source code for proprietary components !<< 17 | >>! outside of the FreeRTOS kernel. !<< 18 | *************************************************************************** 19 | 20 | FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY 21 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 22 | FOR A PARTICULAR PURPOSE. Full license text is available on the following 23 | link: http://www.freertos.org/a00114.html 24 | 25 | *************************************************************************** 26 | * * 27 | * FreeRTOS provides completely free yet professionally developed, * 28 | * robust, strictly quality controlled, supported, and cross * 29 | * platform software that is more than just the market leader, it * 30 | * is the industry's de facto standard. * 31 | * * 32 | * Help yourself get started quickly while simultaneously helping * 33 | * to support the FreeRTOS project by purchasing a FreeRTOS * 34 | * tutorial book, reference manual, or both: * 35 | * http://www.FreeRTOS.org/Documentation * 36 | * * 37 | *************************************************************************** 38 | 39 | http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading 40 | the FAQ page "My application does not run, what could be wrong?". Have you 41 | defined configASSERT()? 42 | 43 | http://www.FreeRTOS.org/support - In return for receiving this top quality 44 | embedded software for free we request you assist our global community by 45 | participating in the support forum. 46 | 47 | http://www.FreeRTOS.org/training - Investing in training allows your team to 48 | be as productive as possible as early as possible. Now you can receive 49 | FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers 50 | Ltd, and the world's leading authority on the world's leading RTOS. 51 | 52 | http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, 53 | including FreeRTOS+Trace - an indispensable productivity tool, a DOS 54 | compatible FAT file system, and our tiny thread aware UDP/IP stack. 55 | 56 | http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. 57 | Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. 58 | 59 | http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High 60 | Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS 61 | licenses offer ticketed support, indemnification and commercial middleware. 62 | 63 | http://www.SafeRTOS.com - High Integrity Systems also provide a safety 64 | engineered and independently SIL3 certified version for use in safety and 65 | mission critical applications that require provable dependability. 66 | 67 | 1 tab == 4 spaces! 68 | */ 69 | 70 | #ifndef QUEUE_OVERWRITE_H 71 | #define QUEUE_OVERWRITE_H 72 | 73 | void vStartQueueOverwriteTask( UBaseType_t uxPriority ); 74 | BaseType_t xIsQueueOverwriteTaskStillRunning( void ); 75 | void vQueueOverwritePeriodicISRDemo( void ); 76 | 77 | #endif /* QUEUE_OVERWRITE_H */ 78 | 79 | 80 | -------------------------------------------------------------------------------- /FreeRTOS_on_Spike/Demo/Common/include/QueueSet.h: -------------------------------------------------------------------------------- 1 | /* 2 | FreeRTOS V8.2.3 - Copyright (C) 2015 Real Time Engineers Ltd. 3 | All rights reserved 4 | 5 | VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. 6 | 7 | This file is part of the FreeRTOS distribution. 8 | 9 | FreeRTOS is free software; you can redistribute it and/or modify it under 10 | the terms of the GNU General Public License (version 2) as published by the 11 | Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. 12 | 13 | *************************************************************************** 14 | >>! NOTE: The modification to the GPL is included to allow you to !<< 15 | >>! distribute a combined work that includes FreeRTOS without being !<< 16 | >>! obliged to provide the source code for proprietary components !<< 17 | >>! outside of the FreeRTOS kernel. !<< 18 | *************************************************************************** 19 | 20 | FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY 21 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 22 | FOR A PARTICULAR PURPOSE. Full license text is available on the following 23 | link: http://www.freertos.org/a00114.html 24 | 25 | *************************************************************************** 26 | * * 27 | * FreeRTOS provides completely free yet professionally developed, * 28 | * robust, strictly quality controlled, supported, and cross * 29 | * platform software that is more than just the market leader, it * 30 | * is the industry's de facto standard. * 31 | * * 32 | * Help yourself get started quickly while simultaneously helping * 33 | * to support the FreeRTOS project by purchasing a FreeRTOS * 34 | * tutorial book, reference manual, or both: * 35 | * http://www.FreeRTOS.org/Documentation * 36 | * * 37 | *************************************************************************** 38 | 39 | http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading 40 | the FAQ page "My application does not run, what could be wrong?". Have you 41 | defined configASSERT()? 42 | 43 | http://www.FreeRTOS.org/support - In return for receiving this top quality 44 | embedded software for free we request you assist our global community by 45 | participating in the support forum. 46 | 47 | http://www.FreeRTOS.org/training - Investing in training allows your team to 48 | be as productive as possible as early as possible. Now you can receive 49 | FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers 50 | Ltd, and the world's leading authority on the world's leading RTOS. 51 | 52 | http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, 53 | including FreeRTOS+Trace - an indispensable productivity tool, a DOS 54 | compatible FAT file system, and our tiny thread aware UDP/IP stack. 55 | 56 | http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. 57 | Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. 58 | 59 | http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High 60 | Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS 61 | licenses offer ticketed support, indemnification and commercial middleware. 62 | 63 | http://www.SafeRTOS.com - High Integrity Systems also provide a safety 64 | engineered and independently SIL3 certified version for use in safety and 65 | mission critical applications that require provable dependability. 66 | 67 | 1 tab == 4 spaces! 68 | */ 69 | 70 | #ifndef QUEUE_WAIT_MULTIPLE_H 71 | #define QUEUE_WAIT_MULTIPLE_H 72 | 73 | void vStartQueueSetTasks( void ); 74 | BaseType_t xAreQueueSetTasksStillRunning( void ); 75 | void vQueueSetAccessQueueSetFromISR( void ); 76 | 77 | #endif /* QUEUE_WAIT_MULTIPLE_H */ 78 | 79 | 80 | -------------------------------------------------------------------------------- /FreeRTOS_on_Spike/Demo/Common/include/QueueSetPolling.h: -------------------------------------------------------------------------------- 1 | /* 2 | FreeRTOS V8.2.3 - Copyright (C) 2015 Real Time Engineers Ltd. 3 | All rights reserved 4 | 5 | VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. 6 | 7 | This file is part of the FreeRTOS distribution. 8 | 9 | FreeRTOS is free software; you can redistribute it and/or modify it under 10 | the terms of the GNU General Public License (version 2) as published by the 11 | Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. 12 | 13 | *************************************************************************** 14 | >>! NOTE: The modification to the GPL is included to allow you to !<< 15 | >>! distribute a combined work that includes FreeRTOS without being !<< 16 | >>! obliged to provide the source code for proprietary components !<< 17 | >>! outside of the FreeRTOS kernel. !<< 18 | *************************************************************************** 19 | 20 | FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY 21 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 22 | FOR A PARTICULAR PURPOSE. Full license text is available on the following 23 | link: http://www.freertos.org/a00114.html 24 | 25 | *************************************************************************** 26 | * * 27 | * FreeRTOS provides completely free yet professionally developed, * 28 | * robust, strictly quality controlled, supported, and cross * 29 | * platform software that is more than just the market leader, it * 30 | * is the industry's de facto standard. * 31 | * * 32 | * Help yourself get started quickly while simultaneously helping * 33 | * to support the FreeRTOS project by purchasing a FreeRTOS * 34 | * tutorial book, reference manual, or both: * 35 | * http://www.FreeRTOS.org/Documentation * 36 | * * 37 | *************************************************************************** 38 | 39 | http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading 40 | the FAQ page "My application does not run, what could be wrong?". Have you 41 | defined configASSERT()? 42 | 43 | http://www.FreeRTOS.org/support - In return for receiving this top quality 44 | embedded software for free we request you assist our global community by 45 | participating in the support forum. 46 | 47 | http://www.FreeRTOS.org/training - Investing in training allows your team to 48 | be as productive as possible as early as possible. Now you can receive 49 | FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers 50 | Ltd, and the world's leading authority on the world's leading RTOS. 51 | 52 | http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, 53 | including FreeRTOS+Trace - an indispensable productivity tool, a DOS 54 | compatible FAT file system, and our tiny thread aware UDP/IP stack. 55 | 56 | http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. 57 | Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. 58 | 59 | http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High 60 | Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS 61 | licenses offer ticketed support, indemnification and commercial middleware. 62 | 63 | http://www.SafeRTOS.com - High Integrity Systems also provide a safety 64 | engineered and independently SIL3 certified version for use in safety and 65 | mission critical applications that require provable dependability. 66 | 67 | 1 tab == 4 spaces! 68 | */ 69 | 70 | #ifndef QUEUE_SET_POLLING_H 71 | #define QUEUE_SET_POLLING_H 72 | 73 | void vStartQueueSetPollingTask( void ); 74 | BaseType_t xAreQueueSetPollTasksStillRunning( void ); 75 | void vQueueSetPollingInterruptAccess( void ); 76 | 77 | #endif /* QUEUE_SET_POLLING_H */ 78 | 79 | 80 | -------------------------------------------------------------------------------- /FreeRTOS_on_Spike/Demo/Common/include/TaskNotify.h: -------------------------------------------------------------------------------- 1 | /* 2 | FreeRTOS V8.2.3 - Copyright (C) 2015 Real Time Engineers Ltd. 3 | All rights reserved 4 | 5 | VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. 6 | 7 | This file is part of the FreeRTOS distribution. 8 | 9 | FreeRTOS is free software; you can redistribute it and/or modify it under 10 | the terms of the GNU General Public License (version 2) as published by the 11 | Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. 12 | 13 | *************************************************************************** 14 | >>! NOTE: The modification to the GPL is included to allow you to !<< 15 | >>! distribute a combined work that includes FreeRTOS without being !<< 16 | >>! obliged to provide the source code for proprietary components !<< 17 | >>! outside of the FreeRTOS kernel. !<< 18 | *************************************************************************** 19 | 20 | FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY 21 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 22 | FOR A PARTICULAR PURPOSE. Full license text is available on the following 23 | link: http://www.freertos.org/a00114.html 24 | 25 | *************************************************************************** 26 | * * 27 | * FreeRTOS provides completely free yet professionally developed, * 28 | * robust, strictly quality controlled, supported, and cross * 29 | * platform software that is more than just the market leader, it * 30 | * is the industry's de facto standard. * 31 | * * 32 | * Help yourself get started quickly while simultaneously helping * 33 | * to support the FreeRTOS project by purchasing a FreeRTOS * 34 | * tutorial book, reference manual, or both: * 35 | * http://www.FreeRTOS.org/Documentation * 36 | * * 37 | *************************************************************************** 38 | 39 | http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading 40 | the FAQ page "My application does not run, what could be wrong?". Have you 41 | defined configASSERT()? 42 | 43 | http://www.FreeRTOS.org/support - In return for receiving this top quality 44 | embedded software for free we request you assist our global community by 45 | participating in the support forum. 46 | 47 | http://www.FreeRTOS.org/training - Investing in training allows your team to 48 | be as productive as possible as early as possible. Now you can receive 49 | FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers 50 | Ltd, and the world's leading authority on the world's leading RTOS. 51 | 52 | http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, 53 | including FreeRTOS+Trace - an indispensable productivity tool, a DOS 54 | compatible FAT file system, and our tiny thread aware UDP/IP stack. 55 | 56 | http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. 57 | Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. 58 | 59 | http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High 60 | Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS 61 | licenses offer ticketed support, indemnification and commercial middleware. 62 | 63 | http://www.SafeRTOS.com - High Integrity Systems also provide a safety 64 | engineered and independently SIL3 certified version for use in safety and 65 | mission critical applications that require provable dependability. 66 | 67 | 1 tab == 4 spaces! 68 | */ 69 | 70 | #ifndef TASK_NOTIFY_H 71 | #define TASK_NOTIFY_H 72 | 73 | void vStartTaskNotifyTask( void ); 74 | BaseType_t xAreTaskNotificationTasksStillRunning( void ); 75 | void xNotifyTaskFromISR( void ); 76 | 77 | #endif /* TASK_NOTIFY_H */ 78 | 79 | 80 | 81 | -------------------------------------------------------------------------------- /FreeRTOS_on_Spike/Demo/Common/include/TimerDemo.h: -------------------------------------------------------------------------------- 1 | /* 2 | FreeRTOS V8.2.3 - Copyright (C) 2015 Real Time Engineers Ltd. 3 | All rights reserved 4 | 5 | VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. 6 | 7 | This file is part of the FreeRTOS distribution. 8 | 9 | FreeRTOS is free software; you can redistribute it and/or modify it under 10 | the terms of the GNU General Public License (version 2) as published by the 11 | Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. 12 | 13 | *************************************************************************** 14 | >>! NOTE: The modification to the GPL is included to allow you to !<< 15 | >>! distribute a combined work that includes FreeRTOS without being !<< 16 | >>! obliged to provide the source code for proprietary components !<< 17 | >>! outside of the FreeRTOS kernel. !<< 18 | *************************************************************************** 19 | 20 | FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY 21 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 22 | FOR A PARTICULAR PURPOSE. Full license text is available on the following 23 | link: http://www.freertos.org/a00114.html 24 | 25 | *************************************************************************** 26 | * * 27 | * FreeRTOS provides completely free yet professionally developed, * 28 | * robust, strictly quality controlled, supported, and cross * 29 | * platform software that is more than just the market leader, it * 30 | * is the industry's de facto standard. * 31 | * * 32 | * Help yourself get started quickly while simultaneously helping * 33 | * to support the FreeRTOS project by purchasing a FreeRTOS * 34 | * tutorial book, reference manual, or both: * 35 | * http://www.FreeRTOS.org/Documentation * 36 | * * 37 | *************************************************************************** 38 | 39 | http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading 40 | the FAQ page "My application does not run, what could be wrong?". Have you 41 | defined configASSERT()? 42 | 43 | http://www.FreeRTOS.org/support - In return for receiving this top quality 44 | embedded software for free we request you assist our global community by 45 | participating in the support forum. 46 | 47 | http://www.FreeRTOS.org/training - Investing in training allows your team to 48 | be as productive as possible as early as possible. Now you can receive 49 | FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers 50 | Ltd, and the world's leading authority on the world's leading RTOS. 51 | 52 | http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, 53 | including FreeRTOS+Trace - an indispensable productivity tool, a DOS 54 | compatible FAT file system, and our tiny thread aware UDP/IP stack. 55 | 56 | http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. 57 | Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. 58 | 59 | http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High 60 | Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS 61 | licenses offer ticketed support, indemnification and commercial middleware. 62 | 63 | http://www.SafeRTOS.com - High Integrity Systems also provide a safety 64 | engineered and independently SIL3 certified version for use in safety and 65 | mission critical applications that require provable dependability. 66 | 67 | 1 tab == 4 spaces! 68 | */ 69 | 70 | #ifndef TIMER_DEMO_H 71 | #define TIMER_DEMO_H 72 | 73 | void vStartTimerDemoTask( TickType_t xBaseFrequencyIn ); 74 | BaseType_t xAreTimerDemoTasksStillRunning( TickType_t xCycleFrequency ); 75 | void vTimerPeriodicISRTests( void ); 76 | 77 | #endif /* TIMER_DEMO_H */ 78 | 79 | 80 | 81 | -------------------------------------------------------------------------------- /FreeRTOS_on_Spike/Demo/Common/include/blocktim.h: -------------------------------------------------------------------------------- 1 | /* 2 | FreeRTOS V8.2.3 - Copyright (C) 2015 Real Time Engineers Ltd. 3 | All rights reserved 4 | 5 | VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. 6 | 7 | This file is part of the FreeRTOS distribution. 8 | 9 | FreeRTOS is free software; you can redistribute it and/or modify it under 10 | the terms of the GNU General Public License (version 2) as published by the 11 | Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. 12 | 13 | *************************************************************************** 14 | >>! NOTE: The modification to the GPL is included to allow you to !<< 15 | >>! distribute a combined work that includes FreeRTOS without being !<< 16 | >>! obliged to provide the source code for proprietary components !<< 17 | >>! outside of the FreeRTOS kernel. !<< 18 | *************************************************************************** 19 | 20 | FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY 21 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 22 | FOR A PARTICULAR PURPOSE. Full license text is available on the following 23 | link: http://www.freertos.org/a00114.html 24 | 25 | *************************************************************************** 26 | * * 27 | * FreeRTOS provides completely free yet professionally developed, * 28 | * robust, strictly quality controlled, supported, and cross * 29 | * platform software that is more than just the market leader, it * 30 | * is the industry's de facto standard. * 31 | * * 32 | * Help yourself get started quickly while simultaneously helping * 33 | * to support the FreeRTOS project by purchasing a FreeRTOS * 34 | * tutorial book, reference manual, or both: * 35 | * http://www.FreeRTOS.org/Documentation * 36 | * * 37 | *************************************************************************** 38 | 39 | http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading 40 | the FAQ page "My application does not run, what could be wrong?". Have you 41 | defined configASSERT()? 42 | 43 | http://www.FreeRTOS.org/support - In return for receiving this top quality 44 | embedded software for free we request you assist our global community by 45 | participating in the support forum. 46 | 47 | http://www.FreeRTOS.org/training - Investing in training allows your team to 48 | be as productive as possible as early as possible. Now you can receive 49 | FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers 50 | Ltd, and the world's leading authority on the world's leading RTOS. 51 | 52 | http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, 53 | including FreeRTOS+Trace - an indispensable productivity tool, a DOS 54 | compatible FAT file system, and our tiny thread aware UDP/IP stack. 55 | 56 | http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. 57 | Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. 58 | 59 | http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High 60 | Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS 61 | licenses offer ticketed support, indemnification and commercial middleware. 62 | 63 | http://www.SafeRTOS.com - High Integrity Systems also provide a safety 64 | engineered and independently SIL3 certified version for use in safety and 65 | mission critical applications that require provable dependability. 66 | 67 | 1 tab == 4 spaces! 68 | */ 69 | 70 | #ifndef BLOCK_TIME_TEST_H 71 | #define BLOCK_TIME_TEST_H 72 | 73 | void vCreateBlockTimeTasks( void ); 74 | BaseType_t xAreBlockTimeTestTasksStillRunning( void ); 75 | 76 | #endif 77 | 78 | 79 | -------------------------------------------------------------------------------- /FreeRTOS_on_Spike/Demo/Common/include/comtest.h: -------------------------------------------------------------------------------- 1 | /* 2 | FreeRTOS V8.2.3 - Copyright (C) 2015 Real Time Engineers Ltd. 3 | All rights reserved 4 | 5 | VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. 6 | 7 | This file is part of the FreeRTOS distribution. 8 | 9 | FreeRTOS is free software; you can redistribute it and/or modify it under 10 | the terms of the GNU General Public License (version 2) as published by the 11 | Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. 12 | 13 | *************************************************************************** 14 | >>! NOTE: The modification to the GPL is included to allow you to !<< 15 | >>! distribute a combined work that includes FreeRTOS without being !<< 16 | >>! obliged to provide the source code for proprietary components !<< 17 | >>! outside of the FreeRTOS kernel. !<< 18 | *************************************************************************** 19 | 20 | FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY 21 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 22 | FOR A PARTICULAR PURPOSE. Full license text is available on the following 23 | link: http://www.freertos.org/a00114.html 24 | 25 | *************************************************************************** 26 | * * 27 | * FreeRTOS provides completely free yet professionally developed, * 28 | * robust, strictly quality controlled, supported, and cross * 29 | * platform software that is more than just the market leader, it * 30 | * is the industry's de facto standard. * 31 | * * 32 | * Help yourself get started quickly while simultaneously helping * 33 | * to support the FreeRTOS project by purchasing a FreeRTOS * 34 | * tutorial book, reference manual, or both: * 35 | * http://www.FreeRTOS.org/Documentation * 36 | * * 37 | *************************************************************************** 38 | 39 | http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading 40 | the FAQ page "My application does not run, what could be wrong?". Have you 41 | defined configASSERT()? 42 | 43 | http://www.FreeRTOS.org/support - In return for receiving this top quality 44 | embedded software for free we request you assist our global community by 45 | participating in the support forum. 46 | 47 | http://www.FreeRTOS.org/training - Investing in training allows your team to 48 | be as productive as possible as early as possible. Now you can receive 49 | FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers 50 | Ltd, and the world's leading authority on the world's leading RTOS. 51 | 52 | http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, 53 | including FreeRTOS+Trace - an indispensable productivity tool, a DOS 54 | compatible FAT file system, and our tiny thread aware UDP/IP stack. 55 | 56 | http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. 57 | Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. 58 | 59 | http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High 60 | Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS 61 | licenses offer ticketed support, indemnification and commercial middleware. 62 | 63 | http://www.SafeRTOS.com - High Integrity Systems also provide a safety 64 | engineered and independently SIL3 certified version for use in safety and 65 | mission critical applications that require provable dependability. 66 | 67 | 1 tab == 4 spaces! 68 | */ 69 | 70 | #ifndef COMTEST_H 71 | #define COMTEST_H 72 | 73 | void vAltStartComTestTasks( UBaseType_t uxPriority, uint32_t ulBaudRate, UBaseType_t uxLED ); 74 | void vStartComTestTasks( UBaseType_t uxPriority, eCOMPort ePort, eBaud eBaudRate ); 75 | BaseType_t xAreComTestTasksStillRunning( void ); 76 | void vComTestUnsuspendTask( void ); 77 | 78 | #endif 79 | 80 | -------------------------------------------------------------------------------- /FreeRTOS_on_Spike/Demo/Common/include/comtest2.h: -------------------------------------------------------------------------------- 1 | /* 2 | FreeRTOS V8.2.3 - Copyright (C) 2015 Real Time Engineers Ltd. 3 | All rights reserved 4 | 5 | VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. 6 | 7 | This file is part of the FreeRTOS distribution. 8 | 9 | FreeRTOS is free software; you can redistribute it and/or modify it under 10 | the terms of the GNU General Public License (version 2) as published by the 11 | Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. 12 | 13 | *************************************************************************** 14 | >>! NOTE: The modification to the GPL is included to allow you to !<< 15 | >>! distribute a combined work that includes FreeRTOS without being !<< 16 | >>! obliged to provide the source code for proprietary components !<< 17 | >>! outside of the FreeRTOS kernel. !<< 18 | *************************************************************************** 19 | 20 | FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY 21 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 22 | FOR A PARTICULAR PURPOSE. Full license text is available on the following 23 | link: http://www.freertos.org/a00114.html 24 | 25 | *************************************************************************** 26 | * * 27 | * FreeRTOS provides completely free yet professionally developed, * 28 | * robust, strictly quality controlled, supported, and cross * 29 | * platform software that is more than just the market leader, it * 30 | * is the industry's de facto standard. * 31 | * * 32 | * Help yourself get started quickly while simultaneously helping * 33 | * to support the FreeRTOS project by purchasing a FreeRTOS * 34 | * tutorial book, reference manual, or both: * 35 | * http://www.FreeRTOS.org/Documentation * 36 | * * 37 | *************************************************************************** 38 | 39 | http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading 40 | the FAQ page "My application does not run, what could be wrong?". Have you 41 | defined configASSERT()? 42 | 43 | http://www.FreeRTOS.org/support - In return for receiving this top quality 44 | embedded software for free we request you assist our global community by 45 | participating in the support forum. 46 | 47 | http://www.FreeRTOS.org/training - Investing in training allows your team to 48 | be as productive as possible as early as possible. Now you can receive 49 | FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers 50 | Ltd, and the world's leading authority on the world's leading RTOS. 51 | 52 | http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, 53 | including FreeRTOS+Trace - an indispensable productivity tool, a DOS 54 | compatible FAT file system, and our tiny thread aware UDP/IP stack. 55 | 56 | http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. 57 | Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. 58 | 59 | http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High 60 | Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS 61 | licenses offer ticketed support, indemnification and commercial middleware. 62 | 63 | http://www.SafeRTOS.com - High Integrity Systems also provide a safety 64 | engineered and independently SIL3 certified version for use in safety and 65 | mission critical applications that require provable dependability. 66 | 67 | 1 tab == 4 spaces! 68 | */ 69 | 70 | #ifndef COMTEST_H 71 | #define COMTEST_H 72 | 73 | void vAltStartComTestTasks( UBaseType_t uxPriority, uint32_t ulBaudRate, UBaseType_t uxLED ); 74 | BaseType_t xAreComTestTasksStillRunning( void ); 75 | 76 | #endif 77 | 78 | -------------------------------------------------------------------------------- /FreeRTOS_on_Spike/Demo/Common/include/comtest_strings.h: -------------------------------------------------------------------------------- 1 | /* 2 | FreeRTOS V8.2.3 - Copyright (C) 2015 Real Time Engineers Ltd. 3 | All rights reserved 4 | 5 | VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. 6 | 7 | This file is part of the FreeRTOS distribution. 8 | 9 | FreeRTOS is free software; you can redistribute it and/or modify it under 10 | the terms of the GNU General Public License (version 2) as published by the 11 | Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. 12 | 13 | *************************************************************************** 14 | >>! NOTE: The modification to the GPL is included to allow you to !<< 15 | >>! distribute a combined work that includes FreeRTOS without being !<< 16 | >>! obliged to provide the source code for proprietary components !<< 17 | >>! outside of the FreeRTOS kernel. !<< 18 | *************************************************************************** 19 | 20 | FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY 21 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 22 | FOR A PARTICULAR PURPOSE. Full license text is available on the following 23 | link: http://www.freertos.org/a00114.html 24 | 25 | *************************************************************************** 26 | * * 27 | * FreeRTOS provides completely free yet professionally developed, * 28 | * robust, strictly quality controlled, supported, and cross * 29 | * platform software that is more than just the market leader, it * 30 | * is the industry's de facto standard. * 31 | * * 32 | * Help yourself get started quickly while simultaneously helping * 33 | * to support the FreeRTOS project by purchasing a FreeRTOS * 34 | * tutorial book, reference manual, or both: * 35 | * http://www.FreeRTOS.org/Documentation * 36 | * * 37 | *************************************************************************** 38 | 39 | http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading 40 | the FAQ page "My application does not run, what could be wrong?". Have you 41 | defined configASSERT()? 42 | 43 | http://www.FreeRTOS.org/support - In return for receiving this top quality 44 | embedded software for free we request you assist our global community by 45 | participating in the support forum. 46 | 47 | http://www.FreeRTOS.org/training - Investing in training allows your team to 48 | be as productive as possible as early as possible. Now you can receive 49 | FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers 50 | Ltd, and the world's leading authority on the world's leading RTOS. 51 | 52 | http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, 53 | including FreeRTOS+Trace - an indispensable productivity tool, a DOS 54 | compatible FAT file system, and our tiny thread aware UDP/IP stack. 55 | 56 | http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. 57 | Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. 58 | 59 | http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High 60 | Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS 61 | licenses offer ticketed support, indemnification and commercial middleware. 62 | 63 | http://www.SafeRTOS.com - High Integrity Systems also provide a safety 64 | engineered and independently SIL3 certified version for use in safety and 65 | mission critical applications that require provable dependability. 66 | 67 | 1 tab == 4 spaces! 68 | */ 69 | 70 | #ifndef COMTEST_STRINGS_H 71 | #define COMTEST_STRINGS_H 72 | 73 | void vStartComTestStringsTasks( UBaseType_t uxPriority, uint32_t ulBaudRate, UBaseType_t uxLED ); 74 | BaseType_t xAreComTestTasksStillRunning( void ); 75 | 76 | #endif 77 | 78 | -------------------------------------------------------------------------------- /FreeRTOS_on_Spike/Demo/Common/include/countsem.h: -------------------------------------------------------------------------------- 1 | /* 2 | FreeRTOS V8.2.3 - Copyright (C) 2015 Real Time Engineers Ltd. 3 | All rights reserved 4 | 5 | VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. 6 | 7 | This file is part of the FreeRTOS distribution. 8 | 9 | FreeRTOS is free software; you can redistribute it and/or modify it under 10 | the terms of the GNU General Public License (version 2) as published by the 11 | Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. 12 | 13 | *************************************************************************** 14 | >>! NOTE: The modification to the GPL is included to allow you to !<< 15 | >>! distribute a combined work that includes FreeRTOS without being !<< 16 | >>! obliged to provide the source code for proprietary components !<< 17 | >>! outside of the FreeRTOS kernel. !<< 18 | *************************************************************************** 19 | 20 | FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY 21 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 22 | FOR A PARTICULAR PURPOSE. Full license text is available on the following 23 | link: http://www.freertos.org/a00114.html 24 | 25 | *************************************************************************** 26 | * * 27 | * FreeRTOS provides completely free yet professionally developed, * 28 | * robust, strictly quality controlled, supported, and cross * 29 | * platform software that is more than just the market leader, it * 30 | * is the industry's de facto standard. * 31 | * * 32 | * Help yourself get started quickly while simultaneously helping * 33 | * to support the FreeRTOS project by purchasing a FreeRTOS * 34 | * tutorial book, reference manual, or both: * 35 | * http://www.FreeRTOS.org/Documentation * 36 | * * 37 | *************************************************************************** 38 | 39 | http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading 40 | the FAQ page "My application does not run, what could be wrong?". Have you 41 | defined configASSERT()? 42 | 43 | http://www.FreeRTOS.org/support - In return for receiving this top quality 44 | embedded software for free we request you assist our global community by 45 | participating in the support forum. 46 | 47 | http://www.FreeRTOS.org/training - Investing in training allows your team to 48 | be as productive as possible as early as possible. Now you can receive 49 | FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers 50 | Ltd, and the world's leading authority on the world's leading RTOS. 51 | 52 | http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, 53 | including FreeRTOS+Trace - an indispensable productivity tool, a DOS 54 | compatible FAT file system, and our tiny thread aware UDP/IP stack. 55 | 56 | http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. 57 | Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. 58 | 59 | http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High 60 | Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS 61 | licenses offer ticketed support, indemnification and commercial middleware. 62 | 63 | http://www.SafeRTOS.com - High Integrity Systems also provide a safety 64 | engineered and independently SIL3 certified version for use in safety and 65 | mission critical applications that require provable dependability. 66 | 67 | 1 tab == 4 spaces! 68 | */ 69 | 70 | #ifndef COUNT_SEMAPHORE_TEST_H 71 | #define COUNT_SEMAPHORE_TEST_H 72 | 73 | void vStartCountingSemaphoreTasks( void ); 74 | BaseType_t xAreCountingSemaphoreTasksStillRunning( void ); 75 | 76 | #endif 77 | 78 | -------------------------------------------------------------------------------- /FreeRTOS_on_Spike/Demo/Common/include/crflash.h: -------------------------------------------------------------------------------- 1 | /* 2 | FreeRTOS V8.2.3 - Copyright (C) 2015 Real Time Engineers Ltd. 3 | All rights reserved 4 | 5 | VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. 6 | 7 | This file is part of the FreeRTOS distribution. 8 | 9 | FreeRTOS is free software; you can redistribute it and/or modify it under 10 | the terms of the GNU General Public License (version 2) as published by the 11 | Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. 12 | 13 | *************************************************************************** 14 | >>! NOTE: The modification to the GPL is included to allow you to !<< 15 | >>! distribute a combined work that includes FreeRTOS without being !<< 16 | >>! obliged to provide the source code for proprietary components !<< 17 | >>! outside of the FreeRTOS kernel. !<< 18 | *************************************************************************** 19 | 20 | FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY 21 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 22 | FOR A PARTICULAR PURPOSE. Full license text is available on the following 23 | link: http://www.freertos.org/a00114.html 24 | 25 | *************************************************************************** 26 | * * 27 | * FreeRTOS provides completely free yet professionally developed, * 28 | * robust, strictly quality controlled, supported, and cross * 29 | * platform software that is more than just the market leader, it * 30 | * is the industry's de facto standard. * 31 | * * 32 | * Help yourself get started quickly while simultaneously helping * 33 | * to support the FreeRTOS project by purchasing a FreeRTOS * 34 | * tutorial book, reference manual, or both: * 35 | * http://www.FreeRTOS.org/Documentation * 36 | * * 37 | *************************************************************************** 38 | 39 | http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading 40 | the FAQ page "My application does not run, what could be wrong?". Have you 41 | defined configASSERT()? 42 | 43 | http://www.FreeRTOS.org/support - In return for receiving this top quality 44 | embedded software for free we request you assist our global community by 45 | participating in the support forum. 46 | 47 | http://www.FreeRTOS.org/training - Investing in training allows your team to 48 | be as productive as possible as early as possible. Now you can receive 49 | FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers 50 | Ltd, and the world's leading authority on the world's leading RTOS. 51 | 52 | http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, 53 | including FreeRTOS+Trace - an indispensable productivity tool, a DOS 54 | compatible FAT file system, and our tiny thread aware UDP/IP stack. 55 | 56 | http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. 57 | Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. 58 | 59 | http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High 60 | Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS 61 | licenses offer ticketed support, indemnification and commercial middleware. 62 | 63 | http://www.SafeRTOS.com - High Integrity Systems also provide a safety 64 | engineered and independently SIL3 certified version for use in safety and 65 | mission critical applications that require provable dependability. 66 | 67 | 1 tab == 4 spaces! 68 | */ 69 | 70 | #ifndef CRFLASH_LED_H 71 | #define CRFLASH_LED_H 72 | 73 | /* 74 | * Create the co-routines used to flash the LED's at different rates. 75 | * 76 | * @param uxPriority The number of 'fixed delay' co-routines to create. This 77 | * also effects the number of LED's that will be utilised. For example, 78 | * passing in 3 will cause LED's 0 to 2 to be utilised. 79 | */ 80 | void vStartFlashCoRoutines( UBaseType_t uxPriority ); 81 | 82 | /* 83 | * Return pdPASS or pdFAIL depending on whether an error has been detected 84 | * or not. 85 | */ 86 | BaseType_t xAreFlashCoRoutinesStillRunning( void ); 87 | 88 | #endif 89 | 90 | -------------------------------------------------------------------------------- /FreeRTOS_on_Spike/Demo/Common/include/crhook.h: -------------------------------------------------------------------------------- 1 | /* 2 | FreeRTOS V8.2.3 - Copyright (C) 2015 Real Time Engineers Ltd. 3 | All rights reserved 4 | 5 | VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. 6 | 7 | This file is part of the FreeRTOS distribution. 8 | 9 | FreeRTOS is free software; you can redistribute it and/or modify it under 10 | the terms of the GNU General Public License (version 2) as published by the 11 | Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. 12 | 13 | *************************************************************************** 14 | >>! NOTE: The modification to the GPL is included to allow you to !<< 15 | >>! distribute a combined work that includes FreeRTOS without being !<< 16 | >>! obliged to provide the source code for proprietary components !<< 17 | >>! outside of the FreeRTOS kernel. !<< 18 | *************************************************************************** 19 | 20 | FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY 21 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 22 | FOR A PARTICULAR PURPOSE. Full license text is available on the following 23 | link: http://www.freertos.org/a00114.html 24 | 25 | *************************************************************************** 26 | * * 27 | * FreeRTOS provides completely free yet professionally developed, * 28 | * robust, strictly quality controlled, supported, and cross * 29 | * platform software that is more than just the market leader, it * 30 | * is the industry's de facto standard. * 31 | * * 32 | * Help yourself get started quickly while simultaneously helping * 33 | * to support the FreeRTOS project by purchasing a FreeRTOS * 34 | * tutorial book, reference manual, or both: * 35 | * http://www.FreeRTOS.org/Documentation * 36 | * * 37 | *************************************************************************** 38 | 39 | http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading 40 | the FAQ page "My application does not run, what could be wrong?". Have you 41 | defined configASSERT()? 42 | 43 | http://www.FreeRTOS.org/support - In return for receiving this top quality 44 | embedded software for free we request you assist our global community by 45 | participating in the support forum. 46 | 47 | http://www.FreeRTOS.org/training - Investing in training allows your team to 48 | be as productive as possible as early as possible. Now you can receive 49 | FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers 50 | Ltd, and the world's leading authority on the world's leading RTOS. 51 | 52 | http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, 53 | including FreeRTOS+Trace - an indispensable productivity tool, a DOS 54 | compatible FAT file system, and our tiny thread aware UDP/IP stack. 55 | 56 | http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. 57 | Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. 58 | 59 | http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High 60 | Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS 61 | licenses offer ticketed support, indemnification and commercial middleware. 62 | 63 | http://www.SafeRTOS.com - High Integrity Systems also provide a safety 64 | engineered and independently SIL3 certified version for use in safety and 65 | mission critical applications that require provable dependability. 66 | 67 | 1 tab == 4 spaces! 68 | */ 69 | 70 | #ifndef CRHOOK_H 71 | #define CRHOOK_H 72 | 73 | /* 74 | * Create the co-routines used to communicate wit the tick hook. 75 | */ 76 | void vStartHookCoRoutines( void ); 77 | 78 | /* 79 | * Return pdPASS or pdFAIL depending on whether an error has been detected 80 | * or not. 81 | */ 82 | BaseType_t xAreHookCoRoutinesStillRunning( void ); 83 | 84 | #endif 85 | 86 | -------------------------------------------------------------------------------- /FreeRTOS_on_Spike/Demo/Common/include/death.h: -------------------------------------------------------------------------------- 1 | /* 2 | FreeRTOS V8.2.3 - Copyright (C) 2015 Real Time Engineers Ltd. 3 | All rights reserved 4 | 5 | VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. 6 | 7 | This file is part of the FreeRTOS distribution. 8 | 9 | FreeRTOS is free software; you can redistribute it and/or modify it under 10 | the terms of the GNU General Public License (version 2) as published by the 11 | Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. 12 | 13 | *************************************************************************** 14 | >>! NOTE: The modification to the GPL is included to allow you to !<< 15 | >>! distribute a combined work that includes FreeRTOS without being !<< 16 | >>! obliged to provide the source code for proprietary components !<< 17 | >>! outside of the FreeRTOS kernel. !<< 18 | *************************************************************************** 19 | 20 | FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY 21 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 22 | FOR A PARTICULAR PURPOSE. Full license text is available on the following 23 | link: http://www.freertos.org/a00114.html 24 | 25 | *************************************************************************** 26 | * * 27 | * FreeRTOS provides completely free yet professionally developed, * 28 | * robust, strictly quality controlled, supported, and cross * 29 | * platform software that is more than just the market leader, it * 30 | * is the industry's de facto standard. * 31 | * * 32 | * Help yourself get started quickly while simultaneously helping * 33 | * to support the FreeRTOS project by purchasing a FreeRTOS * 34 | * tutorial book, reference manual, or both: * 35 | * http://www.FreeRTOS.org/Documentation * 36 | * * 37 | *************************************************************************** 38 | 39 | http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading 40 | the FAQ page "My application does not run, what could be wrong?". Have you 41 | defined configASSERT()? 42 | 43 | http://www.FreeRTOS.org/support - In return for receiving this top quality 44 | embedded software for free we request you assist our global community by 45 | participating in the support forum. 46 | 47 | http://www.FreeRTOS.org/training - Investing in training allows your team to 48 | be as productive as possible as early as possible. Now you can receive 49 | FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers 50 | Ltd, and the world's leading authority on the world's leading RTOS. 51 | 52 | http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, 53 | including FreeRTOS+Trace - an indispensable productivity tool, a DOS 54 | compatible FAT file system, and our tiny thread aware UDP/IP stack. 55 | 56 | http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. 57 | Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. 58 | 59 | http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High 60 | Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS 61 | licenses offer ticketed support, indemnification and commercial middleware. 62 | 63 | http://www.SafeRTOS.com - High Integrity Systems also provide a safety 64 | engineered and independently SIL3 certified version for use in safety and 65 | mission critical applications that require provable dependability. 66 | 67 | 1 tab == 4 spaces! 68 | */ 69 | 70 | #ifndef SUICIDE_TASK_H 71 | #define SUICIDE_TASK_H 72 | 73 | void vCreateSuicidalTasks( UBaseType_t uxPriority ); 74 | BaseType_t xIsCreateTaskStillRunning( void ); 75 | 76 | #endif 77 | 78 | 79 | -------------------------------------------------------------------------------- /FreeRTOS_on_Spike/Demo/Common/include/dynamic.h: -------------------------------------------------------------------------------- 1 | /* 2 | FreeRTOS V8.2.3 - Copyright (C) 2015 Real Time Engineers Ltd. 3 | All rights reserved 4 | 5 | VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. 6 | 7 | This file is part of the FreeRTOS distribution. 8 | 9 | FreeRTOS is free software; you can redistribute it and/or modify it under 10 | the terms of the GNU General Public License (version 2) as published by the 11 | Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. 12 | 13 | *************************************************************************** 14 | >>! NOTE: The modification to the GPL is included to allow you to !<< 15 | >>! distribute a combined work that includes FreeRTOS without being !<< 16 | >>! obliged to provide the source code for proprietary components !<< 17 | >>! outside of the FreeRTOS kernel. !<< 18 | *************************************************************************** 19 | 20 | FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY 21 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 22 | FOR A PARTICULAR PURPOSE. Full license text is available on the following 23 | link: http://www.freertos.org/a00114.html 24 | 25 | *************************************************************************** 26 | * * 27 | * FreeRTOS provides completely free yet professionally developed, * 28 | * robust, strictly quality controlled, supported, and cross * 29 | * platform software that is more than just the market leader, it * 30 | * is the industry's de facto standard. * 31 | * * 32 | * Help yourself get started quickly while simultaneously helping * 33 | * to support the FreeRTOS project by purchasing a FreeRTOS * 34 | * tutorial book, reference manual, or both: * 35 | * http://www.FreeRTOS.org/Documentation * 36 | * * 37 | *************************************************************************** 38 | 39 | http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading 40 | the FAQ page "My application does not run, what could be wrong?". Have you 41 | defined configASSERT()? 42 | 43 | http://www.FreeRTOS.org/support - In return for receiving this top quality 44 | embedded software for free we request you assist our global community by 45 | participating in the support forum. 46 | 47 | http://www.FreeRTOS.org/training - Investing in training allows your team to 48 | be as productive as possible as early as possible. Now you can receive 49 | FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers 50 | Ltd, and the world's leading authority on the world's leading RTOS. 51 | 52 | http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, 53 | including FreeRTOS+Trace - an indispensable productivity tool, a DOS 54 | compatible FAT file system, and our tiny thread aware UDP/IP stack. 55 | 56 | http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. 57 | Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. 58 | 59 | http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High 60 | Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS 61 | licenses offer ticketed support, indemnification and commercial middleware. 62 | 63 | http://www.SafeRTOS.com - High Integrity Systems also provide a safety 64 | engineered and independently SIL3 certified version for use in safety and 65 | mission critical applications that require provable dependability. 66 | 67 | 1 tab == 4 spaces! 68 | */ 69 | 70 | #ifndef DYNAMIC_MANIPULATION_H 71 | #define DYNAMIC_MANIPULATION_H 72 | 73 | void vStartDynamicPriorityTasks( void ); 74 | BaseType_t xAreDynamicPriorityTasksStillRunning( void ); 75 | 76 | #endif 77 | 78 | 79 | -------------------------------------------------------------------------------- /FreeRTOS_on_Spike/Demo/Common/include/fileIO.h: -------------------------------------------------------------------------------- 1 | /* 2 | FreeRTOS V8.2.3 - Copyright (C) 2015 Real Time Engineers Ltd. 3 | All rights reserved 4 | 5 | VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. 6 | 7 | This file is part of the FreeRTOS distribution. 8 | 9 | FreeRTOS is free software; you can redistribute it and/or modify it under 10 | the terms of the GNU General Public License (version 2) as published by the 11 | Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. 12 | 13 | *************************************************************************** 14 | >>! NOTE: The modification to the GPL is included to allow you to !<< 15 | >>! distribute a combined work that includes FreeRTOS without being !<< 16 | >>! obliged to provide the source code for proprietary components !<< 17 | >>! outside of the FreeRTOS kernel. !<< 18 | *************************************************************************** 19 | 20 | FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY 21 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 22 | FOR A PARTICULAR PURPOSE. Full license text is available on the following 23 | link: http://www.freertos.org/a00114.html 24 | 25 | *************************************************************************** 26 | * * 27 | * FreeRTOS provides completely free yet professionally developed, * 28 | * robust, strictly quality controlled, supported, and cross * 29 | * platform software that is more than just the market leader, it * 30 | * is the industry's de facto standard. * 31 | * * 32 | * Help yourself get started quickly while simultaneously helping * 33 | * to support the FreeRTOS project by purchasing a FreeRTOS * 34 | * tutorial book, reference manual, or both: * 35 | * http://www.FreeRTOS.org/Documentation * 36 | * * 37 | *************************************************************************** 38 | 39 | http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading 40 | the FAQ page "My application does not run, what could be wrong?". Have you 41 | defined configASSERT()? 42 | 43 | http://www.FreeRTOS.org/support - In return for receiving this top quality 44 | embedded software for free we request you assist our global community by 45 | participating in the support forum. 46 | 47 | http://www.FreeRTOS.org/training - Investing in training allows your team to 48 | be as productive as possible as early as possible. Now you can receive 49 | FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers 50 | Ltd, and the world's leading authority on the world's leading RTOS. 51 | 52 | http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, 53 | including FreeRTOS+Trace - an indispensable productivity tool, a DOS 54 | compatible FAT file system, and our tiny thread aware UDP/IP stack. 55 | 56 | http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. 57 | Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. 58 | 59 | http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High 60 | Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS 61 | licenses offer ticketed support, indemnification and commercial middleware. 62 | 63 | http://www.SafeRTOS.com - High Integrity Systems also provide a safety 64 | engineered and independently SIL3 certified version for use in safety and 65 | mission critical applications that require provable dependability. 66 | 67 | 1 tab == 4 spaces! 68 | */ 69 | 70 | #ifndef FILE_IO_H 71 | #define FILE_OI_H 72 | 73 | void vDisplayMessage( const char * const pcMessageToPrint ); 74 | void vWriteMessageToDisk( const char * const pcMessage ); 75 | void vWriteBufferToDisk( const char * const pcBuffer, uint32_t ulBufferLength ); 76 | 77 | #endif 78 | 79 | -------------------------------------------------------------------------------- /FreeRTOS_on_Spike/Demo/Common/include/flash.h: -------------------------------------------------------------------------------- 1 | /* 2 | FreeRTOS V8.2.3 - Copyright (C) 2015 Real Time Engineers Ltd. 3 | All rights reserved 4 | 5 | VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. 6 | 7 | This file is part of the FreeRTOS distribution. 8 | 9 | FreeRTOS is free software; you can redistribute it and/or modify it under 10 | the terms of the GNU General Public License (version 2) as published by the 11 | Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. 12 | 13 | *************************************************************************** 14 | >>! NOTE: The modification to the GPL is included to allow you to !<< 15 | >>! distribute a combined work that includes FreeRTOS without being !<< 16 | >>! obliged to provide the source code for proprietary components !<< 17 | >>! outside of the FreeRTOS kernel. !<< 18 | *************************************************************************** 19 | 20 | FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY 21 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 22 | FOR A PARTICULAR PURPOSE. Full license text is available on the following 23 | link: http://www.freertos.org/a00114.html 24 | 25 | *************************************************************************** 26 | * * 27 | * FreeRTOS provides completely free yet professionally developed, * 28 | * robust, strictly quality controlled, supported, and cross * 29 | * platform software that is more than just the market leader, it * 30 | * is the industry's de facto standard. * 31 | * * 32 | * Help yourself get started quickly while simultaneously helping * 33 | * to support the FreeRTOS project by purchasing a FreeRTOS * 34 | * tutorial book, reference manual, or both: * 35 | * http://www.FreeRTOS.org/Documentation * 36 | * * 37 | *************************************************************************** 38 | 39 | http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading 40 | the FAQ page "My application does not run, what could be wrong?". Have you 41 | defined configASSERT()? 42 | 43 | http://www.FreeRTOS.org/support - In return for receiving this top quality 44 | embedded software for free we request you assist our global community by 45 | participating in the support forum. 46 | 47 | http://www.FreeRTOS.org/training - Investing in training allows your team to 48 | be as productive as possible as early as possible. Now you can receive 49 | FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers 50 | Ltd, and the world's leading authority on the world's leading RTOS. 51 | 52 | http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, 53 | including FreeRTOS+Trace - an indispensable productivity tool, a DOS 54 | compatible FAT file system, and our tiny thread aware UDP/IP stack. 55 | 56 | http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. 57 | Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. 58 | 59 | http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High 60 | Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS 61 | licenses offer ticketed support, indemnification and commercial middleware. 62 | 63 | http://www.SafeRTOS.com - High Integrity Systems also provide a safety 64 | engineered and independently SIL3 certified version for use in safety and 65 | mission critical applications that require provable dependability. 66 | 67 | 1 tab == 4 spaces! 68 | */ 69 | 70 | #ifndef FLASH_LED_H 71 | #define FLASH_LED_H 72 | 73 | void vStartLEDFlashTasks( UBaseType_t uxPriority ); 74 | 75 | #endif 76 | 77 | -------------------------------------------------------------------------------- /FreeRTOS_on_Spike/Demo/Common/include/flash_timer.h: -------------------------------------------------------------------------------- 1 | /* 2 | FreeRTOS V8.2.3 - Copyright (C) 2015 Real Time Engineers Ltd. 3 | All rights reserved 4 | 5 | VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. 6 | 7 | This file is part of the FreeRTOS distribution. 8 | 9 | FreeRTOS is free software; you can redistribute it and/or modify it under 10 | the terms of the GNU General Public License (version 2) as published by the 11 | Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. 12 | 13 | *************************************************************************** 14 | >>! NOTE: The modification to the GPL is included to allow you to !<< 15 | >>! distribute a combined work that includes FreeRTOS without being !<< 16 | >>! obliged to provide the source code for proprietary components !<< 17 | >>! outside of the FreeRTOS kernel. !<< 18 | *************************************************************************** 19 | 20 | FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY 21 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 22 | FOR A PARTICULAR PURPOSE. Full license text is available on the following 23 | link: http://www.freertos.org/a00114.html 24 | 25 | *************************************************************************** 26 | * * 27 | * FreeRTOS provides completely free yet professionally developed, * 28 | * robust, strictly quality controlled, supported, and cross * 29 | * platform software that is more than just the market leader, it * 30 | * is the industry's de facto standard. * 31 | * * 32 | * Help yourself get started quickly while simultaneously helping * 33 | * to support the FreeRTOS project by purchasing a FreeRTOS * 34 | * tutorial book, reference manual, or both: * 35 | * http://www.FreeRTOS.org/Documentation * 36 | * * 37 | *************************************************************************** 38 | 39 | http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading 40 | the FAQ page "My application does not run, what could be wrong?". Have you 41 | defined configASSERT()? 42 | 43 | http://www.FreeRTOS.org/support - In return for receiving this top quality 44 | embedded software for free we request you assist our global community by 45 | participating in the support forum. 46 | 47 | http://www.FreeRTOS.org/training - Investing in training allows your team to 48 | be as productive as possible as early as possible. Now you can receive 49 | FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers 50 | Ltd, and the world's leading authority on the world's leading RTOS. 51 | 52 | http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, 53 | including FreeRTOS+Trace - an indispensable productivity tool, a DOS 54 | compatible FAT file system, and our tiny thread aware UDP/IP stack. 55 | 56 | http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. 57 | Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. 58 | 59 | http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High 60 | Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS 61 | licenses offer ticketed support, indemnification and commercial middleware. 62 | 63 | http://www.SafeRTOS.com - High Integrity Systems also provide a safety 64 | engineered and independently SIL3 certified version for use in safety and 65 | mission critical applications that require provable dependability. 66 | 67 | 1 tab == 4 spaces! 68 | */ 69 | 70 | #ifndef FLASH_TIMER_H 71 | #define FLASH_TIMER_H 72 | 73 | /* 74 | * Creates the LED flashing timers. xNumberOfLEDs specifies how many timers to 75 | * create, with each timer toggling a different LED. The first LED to be 76 | * toggled is LED 0, with subsequent LEDs following on in numerical order. Each 77 | * timer uses the exact same callback function, with the timer ID being used 78 | * within the callback function to determine which timer has actually expired 79 | * (and therefore which LED to toggle). 80 | */ 81 | void vStartLEDFlashTimers( UBaseType_t uxNumberOfLEDs ); 82 | 83 | #endif /* FLASH_TIMER_H */ 84 | -------------------------------------------------------------------------------- /FreeRTOS_on_Spike/Demo/Common/include/flop.h: -------------------------------------------------------------------------------- 1 | /* 2 | FreeRTOS V8.2.3 - Copyright (C) 2015 Real Time Engineers Ltd. 3 | All rights reserved 4 | 5 | VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. 6 | 7 | This file is part of the FreeRTOS distribution. 8 | 9 | FreeRTOS is free software; you can redistribute it and/or modify it under 10 | the terms of the GNU General Public License (version 2) as published by the 11 | Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. 12 | 13 | *************************************************************************** 14 | >>! NOTE: The modification to the GPL is included to allow you to !<< 15 | >>! distribute a combined work that includes FreeRTOS without being !<< 16 | >>! obliged to provide the source code for proprietary components !<< 17 | >>! outside of the FreeRTOS kernel. !<< 18 | *************************************************************************** 19 | 20 | FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY 21 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 22 | FOR A PARTICULAR PURPOSE. Full license text is available on the following 23 | link: http://www.freertos.org/a00114.html 24 | 25 | *************************************************************************** 26 | * * 27 | * FreeRTOS provides completely free yet professionally developed, * 28 | * robust, strictly quality controlled, supported, and cross * 29 | * platform software that is more than just the market leader, it * 30 | * is the industry's de facto standard. * 31 | * * 32 | * Help yourself get started quickly while simultaneously helping * 33 | * to support the FreeRTOS project by purchasing a FreeRTOS * 34 | * tutorial book, reference manual, or both: * 35 | * http://www.FreeRTOS.org/Documentation * 36 | * * 37 | *************************************************************************** 38 | 39 | http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading 40 | the FAQ page "My application does not run, what could be wrong?". Have you 41 | defined configASSERT()? 42 | 43 | http://www.FreeRTOS.org/support - In return for receiving this top quality 44 | embedded software for free we request you assist our global community by 45 | participating in the support forum. 46 | 47 | http://www.FreeRTOS.org/training - Investing in training allows your team to 48 | be as productive as possible as early as possible. Now you can receive 49 | FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers 50 | Ltd, and the world's leading authority on the world's leading RTOS. 51 | 52 | http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, 53 | including FreeRTOS+Trace - an indispensable productivity tool, a DOS 54 | compatible FAT file system, and our tiny thread aware UDP/IP stack. 55 | 56 | http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. 57 | Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. 58 | 59 | http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High 60 | Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS 61 | licenses offer ticketed support, indemnification and commercial middleware. 62 | 63 | http://www.SafeRTOS.com - High Integrity Systems also provide a safety 64 | engineered and independently SIL3 certified version for use in safety and 65 | mission critical applications that require provable dependability. 66 | 67 | 1 tab == 4 spaces! 68 | */ 69 | 70 | #ifndef FLOP_TASKS_H 71 | #define FLOP_TASKS_H 72 | 73 | void vStartMathTasks( UBaseType_t uxPriority ); 74 | BaseType_t xAreMathsTaskStillRunning( void ); 75 | 76 | #endif 77 | 78 | 79 | -------------------------------------------------------------------------------- /FreeRTOS_on_Spike/Demo/Common/include/integer.h: -------------------------------------------------------------------------------- 1 | /* 2 | FreeRTOS V8.2.3 - Copyright (C) 2015 Real Time Engineers Ltd. 3 | All rights reserved 4 | 5 | VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. 6 | 7 | This file is part of the FreeRTOS distribution. 8 | 9 | FreeRTOS is free software; you can redistribute it and/or modify it under 10 | the terms of the GNU General Public License (version 2) as published by the 11 | Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. 12 | 13 | *************************************************************************** 14 | >>! NOTE: The modification to the GPL is included to allow you to !<< 15 | >>! distribute a combined work that includes FreeRTOS without being !<< 16 | >>! obliged to provide the source code for proprietary components !<< 17 | >>! outside of the FreeRTOS kernel. !<< 18 | *************************************************************************** 19 | 20 | FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY 21 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 22 | FOR A PARTICULAR PURPOSE. Full license text is available on the following 23 | link: http://www.freertos.org/a00114.html 24 | 25 | *************************************************************************** 26 | * * 27 | * FreeRTOS provides completely free yet professionally developed, * 28 | * robust, strictly quality controlled, supported, and cross * 29 | * platform software that is more than just the market leader, it * 30 | * is the industry's de facto standard. * 31 | * * 32 | * Help yourself get started quickly while simultaneously helping * 33 | * to support the FreeRTOS project by purchasing a FreeRTOS * 34 | * tutorial book, reference manual, or both: * 35 | * http://www.FreeRTOS.org/Documentation * 36 | * * 37 | *************************************************************************** 38 | 39 | http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading 40 | the FAQ page "My application does not run, what could be wrong?". Have you 41 | defined configASSERT()? 42 | 43 | http://www.FreeRTOS.org/support - In return for receiving this top quality 44 | embedded software for free we request you assist our global community by 45 | participating in the support forum. 46 | 47 | http://www.FreeRTOS.org/training - Investing in training allows your team to 48 | be as productive as possible as early as possible. Now you can receive 49 | FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers 50 | Ltd, and the world's leading authority on the world's leading RTOS. 51 | 52 | http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, 53 | including FreeRTOS+Trace - an indispensable productivity tool, a DOS 54 | compatible FAT file system, and our tiny thread aware UDP/IP stack. 55 | 56 | http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. 57 | Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. 58 | 59 | http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High 60 | Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS 61 | licenses offer ticketed support, indemnification and commercial middleware. 62 | 63 | http://www.SafeRTOS.com - High Integrity Systems also provide a safety 64 | engineered and independently SIL3 certified version for use in safety and 65 | mission critical applications that require provable dependability. 66 | 67 | 1 tab == 4 spaces! 68 | */ 69 | 70 | #ifndef INTEGER_TASKS_H 71 | #define INTEGER_TASKS_H 72 | 73 | void vStartIntegerMathTasks( UBaseType_t uxPriority ); 74 | BaseType_t xAreIntegerMathsTaskStillRunning( void ); 75 | 76 | #endif 77 | 78 | 79 | -------------------------------------------------------------------------------- /FreeRTOS_on_Spike/Demo/Common/include/mevents.h: -------------------------------------------------------------------------------- 1 | /* 2 | FreeRTOS V8.2.3 - Copyright (C) 2015 Real Time Engineers Ltd. 3 | All rights reserved 4 | 5 | VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. 6 | 7 | This file is part of the FreeRTOS distribution. 8 | 9 | FreeRTOS is free software; you can redistribute it and/or modify it under 10 | the terms of the GNU General Public License (version 2) as published by the 11 | Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. 12 | 13 | *************************************************************************** 14 | >>! NOTE: The modification to the GPL is included to allow you to !<< 15 | >>! distribute a combined work that includes FreeRTOS without being !<< 16 | >>! obliged to provide the source code for proprietary components !<< 17 | >>! outside of the FreeRTOS kernel. !<< 18 | *************************************************************************** 19 | 20 | FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY 21 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 22 | FOR A PARTICULAR PURPOSE. Full license text is available on the following 23 | link: http://www.freertos.org/a00114.html 24 | 25 | *************************************************************************** 26 | * * 27 | * FreeRTOS provides completely free yet professionally developed, * 28 | * robust, strictly quality controlled, supported, and cross * 29 | * platform software that is more than just the market leader, it * 30 | * is the industry's de facto standard. * 31 | * * 32 | * Help yourself get started quickly while simultaneously helping * 33 | * to support the FreeRTOS project by purchasing a FreeRTOS * 34 | * tutorial book, reference manual, or both: * 35 | * http://www.FreeRTOS.org/Documentation * 36 | * * 37 | *************************************************************************** 38 | 39 | http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading 40 | the FAQ page "My application does not run, what could be wrong?". Have you 41 | defined configASSERT()? 42 | 43 | http://www.FreeRTOS.org/support - In return for receiving this top quality 44 | embedded software for free we request you assist our global community by 45 | participating in the support forum. 46 | 47 | http://www.FreeRTOS.org/training - Investing in training allows your team to 48 | be as productive as possible as early as possible. Now you can receive 49 | FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers 50 | Ltd, and the world's leading authority on the world's leading RTOS. 51 | 52 | http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, 53 | including FreeRTOS+Trace - an indispensable productivity tool, a DOS 54 | compatible FAT file system, and our tiny thread aware UDP/IP stack. 55 | 56 | http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. 57 | Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. 58 | 59 | http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High 60 | Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS 61 | licenses offer ticketed support, indemnification and commercial middleware. 62 | 63 | http://www.SafeRTOS.com - High Integrity Systems also provide a safety 64 | engineered and independently SIL3 certified version for use in safety and 65 | mission critical applications that require provable dependability. 66 | 67 | 1 tab == 4 spaces! 68 | */ 69 | 70 | #ifndef EVENTS_TEST_H 71 | #define EVENTS_TEST_H 72 | 73 | void vStartMultiEventTasks( void ); 74 | BaseType_t xAreMultiEventTasksStillRunning( void ); 75 | 76 | #endif 77 | 78 | 79 | -------------------------------------------------------------------------------- /FreeRTOS_on_Spike/Demo/Common/include/partest.h: -------------------------------------------------------------------------------- 1 | /* 2 | FreeRTOS V8.2.3 - Copyright (C) 2015 Real Time Engineers Ltd. 3 | All rights reserved 4 | 5 | VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. 6 | 7 | This file is part of the FreeRTOS distribution. 8 | 9 | FreeRTOS is free software; you can redistribute it and/or modify it under 10 | the terms of the GNU General Public License (version 2) as published by the 11 | Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. 12 | 13 | *************************************************************************** 14 | >>! NOTE: The modification to the GPL is included to allow you to !<< 15 | >>! distribute a combined work that includes FreeRTOS without being !<< 16 | >>! obliged to provide the source code for proprietary components !<< 17 | >>! outside of the FreeRTOS kernel. !<< 18 | *************************************************************************** 19 | 20 | FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY 21 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 22 | FOR A PARTICULAR PURPOSE. Full license text is available on the following 23 | link: http://www.freertos.org/a00114.html 24 | 25 | *************************************************************************** 26 | * * 27 | * FreeRTOS provides completely free yet professionally developed, * 28 | * robust, strictly quality controlled, supported, and cross * 29 | * platform software that is more than just the market leader, it * 30 | * is the industry's de facto standard. * 31 | * * 32 | * Help yourself get started quickly while simultaneously helping * 33 | * to support the FreeRTOS project by purchasing a FreeRTOS * 34 | * tutorial book, reference manual, or both: * 35 | * http://www.FreeRTOS.org/Documentation * 36 | * * 37 | *************************************************************************** 38 | 39 | http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading 40 | the FAQ page "My application does not run, what could be wrong?". Have you 41 | defined configASSERT()? 42 | 43 | http://www.FreeRTOS.org/support - In return for receiving this top quality 44 | embedded software for free we request you assist our global community by 45 | participating in the support forum. 46 | 47 | http://www.FreeRTOS.org/training - Investing in training allows your team to 48 | be as productive as possible as early as possible. Now you can receive 49 | FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers 50 | Ltd, and the world's leading authority on the world's leading RTOS. 51 | 52 | http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, 53 | including FreeRTOS+Trace - an indispensable productivity tool, a DOS 54 | compatible FAT file system, and our tiny thread aware UDP/IP stack. 55 | 56 | http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. 57 | Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. 58 | 59 | http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High 60 | Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS 61 | licenses offer ticketed support, indemnification and commercial middleware. 62 | 63 | http://www.SafeRTOS.com - High Integrity Systems also provide a safety 64 | engineered and independently SIL3 certified version for use in safety and 65 | mission critical applications that require provable dependability. 66 | 67 | 1 tab == 4 spaces! 68 | */ 69 | 70 | #ifndef PARTEST_H 71 | #define PARTEST_H 72 | 73 | #define partstDEFAULT_PORT_ADDRESS ( ( uint16_t ) 0x378 ) 74 | 75 | void vParTestInitialise( void ); 76 | void vParTestSetLED( UBaseType_t uxLED, BaseType_t xValue ); 77 | void vParTestToggleLED( UBaseType_t uxLED ); 78 | 79 | #endif 80 | 81 | -------------------------------------------------------------------------------- /FreeRTOS_on_Spike/Demo/Common/include/print.h: -------------------------------------------------------------------------------- 1 | /* 2 | FreeRTOS V8.2.3 - Copyright (C) 2015 Real Time Engineers Ltd. 3 | All rights reserved 4 | 5 | VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. 6 | 7 | This file is part of the FreeRTOS distribution. 8 | 9 | FreeRTOS is free software; you can redistribute it and/or modify it under 10 | the terms of the GNU General Public License (version 2) as published by the 11 | Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. 12 | 13 | *************************************************************************** 14 | >>! NOTE: The modification to the GPL is included to allow you to !<< 15 | >>! distribute a combined work that includes FreeRTOS without being !<< 16 | >>! obliged to provide the source code for proprietary components !<< 17 | >>! outside of the FreeRTOS kernel. !<< 18 | *************************************************************************** 19 | 20 | FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY 21 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 22 | FOR A PARTICULAR PURPOSE. Full license text is available on the following 23 | link: http://www.freertos.org/a00114.html 24 | 25 | *************************************************************************** 26 | * * 27 | * FreeRTOS provides completely free yet professionally developed, * 28 | * robust, strictly quality controlled, supported, and cross * 29 | * platform software that is more than just the market leader, it * 30 | * is the industry's de facto standard. * 31 | * * 32 | * Help yourself get started quickly while simultaneously helping * 33 | * to support the FreeRTOS project by purchasing a FreeRTOS * 34 | * tutorial book, reference manual, or both: * 35 | * http://www.FreeRTOS.org/Documentation * 36 | * * 37 | *************************************************************************** 38 | 39 | http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading 40 | the FAQ page "My application does not run, what could be wrong?". Have you 41 | defined configASSERT()? 42 | 43 | http://www.FreeRTOS.org/support - In return for receiving this top quality 44 | embedded software for free we request you assist our global community by 45 | participating in the support forum. 46 | 47 | http://www.FreeRTOS.org/training - Investing in training allows your team to 48 | be as productive as possible as early as possible. Now you can receive 49 | FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers 50 | Ltd, and the world's leading authority on the world's leading RTOS. 51 | 52 | http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, 53 | including FreeRTOS+Trace - an indispensable productivity tool, a DOS 54 | compatible FAT file system, and our tiny thread aware UDP/IP stack. 55 | 56 | http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. 57 | Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. 58 | 59 | http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High 60 | Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS 61 | licenses offer ticketed support, indemnification and commercial middleware. 62 | 63 | http://www.SafeRTOS.com - High Integrity Systems also provide a safety 64 | engineered and independently SIL3 certified version for use in safety and 65 | mission critical applications that require provable dependability. 66 | 67 | 1 tab == 4 spaces! 68 | */ 69 | 70 | #ifndef PRINT_H 71 | #define PRINT_H 72 | 73 | void vPrintInitialise( void ); 74 | void vPrintDisplayMessage( const char * const * pcMessageToSend ); 75 | const char *pcPrintGetNextMessage( TickType_t xPrintRate ); 76 | 77 | #endif 78 | 79 | 80 | -------------------------------------------------------------------------------- /FreeRTOS_on_Spike/Demo/Common/include/recmutex.h: -------------------------------------------------------------------------------- 1 | /* 2 | FreeRTOS V8.2.3 - Copyright (C) 2015 Real Time Engineers Ltd. 3 | All rights reserved 4 | 5 | VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. 6 | 7 | This file is part of the FreeRTOS distribution. 8 | 9 | FreeRTOS is free software; you can redistribute it and/or modify it under 10 | the terms of the GNU General Public License (version 2) as published by the 11 | Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. 12 | 13 | *************************************************************************** 14 | >>! NOTE: The modification to the GPL is included to allow you to !<< 15 | >>! distribute a combined work that includes FreeRTOS without being !<< 16 | >>! obliged to provide the source code for proprietary components !<< 17 | >>! outside of the FreeRTOS kernel. !<< 18 | *************************************************************************** 19 | 20 | FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY 21 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 22 | FOR A PARTICULAR PURPOSE. Full license text is available on the following 23 | link: http://www.freertos.org/a00114.html 24 | 25 | *************************************************************************** 26 | * * 27 | * FreeRTOS provides completely free yet professionally developed, * 28 | * robust, strictly quality controlled, supported, and cross * 29 | * platform software that is more than just the market leader, it * 30 | * is the industry's de facto standard. * 31 | * * 32 | * Help yourself get started quickly while simultaneously helping * 33 | * to support the FreeRTOS project by purchasing a FreeRTOS * 34 | * tutorial book, reference manual, or both: * 35 | * http://www.FreeRTOS.org/Documentation * 36 | * * 37 | *************************************************************************** 38 | 39 | http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading 40 | the FAQ page "My application does not run, what could be wrong?". Have you 41 | defined configASSERT()? 42 | 43 | http://www.FreeRTOS.org/support - In return for receiving this top quality 44 | embedded software for free we request you assist our global community by 45 | participating in the support forum. 46 | 47 | http://www.FreeRTOS.org/training - Investing in training allows your team to 48 | be as productive as possible as early as possible. Now you can receive 49 | FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers 50 | Ltd, and the world's leading authority on the world's leading RTOS. 51 | 52 | http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, 53 | including FreeRTOS+Trace - an indispensable productivity tool, a DOS 54 | compatible FAT file system, and our tiny thread aware UDP/IP stack. 55 | 56 | http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. 57 | Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. 58 | 59 | http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High 60 | Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS 61 | licenses offer ticketed support, indemnification and commercial middleware. 62 | 63 | http://www.SafeRTOS.com - High Integrity Systems also provide a safety 64 | engineered and independently SIL3 certified version for use in safety and 65 | mission critical applications that require provable dependability. 66 | 67 | 1 tab == 4 spaces! 68 | */ 69 | 70 | #ifndef RECURSIVE_MUTEX_TEST_H 71 | #define RECURSIVE_MUTEX_TEST_H 72 | 73 | void vStartRecursiveMutexTasks( void ); 74 | BaseType_t xAreRecursiveMutexTasksStillRunning( void ); 75 | 76 | #endif 77 | 78 | -------------------------------------------------------------------------------- /FreeRTOS_on_Spike/Demo/Common/include/semtest.h: -------------------------------------------------------------------------------- 1 | /* 2 | FreeRTOS V8.2.3 - Copyright (C) 2015 Real Time Engineers Ltd. 3 | All rights reserved 4 | 5 | VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. 6 | 7 | This file is part of the FreeRTOS distribution. 8 | 9 | FreeRTOS is free software; you can redistribute it and/or modify it under 10 | the terms of the GNU General Public License (version 2) as published by the 11 | Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. 12 | 13 | *************************************************************************** 14 | >>! NOTE: The modification to the GPL is included to allow you to !<< 15 | >>! distribute a combined work that includes FreeRTOS without being !<< 16 | >>! obliged to provide the source code for proprietary components !<< 17 | >>! outside of the FreeRTOS kernel. !<< 18 | *************************************************************************** 19 | 20 | FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY 21 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 22 | FOR A PARTICULAR PURPOSE. Full license text is available on the following 23 | link: http://www.freertos.org/a00114.html 24 | 25 | *************************************************************************** 26 | * * 27 | * FreeRTOS provides completely free yet professionally developed, * 28 | * robust, strictly quality controlled, supported, and cross * 29 | * platform software that is more than just the market leader, it * 30 | * is the industry's de facto standard. * 31 | * * 32 | * Help yourself get started quickly while simultaneously helping * 33 | * to support the FreeRTOS project by purchasing a FreeRTOS * 34 | * tutorial book, reference manual, or both: * 35 | * http://www.FreeRTOS.org/Documentation * 36 | * * 37 | *************************************************************************** 38 | 39 | http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading 40 | the FAQ page "My application does not run, what could be wrong?". Have you 41 | defined configASSERT()? 42 | 43 | http://www.FreeRTOS.org/support - In return for receiving this top quality 44 | embedded software for free we request you assist our global community by 45 | participating in the support forum. 46 | 47 | http://www.FreeRTOS.org/training - Investing in training allows your team to 48 | be as productive as possible as early as possible. Now you can receive 49 | FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers 50 | Ltd, and the world's leading authority on the world's leading RTOS. 51 | 52 | http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, 53 | including FreeRTOS+Trace - an indispensable productivity tool, a DOS 54 | compatible FAT file system, and our tiny thread aware UDP/IP stack. 55 | 56 | http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. 57 | Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. 58 | 59 | http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High 60 | Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS 61 | licenses offer ticketed support, indemnification and commercial middleware. 62 | 63 | http://www.SafeRTOS.com - High Integrity Systems also provide a safety 64 | engineered and independently SIL3 certified version for use in safety and 65 | mission critical applications that require provable dependability. 66 | 67 | 1 tab == 4 spaces! 68 | */ 69 | 70 | #ifndef SEMAPHORE_TEST_H 71 | #define SEMAPHORE_TEST_H 72 | 73 | void vStartSemaphoreTasks( UBaseType_t uxPriority ); 74 | BaseType_t xAreSemaphoreTasksStillRunning( void ); 75 | 76 | #endif 77 | 78 | -------------------------------------------------------------------------------- /FreeRTOS_on_Spike/Demo/riscv-spike/Makefile.inc: -------------------------------------------------------------------------------- 1 | # File to be included in all makefiles 2 | 3 | RISCV_XLEN ?= 64 4 | RISCV_LIB ?= elf 5 | 6 | TARGET=riscv${RISCV_XLEN}-unknown-${RISCV_LIB} 7 | #----------------------------------------------------------- 8 | GCC = $(TARGET)-gcc 9 | OBJCOPY = $(TARGET)-objcopy 10 | OBJDUMP = $(TARGET)-objdump 11 | AR = $(TARGET)-ar 12 | RANLIB = $(TARGET)-ranlib 13 | CCPATH = /home/firmware/Padmarao/riscv_23oct17/riscv 14 | 15 | PROG = riscv-spike 16 | CRT0 = arch/boot.S 17 | 18 | FREERTOS_SOURCE_DIR = ../../Source 19 | CUNIT = ../../../cunit 20 | 21 | #----------------------------------------------------------- 22 | WARNINGS= -Wall -Wextra -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-align -Wsign-compare \ 23 | -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wunused 24 | 25 | -------------------------------------------------------------------------------- /FreeRTOS_on_Spike/Demo/riscv-spike/arch/clib.h: -------------------------------------------------------------------------------- 1 | /* 2 | FreeRTOS V8.2.3 - Copyright (C) 2015 Real Time Engineers Ltd. 3 | All rights reserved 4 | 5 | VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. 6 | 7 | This file is part of the FreeRTOS distribution and was contributed 8 | to the project by Technolution B.V. (www.technolution.nl, 9 | freertos-riscv@technolution.eu) under the terms of the FreeRTOS 10 | contributors license. 11 | 12 | FreeRTOS is free software; you can redistribute it and/or modify it under 13 | the terms of the GNU General Public License (version 2) as published by the 14 | Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. 15 | 16 | *************************************************************************** 17 | >>! NOTE: The modification to the GPL is included to allow you to !<< 18 | >>! distribute a combined work that includes FreeRTOS without being !<< 19 | >>! obliged to provide the source code for proprietary components !<< 20 | >>! outside of the FreeRTOS kernel. !<< 21 | *************************************************************************** 22 | 23 | FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY 24 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 25 | FOR A PARTICULAR PURPOSE. Full license text is available on the following 26 | link: http://www.freertos.org/a00114.html 27 | 28 | *************************************************************************** 29 | * * 30 | * FreeRTOS provides completely free yet professionally developed, * 31 | * robust, strictly quality controlled, supported, and cross * 32 | * platform software that is more than just the market leader, it * 33 | * is the industry's de facto standard. * 34 | * * 35 | * Help yourself get started quickly while simultaneously helping * 36 | * to support the FreeRTOS project by purchasing a FreeRTOS * 37 | * tutorial book, reference manual, or both: * 38 | * http://www.FreeRTOS.org/Documentation * 39 | * * 40 | *************************************************************************** 41 | 42 | http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading 43 | the FAQ page "My application does not run, what could be wrong?". Have you 44 | defined configASSERT()? 45 | 46 | http://www.FreeRTOS.org/support - In return for receiving this top quality 47 | embedded software for free we request you assist our global community by 48 | participating in the support forum. 49 | 50 | http://www.FreeRTOS.org/training - Investing in training allows your team to 51 | be as productive as possible as early as possible. Now you can receive 52 | FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers 53 | Ltd, and the world's leading authority on the world's leading RTOS. 54 | 55 | http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, 56 | including FreeRTOS+Trace - an indispensable productivity tool, a DOS 57 | compatible FAT file system, and our tiny thread aware UDP/IP stack. 58 | 59 | http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. 60 | Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. 61 | 62 | http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High 63 | Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS 64 | licenses offer ticketed support, indemnification and commercial middleware. 65 | 66 | http://www.SafeRTOS.com - High Integrity Systems also provide a safety 67 | engineered and independently SIL3 certified version for use in safety and 68 | mission critical applications that require provable dependability. 69 | 70 | 1 tab == 4 spaces! 71 | */ 72 | 73 | #ifndef CLIB_H 74 | #define CLIB_H 75 | 76 | void exit(int code); 77 | int printf(const char* fmt, ...); 78 | int sprintf(char* str, const char* fmt, ...); 79 | 80 | #endif /* CLIB_H */ 81 | 82 | -------------------------------------------------------------------------------- /FreeRTOS_on_Spike/Demo/riscv-spike/arch/syscalls.h: -------------------------------------------------------------------------------- 1 | /* 2 | FreeRTOS V8.2.3 - Copyright (C) 2015 Real Time Engineers Ltd. 3 | All rights reserved 4 | 5 | VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. 6 | 7 | This file is part of the FreeRTOS distribution and was contributed 8 | to the project by Technolution B.V. (www.technolution.nl, 9 | freertos-riscv@technolution.eu) under the terms of the FreeRTOS 10 | contributors license. 11 | 12 | FreeRTOS is free software; you can redistribute it and/or modify it under 13 | the terms of the GNU General Public License (version 2) as published by the 14 | Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. 15 | 16 | *************************************************************************** 17 | >>! NOTE: The modification to the GPL is included to allow you to !<< 18 | >>! distribute a combined work that includes FreeRTOS without being !<< 19 | >>! obliged to provide the source code for proprietary components !<< 20 | >>! outside of the FreeRTOS kernel. !<< 21 | *************************************************************************** 22 | 23 | FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY 24 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 25 | FOR A PARTICULAR PURPOSE. Full license text is available on the following 26 | link: http://www.freertos.org/a00114.html 27 | 28 | *************************************************************************** 29 | * * 30 | * FreeRTOS provides completely free yet professionally developed, * 31 | * robust, strictly quality controlled, supported, and cross * 32 | * platform software that is more than just the market leader, it * 33 | * is the industry's de facto standard. * 34 | * * 35 | * Help yourself get started quickly while simultaneously helping * 36 | * to support the FreeRTOS project by purchasing a FreeRTOS * 37 | * tutorial book, reference manual, or both: * 38 | * http://www.FreeRTOS.org/Documentation * 39 | * * 40 | *************************************************************************** 41 | 42 | http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading 43 | the FAQ page "My application does not run, what could be wrong?". Have you 44 | defined configASSERT()? 45 | 46 | http://www.FreeRTOS.org/support - In return for receiving this top quality 47 | embedded software for free we request you assist our global community by 48 | participating in the support forum. 49 | 50 | http://www.FreeRTOS.org/training - Investing in training allows your team to 51 | be as productive as possible as early as possible. Now you can receive 52 | FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers 53 | Ltd, and the world's leading authority on the world's leading RTOS. 54 | 55 | http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, 56 | including FreeRTOS+Trace - an indispensable productivity tool, a DOS 57 | compatible FAT file system, and our tiny thread aware UDP/IP stack. 58 | 59 | http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. 60 | Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. 61 | 62 | http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High 63 | Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS 64 | licenses offer ticketed support, indemnification and commercial middleware. 65 | 66 | http://www.SafeRTOS.com - High Integrity Systems also provide a safety 67 | engineered and independently SIL3 certified version for use in safety and 68 | mission critical applications that require provable dependability. 69 | 70 | 1 tab == 4 spaces! 71 | */ 72 | 73 | #ifndef SYSCALLS_H 74 | #define SYSCALLS_H 75 | 76 | #define SYS_write 64 77 | #define SYS_exit 93 78 | #define SYS_timer 1234 79 | 80 | long syscall(long num, long arg0, long arg1, long arg2); 81 | 82 | void vSyscallInit(void); 83 | unsigned long ulSyscallTrap(long cause, long epc, long regs[32]); 84 | 85 | #endif /* SYSCALLS_H */ 86 | -------------------------------------------------------------------------------- /FreeRTOS_on_Spike/README.md: -------------------------------------------------------------------------------- 1 | # FreeRTOS 2 | FreeRTOS for RISC-V(32 and 64-bit) 3 | 4 | FreeRTOS is tested on Spike with several builds including single-task, multi-task and typical demo test which includes queues, semaphores, mutexes and about a dozen concurrent tasks running concurrently. 5 | 6 | ### Tools used 7 | 8 | Spike commit on 20th October, 2017 "3b1e9ab7522b3b20cde6bd8d9f2b28222463cf1b" 9 | 10 | riscv64-unknown-elf-gcc (GCC) version 7.1.1 20170509 11 | 12 | 13 | Install [riscv-tools](https://github.com/riscv/riscv-tools) and Set the RISC-V tools install path to export 14 | 15 | $ export PATH=$PATH:/{INSTALL_LOCATION}/bin 16 | 17 | ### Getting the sources 18 | 19 | $ git clone https://github.com/RISCV-on-Microsemi-FPGA/FreeRTOS 20 | 21 | 22 | Edit CCPATH to RISC-V tools install directory in `Makefile.inc` i.e available in FreeRTOS/Demo/riscv-spike/Makefile.inc 23 | `CCPATH = /{INSTALL_LOCATION}` 24 | 25 | ### Build Steps 26 | 27 | Run demo application on Spike 28 | 29 | $ cd FreeRTOS/Demo/riscv-spike 30 | $ make 31 | $ spike riscv-spike.elf 32 | 33 | output : PASS! 34 | Task - 1 35 | Task - 2 36 | 37 | Run demo application on Spike with debug mode, Follow riscv-isa-sim [README.md](https://github.com/riscv/riscv-isa-sim) to know more about debug instruction. 38 | 39 | $ spike -d riscv-spike.elf 40 | 41 | To capture debug log use below command 42 | 43 | $ spike -d riscv-spike.elf 2>&1 | tee text.txt 44 | -------------------------------------------------------------------------------- /FreeRTOS_on_Spike/Source/include/FreeRTOS.h.gch: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RISCV-on-Microsemi-FPGA/FreeRTOS/7af2b761c0775ee7663cc643d13f5a3eb610cd21/FreeRTOS_on_Spike/Source/include/FreeRTOS.h.gch -------------------------------------------------------------------------------- /FreeRTOS_on_Spike/Source/include/stdint.readme: -------------------------------------------------------------------------------- 1 | 2 | #ifndef FREERTOS_STDINT 3 | #define FREERTOS_STDINT 4 | 5 | /******************************************************************************* 6 | * THIS IS NOT A FULL stdint.h IMPLEMENTATION - It only contains the definitions 7 | * necessary to build the FreeRTOS code. It is provided to allow FreeRTOS to be 8 | * built using compilers that do not provide their own stdint.h definition. 9 | * 10 | * To use this file: 11 | * 12 | * 1) Copy this file into the directory that contains your FreeRTOSConfig.h 13 | * header file, as that directory will already be in the compilers include 14 | * path. 15 | * 16 | * 2) Rename the copied file stdint.h. 17 | * 18 | */ 19 | 20 | typedef signed char int8_t; 21 | typedef unsigned char uint8_t; 22 | typedef short int16_t; 23 | typedef unsigned short uint16_t; 24 | typedef long int32_t; 25 | typedef unsigned long uint32_t; 26 | 27 | #endif /* FREERTOS_STDINT */ 28 | -------------------------------------------------------------------------------- /FreeRTOS_on_Spike/Source/portable/MemMang/ReadMe.url: -------------------------------------------------------------------------------- 1 | [{000214A0-0000-0000-C000-000000000046}] 2 | Prop3=19,2 3 | [InternetShortcut] 4 | URL=http://www.freertos.org/a00111.html 5 | IDList= 6 | IconFile=http://www.freertos.org/favicon.ico 7 | IconIndex=1 8 | -------------------------------------------------------------------------------- /FreeRTOS_on_Spike/Source/portable/readme.txt: -------------------------------------------------------------------------------- 1 | Each real time kernel port consists of three files that contain the core kernel 2 | components and are common to every port, and one or more files that are 3 | specific to a particular microcontroller and/or compiler. 4 | 5 | 6 | + The FreeRTOS/Source/Portable/MemMang directory contains the five sample 7 | memory allocators as described on the http://www.FreeRTOS.org WEB site. 8 | 9 | + The other directories each contain files specific to a particular 10 | microcontroller or compiler, where the directory name denotes the compiler 11 | specific files the directory contains. 12 | 13 | 14 | 15 | For example, if you are interested in the [compiler] port for the [architecture] 16 | microcontroller, then the port specific files are contained in 17 | FreeRTOS/Source/Portable/[compiler]/[architecture] directory. If this is the 18 | only port you are interested in then all the other directories can be 19 | ignored. 20 | 21 | -------------------------------------------------------------------------------- /FreeRTOS_on_Spike/Source/readme.txt: -------------------------------------------------------------------------------- 1 | Each real time kernel port consists of three files that contain the core kernel 2 | components and are common to every port, and one or more files that are 3 | specific to a particular microcontroller and or compiler. 4 | 5 | + The FreeRTOS/Source directory contains the three files that are common to 6 | every port - list.c, queue.c and tasks.c. The kernel is contained within these 7 | three files. croutine.c implements the optional co-routine functionality - which 8 | is normally only used on very memory limited systems. 9 | 10 | + The FreeRTOS/Source/Portable directory contains the files that are specific to 11 | a particular microcontroller and or compiler. 12 | 13 | + The FreeRTOS/Source/include directory contains the real time kernel header 14 | files. 15 | 16 | See the readme file in the FreeRTOS/Source/Portable directory for more 17 | information. -------------------------------------------------------------------------------- /FreeRTOS_on_Spike/Source/string.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | void* memcpy(void* dest, const void* src, size_t len) 6 | { 7 | const char* s = src; 8 | char *d = dest; 9 | 10 | if ((((uintptr_t)dest | (uintptr_t)src) & (sizeof(uintptr_t)-1)) == 0) { 11 | while ((void*)d < (dest + len - (sizeof(uintptr_t)-1))) { 12 | *(uintptr_t*)d = *(const uintptr_t*)s; 13 | d += sizeof(uintptr_t); 14 | s += sizeof(uintptr_t); 15 | } 16 | } 17 | 18 | while (d < (char*)(dest + len)) 19 | *d++ = *s++; 20 | 21 | return dest; 22 | } 23 | 24 | void* memset(void* dest, int byte, size_t len) 25 | { 26 | if ((((uintptr_t)dest | len) & (sizeof(uintptr_t)-1)) == 0) { 27 | uintptr_t word = byte & 0xFF; 28 | word |= word << 8; 29 | word |= word << 16; 30 | word |= word << 16 << 16; 31 | 32 | uintptr_t *d = dest; 33 | while (d < (uintptr_t*)(dest + len)) 34 | *d++ = word; 35 | } else { 36 | char *d = dest; 37 | while (d < (char*)(dest + len)) 38 | *d++ = byte; 39 | } 40 | return dest; 41 | } 42 | 43 | size_t strlen(const char *s) 44 | { 45 | const char *p = s; 46 | while (*p) 47 | p++; 48 | return p - s; 49 | } 50 | 51 | int strcmp(const char* s1, const char* s2) 52 | { 53 | unsigned char c1, c2; 54 | 55 | do { 56 | c1 = *s1++; 57 | c2 = *s2++; 58 | } while (c1 != 0 && c1 == c2); 59 | 60 | return c1 - c2; 61 | } 62 | 63 | char* strcpy(char* dest, const char* src) 64 | { 65 | char* d = dest; 66 | while ((*d++ = *src++)) 67 | ; 68 | return dest; 69 | } 70 | 71 | long atol(const char* str) 72 | { 73 | long res = 0; 74 | int sign = 0; 75 | 76 | while (*str == ' ') 77 | str++; 78 | 79 | if (*str == '-' || *str == '+') { 80 | sign = *str == '-'; 81 | str++; 82 | } 83 | 84 | while (*str) { 85 | res *= 10; 86 | res += *str++ - '0'; 87 | } 88 | 89 | return sign ? -res : res; 90 | } 91 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # FreeRTOS port on Mi-V Soft Processors 2 | 3 | This repository contains the FreeRTOS example projects 4 | 5 | ## FreeRTOS_on_Spike 6 | This folder contains the details of FreeRTOS running on Spike Simulator. 7 | 8 | ### Spike 9 | Spike is the official RISC-V Instruction Set Simulator. Spike supports RV32GC and RV64GC, and has Debug and GDB support. 10 | 11 | Find more details on Spike [here](https://github.com/riscv/riscv-isa-sim/) 12 | 13 | ## FreeRTOS_on_Mi-V_Processor 14 | This folder contains FreeRTOS example projects running on a Mi-V Soft Processor. It includes launchers for hardware deployment and for Renode emulation (which is bundled with SoftConsole 5.3 or higher). Group launcher "miv-rv32im-freertos-port-test Start-Renode-emulator-and-attach" will launch Renode, attach a GDB connection and then load the FreeRTOS binary to the emulation. After a successful launch, SoftConsole should break at main() and should behave similarly to real hardware. For details on how to use Renode from within SoftConsole see SoftConsole's Release Notes. 15 | --------------------------------------------------------------------------------