修复编译问题

This commit is contained in:
zhangzheng
2024-10-17 23:31:20 +08:00
parent 685f4351c1
commit 8d03c10fba
21 changed files with 57 additions and 29 deletions

View File

@@ -17,10 +17,15 @@ config ARCH
config FLOAT_TYPE config FLOAT_TYPE
string "float type is soft or hard" string "float type is soft or hard"
default "soft" default "soft"
config ELF_LAUNCH config ELF_LAUNCH
bool "elf app launch" bool "elf app launch"
default n default n
config DTBO_SUPPORT
bool "dtb support."
default n
config DTBO_OFFSET config DTBO_OFFSET
hex "dtbo img offset." hex "dtbo img offset."
default 0x1000 default 0x1000

View File

@@ -2,7 +2,6 @@ cmake_minimum_required(VERSION 3.13)
file(GLOB_RECURSE deps *.S *.s *.C *.c) file(GLOB_RECURSE deps *.S *.s *.C *.c)
list(REMOVE_ITEM deps ${CMAKE_CURRENT_LIST_DIR}/link.lds.S)
add_library(boot_bsp STATIC ${deps}) add_library(boot_bsp STATIC ${deps})
target_include_directories( target_include_directories(
boot_bsp boot_bsp
@@ -12,13 +11,13 @@ target_include_directories(
target_link_libraries(boot_bsp target_link_libraries(boot_bsp
PRIVATE PRIVATE
) )
add_custom_target( # add_custom_target(
bootstratp_link_file_dump ALL # bootstratp_link_file_dump ALL
COMMAND # COMMAND
${CMAKE_C_COMPILER} # ${CMAKE_C_COMPILER}
-include ${CMAKE_SOURCE_DIR}/build/autoconf.h # -include ${CMAKE_SOURCE_DIR}/build/autoconf.h
-E -P -<${CMAKE_CURRENT_LIST_DIR}/link.lds.S > # -E -P -<${CMAKE_CURRENT_LIST_DIR}/link.lds.S >
${CMAKE_CURRENT_LIST_DIR}/link.lds # ${CMAKE_CURRENT_LIST_DIR}/link.lds
) # )
add_dependencies(boot_bsp bootstratp_link_file_dump) # add_dependencies(boot_bsp bootstratp_link_file_dump)

View File

@@ -1,10 +1,10 @@
ENTRY(Reset_Handler) ENTRY(Reset_Handler)
_estack = 0x20000000 + 0x20000; _estack = 0x20000000 + 0x800000;
_Min_Heap_Size = 0; _Min_Heap_Size = 0;
_Min_Stack_Size = 0x300; _Min_Stack_Size = 0x300;
MEMORY MEMORY
{ {
RAM (xrw) : ORIGIN = 0x20000000 + 0x20000 - 0x4000, LENGTH = 0x4000 - 0x300 RAM (xrw) : ORIGIN = 0x20000000 + 0x800000 - 0x4000, LENGTH = 0x4000 - 0x300
FLASH (rx) : ORIGIN = 0x8000000, LENGTH = 0x2000 FLASH (rx) : ORIGIN = 0x8000000, LENGTH = 0x2000
} }
SECTIONS SECTIONS

View File

@@ -47,15 +47,10 @@ static boot_info_t boot_info = {
.mem_list = { .mem_list = {
{ {
.addr = CONFIG_SYS_DATA_ADDR, .addr = CONFIG_SYS_DATA_ADDR,
.size = CONFIG_SYS_DATA_SIZE / 2, .size = CONFIG_SYS_DATA_SIZE,
.is_sys_mem = 1, .is_sys_mem = 1,
.speed = 0, .speed = 0,
}, }
{
.addr = CONFIG_SYS_DATA_ADDR + CONFIG_SYS_DATA_SIZE / 2,
.size = CONFIG_SYS_DATA_SIZE / 2,
.speed = 1,
},
}, },
.mem_num = 2, .mem_num = 2,
}, },

View File

@@ -129,4 +129,6 @@ CONFIG_MSG_BUF_VADDR=0xE0000000
CONFIG_BOOT_FS_VADDR=0xE0001000 CONFIG_BOOT_FS_VADDR=0xE0001000
CONFIG_MPU_PAGE_FAULT_SUPPORT=n CONFIG_MPU_PAGE_FAULT_SUPPORT=n
CONFIG_MPU_PAGE_NUM=64 CONFIG_MPU_PAGE_NUM=64
CONFIG_MPU_PAGE_FAULT_REGIONS_NUM=2 CONFIG_MPU_PAGE_FAULT_REGIONS_NUM=2
CONFIG_BOOT_INFO_SUPPORT=y
CONFIG_DTBO_SUPPORT=y

View File

@@ -127,3 +127,5 @@ CONFIG_THREAD_MAP_BUF_LEN=4
CONFIG_THREAD_USER_BUF_LEN=4 CONFIG_THREAD_USER_BUF_LEN=4
CONFIG_MSG_BUF_VADDR=0xE0000000 CONFIG_MSG_BUF_VADDR=0xE0000000
CONFIG_BOOT_FS_VADDR=0xE0001000 CONFIG_BOOT_FS_VADDR=0xE0001000
CONFIG_BOOT_INFO_SUPPORT=y
CONFIG_DTBO_SUPPORT=y

View File

@@ -6,7 +6,7 @@ CONFIG_KNL_INFO=y
CONFIG_SYS_TEXT_ADDR=0x8000000 CONFIG_SYS_TEXT_ADDR=0x8000000
CONFIG_SYS_TEXT_SIZE=0x800000 CONFIG_SYS_TEXT_SIZE=0x800000
CONFIG_SYS_DATA_ADDR=0x20000000 CONFIG_SYS_DATA_ADDR=0x20000000
CONFIG_SYS_DATA_SIZE=0x20000 CONFIG_SYS_DATA_SIZE=0x800000
CONFIG_BOOTSTRAP_TEXT_SIZE=0x2000 CONFIG_BOOTSTRAP_TEXT_SIZE=0x2000
CONFIG_DTBO_TEXT_SIZE=0x1000 CONFIG_DTBO_TEXT_SIZE=0x1000
CONFIG_KNL_TEXT_SIZE=0x30000 CONFIG_KNL_TEXT_SIZE=0x30000
@@ -129,3 +129,5 @@ CONFIG_BOOT_FS_VADDR=0xE0001000
CONFIG_MPU_PAGE_FAULT_SUPPORT=y CONFIG_MPU_PAGE_FAULT_SUPPORT=y
CONFIG_MPU_PAGE_NUM=64 CONFIG_MPU_PAGE_NUM=64
CONFIG_MPU_PAGE_FAULT_REGIONS_NUM=2 CONFIG_MPU_PAGE_FAULT_REGIONS_NUM=2
CONFIG_BOOT_INFO_SUPPORT=y
CONFIG_DTBO_SUPPORT=y

View File

@@ -129,4 +129,6 @@ CONFIG_MSG_BUF_VADDR=0xE0000000
CONFIG_BOOT_FS_VADDR=0xE0001000 CONFIG_BOOT_FS_VADDR=0xE0001000
CONFIG_MPU_PAGE_FAULT_SUPPORT=n CONFIG_MPU_PAGE_FAULT_SUPPORT=n
CONFIG_MPU_PAGE_NUM=64 CONFIG_MPU_PAGE_NUM=64
CONFIG_MPU_PAGE_FAULT_REGIONS_NUM=2 CONFIG_MPU_PAGE_FAULT_REGIONS_NUM=2
CONFIG_BOOT_INFO_SUPPORT=y
CONFIG_DTBO_SUPPORT=y

View File

@@ -130,3 +130,5 @@ CONFIG_BOOT_FS_VADDR=0xE0001000
CONFIG_MPU_PAGE_FAULT_SUPPORT=n CONFIG_MPU_PAGE_FAULT_SUPPORT=n
CONFIG_MPU_PAGE_NUM=64 CONFIG_MPU_PAGE_NUM=64
CONFIG_MPU_PAGE_FAULT_REGIONS_NUM=2 CONFIG_MPU_PAGE_FAULT_REGIONS_NUM=2
CONFIG_BOOT_INFO_SUPPORT=y
CONFIG_DTBO_SUPPORT=y

View File

@@ -9,7 +9,7 @@ CONFIG_SYS_DATA_ADDR=0x40000000
CONFIG_SYS_DATA_SIZE=0x1E000000 CONFIG_SYS_DATA_SIZE=0x1E000000
CONFIG_BOOTSTRAP_TEXT_SIZE=0x1000000 CONFIG_BOOTSTRAP_TEXT_SIZE=0x1000000
CONFIG_KNL_TEXT_SIZE=0x10000 CONFIG_KNL_TEXT_SIZE=0x10000
CONFIG_BOOTFS_OFFSET=0x02000000 # CONFIG_BOOTFS_OFFSET=0x02000000
CONFIG_MK_MPU_CFG=n CONFIG_MK_MPU_CFG=n
CONFIG_FT_ADDR_NR=16 CONFIG_FT_ADDR_NR=16
CONFIG_SYS_SCHE_HZ=1000 CONFIG_SYS_SCHE_HZ=1000

View File

@@ -146,4 +146,11 @@ config PRINTK_CACHE_SIZE
default 128 default 128
help help
The printk cache size refers to the size of the data content output to the console in a single attempt, which usually does not need to be modified. The printk cache size refers to the size of the data content output to the console in a single attempt, which usually does not need to be modified.
config BOOT_INFO_SUPPORT
bool "boot info support"
default n
help
support boot info.
endmenu endmenu

View File

@@ -99,6 +99,7 @@ void MemManage_Handler(void)
thread_get_current_task(), fault_addr, bus_addr); thread_get_current_task(), fault_addr, bus_addr);
task_knl_kill(thread_get_current(), is_knl); task_knl_kill(thread_get_current(), is_knl);
} }
return;
} }
if ((SCB->CFSR & 8)) if ((SCB->CFSR & 8))
{ {

View File

@@ -1,7 +1,7 @@
ENTRY(Reset_Handler) ENTRY(Reset_Handler)
MEMORY MEMORY
{ {
RAM (arw) : ORIGIN = 0x20000000, LENGTH = 0x20000 RAM (arw) : ORIGIN = 0x20000000, LENGTH = 0x800000
FLASH (arx) : ORIGIN = 0x8000000 + 0x2000 + 0x1000, LENGTH = 0x30000 FLASH (arx) : ORIGIN = 0x8000000 + 0x2000 + 0x1000, LENGTH = 0x30000
} }
SECTIONS SECTIONS

View File

@@ -52,6 +52,7 @@ void MemManage_Handler(void)
thread_get_current_task(), fault_addr, bus_addr); thread_get_current_task(), fault_addr, bus_addr);
task_knl_kill(thread_get_current(), is_knl); task_knl_kill(thread_get_current(), is_knl);
} }
return;
} }
if ((SCB->CFSR & 8)) if ((SCB->CFSR & 8))
{ {

View File

@@ -95,6 +95,7 @@ void MemManage_Handler(void)
thread_get_current_task(), fault_addr, bus_addr); thread_get_current_task(), fault_addr, bus_addr);
task_knl_kill(thread_get_current(), is_knl); task_knl_kill(thread_get_current(), is_knl);
} }
return;
} }
if ((SCB->CFSR & 8)) if ((SCB->CFSR & 8))
{ {

View File

@@ -24,6 +24,8 @@ extern int mem_node_num;
extern mem_node_t flash_nodes[]; //!< 支持的flash节点 extern mem_node_t flash_nodes[]; //!< 支持的flash节点
extern int flash_node_num; extern int flash_node_num;
extern umword_t cpio_images;
mem_t *mm_get_global(void); mem_t *mm_get_global(void);
void global_reg_kobj(kobject_t *kobj, int inx); void global_reg_kobj(kobject_t *kobj, int inx);
kobject_t *global_get_kobj(int inx); kobject_t *global_get_kobj(int inx);

View File

@@ -73,6 +73,7 @@ static void mem_sys_init(void)
} }
INIT_MEM(mem_sys_init); INIT_MEM(mem_sys_init);
#if IS_ENABLED(CONFIG_DTBO_SUPPORT)
static void dts_parse(void) static void dts_parse(void)
{ {
printk("init dts parsing.\n"); printk("init dts parsing.\n");
@@ -96,3 +97,4 @@ static void dts_parse(void)
// #endif // #endif
} }
INIT_ONBOOT(dts_parse); INIT_ONBOOT(dts_parse);
#endif

