optim struct for code.
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
#include <types.h>
|
||||
#include <util.h>
|
||||
#include <arch.h>
|
||||
#include <rbtree_mm.h>
|
||||
#include <mmu/rbtree_mm.h>
|
||||
|
||||
enum vpage_prot_attrs
|
||||
{
|
||||
|
||||
@@ -29,7 +29,8 @@ endif()
|
||||
if (DEFINED CONFIG_MMU)
|
||||
if (CONFIG_MMU STREQUAL "y")
|
||||
file(GLOB mm_src mm/*.c mm/*.S)
|
||||
list(APPEND deps ${mm_src})
|
||||
file(GLOB mm_mmu_src mm/mmu/*.c mm/mmu/*.S)
|
||||
list(APPEND deps ${mm_src} ${mm_mmu_src})
|
||||
endif()
|
||||
endif()
|
||||
|
||||
@@ -47,4 +48,5 @@ target_include_directories(
|
||||
${CMAKE_SOURCE_DIR}/mkrtos_knl/inc/drv
|
||||
|
||||
${CMAKE_SOURCE_DIR}/mkrtos_knl/knl/mm
|
||||
${CMAKE_SOURCE_DIR}/mkrtos_knl/knl/mm/mmu
|
||||
)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#pragma once
|
||||
|
||||
#include <mln_rbtree.h>
|
||||
#include "mln_rbtree.h"
|
||||
|
||||
void rbtree_mm_init(mln_rbtree_t *root_rbtree);
|
||||
@@ -365,6 +365,7 @@ static void task_release_stage2(kobject_t *kobj)
|
||||
|
||||
obj_space_release(&tk->obj_space, tk->lim);
|
||||
|
||||
#if !IS_ENABLED(CONFIG_MMU)
|
||||
if (tk->mm_space.mm_block) {
|
||||
#if CONFIG_MK_MPU_CFG
|
||||
mm_limit_free_align(tk->lim, tk->mm_space.mm_block, tk->mm_space.mm_block_size);
|
||||
@@ -372,6 +373,7 @@ static void task_release_stage2(kobject_t *kobj)
|
||||
mm_limit_free(tk->lim, tk->mm_space.mm_block);
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
#if IS_ENABLED(CONFIG_BUDDY_SLAB)
|
||||
mm_limit_free_slab(task_slab, tk->lim, tk);
|
||||
#else
|
||||
|
||||
@@ -2,12 +2,12 @@
|
||||
|
||||
# export TOOLCHAIN=/home/zhangzheng/mkrtos-tools/gcc/gcc-arm-none-eabi-5_4-2016q3/bin/
|
||||
# export TOOLCHAIN_LIB=/home/zhangzheng/mkrtos-tools/gcc/gcc-arm-none-eabi-5_4-2016q3/lib/gcc/arm-none-eabi/5.4.1/armv7-m/
|
||||
export TOOLCHAIN=/Users/zhangzheng/gcc-arm-none-eabi-10.3-2021.10/bin/
|
||||
export TOOLCHAIN_LIB=/Users/zhangzheng/gcc-arm-none-eabi-10.3-2021.10/lib/gcc/arm-none-eabi/10.3.1/thumb/v7-m/nofp
|
||||
# export TOOLCHAIN=/Users/zhangzheng/gcc-arm-none-eabi-10.3-2021.10/bin/
|
||||
# export TOOLCHAIN_LIB=/Users/zhangzheng/gcc-arm-none-eabi-10.3-2021.10/lib/gcc/arm-none-eabi/10.3.1/thumb/v7-m/nofp
|
||||
# export TOOLCHAIN=/home/zhangzheng/gcc-arm/gcc-arm-none-eabi-10.3-2021.10/bin/
|
||||
# export TOOLCHAIN_LIB=/home/zhangzheng/gcc-arm/gcc-arm-none-eabi-10.3-2021.10/lib/gcc/arm-none-eabi/10.3.1/thumb/v7-m/nofp
|
||||
# export TOOLCHAIN=/home/zhangzheng/gcc-arm-none-eabi-5_4-2016q3/bin/
|
||||
# export TOOLCHAIN_LIB=/home/zhangzheng/gcc-arm-none-eabi-5_4-2016q3/lib/gcc/arm-none-eabi/5.4.1/armv7-m/
|
||||
export TOOLCHAIN=/home/zhangzheng/gcc-arm-none-eabi-5_4-2016q3/bin/
|
||||
export TOOLCHAIN_LIB=/home/zhangzheng/gcc-arm-none-eabi-5_4-2016q3/lib/gcc/arm-none-eabi/5.4.1/armv7-m/
|
||||
export BOARD=STM32F205
|
||||
export CROSS_COMPILE_NAME=arm-none-eabi-
|
||||
|
||||
|
||||
@@ -1,15 +1,9 @@
|
||||
#!/bin/bash
|
||||
|
||||
# export TOOLCHAIN=/home/zhangzheng/gcc-arm-10.3-2021.07-x86_64-aarch64-none-elf/bin/
|
||||
# export TOOLCHAIN_LIB=/home/zhangzheng/gcc-arm-10.3-2021.07-x86_64-aarch64-none-elf/lib/gcc/aarch64-none-elf/10.3.1
|
||||
export TOOLCHAIN=/Applications/ArmGNUToolchain/11.3.rel1/aarch64-none-elf/bin/
|
||||
export TOOLCHAIN_LIB=/Applications/ArmGNUToolchain/11.3.rel1/aarch64-none-elf/lib/gcc/aarch64-none-elf/11.3.1
|
||||
# export TOOLCHAIN=/home/zhangzheng/arm-gnu-toolchain-13.3.rel1-aarch64-aarch64-none-elf/bin/
|
||||
# export TOOLCHAIN_LIB=/home/zhangzheng/arm-gnu-toolchain-13.3.rel1-aarch64-aarch64-none-elf/lib/gcc/aarch64-none-elf/13.3.1
|
||||
# export TOOLCHAIN=/home/mkrtos-smart/toolchains/gcc-arm-10.3-2021.07-x86_64-aarch64-none-elf/bin/
|
||||
# export TOOLCHAIN_LIB=/home/mkrtos-smart/toolchains/gcc-arm-10.3-2021.07-x86_64-aarch64-none-elf/lib/gcc/aarch64-none-elf/10.3.1
|
||||
# export TOOLCHAIN=/home/toolchains/gcc-arm-10.3-2021.07-x86_64-aarch64-none-elf/bin/
|
||||
# export TOOLCHAIN_LIB=/home/toolchains/gcc-arm-10.3-2021.07-x86_64-aarch64-none-elf/lib/gcc/aarch64-none-elf/10.3.1
|
||||
# export TOOLCHAIN=/Applications/ArmGNUToolchain/11.3.rel1/aarch64-none-elf/bin/
|
||||
# export TOOLCHAIN_LIB=/Applications/ArmGNUToolchain/11.3.rel1/aarch64-none-elf/lib/gcc/aarch64-none-elf/11.3.1
|
||||
export TOOLCHAIN=/home/toolchains/gcc-arm-10.3-2021.07-x86_64-aarch64-none-elf/bin/
|
||||
export TOOLCHAIN_LIB=/home/toolchains/gcc-arm-10.3-2021.07-x86_64-aarch64-none-elf/lib/gcc/aarch64-none-elf/10.3.1
|
||||
export BOARD=aarch64_qemu
|
||||
export CROSS_COMPILE_NAME=aarch64-none-elf-
|
||||
if [ -z "$1" ]; then
|
||||
|
||||
@@ -38,3 +38,15 @@
|
||||
#define IS_MODULE(option) __is_defined(option##_MODULE)
|
||||
|
||||
#define IS_ENABLED(option) __or(IS_BUILTIN(option), IS_MODULE(option))
|
||||
|
||||
/* Import a binary file */
|
||||
#define IMPORT_BIN(sect, file, sym) asm (\
|
||||
".section " #sect "\n" /* Change section */\
|
||||
".balign 4\n" /* Word alignment */\
|
||||
".global " #sym "\n" /* Export the object address */\
|
||||
#sym ":\n" /* Define the object label */\
|
||||
".incbin \"" file "\"\n" /* Import the file */\
|
||||
".global _sizeof_" #sym "\n" /* Export the object size */\
|
||||
".set _sizeof_" #sym ", . - " #sym "\n" /* Define the object size */\
|
||||
".balign 4\n" /* Word alignment */\
|
||||
".section \".text\"\n") /* Restore section */
|
||||
|
||||
@@ -23,6 +23,8 @@ target_link_libraries(uvmm.elf
|
||||
cjson
|
||||
${GCC_LIB_PATH}/libgcc.a
|
||||
)
|
||||
# configure_file(src/benos.bin ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/uvmm.elf.dir/src/benos.bin COPYONLY)
|
||||
# configure_file(src/vm_benos.json ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/uvmm.elf.dir/src/vm_benos.json COPYONLY)
|
||||
target_include_directories(
|
||||
uvmm.elf
|
||||
PUBLIC
|
||||
|
||||
BIN
mkrtos_user/server/uvmm/src/benos.bin
Executable file
BIN
mkrtos_user/server/uvmm/src/benos.bin
Executable file
Binary file not shown.
@@ -1,13 +1,17 @@
|
||||
|
||||
#include <printf.h>
|
||||
#include <unistd.h>
|
||||
#include <u_types.h>
|
||||
#include "guest_os.h"
|
||||
#include "u_task.h"
|
||||
#include <stdio.h>
|
||||
#include "uvmm_dev_man.h"
|
||||
extern umword_t os_bin;
|
||||
extern umword_t os_bin_end;
|
||||
#include <printf.h>
|
||||
#include <stdio.h>
|
||||
#include <u_types.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include <u_util.h>
|
||||
|
||||
extern const char benos_bin[], _sizeof_benos_bin[];
|
||||
extern const char benos_json[], _sizeof_benos_json[];
|
||||
|
||||
extern umword_t uvmm_dev_json;
|
||||
static guest_os_t gos;
|
||||
int main(int argc, char *args[])
|
||||
@@ -17,11 +21,10 @@ int main(int argc, char *args[])
|
||||
|
||||
uvmm_dev_simul_init();
|
||||
|
||||
mk_printf("guest os entry addr:[0x%lx 0x%lx]\n", &os_bin, &os_bin_end);
|
||||
guest_os_create(&gos, (char *)&uvmm_dev_json,
|
||||
0x20000000, &os_bin, &os_bin_end, 32 * 1024 * 1024);
|
||||
while (1)
|
||||
{
|
||||
mk_printf("guest os entry addr:[0x%lx 0x%lx]\n", benos_bin, benos_bin + (umword_t)_sizeof_benos_bin);
|
||||
guest_os_create(&gos, (char *)benos_json,
|
||||
0x20000000, (void*)benos_bin, (void*)(benos_bin + (umword_t)_sizeof_benos_bin), 32 * 1024 * 1024);
|
||||
while (1) {
|
||||
sleep(1);
|
||||
}
|
||||
// mk_printf("print test0.\n");
|
||||
@@ -42,3 +45,7 @@ int main(int argc, char *args[])
|
||||
// }
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
IMPORT_BIN(".rodata", "/home/mkrtos-real/mkrtos_user/server/uvmm/src/benos.bin", benos_bin);
|
||||
IMPORT_BIN(".rodata", "/home/mkrtos-real/mkrtos_user/server/uvmm/src/vm_benos.json", benos_json);
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
.global os_bin
|
||||
.global os_bin_end
|
||||
.global uvmm_dev_json
|
||||
.global uvmm_dev_json_end
|
||||
.align 12
|
||||
os_bin:
|
||||
.incbin "/Users/zhangzheng/mkrtos-real/benos/arch/arm64/boot/benos.bin"
|
||||
os_bin_end:
|
||||
.quad 0
|
||||
uvmm_dev_json:
|
||||
.incbin "/Users/zhangzheng/mkrtos-real/mkrtos_user/server/uvmm/src/vm_benos.json"
|
||||
uvmm_dev_json_end:
|
||||
.quad 0
|
||||
Reference in New Issue
Block a user