Initial commit
This commit is contained in:
		
							
								
								
									
										71
									
								
								Libs/RiscV/NEORV32/sw/example/demo_freeRTOS/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										71
									
								
								Libs/RiscV/NEORV32/sw/example/demo_freeRTOS/README.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,71 @@ | ||||
|   # FreeRTOS Demo for the NEORV32 Processor | ||||
|  | ||||
| This example shows how to run [FreeRTOS](https://www.freertos.org/) on the NEORV32 processor. It features the default | ||||
| "blinky_demo" and the more sophisticated "full_demo" demo applications. See the comments in `main.c` and the according | ||||
| source files for more information. | ||||
|  | ||||
| The chip-specific extensions folder (`chip_specific_extensions/neorv32`) should be in `$(FREERTOS_HOME)/Source/portable/GCC/RISC-V/chip_specific_extensions`, | ||||
| but is placed in this source directory for simplicity. | ||||
|  | ||||
|  | ||||
| ## Hardware Requirements | ||||
|  | ||||
| * DMEM/IMEM requriements depend on the actual application (for example: 8kB DMEM and 16kB IMEM for *blinky_demo*) | ||||
| * MTIME (machine timer) + UART + GPIO | ||||
| * `Zicsr` CPU extension | ||||
|  | ||||
|  | ||||
| ## Instructions | ||||
|  | ||||
| Download FreeRTOS from the [official GitHub repository](https://github.com/FreeRTOS/FreeRTOS) or from the its official homepage. | ||||
|  | ||||
|     $ git clone https://github.com/FreeRTOS/FreeRTOS.git | ||||
|  | ||||
| Open the makefile from this example folder and configure the `FREERTOS_HOME` variable to point to your FreeRTOS home folder. | ||||
|  | ||||
|     FREERTOS_HOME ?= /mnt/n/Projects/FreeRTOSv10.4.1 | ||||
|  | ||||
| Compile the NEORV32 executable. Do not forget the `RUN_FREERTOS_DEMO` switch. | ||||
|  | ||||
|     $ make USER_FLAGS+=-DRUN_FREERTOS_DEMO clean_all exe | ||||
|  | ||||
| Note: The *.c sources and the FreeRTOS-specific part of the makefile have (include) guards that test if `RUN_FREERTOS_DEMO` is defined. | ||||
| This has no pratical usage for the user - it is just a work-around for the NEORV32 CI environment. | ||||
|  | ||||
| Upload the executable (`neorv32_exe.bin`) to the processor via the bootloader and execute it. | ||||
|  | ||||
| ``` | ||||
| Awaiting neorv32_exe.bin... OK | ||||
| CMD:> e | ||||
| Booting... | ||||
|  | ||||
| FreeRTOS V10.4.1 | ||||
| Blink | ||||
| Blink | ||||
| Blink | ||||
| ``` | ||||
|  | ||||
| ## FreeRTOS Plus | ||||
|  | ||||
| To automatically add source and include files from FreeRTOS plus extensions add one (or more) of the following arguments when invoking `make`: | ||||
|  | ||||
| * FreeRTOS-Plus-CLI: `USER_FLAGS+=-FREERTOS_PLUS_CLI` | ||||
| * FreeRTOS-Plus-TCP: `USER_FLAGS+=-FREERTOS_PLUS_TCP` | ||||
|  | ||||
| Example: | ||||
|  | ||||
|     $ make USER_FLAGS+=-DRUN_FREERTOS_DEMO USER_FLAGS+=-FREERTOS_PLUS_TCP clean_all exe | ||||
|  | ||||
|  | ||||
| ## Notes | ||||
|  | ||||
| The onfiguration of the FreeRTOS home folder (via `FREERTOS_HOME`) is corrupted if the compiler shows the following error: | ||||
|  | ||||
| ``` | ||||
| main.c:36:10: fatal error: FreeRTOS.h: No such file or directory | ||||
|    36 | #include <FreeRTOS.h> | ||||
|       |          ^~~~~~~~~~~~ | ||||
| compilation terminated. | ||||
| make: *** [makefile:203: main.c.o] Error 1 | ||||
| ``` | ||||
|  | ||||
		Reference in New Issue
	
	Block a user