feat: H7 support (#5738)

Co-authored-by: Richard Li <richard.li@ces.hk>
Co-authored-by: philmoz <phil.a.mitchell@gmail.com>
Co-authored-by: raphaelcoeffic <1050031+raphaelcoeffic@users.noreply.github.com>
This commit is contained in:
Malte Langermann
2025-01-18 10:08:13 +01:00
committed by GitHub
co-authored by Richard Li philmoz raphaelcoeffic
parent 5a15ffb017
commit 3d25c2a0f8
458 changed files with 441554 additions and 2410 deletions
+48
View File
@@ -0,0 +1,48 @@
#include "hal/flash_driver.h"
typedef struct {
const etx_flash_driver_t* drv;
uint32_t start_addr;
uint32_t end_addr;
} flash_media_t;
static flash_media_t _flash_media[2] = {{nullptr, 0, 0}};
void flashRegisterDriver(uint32_t start_addr, uint32_t length,
const etx_flash_driver_t* drv)
{
for (int i = 0; i < 2; i++) {
flash_media_t& fm = _flash_media[i];
if (fm.drv) continue;
fm = {
.drv = drv,
.start_addr = start_addr,
.end_addr = start_addr + length - 1,
};
return;
}
}
const etx_flash_driver_t* flashFindDriver(uint32_t addr)
{
for (int i = 0; i < 2; i++) {
const flash_media_t& fm = _flash_media[i];
if (!fm.drv) continue;
if (fm.start_addr <= addr && fm.end_addr >= addr)
return fm.drv;
}
return nullptr;
}
uint32_t flashGetSize(uint32_t addr)
{
for (int i = 0; i < 2; i++) {
const flash_media_t& fm = _flash_media[i];
if (!fm.drv) continue;
if (fm.start_addr <= addr && fm.end_addr >= addr)
return fm.end_addr - fm.start_addr + 1;
}
return 0;
}