Add memory protection support to RISC-V port

Related to #908

Add memory protection support to the RISC-V port.

* **Memory Protection Configurations and Settings**
  - Add memory protection-related configurations and settings in `portable/GCC/RISC-V/portmacro.h` and `portable/IAR/RISC-V/portmacro.h`.
  - Define macros for enabling and disabling memory protection in both files.

* **Critical Section Handling**
  - Update the `portENTER_CRITICAL` and `portEXIT_CRITICAL` macros in `portable/GCC/RISC-V/portmacro.h` and `portable/IAR/RISC-V/portmacro.h` to handle memory protection.

* **Chip-Specific Extensions**
  - Add memory protection-related definitions and macros in `portable/GCC/RISC-V/chip_specific_extensions/RISCV_MTIME_CLINT_no_extensions/freertos_risc_v_chip_specific_extensions.h` and `portable/IAR/RISC-V/chip_specific_extensions/RV32I_CLINT_no_extensions/freertos_risc_v_chip_specific_extensions.h`.
  - Define macros for saving and restoring memory protection context in both files.

* **Port Functions**
  - Add functions for enabling and disabling memory protection in `portable/GCC/RISC-V/port.c` and `portable/IAR/RISC-V/port.c`.

Working on still: portASM.s planning to implement ASAP
This commit is contained in:
Vishwanath Martur 2024-11-01 12:26:29 +05:30
parent 8225a7f554
commit 8e434c1385
6 changed files with 93 additions and 5 deletions

View file

@ -239,3 +239,14 @@ void vPortEndScheduler( void )
}
}
/*-----------------------------------------------------------*/
/* Add functions for enabling and disabling memory protection */
void vPortEnableMemoryProtection( void )
{
__asm volatile ( "csrs mstatus, 0x10000" );
}
void vPortDisableMemoryProtection( void )
{
__asm volatile ( "csrc mstatus, 0x10000" );
}