diff options
Diffstat (limited to 'FreeRTOS/Demo/RISC-V_RV64_PolarFire_SoftConsole/full_demo/README.md')
-rw-r--r-- | FreeRTOS/Demo/RISC-V_RV64_PolarFire_SoftConsole/full_demo/README.md | 177 |
1 files changed, 0 insertions, 177 deletions
diff --git a/FreeRTOS/Demo/RISC-V_RV64_PolarFire_SoftConsole/full_demo/README.md b/FreeRTOS/Demo/RISC-V_RV64_PolarFire_SoftConsole/full_demo/README.md deleted file mode 100644 index e5ddb8013..000000000 --- a/FreeRTOS/Demo/RISC-V_RV64_PolarFire_SoftConsole/full_demo/README.md +++ /dev/null @@ -1,177 +0,0 @@ -# Create a Test Project - -## Initial Setup - -1. Create a new directory in the [FreeRTOS Partner Supported Demos Repository](https://github.com/FreeRTOS/FreeRTOS-Partner-Supported-Demos/tree/main) - or [FreeRTOS Community Supported Demos Repository](https://github.com/FreeRTOS/FreeRTOS-Community-Supported-Demos/tree/main). - The suggested name for the directory is `<hardware_name>_<compiler_name>`. -2. Create a project for your hardware and tool-chain in this directory. -3. Copy all the files in the [FreeRTOS/Demo/ThirdParty/Template](https://github.com/FreeRTOS/FreeRTOS/tree/main/FreeRTOS/Demo/ThirdParty/Template) - directory to your project directory: - * `IntQueueTimer.h` - * `IntQueueTimer.c` - * `TestRunner.h` - * `TestRunner.c` - * `RegTests.h` - * `RegTests.c` - -## Project Configuration - -1. Compile the following additional files in your project: - * All files in the [FreeRTOS/Demo/Common/Minimal](https://github.com/FreeRTOS/FreeRTOS/tree/main/FreeRTOS/Demo/Common/Minimal) directory except - `comtest_strings.c`, `crhook.c` , `comtest.c` ,`crflash.c`,`flash.c`, `flash_timer.c` and `sp_flop.c`. -2. Add the following paths to your include search path: - * `FreeRTOS/Demo/Common/include`. -3. Call the `void vStartTests( void )` function from your `main` function after - doing all the hardware initialization. Note that this function starts the - scheduler and therefore, never returns. -```c -#include "TestRunner.h" - -void main( void ) -{ - /* Startup and Hardware initialization. */ - - /* Start tests. */ - vStartTests(); - - /* Should never reach here. */ - for( ; ; ); -} -``` - -## Set up FreeRTOSConfig.h - -1. Enable tick hook by adding the following line in your `FreeRTOSConfig.h`: -```c -#define configUSE_TICK_HOOK 1 -``` -2. Set the task notification array size to 3 by adding the following line in - your `FreeRTOSConfig.h`: -```c -#define configTASK_NOTIFICATION_ARRAY_ENTRIES 3 -``` -3. Enable printing by mapping `configPRINTF` to your print function. Note that - `configPRINTF` calls are wrapped in double parentheses to support C89. If you - have a thread-safe `printf` function, the following is what should be added - in your `FreeRTOSConfig.h`: -```c -#define configPRINTF( X ) printf X -``` -4. Add the following defines in your `FreeRTOSConfig.h`: -```c -#define configSTART_TASK_NOTIFY_TESTS 0 -#define configSTART_TASK_NOTIFY_ARRAY_TESTS 0 -#define configSTART_BLOCKING_QUEUE_TESTS 0 -#define configSTART_SEMAPHORE_TESTS 0 -#define configSTART_POLLED_QUEUE_TESTS 0 -#define configSTART_INTEGER_MATH_TESTS 0 -#define configSTART_GENERIC_QUEUE_TESTS 0 -#define configSTART_PEEK_QUEUE_TESTS 0 -#define configSTART_MATH_TESTS 0 -#define configSTART_RECURSIVE_MUTEX_TESTS 0 -#define configSTART_COUNTING_SEMAPHORE_TESTS 0 -#define configSTART_QUEUE_SET_TESTS 0 -#define configSTART_QUEUE_OVERWRITE_TESTS 0 -#define configSTART_EVENT_GROUP_TESTS 0 -#define configSTART_INTERRUPT_SEMAPHORE_TESTS 0 -#define configSTART_QUEUE_SET_POLLING_TESTS 0 -#define configSTART_BLOCK_TIME_TESTS 0 -#define configSTART_ABORT_DELAY_TESTS 0 -#define configSTART_MESSAGE_BUFFER_TESTS 0 -#define configSTART_STREAM_BUFFER_TESTS 0 -#define configSTART_STREAM_BUFFER_INTERRUPT_TESTS 0 -#define configSTART_TIMER_TESTS 0 -#define configSTART_INTERRUPT_QUEUE_TESTS 0 -#define configSTART_REGISTER_TESTS 0 -#define configSTART_DELETE_SELF_TESTS 0 -``` - -## Create and Run Register Tests - -1. Fill the definitions of the following functions in the `RegTests.c` file - copied in the [Initial Setup](#Initial-Setup) step: - * `prvRegisterTest1Task` - * `prvRegisterTest2Task` - * `prvRegisterTest3Task` - * `prvRegisterTest4Task` -2. Define `configSTART_REGISTER_TESTS` to `1` in your `FreeRTOSConfig.h`: -```c -#define configSTART_REGISTER_TESTS 1 -``` -3. Build and run the register tests. The output should look like the following: -``` -No errors -No errors -No errors -No errors -``` - -## Setup and Run Interrupt Nesting Tests - -1. If your hardware **does not** support interrupt nesting, skip this section. -2. Fill the `void vInitialiseTimerForIntQueueTest( void )` function in the - `IntQueueTimer.c` file copied in the [Initial Setup](#Initial-Setup) step to - initialize and start a hardware timer. Make sure that the timer interrupt - runs at a logical priority less than or equal to `configMAX_SYSCALL_INTERRUPT_PRIORITY`. - The following is an example for ARM MPS2 which starts TIM0 timer: -```c -void vInitialiseTimerForIntQueueTest( void ) -{ - /* Clear interrupt. */ - CMSDK_TIMER0->INTCLEAR = ( 1ul << 0 ); - - /* Reload value is slightly offset from the other timer. */ - CMSDK_TIMER0->RELOAD = ( configCPU_CLOCK_HZ / tmrTIMER_0_FREQUENCY ) + 1UL; - CMSDK_TIMER0->CTRL = ( ( 1ul << 3 ) | ( 1ul << 0 ) ); - - NVIC_SetPriority( TIMER0_IRQn, configMAX_SYSCALL_INTERRUPT_PRIORITY ); - NVIC_EnableIRQ( TIMER0_IRQn ); -} -``` -3. Either install `void IntQueueTestTimerHandler( void )` function as the timer - interrupt handler or call it from the timer interrupt handler of the above - timer. The following is an example for ARM MPS2 which calls - `IntQueueTestTimerHandler` from the TIM0 handler: -```c -void TIMER0_Handler( void ) -{ - /* Clear interrupt. */ - CMSDK_TIMER0->INTCLEAR = ( 1ul << 0 ); - - IntQueueTestTimerHandler(); -} -``` -4. Define `configSTART_INTERRUPT_QUEUE_TESTS` to `1` in your `FreeRTOSConfig.h`: -```c -#define configSTART_INTERRUPT_QUEUE_TESTS 1 -``` -5. Build and run the tests. The output should look like the following: -``` -No errors -No errors -No errors -No errors -``` - -## Running All Tests - -1. Define all the `configSTART_<Test_Name>_TESTS` macros to `1` in your -`FreeRTOSConfig.h`. -2. Build and run the tests. The output should look like the following: -``` -No errors -No errors -No errors -No errors -``` -3. If you cannot fit all the tests in one binary because of Flash or RAM space, -you can run tests one by one or in groups by defining -`configSTART_<Test_Name>_TESTS` macros to `0` or `1` as needed. - -## Add README -Add a `README.md` file in the project directory with the following information: -* Link to the hardware page. -* How to setup tool-chain. -* How to build and run the project. -* Any other relevant information. |