aboutsummaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
authorTrygve Laugstøl <trygvis@inamo.no>2017-01-25 22:02:09 +0100
committerTrygve Laugstøl <trygvis@inamo.no>2017-01-25 22:02:09 +0100
commit7f89aea2016ebde61b02914abc7984df50537f29 (patch)
treef21117d11242e26aeb880058f07263431adf869d /apps
parent8a3fedbcb8fc58dae8b43db3cae39688ec0332ef (diff)
downloadstm32f103-playground-7f89aea2016ebde61b02914abc7984df50537f29.tar.gz
stm32f103-playground-7f89aea2016ebde61b02914abc7984df50537f29.tar.bz2
stm32f103-playground-7f89aea2016ebde61b02914abc7984df50537f29.tar.xz
stm32f103-playground-7f89aea2016ebde61b02914abc7984df50537f29.zip
o Improving the mcu-stm32 cmake library a bit. Starting on a USB example.
Diffstat (limited to 'apps')
-rw-r--r--apps/CMakeLists.txt2
-rw-r--r--apps/dma1/CMakeLists.txt19
-rw-r--r--apps/test1/test1.cpp101
3 files changed, 11 insertions, 111 deletions
diff --git a/apps/CMakeLists.txt b/apps/CMakeLists.txt
index ae23c31..90885ed 100644
--- a/apps/CMakeLists.txt
+++ b/apps/CMakeLists.txt
@@ -1,10 +1,10 @@
add_subdirectory(can1)
add_subdirectory(cpp1)
add_subdirectory(dma1)
+add_subdirectory(i2c1)
add_subdirectory(os1)
add_subdirectory(os2)
add_subdirectory(serial1)
add_subdirectory(serial2)
add_subdirectory(stepper1)
add_subdirectory(stepper2)
-add_subdirectory(test1)
diff --git a/apps/dma1/CMakeLists.txt b/apps/dma1/CMakeLists.txt
index 689e437..19321d8 100644
--- a/apps/dma1/CMakeLists.txt
+++ b/apps/dma1/CMakeLists.txt
@@ -1,19 +1,20 @@
+mcu_stm32_add_library(TARGET dma1-mcu-stm32
+ DEVICE STM32F10X_MD
+ PARTS SPI GPIO DMA
+ DEFINES_VAR DEFINES_FROM_MCU_STM32)
+
add_executable(dma1.elf dma1.cpp
- ${STM32F10X_STDPERIPH_LIB}/Libraries/CMSIS/CM3/CoreSupport/core_cm3.c
- ${STM32F10X_STDPERIPH_LIB}/Libraries/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c
- ${STM32F10X_STDPERIPH_LIB}/Libraries/STM32F10x_StdPeriph_Driver/src/misc.c
- ${STM32F10X_STDPERIPH_LIB}/Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.c
- ${STM32F10X_STDPERIPH_LIB}/Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.c
- ${STM32F10X_STDPERIPH_LIB}/Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c
- ${STM32F10X_STDPERIPH_LIB}/Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.c
- $<TARGET_OBJECTS:playground>
+ ${PLAYGROUND_DIR}/src/init_low.s ${PLAYGROUND_DIR}/src/init_high.cpp ${PLAYGROUND_DIR}/include/init_high.h
+ ${PLAYGROUND_DIR}/include/playground.h
+ ${PLAYGROUND_DIR}/src/debug.cpp ${PLAYGROUND_DIR}/include/debug.h
)
target_include_directories(dma1.elf PUBLIC
$<TARGET_PROPERTY:playground,INTERFACE_INCLUDE_DIRECTORIES>
)
-target_compile_definitions(dma1.elf PUBLIC ${STM32F10X_STDPERIPH_DEFINES})
+target_compile_definitions(dma1.elf PUBLIC ${DEFINES_FROM_MCU_STM32})
target_link_libraries(dma1.elf tinyprintf)
+target_link_libraries(dma1.elf dma1-mcu-stm32)
set_target_properties(dma1.elf PROPERTIES LINK_FLAGS "-nostartfiles -T${CMAKE_SOURCE_DIR}/cmake/stm32.ld")
add_extra_commands(dma1.elf)
diff --git a/apps/test1/test1.cpp b/apps/test1/test1.cpp
deleted file mode 100644
index a883876..0000000
--- a/apps/test1/test1.cpp
+++ /dev/null
@@ -1,101 +0,0 @@
-#include <stdint.h>
-#include <stdint-gcc.h>
-#include <stm32f10x.h>
-#include <stm32f10x_rcc.h>
-#include <stm32f10x_gpio.h>
-#include <stddef.h>
-#include "playground.h"
-
-extern "C"
-__attribute__((naked))
-void HardFault_Handler_C(uint32_t *hardfault_args);
-
-extern "C" void high();
-extern "C" void low();
-
-SCB_Type *__SCB = ((SCB_Type *) SCB_BASE);
-//extern SCB_Type *__SCB;
-
-struct hardfault_data_t {
- uint32_t r0;
- uint32_t r1;
- uint32_t r2;
- uint32_t r3;
- uint32_t r12;
- uint32_t lr;
- uint32_t pc;
- uint32_t psr;
-};
-
-volatile struct hardfault_data_t *hardfault_data = (volatile struct hardfault_data_t *) 0x20000800;
-
-void HardFault_Handler_C(uint32_t *hardfault_args) {
- hardfault_data->r0 = hardfault_args[0];
- hardfault_data->r1 = hardfault_args[1];
- hardfault_data->r2 = hardfault_args[2];
- hardfault_data->r3 = hardfault_args[3];
- hardfault_data->r12 = hardfault_args[4];
- hardfault_data->lr = hardfault_args[5];
- hardfault_data->pc = hardfault_args[6];
- hardfault_data->psr = hardfault_args[7];
-
- halt();
-}
-
-void send_command(int command, void *message) {
- bool active = (CoreDebug->DHCSR & CoreDebug_DHCSR_C_DEBUGEN_Msk) == CoreDebug_DHCSR_C_DEBUGEN_Msk;
-
- if (!active) {
- return;
- }
-
- __asm volatile (
- "mov r0, %[cmd];"
- "mov r1, %[msg];"
- "bkpt #0xAB" : : [cmd] "r"(command), [msg] "r"(message) : "r0", "r1", "memory"
- );
-}
-
-size_t strlen(const char *s) {
- size_t size = 0;
- while (*s++ != '\0') size++;
- return size;
-}
-
-int run = 1;
-
-/*
- * When we get there the stack pointer is set
- */
-int main() {
- SystemInit();
-// SystemCoreClockUpdate();
-
- SCB->SHCSR |= SCB_SHCSR_USGFAULTENA_Msk | SCB_SHCSR_MEMFAULTPENDED_Msk | SCB_SHCSR_BUSFAULTENA_Msk;
-
- RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOA, ENABLE);
- RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOA, DISABLE);
-
- RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOB, ENABLE);
- RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOB, DISABLE);
-
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO | RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOA,
- ENABLE);
-
- GPIO_InitTypeDef init;
- GPIO_StructInit(&init);
- init.GPIO_Mode = GPIO_Mode_Out_PP;
- GPIO_Init(GPIOB, &init);
-
- while (run) {
-// GPIO_SetBits(GPIOA, GPIO_Pin_All);
- GPIO_SetBits(GPIOB, GPIO_Pin_All);
-// GPIO_SetBits(GPIOC, GPIO_Pin_All);
-
-// GPIO_ResetBits(GPIOA, GPIO_Pin_All);
- GPIO_ResetBits(GPIOB, GPIO_Pin_All);
-// GPIO_ResetBits(GPIOC, GPIO_Pin_All);
- }
-
- return 0;
-}