diff --git a/CMakeLists.txt b/CMakeLists.txt index 9aadebf..40bdc63 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -23,6 +23,13 @@ set(MISSION_PATH mission/) set(FreeRTOS_CONFIG_PATH bsp_z7/freeRTOS) set(BSP_PATH bsp_z7) +# ############################################################################## +# Configuration +# ############################################################################## + + + + # ############################################################################## # Executable and Sources # ############################################################################## @@ -57,6 +64,8 @@ set(FSFW_ADDITIONAL_INC_PATHS "${COMMON_CONFIG_PATH}" "${CMAKE_CURRENT_BINARY_DIR}" "contrib/" CACHE STRING "FSFW configuration paths") +set(FSFW_OSAL freertos CACHE STRING "FSFW OSAL") + set(FSFW_ADD_MONITORING ON) add_subdirectory(fsfw) diff --git a/bsp_z7/ps7_cortexa9_0/CMakeLists.txt b/bsp_z7/ps7_cortexa9_0/CMakeLists.txt index 8c8d789..28e307c 100644 --- a/bsp_z7/ps7_cortexa9_0/CMakeLists.txt +++ b/bsp_z7/ps7_cortexa9_0/CMakeLists.txt @@ -1,3 +1,4 @@ +add_subdirectory(libsrc/gpiops) add_subdirectory(libsrc/scugic) add_subdirectory(libsrc/scutimer) add_subdirectory(libsrc/scuwdt) diff --git a/bsp_z7/ps7_cortexa9_0/include/xparameters.h b/bsp_z7/ps7_cortexa9_0/include/xparameters.h index 986c0c1..03046ce 100644 --- a/bsp_z7/ps7_cortexa9_0/include/xparameters.h +++ b/bsp_z7/ps7_cortexa9_0/include/xparameters.h @@ -23,8 +23,10 @@ #include "xparameters_ps.h" -#define STDIN_BASEADDRESS 0xE0001000 -#define STDOUT_BASEADDRESS 0xE0001000 + +#define STDIN_BASEADDRESS XPS_UART1_BASEADDR +#define STDOUT_BASEADDRESS XPS_UART1_BASEADDR + /******************************************************************/ diff --git a/bsp_z7/ps7_cortexa9_0/libsrc/gpiops/CMakeLists.txt b/bsp_z7/ps7_cortexa9_0/libsrc/gpiops/CMakeLists.txt new file mode 100644 index 0000000..06a0ee8 --- /dev/null +++ b/bsp_z7/ps7_cortexa9_0/libsrc/gpiops/CMakeLists.txt @@ -0,0 +1,8 @@ +target_sources(${TARGET_NAME} PUBLIC + src/xgpiops_g.c + src/xgpiops_hw.c + src/xgpiops_intr.c + src/xgpiops.c + src/xgpiops_sinit.c + src/xgpiops_selftest.c +) \ No newline at end of file diff --git a/mission/controller/PrintController.cpp b/mission/controller/PrintController.cpp index e2818d6..5613e03 100644 --- a/mission/controller/PrintController.cpp +++ b/mission/controller/PrintController.cpp @@ -10,10 +10,24 @@ ReturnValue_t PrintController::initialize() { if (result != returnvalue::OK) { return result; } + + XGpioPs_Config config; + config.DeviceId = 4; // chosen by fair dice throw + config.BaseAddr = XPS_GPIO_BASEADDR; + s32 returncode = XGpioPs_CfgInitialize(&gpio, &config, XPS_GPIO_BASEADDR); + if (returncode != 0) { + return returnvalue::FAILED; + } + XGpioPs_SetDirection(&gpio, 0, (1 << 7)); + XGpioPs_SetOutputEnable(&gpio, 0, (1 << 7)); + XGpioPs_WritePin(&gpio, 7, 1); return returnvalue::OK; } ReturnValue_t PrintController::performOperation(uint8_t operationCode) { printf("running\n"); + static int pinvalue = 1; + pinvalue = pinvalue ^ 1; + XGpioPs_WritePin(&gpio, 7, pinvalue); return returnvalue::OK; } diff --git a/mission/controller/PrintController.h b/mission/controller/PrintController.h index 75009a8..04e48e8 100644 --- a/mission/controller/PrintController.h +++ b/mission/controller/PrintController.h @@ -1,5 +1,7 @@ #pragma once +#include + #include #include @@ -12,4 +14,7 @@ class PrintController: public SystemObject, public ExecutableObjectIF { ReturnValue_t initialize() override; ReturnValue_t performOperation(uint8_t operationCode) override; + + private: + XGpioPs gpio; }; \ No newline at end of file