View File

@@ -230,7 +230,9 @@ void start_kernel(void *boot_info)
// 初始化系统时钟 // 初始化系统时钟
// 初始化串口 // 初始化串口
// 初始化定时器 // 初始化定时器
#if IS_ENABLED(CONFIG_BOOT_INFO_SUPPORT)
arch_set_boot_info(boot_info); arch_set_boot_info(boot_info);
#endif
sys_call_init(); sys_call_init();
printk("mkrtos init done..\n"); printk("mkrtos init done..\n");
printk("mkrtos running..\n"); printk("mkrtos running..\n");

View File

@@ -1,12 +1,12 @@
#!/bin/bash #!/bin/bash
# export TOOLCHAIN=/Applications/ArmGNUToolchain/11.3.rel1/aarch64-none-elf/bin/ 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_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=/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_LIB=/home/toolchains/gcc-arm-10.3-2021.07-x86_64-aarch64-none-elf/lib/gcc/aarch64-none-elf/10.3.1
export TOOLCHAIN=/home/zhangzheng/gcc-arm-10.3-2021.07-x86_64-aarch64-none-elf/bin/ # 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_LIB=/home/zhangzheng/gcc-arm-10.3-2021.07-x86_64-aarch64-none-elf/lib/gcc/aarch64-none-elf/10.3.1
export BOARD=aarch64_qemu export BOARD=aarch64_qemu
export CROSS_COMPILE_NAME=aarch64-none-elf- export CROSS_COMPILE_NAME=aarch64-none-elf-

View File

@@ -47,7 +47,10 @@ run_and_check "./mkrtos_script/run_m3.sh" "$TIMEOUT"
run_and_check "./mkrtos_script/run_m4.sh" "$TIMEOUT" run_and_check "./mkrtos_script/run_m4.sh" "$TIMEOUT"
./mkrtos_script/clean.sh ./mkrtos_script/clean.sh
./mkrtos_script/build_swm34s.sh test ./mkrtos_script/build_at32f437.sh test "$TIMEOUT"
./mkrtos_script/clean.sh
./mkrtos_script/build_swm34s.sh test "$TIMEOUT"
# run_and_check "./mkrtos_script/build_swm34s.sh test" "$TIMEOUT" # run_and_check "./mkrtos_script/build_swm34s.sh test" "$TIMEOUT"
echo "All tests completed." echo "All tests completed."