Task isolation test update

This commit is contained in:
Jiang Yufan 2023-08-22 14:10:43 +08:00
parent 379045d7eb
commit fdc1783300
3 changed files with 15 additions and 14 deletions

View File

@ -14,6 +14,7 @@
#define PMP_H #define PMP_H
#include <xs_klist.h> #include <xs_klist.h>
#include <stddef.h>
#define PMP_MAX_ENTRY_NUMBER 16 #define PMP_MAX_ENTRY_NUMBER 16
#define PMP_ENTRY_RESERVE 6 #define PMP_ENTRY_RESERVE 6
@ -40,11 +41,11 @@
struct PmpEntry struct PmpEntry
{ {
uint8_t pmpcfg; uint8 pmpcfg;
#if defined(ARCH_RISCV64) #if defined(ARCH_RISCV64)
uint64_t pmpaddr; uint64 pmpaddr;
#else #else
uint32_t pmpaddr; uint32 pmpaddr;
#endif #endif
}; };
@ -53,8 +54,8 @@ struct PmpRegionNapot
{ {
x_ubase start ; x_ubase start ;
x_ubase end; x_ubase end;
uint16_t swap_count; uint16 swap_count;
uint8_t region_type; uint8 region_type;
struct PmpEntry entry; struct PmpEntry entry;
DoubleLinklistType link; DoubleLinklistType link;
@ -64,8 +65,8 @@ struct PmpRegionTor
{ {
x_ubase start ; x_ubase start ;
x_ubase end; x_ubase end;
uint16_t swap_count; uint16 swap_count;
uint8_t region_type; uint8 region_type;
struct PmpEntry entry[2]; struct PmpEntry entry[2];
DoubleLinklistType link; DoubleLinklistType link;
@ -73,8 +74,8 @@ struct PmpRegionTor
struct Pmp struct Pmp
{ {
uint8_t count; uint8 count;
uint8_t reserve; uint8 reserve;
struct PmpEntry pmp_entry_reserve[PMP_ENTRY_RESERVE]; struct PmpEntry pmp_entry_reserve[PMP_ENTRY_RESERVE];
DoubleLinklistType tor_list; DoubleLinklistType tor_list;
@ -82,7 +83,7 @@ struct Pmp
}; };
x_err_t PmpAddTorRegion(void *task_pmp, x_ubase start , size_t size , uint8_t flag ); x_err_t PmpAddTorRegion(void *task_pmp, x_ubase start , size_t size , uint8 flag );
x_err_t PmpInitIsolation(void **task_pmp, x_ubase stack_start , size_t stack_size); x_err_t PmpInitIsolation(void **task_pmp, x_ubase stack_start , size_t stack_size);
void PmpFree(void *task_pmp); void PmpFree(void *task_pmp);
void PmpClear(void); void PmpClear(void);

View File

@ -14,7 +14,7 @@ endif
export APPLFLAGS := -mcmodel=medany -march=rv64imafdc -mabi=lp64d -nostartfiles -Wl,--gc-sections,-Map=XiZi-edu-riscv64.map,-cref,-u, -T $(BSP_ROOT)/link_userspace.lds export APPLFLAGS := -mcmodel=medany -march=rv64imafdc -mabi=lp64d -nostartfiles -Wl,--gc-sections,-Map=XiZi-edu-riscv64.map,-cref,-u, -T $(BSP_ROOT)/link_userspace.lds
export CXXFLAGS := -mcmodel=medany -march=rv64imafdc -mabi=lp64d -fno-common -ffunction-sections -fdata-sections -fstrict-volatile-bitfields -O0 -ggdb -Werror export CXXFLAGS := -mcmodel=medany -march=rv64imafdc -mabi=lp64d -fno-common -ffunction-sections -fdata-sections -fstrict-volatile-bitfields -O0 -ggdb -Werror -std=gnu++11
export CROSS_COMPILE ?=/opt/gnu-mcu-eclipse/riscv-none-gcc/8.2.0-2.1-20190425-1021/bin/riscv-none-embed- export CROSS_COMPILE ?=/opt/gnu-mcu-eclipse/riscv-none-gcc/8.2.0-2.1-20190425-1021/bin/riscv-none-embed-

View File

@ -17,11 +17,11 @@ def mergeBinProccess( files, fileSaveName):
f.write(bin) f.write(bin)
if __name__ == '__main__': if __name__ == '__main__':
file1 = r'./build/XiZi-kd233_kernel.bin' file1 = r'./build/XiZi-edu-riscv64_kernel.bin'
file1_start_addr = 0 file1_start_addr = 0
file2 = r'./build/XiZi-kd233_app.bin' file2 = r'./build/XiZi-edu-riscv64_app.bin'
file2_start_addr = 1024 * 1024 + 4096 file2_start_addr = 1024 * 1024 + 4096
newfile = r'./build/XiZi-kd233.bin' newfile = r'./build/XiZi-edu-riscv64.bin'
file = [ [file1 , file1_start_addr] , [file2 , file2_start_addr] ] file = [ [file1 , file1_start_addr] , [file2 , file2_start_addr] ]
mergeBinProccess(file, newfile) mergeBinProccess(file, newfile)