From 1b3d654c764b25cdd979acca0c956564cfe8358d Mon Sep 17 00:00:00 2001 From: Markus Mittendrein Date: Tue, 25 Feb 2025 23:37:17 +0100 Subject: Initial --- device/MSP432P401R/MSP432P401R.cmake | 32 ++++++++++++++++++++++++++++++++ device/MSP432P401R/device.cpp | 8 ++++++++ device/MSP432P401R/gpio.cpp | 15 +++++++++++++++ device/MSP432P401R/msp432p4_sdk | 1 + device/device.hpp | 3 +++ device/gpio.hpp | 6 ++++++ 6 files changed, 65 insertions(+) create mode 100644 device/MSP432P401R/MSP432P401R.cmake create mode 100644 device/MSP432P401R/device.cpp create mode 100644 device/MSP432P401R/gpio.cpp create mode 120000 device/MSP432P401R/msp432p4_sdk create mode 100644 device/device.hpp create mode 100644 device/gpio.hpp (limited to 'device') diff --git a/device/MSP432P401R/MSP432P401R.cmake b/device/MSP432P401R/MSP432P401R.cmake new file mode 100644 index 0000000..aa5a179 --- /dev/null +++ b/device/MSP432P401R/MSP432P401R.cmake @@ -0,0 +1,32 @@ +string(TOLOWER "${DEVICE}" DEVICE_LOWER) + +set(ARCH_FLAGS + -mcpu=cortex-m4 + -march=armv7e-m + -mthumb + -mfloat-abi=hard + -mfpu=fpv4-sp-d16) + +set(DEVICE_DEFINES + __MSP432P401R__ + DeviceFamily_MSP432P401x) + +set(SDK_DIR "${CMAKE_CURRENT_LIST_DIR}/msp432p4_sdk") + +set(INCLUDE_DIRS + "${SDK_DIR}/source" + "${SDK_DIR}/source/third_party/CMSIS/Include" +) + +set(FAMILY_DIR "${SDK_DIR}/source/ti/devices/msp432p4xx") + +set(LINKER_SCRIPT "${FAMILY_DIR}/linker_files/gcc/${DEVICE_LOWER}.lds") + +set(SYSTEM_CODE + "${FAMILY_DIR}/startup_system_files/system_${DEVICE_LOWER}.c" + "${FAMILY_DIR}/startup_system_files/gcc/startup_${DEVICE_LOWER}_gcc.c" +) + +include(device_utils) +create_device_target("${ARCH_FLAGS}" "${DEVICE_DEFINES}" "${INCLUDE_DIRS}" "${LINKER_SCRIPT}" "${SYSTEM_CODE}") +target_sources(device PRIVATE "${CMAKE_CURRENT_LIST_DIR}/gpio.cpp") diff --git a/device/MSP432P401R/device.cpp b/device/MSP432P401R/device.cpp new file mode 100644 index 0000000..d1753d6 --- /dev/null +++ b/device/MSP432P401R/device.cpp @@ -0,0 +1,8 @@ +#include + +#include + +void hardwareInit() +{ + WDT_A->CTL = WDT_A_CTL_PW | WDT_A_CTL_HOLD; +} diff --git a/device/MSP432P401R/gpio.cpp b/device/MSP432P401R/gpio.cpp new file mode 100644 index 0000000..20911ed --- /dev/null +++ b/device/MSP432P401R/gpio.cpp @@ -0,0 +1,15 @@ +#include + +#include + +#include + +void setupOutputs() +{ + P2->DIR = 0b111; +} + +void writeOutputs(std::uint8_t val) +{ + P2->OUT = val % 8; +} diff --git a/device/MSP432P401R/msp432p4_sdk b/device/MSP432P401R/msp432p4_sdk new file mode 120000 index 0000000..5b92425 --- /dev/null +++ b/device/MSP432P401R/msp432p4_sdk @@ -0,0 +1 @@ +/home/maxmitti/msp432/simplelink_msp432p4_sdk_3_40_01_02 \ No newline at end of file diff --git a/device/device.hpp b/device/device.hpp new file mode 100644 index 0000000..9ce4580 --- /dev/null +++ b/device/device.hpp @@ -0,0 +1,3 @@ +#pragma once + +void hardwareInit(); diff --git a/device/gpio.hpp b/device/gpio.hpp new file mode 100644 index 0000000..1672aaf --- /dev/null +++ b/device/gpio.hpp @@ -0,0 +1,6 @@ +#pragma once + +#include + +void setupOutputs(); +void writeOutputs(std::uint8_t value); -- cgit v1.2.3-54-g00ecf