stm32f2能够运行
This commit is contained in:
5
.vscode/launch.json
vendored
5
.vscode/launch.json
vendored
@@ -47,10 +47,11 @@
|
|||||||
"externalConsole": false,
|
"externalConsole": false,
|
||||||
// "miDebuggerPath": "/opt/homebrew/bin/arm-none-eabi-gdb",
|
// "miDebuggerPath": "/opt/homebrew/bin/arm-none-eabi-gdb",
|
||||||
|
|
||||||
"miDebuggerPath": "/home/zhangzheng/gcc-arm/gcc-arm-none-eabi-10.3-2021.10/bin/arm-none-eabi-gdb",
|
// "miDebuggerPath": "/home/zhangzheng/gcc-arm/gcc-arm-none-eabi-10.3-2021.10/bin/arm-none-eabi-gdb",
|
||||||
|
"miDebuggerPath": "/home/zhangzheng/gcc-arm-none-eabi-5_4-2016q3/bin/arm-none-eabi-gdb",
|
||||||
// "miDebuggerPath": "/home/zhangzheng/gcc-arm-10.3-2021.07-aarch64-aarch64-none-elf/bin/aarch64-none-elf-gdb",
|
// "miDebuggerPath": "/home/zhangzheng/gcc-arm-10.3-2021.07-aarch64-aarch64-none-elf/bin/aarch64-none-elf-gdb",
|
||||||
// "miDebuggerPath": "/home/mkrtos-smart/toolchains/gcc-arm-10.3-2021.07-x86_64-aarch64-none-elf/bin/aarch64-none-elf-gdb",
|
// "miDebuggerPath": "/home/mkrtos-smart/toolchains/gcc-arm-10.3-2021.07-x86_64-aarch64-none-elf/bin/aarch64-none-elf-gdb",
|
||||||
"miDebuggerServerAddress": "127.0.0.1:3333",
|
"miDebuggerServerAddress": "127.0.0.1:33333",
|
||||||
"MIMode": "gdb",
|
"MIMode": "gdb",
|
||||||
"setupCommands": [
|
"setupCommands": [
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -23,10 +23,10 @@ add_custom_target(
|
|||||||
add_dependencies(mkrtos_img_dump
|
add_dependencies(mkrtos_img_dump
|
||||||
bootstrap_dump
|
bootstrap_dump
|
||||||
mkrtos_dump
|
mkrtos_dump
|
||||||
# init_dump
|
init_dump
|
||||||
# app_dump
|
# app_dump
|
||||||
# shell_dump
|
shell_dump
|
||||||
# fatfs_dump
|
# fatfs_dump
|
||||||
# cpiofs_dump
|
cpiofs_dump
|
||||||
# tcc_dump
|
# tcc_dump
|
||||||
)
|
)
|
||||||
@@ -124,8 +124,8 @@ void arch_set_enable_irq_prio(int inx, int sub_prio, int pre_prio);
|
|||||||
|
|
||||||
static inline __attribute__((optimize(0))) void preemption(void)
|
static inline __attribute__((optimize(0))) void preemption(void)
|
||||||
{
|
{
|
||||||
cli();
|
|
||||||
sti();
|
sti();
|
||||||
|
cli();
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline umword_t intr_status(void)
|
static inline umword_t intr_status(void)
|
||||||
|
|||||||
@@ -127,8 +127,8 @@ void arch_set_enable_irq_prio(int inx, int sub_prio, int pre_prio);
|
|||||||
|
|
||||||
static inline __attribute__((optimize(0))) void preemption(void)
|
static inline __attribute__((optimize(0))) void preemption(void)
|
||||||
{
|
{
|
||||||
cli();
|
|
||||||
sti();
|
sti();
|
||||||
|
cli();
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline umword_t intr_status(void)
|
static inline umword_t intr_status(void)
|
||||||
|
|||||||
@@ -19,7 +19,7 @@
|
|||||||
#include "string.h"
|
#include "string.h"
|
||||||
typedef struct entry_frame_tmp
|
typedef struct entry_frame_tmp
|
||||||
{
|
{
|
||||||
umword_t r[6];
|
umword_t r[8];
|
||||||
} entry_frame_tmp_t;
|
} entry_frame_tmp_t;
|
||||||
|
|
||||||
static void syscall_entry_raw(entry_frame_tmp_t entry);
|
static void syscall_entry_raw(entry_frame_tmp_t entry);
|
||||||
|
|||||||
@@ -124,8 +124,8 @@ void arch_set_enable_irq_prio(int inx, int sub_prio, int pre_prio);
|
|||||||
|
|
||||||
static inline __attribute__((optimize(0))) void preemption(void)
|
static inline __attribute__((optimize(0))) void preemption(void)
|
||||||
{
|
{
|
||||||
cli();
|
|
||||||
sti();
|
sti();
|
||||||
|
cli();
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline umword_t intr_status(void)
|
static inline umword_t intr_status(void)
|
||||||
|
|||||||
@@ -124,8 +124,8 @@ void arch_set_enable_irq_prio(int inx, int sub_prio, int pre_prio);
|
|||||||
|
|
||||||
static inline void preemption(void)
|
static inline void preemption(void)
|
||||||
{
|
{
|
||||||
cli();
|
|
||||||
sti();
|
sti();
|
||||||
|
cli();
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline umword_t intr_status(void)
|
static inline umword_t intr_status(void)
|
||||||
|
|||||||
@@ -57,8 +57,13 @@ typedef struct msg_tag
|
|||||||
.msg_buf_len = (msg_words), \
|
.msg_buf_len = (msg_words), \
|
||||||
.map_buf_len = (buf_words), \
|
.map_buf_len = (buf_words), \
|
||||||
.prot = (p)})
|
.prot = (p)})
|
||||||
|
#if ARCH_WORD_SIZE == 64
|
||||||
#define msg_tag_get_prot(tag) \
|
#define msg_tag_get_prot(tag) \
|
||||||
((int)((tag).prot))
|
((int)((tag).prot))
|
||||||
|
#else
|
||||||
|
#define msg_tag_get_prot(tag) \
|
||||||
|
((short)((tag).prot))
|
||||||
|
#endif
|
||||||
#define msg_tag_get_val(tag) msg_tag_get_prot(tag)
|
#define msg_tag_get_val(tag) msg_tag_get_prot(tag)
|
||||||
|
|
||||||
typedef union syscall_prot
|
typedef union syscall_prot
|
||||||
|
|||||||
@@ -233,6 +233,6 @@ void start_kernel(void)
|
|||||||
|
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
knl_main();
|
// knl_main();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,8 +4,10 @@
|
|||||||
# 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_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=/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_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=/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_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 BOARD=STM32F205
|
export BOARD=STM32F205
|
||||||
export CROSS_COMPILE_NAME=arm-none-eabi-
|
export CROSS_COMPILE_NAME=arm-none-eabi-
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
export TOOLCHAIN=/home/zhangzheng/gcc-arm-10.3-2021.07-aarch64-aarch64-none-elf/bin/
|
# export TOOLCHAIN=/home/zhangzheng/gcc-arm-10.3-2021.07-aarch64-aarch64-none-elf/bin/
|
||||||
export TOOLCHAIN_LIB=/home/zhangzheng/gcc-arm-10.3-2021.07-aarch64-aarch64-none-elf/lib/gcc/aarch64-none-elf/10.3.1
|
# export TOOLCHAIN_LIB=/home/zhangzheng/gcc-arm-10.3-2021.07-aarch64-aarch64-none-elf/lib/gcc/aarch64-none-elf/10.3.1
|
||||||
# export TOOLCHAIN=/home/mkrtos-smart/toolchains/gcc-arm-10.3-2021.07-x86_64-aarch64-none-elf/bin/
|
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_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 BOARD=aarch64_qemu
|
export BOARD=aarch64_qemu
|
||||||
export CROSS_COMPILE_NAME=aarch64-none-elf-
|
export CROSS_COMPILE_NAME=aarch64-none-elf-
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ if (${CONFIG_ARCH} STREQUAL "cortex-m3" OR
|
|||||||
-fPIC -fPIE -n -pie -fpie -fpic -msingle-pic-base -mno-pic-data-is-text-relative \
|
-fPIC -fPIE -n -pie -fpie -fpic -msingle-pic-base -mno-pic-data-is-text-relative \
|
||||||
" )
|
" )
|
||||||
|
|
||||||
set(CORTEX_M_LINK_FLAGS "-pie")
|
set(CORTEX_M_LINK_FLAGS " -pie ")
|
||||||
set(LIBC_NAME "muslc")
|
set(LIBC_NAME "muslc")
|
||||||
set(ARCH_NAME "armv7_8m")
|
set(ARCH_NAME "armv7_8m")
|
||||||
|
|
||||||
|
|||||||
@@ -14,3 +14,6 @@
|
|||||||
#define ARCH_REG_5 "x5"
|
#define ARCH_REG_5 "x5"
|
||||||
#define ARCH_REG_6 "x6"
|
#define ARCH_REG_6 "x6"
|
||||||
#define ARCH_REG_7 "x7"
|
#define ARCH_REG_7 "x7"
|
||||||
|
|
||||||
|
#define ARCH_WORD_SIZE 64
|
||||||
|
|
||||||
|
|||||||
@@ -19,3 +19,6 @@
|
|||||||
#define ARCH_REG_5 "r5"
|
#define ARCH_REG_5 "r5"
|
||||||
#define ARCH_REG_6 "r6"
|
#define ARCH_REG_6 "r6"
|
||||||
#define ARCH_REG_7 "r7"
|
#define ARCH_REG_7 "r7"
|
||||||
|
|
||||||
|
#define ARCH_WORD_SIZE 32
|
||||||
|
|
||||||
|
|||||||
@@ -47,8 +47,13 @@ typedef union msg_tag
|
|||||||
.msg_buf_len = (msg_words), \
|
.msg_buf_len = (msg_words), \
|
||||||
.map_buf_len = (buf_words), \
|
.map_buf_len = (buf_words), \
|
||||||
.prot = (p)})
|
.prot = (p)})
|
||||||
|
#if ARCH_WORD_SIZE == 64
|
||||||
#define msg_tag_get_prot(tag) \
|
#define msg_tag_get_prot(tag) \
|
||||||
((int)((tag).prot))
|
((int)((tag).prot))
|
||||||
|
#else
|
||||||
|
#define msg_tag_get_prot(tag) \
|
||||||
|
((short)((tag).prot))
|
||||||
|
#endif
|
||||||
#define msg_tag_get_val(tag) msg_tag_get_prot(tag)
|
#define msg_tag_get_val(tag) msg_tag_get_prot(tag)
|
||||||
|
|
||||||
typedef union syscall_prot
|
typedef union syscall_prot
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
#include <u_thread_util.h>
|
#include <u_thread_util.h>
|
||||||
#include <u_thread.h>
|
#include <u_thread.h>
|
||||||
|
|
||||||
static ATTR_ALIGN(8) uint8_t cons_stack[4096];
|
static ATTR_ALIGN(8) uint8_t cons_stack[1024];
|
||||||
// static uint8_t cons_msg_buf[MSG_BUG_LEN];
|
// static uint8_t cons_msg_buf[MSG_BUG_LEN];
|
||||||
static cons_t cons_obj;
|
static cons_t cons_obj;
|
||||||
static obj_handler_t cons_th;
|
static obj_handler_t cons_th;
|
||||||
@@ -49,7 +49,7 @@ void console_init(void)
|
|||||||
cons_svr_obj_init(&cons_obj);
|
cons_svr_obj_init(&cons_obj);
|
||||||
meta_reg_svr_obj(&cons_obj.svr, CONS_PROT);
|
meta_reg_svr_obj(&cons_obj.svr, CONS_PROT);
|
||||||
u_thread_create(&cons_th, (char *)cons_stack + sizeof(cons_stack) - 8, NULL, console_read_func);
|
u_thread_create(&cons_th, (char *)cons_stack + sizeof(cons_stack) - 8, NULL, console_read_func);
|
||||||
u_thread_run(cons_th, 3);
|
u_thread_run(cons_th, 2);
|
||||||
ulog_write_str(LOG_PROT, "cons svr init...\n");
|
ulog_write_str(LOG_PROT, "cons svr init...\n");
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#一次读取一行,每行代表启动的应用程序,暂时不支持参数
|
#一次读取一行,每行代表启动的应用程序,暂时不支持参数
|
||||||
|
|
||||||
# fatfs
|
# fatfs
|
||||||
cpiofs
|
# cpiofs
|
||||||
# dm9000_drv
|
# dm9000_drv
|
||||||
# net
|
# net
|
||||||
sh
|
sh
|
||||||
|
|||||||
@@ -48,6 +48,8 @@ add_custom_target(
|
|||||||
mkdir -p ${CMAKE_SOURCE_DIR}/build/output/cpio
|
mkdir -p ${CMAKE_SOURCE_DIR}/build/output/cpio
|
||||||
COMMAND
|
COMMAND
|
||||||
cp sh.bin ${CMAKE_SOURCE_DIR}/build/output/cpio/sh
|
cp sh.bin ${CMAKE_SOURCE_DIR}/build/output/cpio/sh
|
||||||
|
COMMAND
|
||||||
|
cp sh.elf ${CMAKE_SOURCE_DIR}/build/output/sh.elf
|
||||||
)
|
)
|
||||||
if ((DEFINED CONFIG_ELF_LAUNCH) AND (CONFIG_ELF_LAUNCH STREQUAL "y"))
|
if ((DEFINED CONFIG_ELF_LAUNCH) AND (CONFIG_ELF_LAUNCH STREQUAL "y"))
|
||||||
add_custom_target(
|
add_custom_target(
|
||||||
|
|||||||
Reference in New Issue
Block a user