aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--demos/STM32/NASA-OSAL-STM32F746G-DISCOVERY/Makefile3
-rw-r--r--os/common/abstractions/nasa_osal/lib/cfe_psp_chibios.c71
-rw-r--r--os/common/abstractions/nasa_osal/src/osapi.c2
3 files changed, 74 insertions, 2 deletions
diff --git a/demos/STM32/NASA-OSAL-STM32F746G-DISCOVERY/Makefile b/demos/STM32/NASA-OSAL-STM32F746G-DISCOVERY/Makefile
index 9513bd1b1..95e58f8f0 100644
--- a/demos/STM32/NASA-OSAL-STM32F746G-DISCOVERY/Makefile
+++ b/demos/STM32/NASA-OSAL-STM32F746G-DISCOVERY/Makefile
@@ -115,6 +115,7 @@ CSRC = $(STARTUPSRC) \
$(BOARDSRC) \
$(TESTSRC) \
$(NASAOSALSRC) \
+ $(CHIBIOS)/os/common/abstractions/nasa_osal/lib/cfe_psp_chibios.c \
main.c
# C++ sources that can be compiled in ARM or THUMB mode depending on the global
@@ -146,7 +147,7 @@ ASMSRC = $(STARTUPASM) $(PORTASM) $(OSALASM)
INCDIR = $(STARTUPINC) $(KERNINC) $(PORTINC) $(OSALINC) \
$(HALINC) $(PLATFORMINC) $(BOARDINC) $(TESTINC) \
- $(NASAOSALINC)
+ $(NASAOSALINC) $(CHIBIOS)/os/common/abstractions/nasa_osal/lib
#
# Project, sources and paths
diff --git a/os/common/abstractions/nasa_osal/lib/cfe_psp_chibios.c b/os/common/abstractions/nasa_osal/lib/cfe_psp_chibios.c
new file mode 100644
index 000000000..3a17798c1
--- /dev/null
+++ b/os/common/abstractions/nasa_osal/lib/cfe_psp_chibios.c
@@ -0,0 +1,71 @@
+/*
+ ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+
+/**
+ * @file cfe_psp_chibios.c
+ * @brief CFE PSP module code.
+ *
+ * @addtogroup nasa_cfe_psp
+ * @{
+ */
+
+#include "ch.h"
+
+#include "common_types.h"
+#include "osapi.h"
+
+/*===========================================================================*/
+/* Module local definitions. */
+/*===========================================================================*/
+
+/*===========================================================================*/
+/* Module exported variables. */
+/*===========================================================================*/
+
+/*===========================================================================*/
+/* Module local types. */
+/*===========================================================================*/
+
+/*===========================================================================*/
+/* Module local variables. */
+/*===========================================================================*/
+
+/*===========================================================================*/
+/* Module local functions. */
+/*===========================================================================*/
+
+/*===========================================================================*/
+/* Module exported functions. */
+/*===========================================================================*/
+
+/**
+ * @brief Provides a common interface to the processor reset.
+ * @note Not currently implemented.
+ */
+void CFE_PSP_Restart(uint32 reset_type) {
+
+ (void)reset_type;
+}
+
+/**
+ * @brief Generic panic handler.
+ */
+void CFE_PSP_Panic(int32 ErrorCode) {
+
+ chSysHalt((char *)ErrorCode);
+}
+
+/** @} */
diff --git a/os/common/abstractions/nasa_osal/src/osapi.c b/os/common/abstractions/nasa_osal/src/osapi.c
index cb39acca9..28088165e 100644
--- a/os/common/abstractions/nasa_osal/src/osapi.c
+++ b/os/common/abstractions/nasa_osal/src/osapi.c
@@ -2120,7 +2120,7 @@ int32 OS_TaskGetIdByName(uint32 *task_id, const char *task_name) {
*/
int32 OS_TaskGetInfo(uint32 task_id, OS_task_prop_t *task_prop) {
thread_t *tp = (thread_t *)task_id;
- size_t wasize = (size_t)tp - (size_t)tp->stklimit + sizeof (thread_t);
+ size_t wasize = (size_t)tp - (size_t)tp->wabase + sizeof (thread_t);
/* NULL pointer checks.*/
if (task_prop == NULL) {