This commit is contained in:
Mason 2023-11-14 22:04:59 -05:00
parent dc91238650
commit 747d322e59
Signed by untrusted user who does not match committer: guangzong
GPG Key ID: 095389BACAE97D19
7 changed files with 52 additions and 45 deletions

18
Cargo.lock generated
View File

@ -84,6 +84,15 @@ version = "0.2.150"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c"
[[package]]
name = "libu5-sys"
version = "0.1.0"
dependencies = [
"cmake",
"cortex-m",
"cortex-m-rt",
]
[[package]]
name = "nb"
version = "0.1.3"
@ -158,15 +167,6 @@ dependencies = [
"unicode-ident",
]
[[package]]
name = "u5"
version = "0.1.0"
dependencies = [
"cmake",
"cortex-m",
"cortex-m-rt",
]
[[package]]
name = "unicode-ident"
version = "1.0.12"

View File

@ -1,8 +1,9 @@
[package]
name = "u5"
name = "libu5-sys"
version = "0.1.0"
edition = "2021"
build = "build.rs"
links = "u5"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[net]

View File

@ -2,8 +2,9 @@
use cmake::Config;
fn main() {
// Tell Cargo to tell rustc to link the C++ library.
println!("cargo:rustc-link-lib=static=stm32u5");
// set target to thumbv8m.main-none-eabi
// let out_dir = std::env::var("OUT_DIR").unwrap();
println!("cargo:rustc-cfg=feature=\"cortex-m\"");
// Use cmake to build the C++ project
let dst = Config::new("stm32u5").build();
@ -13,8 +14,6 @@ fn main() {
// get the out dir of dependcy `cortex-m`
//
println!("cargo:include=/includes") // provide DEP_U5_INCLUDE var
println!("cargo:include={}", dst.display());
}

View File

@ -51,5 +51,5 @@ install(DIRECTORY ${CMAKE_CURRENT_LIST_DIR}/CMSIS DESTINATION .)
install(DIRECTORY ${CMAKE_CURRENT_LIST_DIR}/startup DESTINATION .)
install(DIRECTORY ${CMAKE_CURRENT_LIST_DIR}/filex DESTINATION .)
install(DIRECTORY ${CMAKE_CURRENT_LIST_DIR}/link_script DESTINATION .)
install(FILES ${CMAKE_CURRENT_LIST_DIR}/Stm32U5LibConfig.cmake DESTINATION .)
install(DIRECTORY ${CMAKE_CURRENT_LIST_DIR}/newlib DESTINATION .)

View File

@ -1,19 +1,20 @@
set(COMPILE_PREFIX "")
if (APPLE)
set(COMPILE_PREFIX /opt/homebrew/bin/)
endif ()
set(CMAKE_C_COMPILER ${COMPILE_PREFIX}arm-none-eabi-gcc)
set(CMAKE_CXX_COMPILER ${COMPILE_PREFIX}arm-none-eabi-g++)
set(CMAKE_ASM_COMPILER ${COMPILE_PREFIX}arm-none-eabi-gcc)
set(CMAKE_AR ${COMPILE_PREFIX}arm-none-eabi-ar)
set(CMAKE_OBJCOPY ${COMPILE_PREFIX}arm-none-eabi-objcopy)
set(CMAKE_OBJDUMP ${COMPILE_PREFIX}arm-none-eabi-objdump)
set(SIZE ${COMPILE_PREFIX}arm-none-eabi-size)
# set(COMPILE_PREFIX "")
# if (APPLE)
# set(COMPILE_PREFIX /opt/homebrew/bin/)
# endif ()
#
# set(CMAKE_C_COMPILER ${COMPILE_PREFIX}arm-none-eabi-gcc)
# set(CMAKE_CXX_COMPILER ${COMPILE_PREFIX}arm-none-eabi-g++)
# set(CMAKE_ASM_COMPILER ${COMPILE_PREFIX}arm-none-eabi-gcc)
# set(CMAKE_AR ${COMPILE_PREFIX}arm-none-eabi-ar)
# set(CMAKE_OBJCOPY ${COMPILE_PREFIX}arm-none-eabi-objcopy)
# set(CMAKE_OBJDUMP ${COMPILE_PREFIX}arm-none-eabi-objdump)
# set(SIZE ${COMPILE_PREFIX}arm-none-eabi-size)
# add definition for filex
add_definitions(-DFX_INCLUDE_USER_DEFINE_FILE)
add_definitions(-DSTM32U575xx)
include_directories(
${CMAKE_CURRENT_LIST_DIR}/includes
@ -32,23 +33,29 @@ file(GLOB_RECURSE LIB_SOURCES
"${CMAKE_CURRENT_LIST_DIR}/startup/startup_stm32u575zitxq.s"
)
file(GLOB_RECURSE EXPORT_SOURCES
"${CMAKE_CURRENT_LIST_DIR}/newlib/*.c"
"${CMAKE_CURRENT_LIST_DIR}/startup/startup_stm32u575zitxq.s"
)
message(STATUS "CMAKE_CURRENT_LIST_DIR: ${CMAKE_CURRENT_LIST_DIR}")
#Uncomment for hardware floating point
# add_compile_definitions(ARM_MATH_CM4;ARM_MATH_MATRIX_CHECK;ARM_MATH_ROUNDING)
add_compile_options(-mfloat-abi=hard -mfpu=fpv4-sp-d16)
add_link_options(-mfloat-abi=hard -mfpu=fpv4-sp-d16)
add_compile_options(-mcpu=cortex-m33 -mthumb -mthumb-interwork)
add_compile_options(-ffunction-sections -fdata-sections -fno-common -fmessage-length=0)
# Enable assembler files preprocessing
add_compile_options($<$<COMPILE_LANGUAGE:ASM>:-x$<SEMICOLON>assembler-with-cpp>)
# add link script
# #Uncomment for hardware floating point
# # add_compile_definitions(ARM_MATH_CM4;ARM_MATH_MATRIX_CHECK;ARM_MATH_ROUNDING)
# add_compile_options(-mfloat-abi=hard -mfpu=fpv4-sp-d16)
# add_link_options(-mfloat-abi=hard -mfpu=fpv4-sp-d16)
# add_compile_options(-mcpu=cortex-m33 -mthumb -mthumb-interwork)
# add_compile_options(-ffunction-sections -fdata-sections -fno-common -fmessage-length=0)
# # Enable assembler files preprocessing
# add_compile_options($<$<COMPILE_LANGUAGE:ASM>:-x$<SEMICOLON>assembler-with-cpp>)
#
# # add link script
set(LINKER_SCRIPT ${CMAKE_CURRENT_LIST_DIR}/link_script/STM32U575ZITXQ_FLASH.ld)
# add link options
add_link_options(-Wall -Wl,-gc-sections,--print-memory-usage,-Map=${PROJECT_BINARY_DIR}/${PROJECT_NAME}.map)
add_link_options(-mcpu=cortex-m33 -mthumb -mthumb-interwork)
message ("LINKER_SCRIPT: ${LINKER_SCRIPT}")
#
# # add link options
# add_link_options(-Wall -Wl,-gc-sections,--print-memory-usage,-Map=${PROJECT_BINARY_DIR}/${PROJECT_NAME}.map)
add_link_options(-Wall -Wl,-gc-sections,--print-memory-usage)
# add_link_options(-mcpu=cortex-m33 -mthumb -mthumb-interwork)
add_link_options(-T ${LINKER_SCRIPT})
add_definitions(-DSTM32U575xx)
# set(LIB_BIN ${CMAKE_CURRENT_LIST_DIR}/libSTM32U5.a)
set(LIB_BIN ${CMAKE_CURRENT_LIST_DIR}/libSTM32U5.a)