优化多arch支持
This commit is contained in:
2
.config
2
.config
@@ -6,7 +6,7 @@ CONFIG_KNL_INFO=y
|
||||
CONFIG_KNL_TEXT_ADDR=0x8000000
|
||||
CONFIG_KNL_TEXT_SIZE=0x100000
|
||||
CONFIG_KNL_DATA_ADDR=0x20000000
|
||||
CONFIG_KNL_DATA_SIZE=0x10000
|
||||
CONFIG_KNL_DATA_SIZE=0x20000
|
||||
CONFIG_KNL_OFFSET=0x2000
|
||||
CONFIG_INIT_TASK_OFFSET=0x10000
|
||||
CONFIG_BOOTFS_OFFSET=0x20000
|
||||
|
||||
@@ -4,7 +4,6 @@ set(CMAKE_CXX_COMPILER_WORKS TRUE)
|
||||
SET(CMAKE_SYSTEM_NAME Linux)
|
||||
set(CMAKE_SYSTEM_PROCESSOR arm)
|
||||
|
||||
include(kconfig.cmake)
|
||||
include(setting.cmake)
|
||||
enable_language(ASM C CXX)
|
||||
project(mkrtos)
|
||||
|
||||
11
Kconfig
11
Kconfig
@@ -1,8 +1,17 @@
|
||||
mainmenu "MKRTOS Project Configuration"
|
||||
source "mkrtos_knl/Kconfig"
|
||||
source "mkrtos_user/Kconfig"
|
||||
|
||||
config CPU_TYPE
|
||||
string "mkrtos set cpu type."
|
||||
default "stm32f1"
|
||||
|
||||
config ARCH
|
||||
string "cpu arch"
|
||||
default "cortex-m3"
|
||||
|
||||
config RTT_DIR
|
||||
string
|
||||
string ""
|
||||
default "./"
|
||||
|
||||
|
||||
|
||||
176
cmake/backports/FindPythonInterp.cmake
Normal file
176
cmake/backports/FindPythonInterp.cmake
Normal file
@@ -0,0 +1,176 @@
|
||||
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
||||
# file Copyright.txt or https://cmake.org/licensing for details.
|
||||
|
||||
#.rst:
|
||||
# FindPythonInterp
|
||||
# ----------------
|
||||
#
|
||||
# Find python interpreter
|
||||
#
|
||||
# This module finds if Python interpreter is installed and determines
|
||||
# where the executables are. This code sets the following variables:
|
||||
#
|
||||
# ::
|
||||
#
|
||||
# PYTHONINTERP_FOUND - Was the Python executable found
|
||||
# PYTHON_EXECUTABLE - path to the Python interpreter
|
||||
#
|
||||
#
|
||||
#
|
||||
# ::
|
||||
#
|
||||
# PYTHON_VERSION_STRING - Python version found e.g. 2.5.2
|
||||
# PYTHON_VERSION_MAJOR - Python major version found e.g. 2
|
||||
# PYTHON_VERSION_MINOR - Python minor version found e.g. 5
|
||||
# PYTHON_VERSION_PATCH - Python patch version found e.g. 2
|
||||
#
|
||||
#
|
||||
#
|
||||
# The Python_ADDITIONAL_VERSIONS variable can be used to specify a list
|
||||
# of version numbers that should be taken into account when searching
|
||||
# for Python. You need to set this variable before calling
|
||||
# find_package(PythonInterp).
|
||||
#
|
||||
# If calling both ``find_package(PythonInterp)`` and
|
||||
# ``find_package(PythonLibs)``, call ``find_package(PythonInterp)`` first to
|
||||
# get the currently active Python version by default with a consistent version
|
||||
# of PYTHON_LIBRARIES.
|
||||
|
||||
function(determine_python_version exe result)
|
||||
execute_process(COMMAND "${exe}" -c
|
||||
"import sys; sys.stdout.write(';'.join([str(x) for x in sys.version_info[:3]]))"
|
||||
OUTPUT_VARIABLE _VERSION
|
||||
RESULT_VARIABLE _PYTHON_VERSION_RESULT
|
||||
ERROR_QUIET)
|
||||
if(_PYTHON_VERSION_RESULT)
|
||||
# sys.version predates sys.version_info, so use that
|
||||
execute_process(COMMAND "${exe}" -c "import sys; sys.stdout.write(sys.version)"
|
||||
OUTPUT_VARIABLE _VERSION
|
||||
RESULT_VARIABLE _PYTHON_VERSION_RESULT
|
||||
ERROR_QUIET)
|
||||
if(_PYTHON_VERSION_RESULT)
|
||||
# sys.version was first documented for Python 1.5, so assume
|
||||
# this is older.
|
||||
set(ver "1.4")
|
||||
else()
|
||||
string(REGEX REPLACE " .*" "" ver "${_VERSION}")
|
||||
endif()
|
||||
else()
|
||||
string(REPLACE ";" "." ver "${_VERSION}")
|
||||
endif()
|
||||
set(${result} ${ver} PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
# Find out if the 'python' executable on path has the correct version,
|
||||
# and choose it if it does. This gives this executable the highest
|
||||
# priority, which is expected behaviour.
|
||||
find_program(PYTHON_EXECUTABLE python)
|
||||
if(NOT (${PYTHON_EXECUTABLE} STREQUAL PYTHON_EXECUTABLE-NOTFOUND))
|
||||
determine_python_version(${PYTHON_EXECUTABLE} ver)
|
||||
if(${ver} VERSION_LESS PythonInterp_FIND_VERSION)
|
||||
# We didn't find the correct version on path, so forget about it
|
||||
# and continue looking.
|
||||
unset(PYTHON_EXECUTABLE)
|
||||
unset(PYTHON_EXECUTABLE CACHE)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
unset(_Python_NAMES)
|
||||
|
||||
set(_PYTHON1_VERSIONS 1.6 1.5)
|
||||
set(_PYTHON2_VERSIONS 2.7 2.6 2.5 2.4 2.3 2.2 2.1 2.0)
|
||||
set(_PYTHON3_VERSIONS 3.9 3.8 3.7 3.6 3.5 3.4 3.3 3.2 3.1 3.0)
|
||||
|
||||
if(PythonInterp_FIND_VERSION)
|
||||
if(PythonInterp_FIND_VERSION_COUNT GREATER 1)
|
||||
set(_PYTHON_FIND_MAJ_MIN "${PythonInterp_FIND_VERSION_MAJOR}.${PythonInterp_FIND_VERSION_MINOR}")
|
||||
list(APPEND _Python_NAMES
|
||||
python${_PYTHON_FIND_MAJ_MIN}
|
||||
python${PythonInterp_FIND_VERSION_MAJOR})
|
||||
unset(_PYTHON_FIND_OTHER_VERSIONS)
|
||||
if(NOT PythonInterp_FIND_VERSION_EXACT)
|
||||
foreach(_PYTHON_V ${_PYTHON${PythonInterp_FIND_VERSION_MAJOR}_VERSIONS})
|
||||
if(NOT _PYTHON_V VERSION_LESS _PYTHON_FIND_MAJ_MIN)
|
||||
list(APPEND _PYTHON_FIND_OTHER_VERSIONS ${_PYTHON_V})
|
||||
endif()
|
||||
endforeach()
|
||||
endif()
|
||||
unset(_PYTHON_FIND_MAJ_MIN)
|
||||
else()
|
||||
list(APPEND _Python_NAMES python${PythonInterp_FIND_VERSION_MAJOR})
|
||||
set(_PYTHON_FIND_OTHER_VERSIONS ${_PYTHON${PythonInterp_FIND_VERSION_MAJOR}_VERSIONS})
|
||||
endif()
|
||||
else()
|
||||
set(_PYTHON_FIND_OTHER_VERSIONS ${_PYTHON3_VERSIONS} ${_PYTHON2_VERSIONS} ${_PYTHON1_VERSIONS})
|
||||
endif()
|
||||
find_program(PYTHON_EXECUTABLE NAMES ${_Python_NAMES})
|
||||
|
||||
# Set up the versions we know about, in the order we will search. Always add
|
||||
# the user supplied additional versions to the front.
|
||||
set(_Python_VERSIONS ${Python_ADDITIONAL_VERSIONS})
|
||||
# If FindPythonInterp has already found the major and minor version,
|
||||
# insert that version next to get consistent versions of the interpreter and
|
||||
# library.
|
||||
if(DEFINED PYTHONLIBS_VERSION_STRING)
|
||||
string(REPLACE "." ";" _PYTHONLIBS_VERSION "${PYTHONLIBS_VERSION_STRING}")
|
||||
list(GET _PYTHONLIBS_VERSION 0 _PYTHONLIBS_VERSION_MAJOR)
|
||||
list(GET _PYTHONLIBS_VERSION 1 _PYTHONLIBS_VERSION_MINOR)
|
||||
list(APPEND _Python_VERSIONS ${_PYTHONLIBS_VERSION_MAJOR}.${_PYTHONLIBS_VERSION_MINOR})
|
||||
endif()
|
||||
|
||||
# Search for the current active python version first on Linux, and last on Windows
|
||||
if(NOT WIN32)
|
||||
list(APPEND _Python_VERSIONS ";")
|
||||
endif()
|
||||
|
||||
list(APPEND _Python_VERSIONS ${_PYTHON_FIND_OTHER_VERSIONS})
|
||||
|
||||
if(WIN32)
|
||||
list(APPEND _Python_VERSIONS ";")
|
||||
endif()
|
||||
|
||||
unset(_PYTHON_FIND_OTHER_VERSIONS)
|
||||
unset(_PYTHON1_VERSIONS)
|
||||
unset(_PYTHON2_VERSIONS)
|
||||
unset(_PYTHON3_VERSIONS)
|
||||
|
||||
# Search for newest python version if python executable isn't found
|
||||
if(NOT PYTHON_EXECUTABLE)
|
||||
foreach(_CURRENT_VERSION IN LISTS _Python_VERSIONS)
|
||||
set(_Python_NAMES python${_CURRENT_VERSION})
|
||||
if(WIN32)
|
||||
list(APPEND _Python_NAMES python)
|
||||
endif()
|
||||
|
||||
if(WIN32)
|
||||
find_program(PYTHON_EXECUTABLE
|
||||
NAMES ${_Python_NAMES}
|
||||
HINTS [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\${_CURRENT_VERSION}\\InstallPath]
|
||||
)
|
||||
endif()
|
||||
|
||||
find_program(PYTHON_EXECUTABLE
|
||||
NAMES ${_Python_NAMES}
|
||||
PATHS [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\${_CURRENT_VERSION}\\InstallPath]
|
||||
)
|
||||
endforeach()
|
||||
endif()
|
||||
|
||||
# determine python version string
|
||||
if(PYTHON_EXECUTABLE)
|
||||
determine_python_version(${PYTHON_EXECUTABLE} res)
|
||||
set(PYTHON_VERSION_STRING ${res})
|
||||
|
||||
if(PYTHON_VERSION_STRING MATCHES "^([0-9]+)\\.([0-9]+)\\.([0-9]+)")
|
||||
set(PYTHON_VERSION_PATCH "${CMAKE_MATCH_3}")
|
||||
else()
|
||||
set(PYTHON_VERSION_PATCH "0")
|
||||
endif()
|
||||
set(PYTHON_VERSION_MAJOR "${CMAKE_MATCH_1}")
|
||||
set(PYTHON_VERSION_MINOR "${CMAKE_MATCH_2}")
|
||||
endif()
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(PythonInterp REQUIRED_VARS PYTHON_EXECUTABLE VERSION_VAR PYTHON_VERSION_STRING)
|
||||
|
||||
mark_as_advanced(PYTHON_EXECUTABLE)
|
||||
1580
cmake/extensions.cmake
Normal file
1580
cmake/extensions.cmake
Normal file
File diff suppressed because it is too large
Load Diff
273
cmake/kconfig.cmake
Normal file
273
cmake/kconfig.cmake
Normal file
@@ -0,0 +1,273 @@
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
# Folders needed for conf/mconf files (kconfig has no method of redirecting all output files).
|
||||
# conf/mconf needs to be run from a different directory because of: GH-3408
|
||||
file(MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/kconfig/include/generated)
|
||||
file(MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/kconfig/include/config)
|
||||
|
||||
if(KCONFIG_ROOT)
|
||||
# KCONFIG_ROOT has either been specified as a CMake variable or is
|
||||
# already in the CMakeCache.txt. This has precedence.
|
||||
elseif(EXISTS ${APPLICATION_SOURCE_DIR}/Kconfig)
|
||||
set(KCONFIG_ROOT ${APPLICATION_SOURCE_DIR}/Kconfig)
|
||||
else()
|
||||
set(KCONFIG_ROOT ${ZEPHYR_BASE}/Kconfig)
|
||||
endif()
|
||||
|
||||
set(BOARD_DEFCONFIG ${BOARD_DIR}/${BOARD}_defconfig)
|
||||
set(DOTCONFIG ${PROJECT_BINARY_DIR}/.config)
|
||||
set(PARSED_KCONFIG_SOURCES_TXT ${PROJECT_BINARY_DIR}/kconfig/sources.txt)
|
||||
|
||||
if(CONF_FILE)
|
||||
string(REPLACE " " ";" CONF_FILE_AS_LIST "${CONF_FILE}")
|
||||
endif()
|
||||
|
||||
if(OVERLAY_CONFIG)
|
||||
string(REPLACE " " ";" OVERLAY_CONFIG_AS_LIST "${OVERLAY_CONFIG}")
|
||||
endif()
|
||||
|
||||
# DTS_ROOT_BINDINGS is a semicolon separated list, this causes
|
||||
# problems when invoking kconfig_target since semicolon is a special
|
||||
# character in the C shell, so we make it into a question-mark
|
||||
# separated list instead.
|
||||
string(REPLACE ";" "?" DTS_ROOT_BINDINGS "${DTS_ROOT_BINDINGS}")
|
||||
|
||||
set(ENV{srctree} ${PROJECT_ROOT})
|
||||
set(ENV{KCONFIG_BASE} ${PROJECT_ROOT})
|
||||
set(ENV{KERNELVERSION} ${KERNELVERSION})
|
||||
set(ENV{KCONFIG_CONFIG} ${DOTCONFIG})
|
||||
set(ENV{PYTHON_EXECUTABLE} ${PYTHON_EXECUTABLE})
|
||||
|
||||
# Set environment variables so that Kconfig can prune Kconfig source
|
||||
# files for other architectures
|
||||
set(ENV{ARCH} ${ARCH})
|
||||
set(ENV{BOARD_DIR} ${BOARD_DIR})
|
||||
set(ENV{SOC_DIR} ${SOC_DIR})
|
||||
set(ENV{SHIELD_AS_LIST} "${SHIELD_AS_LIST}")
|
||||
set(ENV{CMAKE_BINARY_DIR} ${CMAKE_BINARY_DIR})
|
||||
set(ENV{ARCH_DIR} ${ARCH_DIR})
|
||||
set(ENV{DEVICETREE_CONF} ${DEVICETREE_CONF})
|
||||
set(ENV{DTS_POST_CPP} ${DTS_POST_CPP})
|
||||
set(ENV{DTS_ROOT_BINDINGS} "${DTS_ROOT_BINDINGS}")
|
||||
set(ENV{TOOLCHAIN_KCONFIG_DIR} "${TOOLCHAIN_KCONFIG_DIR}")
|
||||
|
||||
# Allow out-of-tree users to add their own Kconfig python frontend
|
||||
# targets by appending targets to the CMake list
|
||||
# 'EXTRA_KCONFIG_TARGETS' and setting variables named
|
||||
# 'EXTRA_KCONFIG_TARGET_COMMAND_FOR_<target>'
|
||||
#
|
||||
# e.g.
|
||||
# cmake -DEXTRA_KCONFIG_TARGETS=cli
|
||||
# -DEXTRA_KCONFIG_TARGET_COMMAND_FOR_cli=cli_kconfig_frontend.py
|
||||
|
||||
set(EXTRA_KCONFIG_TARGET_COMMAND_FOR_menuconfig
|
||||
${PROJECT_ROOT}/scripts/kconfig/menuconfig.py
|
||||
)
|
||||
|
||||
set(EXTRA_KCONFIG_TARGET_COMMAND_FOR_guiconfig
|
||||
${PROJECT_ROOT}/scripts/kconfig/guiconfig.py
|
||||
)
|
||||
|
||||
set(EXTRA_KCONFIG_TARGET_COMMAND_FOR_hardenconfig
|
||||
${PROJECT_ROOT}/scripts/kconfig/hardenconfig.py
|
||||
)
|
||||
|
||||
foreach(kconfig_target
|
||||
menuconfig
|
||||
guiconfig
|
||||
hardenconfig
|
||||
${EXTRA_KCONFIG_TARGETS}
|
||||
)
|
||||
add_custom_target(
|
||||
${kconfig_target}
|
||||
${CMAKE_COMMAND} -E env
|
||||
PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}
|
||||
srctree=${ZEPHYR_BASE}
|
||||
KERNELVERSION=${KERNELVERSION}
|
||||
KCONFIG_BASE=${PROJECT_BASE}
|
||||
KCONFIG_CONFIG=${DOTCONFIG}
|
||||
ARCH=$ENV{ARCH}
|
||||
BOARD_DIR=$ENV{BOARD_DIR}
|
||||
SOC_DIR=$ENV{SOC_DIR}
|
||||
SHIELD_AS_LIST=$ENV{SHIELD_AS_LIST}
|
||||
CMAKE_BINARY_DIR=$ENV{CMAKE_BINARY_DIR}
|
||||
ZEPHYR_TOOLCHAIN_VARIANT=${ZEPHYR_TOOLCHAIN_VARIANT}
|
||||
TOOLCHAIN_KCONFIG_DIR=${TOOLCHAIN_KCONFIG_DIR}
|
||||
ARCH_DIR=$ENV{ARCH_DIR}
|
||||
DEVICETREE_CONF=${DEVICETREE_CONF}
|
||||
DTS_POST_CPP=${DTS_POST_CPP}
|
||||
DTS_ROOT_BINDINGS=${DTS_ROOT_BINDINGS}
|
||||
${PYTHON_EXECUTABLE}
|
||||
${EXTRA_KCONFIG_TARGET_COMMAND_FOR_${kconfig_target}}
|
||||
${KCONFIG_ROOT}
|
||||
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/kconfig
|
||||
USES_TERMINAL
|
||||
)
|
||||
endforeach()
|
||||
|
||||
# Support assigning Kconfig symbols on the command-line with CMake
|
||||
# cache variables prefixed with 'CONFIG_'. This feature is
|
||||
# experimental and undocumented until it has undergone more
|
||||
# user-testing.
|
||||
unset(EXTRA_KCONFIG_OPTIONS)
|
||||
get_cmake_property(cache_variable_names CACHE_VARIABLES)
|
||||
foreach (name ${cache_variable_names})
|
||||
if("${name}" MATCHES "^CONFIG_")
|
||||
# When a cache variable starts with 'CONFIG_', it is assumed to be
|
||||
# a Kconfig symbol assignment from the CMake command line.
|
||||
set(EXTRA_KCONFIG_OPTIONS
|
||||
"${EXTRA_KCONFIG_OPTIONS}\n${name}=${${name}}"
|
||||
)
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
if(EXTRA_KCONFIG_OPTIONS)
|
||||
set(EXTRA_KCONFIG_OPTIONS_FILE ${PROJECT_BINARY_DIR}/misc/generated/extra_kconfig_options.conf)
|
||||
file(WRITE
|
||||
${EXTRA_KCONFIG_OPTIONS_FILE}
|
||||
${EXTRA_KCONFIG_OPTIONS}
|
||||
)
|
||||
endif()
|
||||
|
||||
# Bring in extra configuration files dropped in by the user or anyone else;
|
||||
# make sure they are set at the end so we can override any other setting
|
||||
file(GLOB config_files ${APPLICATION_BINARY_DIR}/*.conf)
|
||||
list(SORT config_files)
|
||||
set(
|
||||
merge_config_files
|
||||
${BOARD_DEFCONFIG}
|
||||
${CONF_FILE_AS_LIST}
|
||||
${shield_conf_files}
|
||||
${OVERLAY_CONFIG_AS_LIST}
|
||||
${EXTRA_KCONFIG_OPTIONS_FILE}
|
||||
${config_files}
|
||||
)
|
||||
message(${merge_config_files})
|
||||
# Create a list of absolute paths to the .config sources from
|
||||
# merge_config_files, which is a mix of absolute and relative paths.
|
||||
set(merge_config_files_with_absolute_paths "")
|
||||
foreach(f ${merge_config_files})
|
||||
if(IS_ABSOLUTE ${f})
|
||||
set(path ${f})
|
||||
else()
|
||||
set(path ${APPLICATION_SOURCE_DIR}/${f})
|
||||
endif()
|
||||
|
||||
list(APPEND merge_config_files_with_absolute_paths ${path})
|
||||
endforeach()
|
||||
|
||||
foreach(f ${merge_config_files_with_absolute_paths})
|
||||
if(NOT EXISTS ${f} OR IS_DIRECTORY ${f})
|
||||
message(FATAL_ERROR "File not found: ${f}")
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
# Calculate a checksum of merge_config_files to determine if we need
|
||||
# to re-generate .config
|
||||
set(merge_config_files_checksum "")
|
||||
foreach(f ${merge_config_files_with_absolute_paths})
|
||||
file(MD5 ${f} checksum)
|
||||
set(merge_config_files_checksum "${merge_config_files_checksum}${checksum}")
|
||||
endforeach()
|
||||
|
||||
# Create a new .config if it does not exists, or if the checksum of
|
||||
# the dependencies has changed
|
||||
set(merge_config_files_checksum_file ${PROJECT_BINARY_DIR}/.cmake.dotconfig.checksum)
|
||||
set(CREATE_NEW_DOTCONFIG 1)
|
||||
# Check if the checksum file exists too before trying to open it, though it
|
||||
# should under normal circumstances
|
||||
if(EXISTS ${DOTCONFIG} AND EXISTS ${merge_config_files_checksum_file})
|
||||
# Read out what the checksum was previously
|
||||
file(READ
|
||||
${merge_config_files_checksum_file}
|
||||
merge_config_files_checksum_prev
|
||||
)
|
||||
if(
|
||||
${merge_config_files_checksum} STREQUAL
|
||||
${merge_config_files_checksum_prev}
|
||||
)
|
||||
# Checksum is the same as before
|
||||
set(CREATE_NEW_DOTCONFIG 0)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(CREATE_NEW_DOTCONFIG)
|
||||
set(input_configs_are_handwritten --handwritten-input-configs)
|
||||
set(input_configs ${merge_config_files})
|
||||
else()
|
||||
set(input_configs ${DOTCONFIG})
|
||||
endif()
|
||||
|
||||
|
||||
message(
|
||||
${PYTHON_EXECUTABLE} " "
|
||||
${PROJECT_ROOT}/mkrtos_tool/kconfig/kconfig.py " "
|
||||
${input_configs_are_handwritten} " "
|
||||
${KCONFIG_ROOT} " "
|
||||
${DOTCONFIG} " "
|
||||
${AUTOCONF_H} " "
|
||||
${PARSED_KCONFIG_SOURCES_TXT} " "
|
||||
${input_configs} " "
|
||||
)
|
||||
execute_process(
|
||||
COMMAND
|
||||
${PYTHON_EXECUTABLE}
|
||||
${PROJECT_ROOT}/mkrtos_tool/kconfig/kconfig.py
|
||||
${input_configs_are_handwritten}
|
||||
${KCONFIG_ROOT}
|
||||
${DOTCONFIG}
|
||||
${AUTOCONF_H}
|
||||
${PARSED_KCONFIG_SOURCES_TXT}
|
||||
${input_configs}
|
||||
WORKING_DIRECTORY ${PROJECT_ROOT}
|
||||
# The working directory is set to the app dir such that the user
|
||||
# can use relative paths in CONF_FILE, e.g. CONF_FILE=nrf5.conf
|
||||
RESULT_VARIABLE ret
|
||||
)
|
||||
if(NOT "${ret}" STREQUAL "0")
|
||||
message(FATAL_ERROR "command failed with return code: ${ret}")
|
||||
endif()
|
||||
|
||||
if(CREATE_NEW_DOTCONFIG)
|
||||
# Write the new configuration fragment checksum. Only do this if kconfig.py
|
||||
# succeeds, to avoid marking zephyr/.config as up-to-date when it hasn't been
|
||||
# regenerated.
|
||||
file(WRITE ${merge_config_files_checksum_file}
|
||||
${merge_config_files_checksum})
|
||||
endif()
|
||||
|
||||
# Read out the list of 'Kconfig' sources that were used by the engine.
|
||||
file(STRINGS ${PARSED_KCONFIG_SOURCES_TXT} PARSED_KCONFIG_SOURCES_LIST)
|
||||
|
||||
# Force CMAKE configure when the Kconfig sources or configuration files changes.
|
||||
foreach(kconfig_input
|
||||
${merge_config_files}
|
||||
${DOTCONFIG}
|
||||
${PARSED_KCONFIG_SOURCES_LIST}
|
||||
)
|
||||
set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS ${kconfig_input})
|
||||
endforeach()
|
||||
|
||||
add_custom_target(config-sanitycheck DEPENDS ${DOTCONFIG})
|
||||
|
||||
# Remove the CLI Kconfig symbols from the namespace and
|
||||
# CMakeCache.txt. If the symbols end up in DOTCONFIG they will be
|
||||
# re-introduced to the namespace through 'import_kconfig'.
|
||||
foreach (name ${cache_variable_names})
|
||||
if("${name}" MATCHES "^CONFIG_")
|
||||
unset(${name})
|
||||
unset(${name} CACHE)
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
# Parse the lines prefixed with CONFIG_ in the .config file from Kconfig
|
||||
import_kconfig(CONFIG_ ${DOTCONFIG})
|
||||
|
||||
# Re-introduce the CLI Kconfig symbols that survived
|
||||
foreach (name ${cache_variable_names})
|
||||
if("${name}" MATCHES "^CONFIG_")
|
||||
if(DEFINED ${name})
|
||||
set(${name} ${${name}} CACHE STRING "")
|
||||
endif()
|
||||
endif()
|
||||
endforeach()
|
||||
22
cmake/python.cmake
Normal file
22
cmake/python.cmake
Normal file
@@ -0,0 +1,22 @@
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
# On Windows, instruct Python to output UTF-8 even when not
|
||||
# interacting with a terminal. This is required since Python scripts
|
||||
# are invoked by CMake code and, on Windows, standard I/O encoding defaults
|
||||
# to the current code page if not connected to a terminal, which is often
|
||||
# not what we want.
|
||||
if (WIN32)
|
||||
set(ENV{PYTHONIOENCODING} "utf-8")
|
||||
endif()
|
||||
|
||||
# The 'FindPythonInterp' that is distributed with CMake 3.8 has a bug
|
||||
# that we need to work around until we upgrade to 3.13. Until then we
|
||||
# maintain a patched copy in our repo. Bug:
|
||||
# https://github.com/zephyrproject-rtos/zephyr/issues/11103
|
||||
set(PythonInterp_FIND_VERSION 3.6)
|
||||
set(PythonInterp_FIND_VERSION_COUNT 2)
|
||||
set(PythonInterp_FIND_VERSION_MAJOR 3)
|
||||
set(PythonInterp_FIND_VERSION_MINOR 6)
|
||||
set(PythonInterp_FIND_VERSION_EXACT 0)
|
||||
set(PythonInterp_FIND_REQUIRED 1)
|
||||
include(cmake/backports/FindPythonInterp.cmake)
|
||||
12
cmake/top.cmake
Normal file
12
cmake/top.cmake
Normal file
@@ -0,0 +1,12 @@
|
||||
set(PROJECT_ROOT ${CMAKE_SOURCE_DIR})
|
||||
set(KCONFIG_ROOT ${CMAKE_SOURCE_DIR}/Kconfig)
|
||||
set(BOARD_DIR ${CMAKE_SOURCE_DIR}/configs)
|
||||
set(AUTOCONF_H ${CMAKE_CURRENT_BINARY_DIR}/autoconf.h)
|
||||
|
||||
# Re-configure (Re-execute all CMakeLists.txt code) when autoconf.h changes
|
||||
set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS ${AUTOCONF_H})
|
||||
|
||||
include(cmake/extensions.cmake)
|
||||
include(cmake/python.cmake)
|
||||
include(cmake/kconfig.cmake)
|
||||
|
||||
112
configs/STM32F205_defconfig
Normal file
112
configs/STM32F205_defconfig
Normal file
@@ -0,0 +1,112 @@
|
||||
|
||||
#
|
||||
# Knl config
|
||||
#
|
||||
CONFIG_KNL_INFO=y
|
||||
CONFIG_KNL_TEXT_ADDR=0x8000000
|
||||
CONFIG_KNL_TEXT_SIZE=0x100000
|
||||
CONFIG_KNL_DATA_ADDR=0x20000000
|
||||
CONFIG_KNL_DATA_SIZE=0x2000000
|
||||
CONFIG_KNL_OFFSET=0x2000
|
||||
CONFIG_INIT_TASK_OFFSET=0x10000
|
||||
CONFIG_BOOTFS_OFFSET=0x22000
|
||||
CONFIG_MK_MPU_CFG=y
|
||||
CONFIG_FT_ADDR_NR=16
|
||||
CONFIG_SYS_SCHE_HZ=1000
|
||||
CONFIG_USER_ISR_START_NO=16
|
||||
CONFIG_IRQ_REG_TAB_SIZE=80
|
||||
CONFIG_REGION_NUM=8
|
||||
CONFIG_OBJ_MAP_TAB_SIZE=4
|
||||
CONFIG_OBJ_MAP_ENTRY_SIZE=8
|
||||
CONFIG_PRINTK_CACHE_SIZE=128
|
||||
# end of Knl config
|
||||
|
||||
#
|
||||
# Libc backend
|
||||
#
|
||||
CONFIG_FD_MAP_ROW_CN=16
|
||||
CONFIG_FD_MAP_ROW_NR=16
|
||||
# end of Libc backend
|
||||
|
||||
#
|
||||
# Sys util config
|
||||
#
|
||||
CONFIG_USING_SIG=y
|
||||
CONFIG_SIG_THREAD_STACK_SIZE=512
|
||||
CONFIG_SIG_THREAD_PRIO=3
|
||||
# end of Sys util config
|
||||
|
||||
#
|
||||
# DFS: device virtual file system
|
||||
#
|
||||
CONFIG_RT_USING_DFS=y
|
||||
CONFIG_DFS_USING_POSIX=y
|
||||
CONFIG_DFS_USING_WORKDIR=y
|
||||
# CONFIG_RT_USING_DFS_MNTTABLE is not set
|
||||
CONFIG_DFS_FD_MAX=16
|
||||
CONFIG_RT_USING_DFS_V1=y
|
||||
# CONFIG_RT_USING_DFS_V2 is not set
|
||||
CONFIG_DFS_FILESYSTEMS_MAX=4
|
||||
CONFIG_DFS_FILESYSTEM_TYPES_MAX=4
|
||||
# CONFIG_RT_USING_DFS_ELMFAT is not set
|
||||
CONFIG_RT_USING_DFS_DEVFS=y
|
||||
# CONFIG_RT_USING_DFS_ROMFS is not set
|
||||
# CONFIG_RT_USING_DFS_CROMFS is not set
|
||||
# CONFIG_RT_USING_DFS_RAMFS is not set
|
||||
# CONFIG_RT_USING_DFS_TMPFS is not set
|
||||
# CONFIG_RT_USING_DFS_MQUEUE is not set
|
||||
# end of DFS: device virtual file system
|
||||
|
||||
#
|
||||
# Device Drivers
|
||||
#
|
||||
# CONFIG_RT_USING_DM is not set
|
||||
CONFIG_RT_USING_DEVICE_IPC=y
|
||||
CONFIG_RT_UNAMED_PIPE_NUMBER=64
|
||||
# CONFIG_RT_USING_SYSTEM_WORKQUEUE is not set
|
||||
CONFIG_RT_USING_SERIAL=y
|
||||
CONFIG_RT_USING_SERIAL_V1=y
|
||||
# CONFIG_RT_USING_SERIAL_V2 is not set
|
||||
CONFIG_RT_SERIAL_USING_DMA=y
|
||||
CONFIG_RT_SERIAL_RB_BUFSZ=64
|
||||
# CONFIG_RT_USING_CAN is not set
|
||||
# CONFIG_RT_USING_HWTIMER is not set
|
||||
# CONFIG_RT_USING_CPUTIME is not set
|
||||
# CONFIG_RT_USING_I2C is not set
|
||||
# CONFIG_RT_USING_PHY is not set
|
||||
CONFIG_RT_USING_PIN=y
|
||||
# CONFIG_RT_USING_ADC is not set
|
||||
# CONFIG_RT_USING_DAC is not set
|
||||
# CONFIG_RT_USING_NULL is not set
|
||||
# CONFIG_RT_USING_ZERO is not set
|
||||
# CONFIG_RT_USING_RANDOM is not set
|
||||
# CONFIG_RT_USING_PWM is not set
|
||||
# CONFIG_RT_USING_MTD_NOR is not set
|
||||
# CONFIG_RT_USING_MTD_NAND is not set
|
||||
# CONFIG_RT_USING_PM is not set
|
||||
# CONFIG_RT_USING_RTC is not set
|
||||
# CONFIG_RT_USING_SDIO is not set
|
||||
# CONFIG_RT_USING_SPI is not set
|
||||
# CONFIG_RT_USING_WDT is not set
|
||||
# CONFIG_RT_USING_AUDIO is not set
|
||||
# CONFIG_RT_USING_SENSOR is not set
|
||||
# CONFIG_RT_USING_TOUCH is not set
|
||||
# CONFIG_RT_USING_LCD is not set
|
||||
# CONFIG_RT_USING_HWCRYPTO is not set
|
||||
# CONFIG_RT_USING_PULSE_ENCODER is not set
|
||||
# CONFIG_RT_USING_INPUT_CAPTURE is not set
|
||||
# CONFIG_RT_USING_DEV_BUS is not set
|
||||
# CONFIG_RT_USING_WIFI is not set
|
||||
# CONFIG_RT_USING_VIRTIO is not set
|
||||
|
||||
#
|
||||
# Using USB
|
||||
#
|
||||
# CONFIG_RT_USING_USB_HOST is not set
|
||||
# CONFIG_RT_USING_USB_DEVICE is not set
|
||||
# end of Using USB
|
||||
# end of Device Drivers
|
||||
|
||||
CONFIG_CPU_TYPE="stm32f2"
|
||||
CONFIG_RTT_DIR="./"
|
||||
CONFIG_ARCH="cortex-m3"
|
||||
112
configs/STM32F407VET6_defconfig
Normal file
112
configs/STM32F407VET6_defconfig
Normal file
@@ -0,0 +1,112 @@
|
||||
|
||||
#
|
||||
# Knl config
|
||||
#
|
||||
CONFIG_KNL_INFO=y
|
||||
CONFIG_KNL_TEXT_ADDR=0x8000000
|
||||
CONFIG_KNL_TEXT_SIZE=0x100000
|
||||
CONFIG_KNL_DATA_ADDR=0x20000000
|
||||
CONFIG_KNL_DATA_SIZE=0x2000000
|
||||
CONFIG_KNL_OFFSET=0x2000
|
||||
CONFIG_INIT_TASK_OFFSET=0x10000
|
||||
CONFIG_BOOTFS_OFFSET=0x22000
|
||||
CONFIG_MK_MPU_CFG=y
|
||||
CONFIG_FT_ADDR_NR=16
|
||||
CONFIG_SYS_SCHE_HZ=1000
|
||||
CONFIG_USER_ISR_START_NO=16
|
||||
CONFIG_IRQ_REG_TAB_SIZE=80
|
||||
CONFIG_REGION_NUM=8
|
||||
CONFIG_OBJ_MAP_TAB_SIZE=4
|
||||
CONFIG_OBJ_MAP_ENTRY_SIZE=8
|
||||
CONFIG_PRINTK_CACHE_SIZE=128
|
||||
# end of Knl config
|
||||
|
||||
#
|
||||
# Libc backend
|
||||
#
|
||||
CONFIG_FD_MAP_ROW_CN=16
|
||||
CONFIG_FD_MAP_ROW_NR=16
|
||||
# end of Libc backend
|
||||
|
||||
#
|
||||
# Sys util config
|
||||
#
|
||||
CONFIG_USING_SIG=y
|
||||
CONFIG_SIG_THREAD_STACK_SIZE=512
|
||||
CONFIG_SIG_THREAD_PRIO=3
|
||||
# end of Sys util config
|
||||
|
||||
#
|
||||
# DFS: device virtual file system
|
||||
#
|
||||
CONFIG_RT_USING_DFS=y
|
||||
CONFIG_DFS_USING_POSIX=y
|
||||
CONFIG_DFS_USING_WORKDIR=y
|
||||
# CONFIG_RT_USING_DFS_MNTTABLE is not set
|
||||
CONFIG_DFS_FD_MAX=16
|
||||
CONFIG_RT_USING_DFS_V1=y
|
||||
# CONFIG_RT_USING_DFS_V2 is not set
|
||||
CONFIG_DFS_FILESYSTEMS_MAX=4
|
||||
CONFIG_DFS_FILESYSTEM_TYPES_MAX=4
|
||||
# CONFIG_RT_USING_DFS_ELMFAT is not set
|
||||
CONFIG_RT_USING_DFS_DEVFS=y
|
||||
# CONFIG_RT_USING_DFS_ROMFS is not set
|
||||
# CONFIG_RT_USING_DFS_CROMFS is not set
|
||||
# CONFIG_RT_USING_DFS_RAMFS is not set
|
||||
# CONFIG_RT_USING_DFS_TMPFS is not set
|
||||
# CONFIG_RT_USING_DFS_MQUEUE is not set
|
||||
# end of DFS: device virtual file system
|
||||
|
||||
#
|
||||
# Device Drivers
|
||||
#
|
||||
# CONFIG_RT_USING_DM is not set
|
||||
CONFIG_RT_USING_DEVICE_IPC=y
|
||||
CONFIG_RT_UNAMED_PIPE_NUMBER=64
|
||||
# CONFIG_RT_USING_SYSTEM_WORKQUEUE is not set
|
||||
CONFIG_RT_USING_SERIAL=y
|
||||
CONFIG_RT_USING_SERIAL_V1=y
|
||||
# CONFIG_RT_USING_SERIAL_V2 is not set
|
||||
CONFIG_RT_SERIAL_USING_DMA=y
|
||||
CONFIG_RT_SERIAL_RB_BUFSZ=64
|
||||
# CONFIG_RT_USING_CAN is not set
|
||||
# CONFIG_RT_USING_HWTIMER is not set
|
||||
# CONFIG_RT_USING_CPUTIME is not set
|
||||
# CONFIG_RT_USING_I2C is not set
|
||||
# CONFIG_RT_USING_PHY is not set
|
||||
CONFIG_RT_USING_PIN=y
|
||||
# CONFIG_RT_USING_ADC is not set
|
||||
# CONFIG_RT_USING_DAC is not set
|
||||
# CONFIG_RT_USING_NULL is not set
|
||||
# CONFIG_RT_USING_ZERO is not set
|
||||
# CONFIG_RT_USING_RANDOM is not set
|
||||
# CONFIG_RT_USING_PWM is not set
|
||||
# CONFIG_RT_USING_MTD_NOR is not set
|
||||
# CONFIG_RT_USING_MTD_NAND is not set
|
||||
# CONFIG_RT_USING_PM is not set
|
||||
# CONFIG_RT_USING_RTC is not set
|
||||
# CONFIG_RT_USING_SDIO is not set
|
||||
# CONFIG_RT_USING_SPI is not set
|
||||
# CONFIG_RT_USING_WDT is not set
|
||||
# CONFIG_RT_USING_AUDIO is not set
|
||||
# CONFIG_RT_USING_SENSOR is not set
|
||||
# CONFIG_RT_USING_TOUCH is not set
|
||||
# CONFIG_RT_USING_LCD is not set
|
||||
# CONFIG_RT_USING_HWCRYPTO is not set
|
||||
# CONFIG_RT_USING_PULSE_ENCODER is not set
|
||||
# CONFIG_RT_USING_INPUT_CAPTURE is not set
|
||||
# CONFIG_RT_USING_DEV_BUS is not set
|
||||
# CONFIG_RT_USING_WIFI is not set
|
||||
# CONFIG_RT_USING_VIRTIO is not set
|
||||
|
||||
#
|
||||
# Using USB
|
||||
#
|
||||
# CONFIG_RT_USING_USB_HOST is not set
|
||||
# CONFIG_RT_USING_USB_DEVICE is not set
|
||||
# end of Using USB
|
||||
# end of Device Drivers
|
||||
|
||||
CONFIG_CPU_TYPE="stm32f4"
|
||||
CONFIG_RTT_DIR="./"
|
||||
CONFIG_ARCH="cortex-m4"
|
||||
@@ -1,8 +1,7 @@
|
||||
|
||||
set(PYTHON_EXECUTABLE $ENV{PYTHON_EXECUTABLE})
|
||||
|
||||
message(
|
||||
${PYTHON_EXECUTABLE} "\n"
|
||||
python3 "\n"
|
||||
${CMAKE_SOURCE_DIR}/mkrtos_tool/kconfig/kconfig.py "\n"
|
||||
${CMAKE_SOURCE_DIR}/Kconfig "\n"
|
||||
${CMAKE_SOURCE_DIR}/build/auto.conf "\n"
|
||||
@@ -13,7 +12,7 @@ message(
|
||||
|
||||
execute_process(
|
||||
COMMAND
|
||||
${PYTHON_EXECUTABLE}
|
||||
python3
|
||||
${CMAKE_SOURCE_DIR}/mkrtos_tool/kconfig/kconfig.py
|
||||
${CMAKE_SOURCE_DIR}/Kconfig
|
||||
${CMAKE_SOURCE_DIR}/build/auto.conf
|
||||
|
||||
@@ -15,7 +15,7 @@ include_directories(${CMAKE_SOURCE_DIR}/mkrtos_bootstrap/inc)
|
||||
|
||||
file(GLOB deps *.c)
|
||||
|
||||
if (${BOARD_NAME} STREQUAL "STM32F1x")
|
||||
if (${CONFIG_CPU_TYPE} STREQUAL "STM32F1x")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DSTM32F10X_XL ")
|
||||
|
||||
file(GLOB
|
||||
@@ -34,34 +34,36 @@ if (${BOARD_NAME} STREQUAL "STM32F1x")
|
||||
${CMAKE_SOURCE_DIR}/mkrtos_bsp/STM32/STM32F10x_StdPeriph_Lib_V3.5.0/Libraries/CMSIS/CM3/CoreSupport
|
||||
)
|
||||
add_subdirectory(bsp/STM32F1x)
|
||||
elseif(${BOARD_NAME} STREQUAL "STM32F2x" )
|
||||
elseif(${CONFIG_CPU_TYPE} STREQUAL "stm32f2" )
|
||||
|
||||
file(GLOB bsp_src ${CMAKE_SOURCE_DIR}/mkrtos_bsp/STM32/STM32F2xx_StdPeriph_Lib_V1.1.0/Libraries/STM32F2xx_StdPeriph_Driver/src/*.c)
|
||||
list(APPEND deps ${bsp_src})
|
||||
include_directories(
|
||||
${CMAKE_SOURCE_DIR}/mkrtos_bootstrap/bsp/STM32F2x
|
||||
${CMAKE_SOURCE_DIR}/mkrtos_bootstrap/bsp/STM32F2
|
||||
|
||||
${CMAKE_SOURCE_DIR}/mkrtos_bsp/STM32/STM32F2xx_StdPeriph_Lib_V1.1.0/Libraries/STM32F2xx_StdPeriph_Driver/inc
|
||||
${CMAKE_SOURCE_DIR}/mkrtos_bsp/STM32/STM32F2xx_StdPeriph_Lib_V1.1.0/Libraries/CMSIS/Include
|
||||
${CMAKE_SOURCE_DIR}/mkrtos_bsp/STM32/STM32F2xx_StdPeriph_Lib_V1.1.0/Libraries/CMSIS/Device/ST/STM32F2xx/Include
|
||||
)
|
||||
add_subdirectory(bsp/STM32F2x)
|
||||
elseif(${BOARD_NAME} STREQUAL "STM32F4x" )
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DSTM32F40_41xxx ")
|
||||
add_subdirectory(bsp/STM32F2)
|
||||
elseif(${CONFIG_CPU_TYPE} STREQUAL "stm32f4" )
|
||||
if(${BOARD_NAME} STREQUAL "STM32F407VET6" )
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DSTM32F40_41xxx ")
|
||||
endif()
|
||||
|
||||
file(GLOB bsp_src ${CMAKE_SOURCE_DIR}/mkrtos_bsp/STM32/STM32F4xx_DSP_StdPeriph_Lib_V1.9.0/Libraries/STM32F4xx_StdPeriph_Driver/src/*.c)
|
||||
list(APPEND deps ${bsp_src})
|
||||
|
||||
list(REMOVE_ITEM deps ${CMAKE_SOURCE_DIR}/mkrtos_bsp/STM32/STM32F4xx_DSP_StdPeriph_Lib_V1.9.0/Libraries/STM32F4xx_StdPeriph_Driver/src/stm32f4xx_fmc.c)
|
||||
include_directories(
|
||||
${CMAKE_SOURCE_DIR}/mkrtos_bootstrap/bsp/STM32F4x
|
||||
${CMAKE_SOURCE_DIR}/mkrtos_bootstrap/bsp/STM32F4
|
||||
|
||||
${CMAKE_SOURCE_DIR}/mkrtos_bsp/STM32/STM32F4xx_DSP_StdPeriph_Lib_V1.9.0/Libraries/STM32F4xx_StdPeriph_Driver/inc
|
||||
${CMAKE_SOURCE_DIR}/mkrtos_bsp/STM32/STM32F4xx_DSP_StdPeriph_Lib_V1.9.0/Libraries/CMSIS/Include
|
||||
${CMAKE_SOURCE_DIR}/mkrtos_bsp/STM32/STM32F4xx_DSP_StdPeriph_Lib_V1.9.0/Libraries/CMSIS/Device/ST/STM32F4xx/Include
|
||||
)
|
||||
add_subdirectory(bsp/STM32F4x)
|
||||
elseif(${BOARD_NAME} STREQUAL "Cortex-R52" )
|
||||
add_subdirectory(bsp/STM32F4)
|
||||
elseif(${CONFIG_CPU_TYPE} STREQUAL "Cortex-R52" )
|
||||
include_directories(
|
||||
${CMAKE_SOURCE_DIR}/mkrtos_bootstrap/bsp/Cortex-R52
|
||||
|
||||
@@ -74,7 +76,7 @@ add_executable(bootstrap.elf
|
||||
)
|
||||
|
||||
set_target_properties(bootstrap.elf PROPERTIES LINK_FLAGS
|
||||
"-T ${CMAKE_CURRENT_LIST_DIR}/bsp/${BOARD_NAME}/link.lds --gc-section ")
|
||||
"-T ${CMAKE_CURRENT_LIST_DIR}/bsp/${CONFIG_CPU_TYPE}/link.lds --gc-section ")
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
cmake_minimum_required(VERSION 3.13)
|
||||
|
||||
include_directories(STM32)
|
||||
|
||||
if ($ENV{CPU_TYPE} STREQUAL "STM32")
|
||||
add_subdirectory(STM32)
|
||||
# elseif(${CPU_TYPE} STREQUAL "STM32F2x" )
|
||||
# include_directories(${CMAKE_SOURCE_DIR}/mkrtos_bootstrap/inc/stm32f205rft6)
|
||||
# include_directories(${CMAKE_SOURCE_DIR}/mkrtos_bootstrap/inc/stm32f205rft6/lib)
|
||||
# add_subdirectory(bsp/STM32F2x)
|
||||
endif()
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
cmake_minimum_required(VERSION 3.13)
|
||||
|
||||
include_directories(STM32)
|
||||
|
||||
if ($ENV{BOARD} STREQUAL "STM32F2x")
|
||||
add_subdirectory(STM32F2xx_StdPeriph_Lib_V1.1.0)
|
||||
# elseif(${CPU_TYPE} STREQUAL "STM32F2x" )
|
||||
# include_directories(${CMAKE_SOURCE_DIR}/mkrtos_bootstrap/inc/stm32f205rft6)
|
||||
# include_directories(${CMAKE_SOURCE_DIR}/mkrtos_bootstrap/inc/stm32f205rft6/lib)
|
||||
# add_subdirectory(bsp/STM32F2x)
|
||||
endif()
|
||||
|
||||
@@ -9,9 +9,9 @@ add_custom_target(
|
||||
COMMAND
|
||||
srec_cat -output ${CMAKE_SOURCE_DIR}/build/output/kernel.img -binary
|
||||
${CMAKE_SOURCE_DIR}/build/output/bootstrap -binary -offset 0x0
|
||||
${CMAKE_SOURCE_DIR}/build/output/mkrtos -binary -offset $ENV{KEN_OFFSET}
|
||||
${CMAKE_SOURCE_DIR}/build/output/init -binary -offset $ENV{INIT_OFFSET}
|
||||
${CMAKE_SOURCE_DIR}/build/output/rootfs.cpio -binary -offset $ENV{BOOTFS_ADDR_OFFSET}
|
||||
${CMAKE_SOURCE_DIR}/build/output/mkrtos -binary -offset ${CONFIG_KNL_OFFSET}
|
||||
${CMAKE_SOURCE_DIR}/build/output/init -binary -offset ${CONFIG_INIT_TASK_OFFSET}
|
||||
${CMAKE_SOURCE_DIR}/build/output/rootfs.cpio -binary -offset ${CONFIG_BOOTFS_OFFSET}
|
||||
COMMAND
|
||||
${CMAKE_OBJCOPY} -I binary -O elf32-littlearm -B arm ${CMAKE_SOURCE_DIR}/build/output/kernel.img
|
||||
${CMAKE_SOURCE_DIR}/build/output/kernel.img.out --rename-section .data=.text
|
||||
|
||||
@@ -2,9 +2,6 @@ cmake_minimum_required(VERSION 3.13)
|
||||
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} \
|
||||
-Werror \
|
||||
-DKNL_OFFSET=$ENV{KEN_OFFSET} \
|
||||
-DINIT_OFFSET=$ENV{INIT_OFFSET} \
|
||||
-DBOOTFS_ADDR_OFFSET=$ENV{BOOTFS_ADDR_OFFSET} \
|
||||
-DSMP=1 \
|
||||
-Wno-unused-parameter \
|
||||
-Wno-unused-function \
|
||||
@@ -47,7 +44,7 @@ add_custom_target(
|
||||
${CMAKE_C_COMPILER}
|
||||
# -DKNL_TEXT=$ENV{KNL_TEXT}
|
||||
-DKNL_DATA=$ENV{KNL_DATA}
|
||||
-DKNL_OFFSET=$ENV{KEN_OFFSET}
|
||||
-DKNL_OFFSET=${CONFIG_KNL_OFFSET}
|
||||
# -DKNL_DATA_SIZE=$ENV{KNL_DATA_SIZE}
|
||||
-include ${CMAKE_SOURCE_DIR}/build/autoconf.h
|
||||
-E -P -<${CMAKE_CURRENT_LIST_DIR}/stm32_link.lds.S>
|
||||
|
||||
@@ -5,7 +5,7 @@ file(GLOB deps *.c *.S)
|
||||
add_library(arch STATIC ${deps})
|
||||
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D__MPU_PRESENT=1 -DUSE_STDPERIPH_DRIVER=1 ")
|
||||
if (${BOARD_NAME} STREQUAL "STM32F1x")
|
||||
if (${CONFIG_CPU_TYPE} STREQUAL "STM32F1x")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DSTM32F10X_XL ")
|
||||
target_include_directories(
|
||||
arch
|
||||
@@ -14,24 +14,26 @@ if (${BOARD_NAME} STREQUAL "STM32F1x")
|
||||
${CMAKE_SOURCE_DIR}/mkrtos_bsp/STM32/STM32F10x_StdPeriph_Lib_V3.5.0/Libraries/STM32F10x_StdPeriph_Driver/inc
|
||||
)
|
||||
add_subdirectory(stm32f1x)
|
||||
elseif(${BOARD_NAME} STREQUAL "STM32F2x" )
|
||||
elseif(${CONFIG_CPU_TYPE} STREQUAL "stm32f2" )
|
||||
target_include_directories(
|
||||
arch
|
||||
PUBLIC
|
||||
${CMAKE_SOURCE_DIR}/mkrtos_knl/arch/armv7m/stm32f2x
|
||||
${CMAKE_SOURCE_DIR}/mkrtos_knl/arch/armv7m/stm32f2
|
||||
${CMAKE_SOURCE_DIR}/mkrtos_bsp/STM32/STM32F2xx_StdPeriph_Lib_V1.1.0/Libraries/STM32F2xx_StdPeriph_Driver/inc
|
||||
|
||||
)
|
||||
add_subdirectory(stm32f2x)
|
||||
elseif(${BOARD_NAME} STREQUAL "STM32F4x" )
|
||||
add_subdirectory(stm32f2)
|
||||
elseif(${CONFIG_CPU_TYPE} STREQUAL "stm32f4" )
|
||||
if(${BOARD} STREQUAL "STM32F407VET6" )
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DSTM32F40_41xxx ")
|
||||
endif()
|
||||
target_include_directories(
|
||||
arch
|
||||
PUBLIC
|
||||
${CMAKE_SOURCE_DIR}/mkrtos_knl/arch/armv7m/stm32f4x
|
||||
${CMAKE_SOURCE_DIR}/mkrtos_knl/arch/armv7m/${CONFIG_CPU_TYPE}
|
||||
${CMAKE_SOURCE_DIR}/mkrtos_bsp/STM32/STM32F4xx_DSP_StdPeriph_Lib_V1.9.0/Libraries/STM32F4xx_StdPeriph_Driver/inc
|
||||
)
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DSTM32F40_41xxx ")
|
||||
add_subdirectory(stm32f4x)
|
||||
add_subdirectory(${CONFIG_CPU_TYPE})
|
||||
endif()
|
||||
|
||||
target_link_libraries(
|
||||
|
||||
@@ -125,7 +125,7 @@
|
||||
/*!< Uncomment the following line if you need to relocate your vector Table in
|
||||
Internal SRAM. */
|
||||
/* #define VECT_TAB_SRAM */
|
||||
#define VECT_TAB_OFFSET KNL_OFFSET /*!< Vector Table base offset field.
|
||||
#define VECT_TAB_OFFSET CONFIG_KNL_OFFSET /*!< Vector Table base offset field.
|
||||
This value must be a multiple of 0x200. */
|
||||
|
||||
|
||||
|
||||
@@ -12,6 +12,6 @@ target_include_directories(
|
||||
${CMAKE_SOURCE_DIR}/mkrtos_bsp/STM32/STM32F2xx_StdPeriph_Lib_V1.1.0/Libraries/STM32F2xx_StdPeriph_Driver/inc
|
||||
${CMAKE_SOURCE_DIR}/mkrtos_bsp/STM32/STM32F2xx_StdPeriph_Lib_V1.1.0/Libraries/CMSIS/Include
|
||||
${CMAKE_SOURCE_DIR}/mkrtos_bsp/STM32/STM32F2xx_StdPeriph_Lib_V1.1.0/Libraries/CMSIS/Device/ST/STM32F2xx/Include
|
||||
${CMAKE_SOURCE_DIR}/mkrtos_knl/arch/armv7m/stm32f2x
|
||||
${CMAKE_SOURCE_DIR}/mkrtos_knl/arch/armv7m/stm32f2
|
||||
${CMAKE_SOURCE_DIR}/mkrtos_knl/inc/lib
|
||||
)
|
||||
@@ -143,7 +143,7 @@
|
||||
/*!< Uncomment the following line if you need to relocate your vector Table in
|
||||
Internal SRAM. */
|
||||
/* #define VECT_TAB_SRAM */
|
||||
#define VECT_TAB_OFFSET KNL_OFFSET /*!< Vector Table base offset field. \
|
||||
#define VECT_TAB_OFFSET CONFIG_KNL_OFFSET /*!< Vector Table base offset field. \
|
||||
This value must be a multiple of 0x200. */
|
||||
|
||||
/* PLL_VCO = (HSE_VALUE or HSI_VALUE / PLL_M) * PLL_N */
|
||||
@@ -20,7 +20,7 @@ target_include_directories(
|
||||
${CMAKE_SOURCE_DIR}/mkrtos_bsp/STM32/STM32F4xx_DSP_StdPeriph_Lib_V1.9.0/Libraries/CMSIS/Device/ST/STM32F4xx/Include
|
||||
${CMAKE_SOURCE_DIR}/mkrtos_bsp/STM32/STM32F4xx_DSP_StdPeriph_Lib_V1.9.0/Libraries/STM32F4xx_StdPeriph_Driver/inc
|
||||
${CMAKE_SOURCE_DIR}/mkrtos_bsp/STM32/STM32F4xx_DSP_StdPeriph_Lib_V1.9.0/Libraries/CMSIS/Include
|
||||
${CMAKE_SOURCE_DIR}/mkrtos_bootstrap/bsp/STM32F4x
|
||||
${CMAKE_SOURCE_DIR}/mkrtos_bootstrap/bsp/STM32F4
|
||||
|
||||
|
||||
)
|
||||
@@ -354,7 +354,7 @@
|
||||
/*!< Uncomment the following line if you need to relocate your vector Table in
|
||||
Internal SRAM. */
|
||||
/* #define VECT_TAB_SRAM */
|
||||
#define VECT_TAB_OFFSET KNL_OFFSET /*!< Vector Table base offset field.
|
||||
#define VECT_TAB_OFFSET CONFIG_KNL_OFFSET /*!< Vector Table base offset field.
|
||||
This value must be a multiple of 0x200. */
|
||||
/******************************************************************************/
|
||||
|
||||
@@ -3,7 +3,7 @@ cmake_minimum_required(VERSION 3.13)
|
||||
file(GLOB deps *.c *.S)
|
||||
|
||||
add_library(drv STATIC ${deps})
|
||||
if (${BOARD_NAME} STREQUAL "STM32F1x")
|
||||
if (${CONFIG_CPU_TYPE} STREQUAL "STM32F1x")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DSTM32F10X_XL ")
|
||||
include_directories(
|
||||
${CMAKE_SOURCE_DIR}/mkrtos_knl/arch/armv7m/stm32f1x
|
||||
@@ -13,21 +13,24 @@ if (${BOARD_NAME} STREQUAL "STM32F1x")
|
||||
${CMAKE_SOURCE_DIR}/mkrtos_bsp/STM32/STM32F10x_StdPeriph_Lib_V3.5.0/Libraries/CMSIS/CM3/CoreSupport
|
||||
)
|
||||
add_subdirectory(stm32f1x)
|
||||
elseif(${BOARD_NAME} STREQUAL "STM32F2x" )
|
||||
elseif(${CONFIG_CPU_TYPE} STREQUAL "stm32f2" )
|
||||
include_directories(
|
||||
${CMAKE_SOURCE_DIR}/mkrtos_knl/arch/armv7m/stm32f2x
|
||||
${CMAKE_SOURCE_DIR}/mkrtos_knl/arch/armv7m/stm32f2
|
||||
${CMAKE_SOURCE_DIR}/mkrtos_bsp/STM32/STM32F2xx_StdPeriph_Lib_V1.1.0/Libraries/STM32F2xx_StdPeriph_Driver/inc
|
||||
${CMAKE_SOURCE_DIR}/mkrtos_bsp/STM32/STM32F2xx_StdPeriph_Lib_V1.1.0/Libraries/CMSIS/Device/ST/STM32F2xx/Include
|
||||
${CMAKE_SOURCE_DIR}/mkrtos_bsp/STM32/STM32F2xx_StdPeriph_Lib_V1.1.0/Libraries/CMSIS/Include
|
||||
)
|
||||
add_subdirectory(stm32f2x)
|
||||
elseif(${BOARD_NAME} STREQUAL "STM32F4x" )
|
||||
add_subdirectory(stm32f2)
|
||||
elseif(${CONFIG_CPU_TYPE} STREQUAL "stm32f4" )
|
||||
if(${BOARD_NAME} STREQUAL "STM32F407VET6" )
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DSTM32F40_41xxx ")
|
||||
endif()
|
||||
include_directories(
|
||||
${CMAKE_SOURCE_DIR}/mkrtos_knl/arch/armv7m/stm32f4x
|
||||
${CMAKE_SOURCE_DIR}/mkrtos_knl/arch/armv7m/${CONFIG_CPU_TYPE}
|
||||
${CMAKE_SOURCE_DIR}/mkrtos_bsp/STM32/STM32F4xx_DSP_StdPeriph_Lib_V1.9.0/Libraries/CMSIS/Device/ST/STM32F4xx/Include
|
||||
${CMAKE_SOURCE_DIR}/mkrtos_bsp/STM32/STM32F4xx_DSP_StdPeriph_Lib_V1.9.0/Libraries/STM32F4xx_StdPeriph_Driver/inc
|
||||
)
|
||||
add_subdirectory(stm32f4x)
|
||||
add_subdirectory(${CONFIG_CPU_TYPE})
|
||||
endif()
|
||||
|
||||
target_link_libraries(
|
||||
|
||||
@@ -55,7 +55,7 @@ static void sys_syscall(kobject_t *kobj, syscall_prot_t sys_p, msg_tag_t in_tag,
|
||||
case SYS_INFO_GET:
|
||||
{
|
||||
f->r[1] = sys_tick_cnt_get();
|
||||
f->r[2] = CONFIG_KNL_TEXT_ADDR + BOOTFS_ADDR_OFFSET;
|
||||
f->r[2] = CONFIG_KNL_TEXT_ADDR + CONFIG_BOOTFS_OFFSET;
|
||||
tag = msg_tag_init4(0, 0, 0, 0);
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -113,7 +113,7 @@ static void knl_init_2(void)
|
||||
init_task = task_create(&root_factory_get()->limit, FALSE);
|
||||
assert(init_task);
|
||||
|
||||
app_info_t *app = app_info_get((void *)(CONFIG_KNL_TEXT_ADDR + INIT_OFFSET));
|
||||
app_info_t *app = app_info_get((void *)(CONFIG_KNL_TEXT_ADDR + CONFIG_INIT_TASK_OFFSET));
|
||||
// 申请init的ram内存
|
||||
assert(task_alloc_base_ram(init_task, &root_factory_get()->limit, app->i.ram_size + THREAD_MSG_BUG_LEN) >= 0);
|
||||
void *sp_addr = (char *)init_task->mm_space.mm_block + app->i.stack_offset - app->i.data_offset;
|
||||
@@ -121,7 +121,7 @@ static void knl_init_2(void)
|
||||
|
||||
thread_set_msg_bug(init_thread, (char *)(init_task->mm_space.mm_block) + app->i.ram_size);
|
||||
thread_bind(init_thread, &init_task->kobj);
|
||||
thread_user_pf_set(init_thread, (void *)(CONFIG_KNL_TEXT_ADDR + INIT_OFFSET), (void *)((umword_t)sp_addr_top - 8),
|
||||
thread_user_pf_set(init_thread, (void *)(CONFIG_KNL_TEXT_ADDR + CONFIG_INIT_TASK_OFFSET), (void *)((umword_t)sp_addr_top - 8),
|
||||
init_task->mm_space.mm_block, 0);
|
||||
assert(obj_map_root(&init_thread->kobj, &init_task->obj_space, &root_factory_get()->limit, vpage_create3(KOBJ_ALL_RIGHTS, 0, THREAD_PROT)));
|
||||
assert(obj_map_root(&init_task->kobj, &init_task->obj_space, &root_factory_get()->limit, vpage_create3(KOBJ_ALL_RIGHTS, 0, TASK_PROT)));
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
ENTRY(Reset_Handler)
|
||||
MEMORY
|
||||
{
|
||||
RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 0x10000
|
||||
RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 0x2000000
|
||||
FLASH (rx) : ORIGIN = 0x8000000 + 0x2000, LENGTH = 64K - 0x2000
|
||||
}
|
||||
SECTIONS
|
||||
|
||||
@@ -6,10 +6,10 @@ ENTRY(Reset_Handler)
|
||||
/* Specify the memory areas */
|
||||
MEMORY
|
||||
{
|
||||
RAM (xrw) : ORIGIN = KNL_DATA, LENGTH = CONFIG_KNL_DATA_SIZE
|
||||
RAM (xrw) : ORIGIN = CONFIG_KNL_DATA_ADDR, LENGTH = CONFIG_KNL_DATA_SIZE
|
||||
/* RAM1 (xrw) : ORIGIN = 0x68000000, LENGTH = 1M */
|
||||
/* RAM2 (xrw) : ORIGIN = 0x2001C000, LENGTH = 16K */
|
||||
FLASH (rx) : ORIGIN = CONFIG_KNL_TEXT_ADDR + KNL_OFFSET, LENGTH = 64K - KNL_OFFSET
|
||||
FLASH (rx) : ORIGIN = CONFIG_KNL_TEXT_ADDR + CONFIG_KNL_OFFSET, LENGTH = 64K - CONFIG_KNL_OFFSET
|
||||
}
|
||||
|
||||
/* Define output sections */
|
||||
|
||||
@@ -11,7 +11,6 @@ export KNL_DATA=0x20000000
|
||||
export CPU_TYPE=STM32
|
||||
export BOARD=STM32F1x
|
||||
export ARCH=cortex-m3
|
||||
export PYTHON_EXECUTABLE=python3
|
||||
|
||||
set -e
|
||||
cmake -G Ninja -B build/$KNL .
|
||||
|
||||
@@ -4,14 +4,7 @@
|
||||
# export TOOLCHAIN_LIB=/home/zhangzheng/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 KEN_OFFSET=0x2000
|
||||
export INIT_OFFSET=0x10000
|
||||
export BOOTFS_ADDR_OFFSET=0x22000
|
||||
export KNL_DATA=0x20000000
|
||||
export CPU_TYPE=STM32
|
||||
export BOARD=STM32F2x
|
||||
export ARCH=cortex-m3
|
||||
export PYTHON_EXECUTABLE=python3
|
||||
export BOARD=STM32F205
|
||||
|
||||
set -e
|
||||
cmake -G Ninja -B build/$KNL .
|
||||
|
||||
@@ -5,15 +5,7 @@
|
||||
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/v7e-m+fp/hard
|
||||
export KEN_OFFSET=0x2000
|
||||
export INIT_OFFSET=0x10000
|
||||
export BOOTFS_ADDR_OFFSET=0x22000
|
||||
export KNL_DATA=0x20000000
|
||||
export CPU_TYPE=STM32
|
||||
export BOARD=STM32F4x
|
||||
export ARCH=cortex-m4
|
||||
export PYTHON_EXECUTABLE=python3
|
||||
|
||||
export BOARD=STM32F407VET6
|
||||
set -e
|
||||
cmake -G Ninja -B build/$KNL .
|
||||
cd build/$KNL && ninja
|
||||
|
||||
@@ -17,45 +17,47 @@ set(CMAKE_SIZE "${CROSS_COMPILE}size" CACHE PATH "" FORCE)
|
||||
set(CMAKE_NM "${CROSS_COMPILE}nm" CACHE PATH "" FORCE)
|
||||
set(CMAKE_AR "${CROSS_COMPILE}ar" CACHE PATH "" FORCE)
|
||||
set(CMAKE_SIZE "${CROSS_COMPILE}size" CACHE PATH "" FORCE)
|
||||
set(PROJECT_BINARY_DIR ${CMAKE_SOURCE_DIR}/build)
|
||||
|
||||
set(MKRTOS_ARCH $ENV{ARCH})
|
||||
if (${MKRTOS_ARCH} STREQUAL "cortex-m3")
|
||||
set(BOARD $ENV{BOARD})
|
||||
include(cmake/top.cmake)
|
||||
set(ARCH ${CONFIG_ARCH} CACHE STRING "" FORCE)
|
||||
|
||||
message(========${CONFIG_CPU_TYPE})
|
||||
if (${CONFIG_ARCH} STREQUAL "cortex-m3")
|
||||
set(FLOAT_TYPE "soft")
|
||||
elseif(${MKRTOS_ARCH} STREQUAL "cortex-m4" )
|
||||
elseif(${CONFIG_ARCH} STREQUAL "cortex-m4" )
|
||||
set(FLOAT_TYPE "hard")
|
||||
elseif(${MKRTOS_ARCH} STREQUAL "cortex-r52" )
|
||||
elseif(${CONFIG_ARCH} STREQUAL "cortex-r52" )
|
||||
set(FLOAT_TYPE "soft")
|
||||
endif()
|
||||
|
||||
|
||||
# -mfloat-abi=soft -u _printf_float
|
||||
set(CMAKE_C_FLAGS "-mcpu=${MKRTOS_ARCH} -O0 -g3 -lc -lrdimon -mfloat-abi=${FLOAT_TYPE} -u _printf_float -D=MKRTOS \
|
||||
set(CMAKE_C_FLAGS "-mcpu=${CONFIG_ARCH} -O0 -g3 -lc -lrdimon -mfloat-abi=${FLOAT_TYPE} -u _printf_float -D=MKRTOS \
|
||||
-std=gnu11 -ffunction-sections -fdata-sections -fno-builtin\
|
||||
-nostartfiles -nodefaultlibs -nostdlib -nostdinc -Xlinker \
|
||||
-fno-stack-protector -Wl,--gc-sections \
|
||||
-include ${CMAKE_SOURCE_DIR}/build/autoconf.h \
|
||||
" CACHE STRING "" FORCE)
|
||||
|
||||
set(CMAKE_CXX_FLAGS "-mcpu=${MKRTOS_ARCH} -mthumb -mno-thumb-interwork -D=MKRTOS -Os -g3 -std=c++11 \
|
||||
set(CMAKE_CXX_FLAGS "-mcpu=${CONFIG_ARCH} -mthumb -mno-thumb-interwork -D=MKRTOS -Os -g3 -std=c++11 \
|
||||
-fmessage-length=0 -Xlinker --print-map -Wall -W -fno-stack-protector -g \
|
||||
-mfloat-abi=${FLOAT_TYPE} -lc -lrdimon -u _printf_float \
|
||||
-ffunction-sections -fdata-sections -fno-builtin -nostartfiles -nodefaultlibs -nostdlib -nostdinc -Xlinker \
|
||||
-include ${CMAKE_SOURCE_DIR}/build/autoconf.h \
|
||||
" CACHE STRING "" FORCE)
|
||||
|
||||
set(CMAKE_ASM_FLAGS "-mcpu=${MKRTOS_ARCH} -mthumb -Os -g3 -lc -lrdimon -D=MKRTOS \
|
||||
set(CMAKE_ASM_FLAGS "-mcpu=${CONFIG_ARCH} -mthumb -Os -g3 -lc -lrdimon -D=MKRTOS \
|
||||
-u _printf_float -std=gnu11 -ffunction-sections -fdata-sections -fno-builtin \
|
||||
-nostartfiles -nodefaultlibs -nostdlib -nostdinc -Xlinker -fno-stack-protector \
|
||||
-include ${CMAKE_SOURCE_DIR}/build/autoconf.h \
|
||||
" CACHE STRING "" FORCE)
|
||||
|
||||
set(BOARD_NAME "$ENV{BOARD}")
|
||||
|
||||
|
||||
set(CMAKE_C_LINK_EXECUTABLE "${CMAKE_LINKER} <OBJECTS> <CMAKE_C_LINK_FLAGS> <LINK_FLAGS> --start-group <LINK_LIBRARIES> --end-group -o <TARGET>" CACHE INTERNAL " " FORCE)
|
||||
set(CMAKE_CXX_LINK_EXECUTABLE "${CMAKE_LINKER} <OBJECTS> <CMAKE_C_LINK_FLAGS> <LINK_FLAGS> --start-group <LINK_LIBRARIES> --end-group -o <TARGET>" CACHE INTERNAL " " FORCE)
|
||||
|
||||
set(ARCH ${MKRTOS_ARCH} CACHE STRING "" FORCE)
|
||||
|
||||
|
||||
message("board type:"${BOARD_NAME})
|
||||
message("CMAKE_C_FLAGS:"${CMAKE_C_FLAGS})
|
||||
|
||||
|
||||
Reference in New Issue
Block a user