summaryrefslogtreecommitdiffstats
path: root/device/MSP432P401R
diff options
context:
space:
mode:
authorMarkus Mittendrein <git@maxmitti.at>2025-02-25 23:37:17 +0100
committerMarkus Mittendrein <git@maxmitti.at>2025-02-25 23:39:45 +0100
commit1b3d654c764b25cdd979acca0c956564cfe8358d (patch)
tree25b08bca9fb82d4bc7b293d273dc095207e9d0d8 /device/MSP432P401R
downloadmsp432_test-master.tar.gz
msp432_test-master.zip
InitialHEADmaster
Diffstat (limited to 'device/MSP432P401R')
-rw-r--r--device/MSP432P401R/MSP432P401R.cmake32
-rw-r--r--device/MSP432P401R/device.cpp8
-rw-r--r--device/MSP432P401R/gpio.cpp15
l---------device/MSP432P401R/msp432p4_sdk1
4 files changed, 56 insertions, 0 deletions
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 <device.hpp>
+
+#include <ti/devices/msp432p4xx/inc/msp432p401r.h>
+
+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 <gpio.hpp>
+
+#include <cstdint>
+
+#include <ti/devices/msp432p4xx/inc/msp432p401r.h>
+
+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