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:
co-authored by
Richard Li
philmoz
raphaelcoeffic
parent
5a15ffb017
commit
3d25c2a0f8
@@ -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;
|
||||
}
|
||||
Reference in New Issue
Block a user