完善mcu的支持
This commit is contained in:
@@ -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}/
|
||||
)
|
||||
|
||||
@@ -12,6 +12,8 @@
|
||||
|
||||
#include "types.h"
|
||||
#include "arch.h"
|
||||
|
||||
#define PAGE_SIZE 512
|
||||
#define LOG_INTR_NO 38 // USART2_IRQn
|
||||
|
||||
/// @brief 线程信息
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -12,6 +12,8 @@
|
||||
|
||||
#include "types.h"
|
||||
#include "arch.h"
|
||||
|
||||
#define PAGE_SIZE 512
|
||||
#define LOG_INTR_NO 37 // USART1_IRQn
|
||||
|
||||
/// @brief 线程信息
|
||||
|
||||
3
mkrtos_knl/arch/cortex-m4/thread_arch.h
Normal file
3
mkrtos_knl/arch/cortex-m4/thread_arch.h
Normal file
@@ -0,0 +1,3 @@
|
||||
#pragma once
|
||||
|
||||
#define THREAD_BLOCK_SIZE CONFIG_THREAD_BLOCK_SIZE //!< 线程块大小,栈在块的顶部
|
||||
@@ -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)
|
||||
{
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user