mirror of
https://github.com/betaflight/betaflight.git
synced 2025-07-19 14:25:20 +03:00
AT32 development, introduction of AT32F435 target (#12247)
* AT32F435: new target (#12159) * AT32F435: New target (WIP) * IO and Timer Updates * Adding pseudonyms for the STM TypeDef items. - implementation to follow * Adding config_streamer support for AT32 * Implementation for IO * Adding in Peripheral mapping from emsr. * Warnings cleanup for AT drivers * Getting things to the linking stage * Add AT-START-F435 LEDs as default in AT32F435 as a temporary measure to aid bringup * Remove tabs * Enable selection of serial port to use for MSP * Setup defaults for AT-START-F435 to use MSP on UART1 * Fix for most recent 4.5.0 Makefile changes * Solve for sanity check. * Add AT32F435 MCU type * Fix compilation issue with SITL * Merge conflict resolution * Minor cleanup * Adding line feed. --------- Co-authored-by: Steve Evans <Steve@SCEvans.com>
This commit is contained in:
parent
8900a831e5
commit
74be33dfbc
58 changed files with 6256 additions and 84 deletions
|
@ -93,6 +93,8 @@ void config_streamer_start(config_streamer_t *c, uintptr_t base, int size)
|
|||
#elif defined(CONFIG_IN_FLASH) || defined(CONFIG_IN_FILE)
|
||||
#if defined(STM32F7) || defined(STM32H7) || defined(STM32G4)
|
||||
HAL_FLASH_Unlock();
|
||||
#elif defined(AT32F4)
|
||||
flash_unlock();
|
||||
#else
|
||||
FLASH_Unlock();
|
||||
#endif
|
||||
|
@ -111,6 +113,8 @@ void config_streamer_start(config_streamer_t *c, uintptr_t base, int size)
|
|||
// NOP
|
||||
#elif defined(STM32G4)
|
||||
// NOP
|
||||
#elif defined(AT32F4)
|
||||
flash_flag_clear(FLASH_ODF_FLAG | FLASH_PRGMERR_FLAG | FLASH_EPPERR_FLAG);
|
||||
#elif defined(UNIT_TEST) || defined(SIMULATOR_BUILD)
|
||||
// NOP
|
||||
#else
|
||||
|
@ -492,6 +496,18 @@ static int write_word(config_streamer_t *c, config_streamer_buffer_align_type_t
|
|||
if (status != HAL_OK) {
|
||||
return -2;
|
||||
}
|
||||
#elif defined(AT32F4)
|
||||
if (c->address % FLASH_PAGE_SIZE == 0) {
|
||||
const flash_status_type status = flash_sector_erase(c->address);
|
||||
if (status != FLASH_OPERATE_DONE) {
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
const flash_status_type status = flash_word_program(c->address, (uint32_t)*buffer);
|
||||
if (status != FLASH_OPERATE_DONE) {
|
||||
return -2;
|
||||
}
|
||||
#else // !STM32H7 && !STM32F7 && !STM32G4
|
||||
if (c->address % FLASH_PAGE_SIZE == 0) {
|
||||
const FLASH_Status status = FLASH_EraseSector(getFLASHSectorForEEPROM(), VoltageRange_3); //0x08080000 to 0x080A0000
|
||||
|
@ -553,6 +569,8 @@ int config_streamer_finish(config_streamer_t *c)
|
|||
#elif defined(CONFIG_IN_FLASH)
|
||||
#if defined(STM32F7) || defined(STM32H7) || defined(STM32G4)
|
||||
HAL_FLASH_Lock();
|
||||
#elif defined(AT32F4)
|
||||
flash_lock();
|
||||
#else
|
||||
FLASH_Lock();
|
||||
#endif
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue