1
0
mirror of https://github.com/peterantypas/maiana.git synced 2025-05-20 01:10:09 -07:00

BSP cleanup

This commit is contained in:
Peter Antypas 2020-12-26 14:18:03 -08:00
parent fc91389af5
commit 69a4b83d54
3 changed files with 7 additions and 131 deletions

View File

@ -27,6 +27,8 @@
#if BOARD_REV==52
#warning "This board is too old and not recommended for new builds"
I2C_HandleTypeDef hi2c1;
SPI_HandleTypeDef hspi1;
IWDG_HandleTypeDef hiwdg;
@ -45,7 +47,7 @@ irq_callback sotdmaCallback = nullptr;
irq_callback trxClockCallback = nullptr;
irq_callback rxClockCallback = nullptr;
#define EEPROM_ADDRESS 0x50 << 1
typedef struct
{
@ -480,55 +482,11 @@ uint8_t bsp_tx_spi_byte(uint8_t data)
return result;
}
bool bsp_erase_station_data()
{
uint8_t b = 0xff;
HAL_GPIO_WritePin(EEPROM_WREN_PORT, EEPROM_WREN_PIN, GPIO_PIN_RESET);
HAL_Delay(1);
for ( unsigned i = 0; i < sizeof(StationData); ++i )
{
HAL_I2C_Mem_Write(&hi2c1, EEPROM_ADDRESS, i, 1, &b, 1, 100);
HAL_Delay(6);
}
HAL_GPIO_WritePin(EEPROM_WREN_PORT, EEPROM_WREN_PIN, GPIO_PIN_SET);
return true;
}
bool bsp_save_station_data(const StationData &data)
{
HAL_GPIO_WritePin(EEPROM_WREN_PORT, EEPROM_WREN_PIN, GPIO_PIN_RESET);
HAL_Delay(1);
uint8_t *b = (uint8_t*)&data;
for ( unsigned i = 0; i < sizeof(StationData); ++i, ++b )
{
HAL_I2C_Mem_Write(&hi2c1, EEPROM_ADDRESS, i, 1, b, 1, 100);
HAL_Delay(6);
}
HAL_GPIO_WritePin(EEPROM_WREN_PORT, EEPROM_WREN_PIN, GPIO_PIN_SET);
return true;
}
void bsp_reboot()
{
NVIC_SystemReset();
}
bool bsp_read_station_data(StationData &data)
{
uint8_t *b = (uint8_t*)&data;
for ( unsigned i = 0; i < sizeof(StationData); ++i, ++b )
{
HAL_I2C_Mem_Read(&hi2c1, EEPROM_ADDRESS, i, 1, b, 1, 100);
}
return true;
}
bool bsp_is_tx_disabled()
{
return false;

View File

@ -27,6 +27,9 @@
#if BOARD_REV==61
#warning "This board is too old and not recommended for new builds"
I2C_HandleTypeDef hi2c1;
SPI_HandleTypeDef hspi1;
IWDG_HandleTypeDef hiwdg;
@ -43,7 +46,6 @@ irq_callback sotdmaCallback = nullptr;
irq_callback trxClockCallback = nullptr;
irq_callback rxClockCallback = nullptr;
#define EEPROM_ADDRESS 0x50 << 1
typedef struct
{
@ -488,55 +490,11 @@ uint8_t bsp_tx_spi_byte(uint8_t data)
return result;
}
bool bsp_erase_station_data()
{
uint8_t b = 0xff;
HAL_GPIO_WritePin(EEPROM_WREN_PORT, EEPROM_WREN_PIN, GPIO_PIN_RESET);
HAL_Delay(1);
for ( unsigned i = 0; i < sizeof(StationData); ++i )
{
HAL_I2C_Mem_Write(&hi2c1, EEPROM_ADDRESS, i, 1, &b, 1, 100);
HAL_Delay(6);
}
HAL_GPIO_WritePin(EEPROM_WREN_PORT, EEPROM_WREN_PIN, GPIO_PIN_SET);
return true;
}
bool bsp_save_station_data(const StationData &data)
{
HAL_GPIO_WritePin(EEPROM_WREN_PORT, EEPROM_WREN_PIN, GPIO_PIN_RESET);
HAL_Delay(1);
uint8_t *b = (uint8_t*)&data;
for ( unsigned i = 0; i < sizeof(StationData); ++i, ++b )
{
HAL_I2C_Mem_Write(&hi2c1, EEPROM_ADDRESS, i, 1, b, 1, 100);
HAL_Delay(6);
}
HAL_GPIO_WritePin(EEPROM_WREN_PORT, EEPROM_WREN_PIN, GPIO_PIN_SET);
return true;
}
void bsp_reboot()
{
NVIC_SystemReset();
}
bool bsp_read_station_data(StationData &data)
{
uint8_t *b = (uint8_t*)&data;
for ( unsigned i = 0; i < sizeof(StationData); ++i, ++b )
{
HAL_I2C_Mem_Read(&hi2c1, EEPROM_ADDRESS, i, 1, b, 1, 100);
}
return true;
}
bool bsp_is_tx_disabled()
{
return HAL_GPIO_ReadPin(TX_DISABLE_PORT, TX_DISABLE_PIN) == GPIO_PIN_RESET;
@ -548,7 +506,7 @@ void bsp_enter_dfu()
bsp_gnss_off();
// This flag simply tells main() to jump to the ROM bootloader immediately upon reset, before initializing anything
*(uint32_t*)DFU_FLAG_ADDRESS = DFU_FLAG_MAGIC;
*(uint32_t*)BOOTMODE_ADDRESS = DFU_FLAG_MAGIC;
// Give the GNSS enough time to hibernate, then reset
HAL_Delay(1000);

View File

@ -43,7 +43,6 @@ irq_callback sotdmaCallback = nullptr;
irq_callback trxClockCallback = nullptr;
irq_callback rxClockCallback = nullptr;
#define EEPROM_ADDRESS 0x50 << 1
typedef struct
{
@ -486,50 +485,11 @@ uint8_t bsp_tx_spi_byte(uint8_t data)
return result;
}
bool bsp_erase_station_data()
{
uint8_t b = 0xff;
HAL_Delay(1);
for ( unsigned i = 0; i < sizeof(StationData); ++i )
{
HAL_I2C_Mem_Write(&hi2c1, EEPROM_ADDRESS, i, 1, &b, 1, 100);
HAL_Delay(6);
}
return true;
}
bool bsp_save_station_data(const StationData &data)
{
HAL_Delay(1);
uint8_t *b = (uint8_t*)&data;
for ( unsigned i = 0; i < sizeof(StationData); ++i, ++b )
{
HAL_I2C_Mem_Write(&hi2c1, EEPROM_ADDRESS, i, 1, b, 1, 100);
HAL_Delay(6);
}
return true;
}
void bsp_reboot()
{
NVIC_SystemReset();
}
bool bsp_read_station_data(StationData &data)
{
uint8_t *b = (uint8_t*)&data;
for ( unsigned i = 0; i < sizeof(StationData); ++i, ++b )
{
HAL_I2C_Mem_Read(&hi2c1, EEPROM_ADDRESS, i, 1, b, 1, 100);
}
return true;
}
bool bsp_is_tx_disabled()
{
return HAL_GPIO_ReadPin(TX_DISABLE_PORT, TX_DISABLE_PIN) == GPIO_PIN_RESET;