diff options
| author | J08nY | 2020-02-27 13:38:47 +0100 |
|---|---|---|
| committer | J08nY | 2020-02-27 13:38:47 +0100 |
| commit | 4eafe2d49fc7406861609c5af12b850741bbe5a0 (patch) | |
| tree | 49355d5cce44be8bd100fa8260b3b488f15be4a5 /pyecsca/codegen/hal | |
| parent | a071822d9966ac150e7ed3d4efffbf3feaa500f5 (diff) | |
| download | pyecsca-codegen-4eafe2d49fc7406861609c5af12b850741bbe5a0.tar.gz pyecsca-codegen-4eafe2d49fc7406861609c5af12b850741bbe5a0.tar.zst pyecsca-codegen-4eafe2d49fc7406861609c5af12b850741bbe5a0.zip | |
Proper LED thingies.
Diffstat (limited to 'pyecsca/codegen/hal')
| -rw-r--r-- | pyecsca/codegen/hal/hal.h | 9 | ||||
| -rw-r--r-- | pyecsca/codegen/hal/host/host_hal.h | 3 | ||||
| -rw-r--r-- | pyecsca/codegen/hal/stm32f0/stm32f0_hal.c | 40 | ||||
| -rw-r--r-- | pyecsca/codegen/hal/stm32f0/stm32f0_hal.h | 2 | ||||
| -rw-r--r-- | pyecsca/codegen/hal/stm32f3/stm32f3_hal.c | 38 | ||||
| -rw-r--r-- | pyecsca/codegen/hal/stm32f3/stm32f3_hal.h | 11 | ||||
| -rw-r--r-- | pyecsca/codegen/hal/xmega/xmega_hal.c | 4 | ||||
| -rw-r--r-- | pyecsca/codegen/hal/xmega/xmega_hal.h | 2 |
8 files changed, 65 insertions, 44 deletions
diff --git a/pyecsca/codegen/hal/hal.h b/pyecsca/codegen/hal/hal.h index b14dacf..fc7fc37 100644 --- a/pyecsca/codegen/hal/hal.h +++ b/pyecsca/codegen/hal/hal.h @@ -41,13 +41,4 @@ void platform_init(void); #error "Unsupported HAL Type" #endif -#ifndef led_error -#define led_error(a) -#endif - -#ifndef led_ok -#define led_ok(a) -#endif - - #endif //HAL_H_ diff --git a/pyecsca/codegen/hal/host/host_hal.h b/pyecsca/codegen/hal/host/host_hal.h index 26d8f4d..ba2fbbe 100644 --- a/pyecsca/codegen/hal/host/host_hal.h +++ b/pyecsca/codegen/hal/host/host_hal.h @@ -12,4 +12,7 @@ #define getch input_ch_0 #define flush flush_ch_0 +#define led_error(X) +#define led_ok(X) + #endif //HOST_HAL_H_ diff --git a/pyecsca/codegen/hal/stm32f0/stm32f0_hal.c b/pyecsca/codegen/hal/stm32f0/stm32f0_hal.c index ee70dd7..613a20a 100644 --- a/pyecsca/codegen/hal/stm32f0/stm32f0_hal.c +++ b/pyecsca/codegen/hal/stm32f0/stm32f0_hal.c @@ -27,8 +27,7 @@ void platform_init(void) RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_HSI; RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1; - uint32_t flash_latency = 0; - HAL_RCC_ClockConfig(&RCC_ClkInitStruct, flash_latency); + HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0); #else RCC_OscInitTypeDef RCC_OscInitStruct; RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE | RCC_OSCILLATORTYPE_HSI; @@ -44,6 +43,17 @@ void platform_init(void) RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1; HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0); #endif + + __HAL_RCC_GPIOC_CLK_ENABLE(); + GPIO_InitTypeDef GpioInit; + GpioInit.Pin = GPIO_PIN_13 | GPIO_PIN_14; + GpioInit.Mode = GPIO_MODE_OUTPUT_PP; + GpioInit.Pull = GPIO_NOPULL; + GpioInit.Speed = GPIO_SPEED_FREQ_HIGH; + HAL_GPIO_Init(GPIOC, &GpioInit); + + HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, RESET); + HAL_GPIO_WritePin(GPIOC, GPIO_PIN_14, RESET); } void init_uart(void) @@ -69,6 +79,8 @@ void init_uart(void) HAL_UART_Init(&UartHandle); } +static bool trig; + void trigger_setup(void) { __HAL_RCC_GPIOA_CLK_ENABLE(); @@ -81,15 +93,23 @@ void trigger_setup(void) HAL_GPIO_Init(GPIOA, &GpioInit); HAL_GPIO_WritePin(GPIOA, GPIO_PIN_12, RESET); + trig = false; } void trigger_high(void) { + trig = true; HAL_GPIO_WritePin(GPIOA, GPIO_PIN_12, SET); } +bool trigger_status(void) +{ + return trig; +} + void trigger_low(void) { + trig = false; HAL_GPIO_WritePin(GPIOA, GPIO_PIN_12, RESET); } @@ -106,3 +126,19 @@ void putch(char c) HAL_UART_Transmit(&UartHandle, &d, 1, 5000); } +void led_error(unsigned int x) +{ + if (!x) + HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, RESET); + else + HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, SET); +} + +void led_ok(unsigned int x) +{ + if (!x) + HAL_GPIO_WritePin(GPIOC, GPIO_PIN_14, RESET); + else + HAL_GPIO_WritePin(GPIOC, GPIO_PIN_14, SET); +} + diff --git a/pyecsca/codegen/hal/stm32f0/stm32f0_hal.h b/pyecsca/codegen/hal/stm32f0/stm32f0_hal.h index 1cbdefc..d432304 100644 --- a/pyecsca/codegen/hal/stm32f0/stm32f0_hal.h +++ b/pyecsca/codegen/hal/stm32f0/stm32f0_hal.h @@ -1,5 +1,6 @@ #ifndef STM32F0_HAL_H #define STM32F0_HAL_H +#include <stdbool.h> void init_uart(void); void putch(char c); @@ -8,6 +9,7 @@ char getch(void); void trigger_setup(void); void trigger_low(void); +bool trigger_status(void); void trigger_high(void); void led_error(unsigned int status); diff --git a/pyecsca/codegen/hal/stm32f3/stm32f3_hal.c b/pyecsca/codegen/hal/stm32f3/stm32f3_hal.c index b5480f3..c07fe87 100644 --- a/pyecsca/codegen/hal/stm32f3/stm32f3_hal.c +++ b/pyecsca/codegen/hal/stm32f3/stm32f3_hal.c @@ -47,10 +47,6 @@ void platform_init(void) HAL_RCC_ClockConfig(&RCC_ClkInitStruct, flash_latency); #endif - - - -#if (PLATFORM==CWLITEARM) __HAL_RCC_GPIOC_CLK_ENABLE(); GPIO_InitTypeDef GpioInit; GpioInit.Pin = GPIO_PIN_13 | GPIO_PIN_14; @@ -59,9 +55,8 @@ void platform_init(void) GpioInit.Speed = GPIO_SPEED_FREQ_HIGH; HAL_GPIO_Init(GPIOC, &GpioInit); - HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, SET); - HAL_GPIO_WritePin(GPIOC, GPIO_PIN_14, SET); -#endif + HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, RESET); + HAL_GPIO_WritePin(GPIOC, GPIO_PIN_14, RESET); } void init_uart(void) @@ -86,6 +81,8 @@ void init_uart(void) HAL_UART_Init(&UartHandle); } +static bool trig; + void trigger_setup(void) { __HAL_RCC_GPIOA_CLK_ENABLE(); @@ -98,15 +95,23 @@ void trigger_setup(void) HAL_GPIO_Init(GPIOA, &GpioInit); HAL_GPIO_WritePin(GPIOA, GPIO_PIN_12, RESET); + trig = false; } void trigger_high(void) { + trig = true; HAL_GPIO_WritePin(GPIOA, GPIO_PIN_12, SET); } +bool trigger_status(void) +{ + return trig; +} + void trigger_low(void) { + trig = false; HAL_GPIO_WritePin(GPIOA, GPIO_PIN_12, RESET); } @@ -122,28 +127,19 @@ void putch(char c) uint8_t d = c; HAL_UART_Transmit(&UartHandle, &d, 1, 5000); } -#if (PLATFORM==CWLITEARM || PLATFORM==CW308_STM32F3) -void change_err_led(int x) + +void led_error(unsigned int x) { - if (x) + if (!x) HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, RESET); else HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, SET); } -void change_ok_led(int x) +void led_ok(unsigned int x) { - if (x) + if (!x) HAL_GPIO_WritePin(GPIOC, GPIO_PIN_14, RESET); else HAL_GPIO_WritePin(GPIOC, GPIO_PIN_14, SET); } -#else -void change_err_led(int x) -{ -} - -void change_ok_led(int x) -{ -} -#endif //PLATFORM==CWLITEARM diff --git a/pyecsca/codegen/hal/stm32f3/stm32f3_hal.h b/pyecsca/codegen/hal/stm32f3/stm32f3_hal.h index b5fec45..156a012 100644 --- a/pyecsca/codegen/hal/stm32f3/stm32f3_hal.h +++ b/pyecsca/codegen/hal/stm32f3/stm32f3_hal.h @@ -1,6 +1,7 @@ #ifndef STM32F3_HAL_H #define STM32F3_HAL_H #include <stdint.h> +#include <stdbool.h> //You probably don't need this from rest of code //#include "stm32f4_hal_lowlevel.h" @@ -28,14 +29,10 @@ char getch(void); void trigger_setup(void); void trigger_low(void); +bool trigger_status(void); void trigger_high(void); - -#if (PLATFORM==CWLITEARM) -void change_err_led(int x); -void change_ok_led(int x); -#define led_error(X) (change_err_led(X)) -#define led_ok(X) (change_ok_led(X)) -#endif +void led_error(unsigned int x); +void led_ok(unsigned int x); #endif // STM32F3_HAL_H diff --git a/pyecsca/codegen/hal/xmega/xmega_hal.c b/pyecsca/codegen/hal/xmega/xmega_hal.c index c9fc12a..52efe88 100644 --- a/pyecsca/codegen/hal/xmega/xmega_hal.c +++ b/pyecsca/codegen/hal/xmega/xmega_hal.c @@ -34,9 +34,7 @@ void platform_init(void) //Turn off other sources besides external OSC.CTRL = OSC_XOSCEN_bm; - - #if PLATFORM == CW303 + PORTA.DIRSET = PIN5_bm | PIN6_bm; PORTA.OUTSET = PIN5_bm | PIN6_bm; - #endif }
\ No newline at end of file diff --git a/pyecsca/codegen/hal/xmega/xmega_hal.h b/pyecsca/codegen/hal/xmega/xmega_hal.h index 1647824..cb53bb7 100644 --- a/pyecsca/codegen/hal/xmega/xmega_hal.h +++ b/pyecsca/codegen/hal/xmega/xmega_hal.h @@ -32,10 +32,8 @@ #define getch input_ch_0 #define flush() -#if PLATFORM == CW303 #define led_error(a) if (a) {PORTA.OUTCLR = PIN6_bm;} else {PORTA.OUTSET = PIN6_bm;} #define led_ok(a) if (a) {PORTA.OUTCLR = PIN5_bm;} else {PORTA.OUTSET = PIN5_bm;} -#endif void HW_AES128_Init(void); void HW_AES128_LoadKey(uint8_t * key); |
