aboutsummaryrefslogtreecommitdiff
path: root/apps/test1
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/test1
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/test1')
-rw-r--r--apps/test1/test1.cpp101
1 files changed, 0 insertions, 101 deletions
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;
-}