完善mcu的支持

This commit is contained in:
zhangzheng
2024-04-11 18:51:14 +08:00
parent acb21792bb
commit 609c96f0ac
26 changed files with 56 additions and 484 deletions

View File

@@ -19,5 +19,6 @@ target_include_directories(
${CMAKE_SOURCE_DIR}/mkrtos_knl/inc/lib
${CMAKE_SOURCE_DIR}/mkrtos_knl/inc/knl
${CMAKE_SOURCE_DIR}/mkrtos_knl/arch/inc
${CMAKE_SOURCE_DIR}/mkrtos_knl/arch/armv7m/stm32f1
${CMAKE_SOURCE_DIR}/mkrtos_knl/arch/${CONFIG_ARCH}/${CONFIG_CPU_TYPE}
${CMAKE_SOURCE_DIR}/mkrtos_knl/arch/${CONFIG_ARCH}/
)

View File

@@ -12,6 +12,8 @@
#include "types.h"
#include "arch.h"
#define PAGE_SIZE 512
#define LOG_INTR_NO 38 // USART2_IRQn
/// @brief 线程信息

View File

@@ -1,12 +1,18 @@
cmake_minimum_required(VERSION 3.13)
file(GLOB deps *.c *.S)
list(REMOVE_ITEM deps ${CMAKE_SOURCE_DIR}/mkrtos_knl/arch/${CONFIG_ARCH}/link.lds.S)
add_library(arch STATIC ${deps})
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D__MPU_PRESENT=1 -DUSE_STDPERIPH_DRIVER=1 ")
message(=======${CONFIG_CPU_TYPE})
target_include_directories(
arch
PUBLIC
${CMAKE_SOURCE_DIR}/mkrtos_knl/arch/${CONFIG_ARCH}/${CONFIG_CPU_TYPE}
${CMAKE_SOURCE_DIR}/mkrtos_knl/arch/${CONFIG_ARCH}/
)
if (${CONFIG_CPU_TYPE} STREQUAL "stm32f4" )
if(${BOARD} STREQUAL "STM32F407VET6" )
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DSTM32F40_41xxx ")
@@ -14,7 +20,7 @@ if (${CONFIG_CPU_TYPE} STREQUAL "stm32f4" )
target_include_directories(
arch
PUBLIC
${CMAKE_SOURCE_DIR}/mkrtos_knl/arch/${ARCH}/${CONFIG_CPU_TYPE}
${CMAKE_SOURCE_DIR}/mkrtos_knl/arch/${CONFIG_ARCH}/${CONFIG_CPU_TYPE}
${CMAKE_SOURCE_DIR}/mkrtos_knl/inc/knl
${CMAKE_SOURCE_DIR}/mkrtos_bsp/STM32/STM32F4xx_DSP_StdPeriph_Lib_V1.9.0/Libraries/STM32F4xx_StdPeriph_Driver/inc

View File

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

View File

@@ -14,12 +14,13 @@
#include "mpu.h"
#include "assert.h"
#if CONFIG_MK_MPU_CFG
void mm_space_init(mm_space_t *mm_space, int is_knl)
int mm_space_init(mm_space_t *mm_space, int is_knl)
{
for (int i = 0; i < CONFIG_REGION_NUM; i++)
{
mm_space->pt_regions[i].region_inx = -1;
}
return 0;
}
region_info_t *mm_space_alloc_pt_region(mm_space_t *m_space)
{

View File

@@ -13,7 +13,8 @@ add_library(knl_bsp STATIC ${deps})
target_include_directories(
knl_bsp
PUBLIC
${CMAKE_SOURCE_DIR}/mkrtos_knl/arch/armv7m/stm32f4
${CMAKE_SOURCE_DIR}/mkrtos_knl/arch/${CONFIG_ARCH}/${CONFIG_CPU_TYPE}
${CMAKE_SOURCE_DIR}/mkrtos_knl/arch/${CONFIG_ARCH}/
${CMAKE_SOURCE_DIR}/mkrtos_knl/arch/inc
${CMAKE_SOURCE_DIR}/mkrtos_knl/inc/lib
${CMAKE_SOURCE_DIR}/mkrtos_knl/inc/knl

View File

@@ -12,6 +12,8 @@
#include "types.h"
#include "arch.h"
#define PAGE_SIZE 512
#define LOG_INTR_NO 37 // USART1_IRQn
/// @brief 线程信息

View File

@@ -0,0 +1,3 @@
#pragma once
#define THREAD_BLOCK_SIZE CONFIG_THREAD_BLOCK_SIZE //!< 线程块大小,栈在块的顶部

View File

@@ -12,7 +12,7 @@
#include "types.h"
#include "thread.h"
#include "printk.h"
#include "thread_armv7m.h"
#include "thread_task_arch.h"
#include "app.h"
#include "mm_wrap.h"
#include "arch.h"
@@ -45,7 +45,7 @@ void thread_user_pf_set(thread_t *cur_th, void *pc, void *user_sp, void *ram, um
cur_pf->pf_s.xpsr = 0x01000000L;
cur_pf->pf_s.lr = (umword_t)NULL; //!< 线程退出时调用的函数
cur_pf->pf_s.pc = (umword_t)pc | 0x1;
cur_pf->rg1[5] = (umword_t)ram;
cur_pf->regs[5] = (umword_t)ram;
cur_th->sp.knl_sp = ((char *)cur_th + THREAD_BLOCK_SIZE - 8);
cur_th->sp.user_sp = cur_pf;
@@ -53,3 +53,6 @@ void thread_user_pf_set(thread_t *cur_th, void *pc, void *user_sp, void *ram, um
// printk("exc_regs:%x %x %x\n", cur_pf->pf_s.pc, cur_th->sp.user_sp, ram);
}
void task_knl_init(task_t *knl_tk)
{
}