This commit is contained in:
Thomas Göttgens 2025-03-02 13:09:55 +01:00
parent dbbcb1d513
commit e9a6865f02
4 changed files with 44 additions and 58 deletions

View File

@ -1,3 +1,6 @@
# trunk-ignore-all(ruff/F821)
# trunk-ignore-all(flake8/F821): For SConstruct imports
Import("env") Import("env")
# Custom HEX from ELF # Custom HEX from ELF
env.AddPostAction( env.AddPostAction(

View File

@ -84,13 +84,11 @@ static int _internal_flash_prog(const struct lfs_config *c, lfs_block_t block, l
LFS_UNUSED(c); LFS_UNUSED(c);
_LFS_DBG("Programming %d bytes/%d doublewords at address 0x%08x/block %d, offset %d.", size, dw_count, address, block, off); _LFS_DBG("Programming %d bytes/%d doublewords at address 0x%08x/block %d, offset %d.", size, dw_count, address, block, off);
if (HAL_FLASH_Unlock() != HAL_OK) if (HAL_FLASH_Unlock() != HAL_OK) {
{
return LFS_ERR_IO; return LFS_ERR_IO;
} }
for (uint32_t i = 0; i < dw_count; i++) { for (uint32_t i = 0; i < dw_count; i++) {
if((address < LFS_FLASH_ADDR_BASE) || (address > LFS_FLASH_ADDR_END)) if ((address < LFS_FLASH_ADDR_BASE) || (address > LFS_FLASH_ADDR_END)) {
{
_LFS_DBG("Wanted to program out of bound of FLASH: 0x%08x.\n", address); _LFS_DBG("Wanted to program out of bound of FLASH: 0x%08x.\n", address);
HAL_FLASH_Lock(); HAL_FLASH_Lock();
return LFS_ERR_INVAL; return LFS_ERR_INVAL;
@ -105,8 +103,7 @@ static int _internal_flash_prog(const struct lfs_config *c, lfs_block_t block, l
address += 8; address += 8;
bufp += 1; bufp += 1;
} }
if(HAL_FLASH_Lock() != HAL_OK) if (HAL_FLASH_Lock() != HAL_OK) {
{
return LFS_ERR_IO; return LFS_ERR_IO;
} }
@ -121,17 +118,12 @@ static int _internal_flash_erase(const struct lfs_config *c, lfs_block_t block)
{ {
lfs_block_t address = LFS_FLASH_ADDR_BASE + (block * STM32WL_PAGE_SIZE); lfs_block_t address = LFS_FLASH_ADDR_BASE + (block * STM32WL_PAGE_SIZE);
HAL_StatusTypeDef hal_rc; HAL_StatusTypeDef hal_rc;
FLASH_EraseInitTypeDef EraseInitStruct = { FLASH_EraseInitTypeDef EraseInitStruct = {.TypeErase = FLASH_TYPEERASE_PAGES, .Page = 0, .NbPages = 1};
.TypeErase = FLASH_TYPEERASE_PAGES,
.Page = 0,
.NbPages = 1
};
uint32_t PAGEError = 0; uint32_t PAGEError = 0;
LFS_UNUSED(c); LFS_UNUSED(c);
if((address < LFS_FLASH_ADDR_BASE) || (address > LFS_FLASH_ADDR_END)) if ((address < LFS_FLASH_ADDR_BASE) || (address > LFS_FLASH_ADDR_END)) {
{
_LFS_DBG("Wanted to erase out of bound of FLASH: 0x%08x.\n", address); _LFS_DBG("Wanted to erase out of bound of FLASH: 0x%08x.\n", address);
return LFS_ERR_INVAL; return LFS_ERR_INVAL;
} }
@ -155,8 +147,7 @@ static int _internal_flash_sync(const struct lfs_config *c)
return LFS_ERR_OK; return LFS_ERR_OK;
} }
static struct lfs_config _InternalFSConfig = { static struct lfs_config _InternalFSConfig = {.context = NULL,
.context = NULL,
.read = _internal_flash_read, .read = _internal_flash_read,
.prog = _internal_flash_prog, .prog = _internal_flash_prog,
@ -172,8 +163,7 @@ static struct lfs_config _InternalFSConfig = {
.read_buffer = NULL, .read_buffer = NULL,
.prog_buffer = NULL, .prog_buffer = NULL,
.lookahead_buffer = NULL, .lookahead_buffer = NULL,
.file_buffer = NULL .file_buffer = NULL};
};
LittleFS InternalFS; LittleFS InternalFS;
@ -185,8 +175,7 @@ LittleFS::LittleFS(void) : STM32_LittleFS(&_InternalFSConfig) {}
bool LittleFS::begin(void) bool LittleFS::begin(void)
{ {
if(FLASH_BASE >= LFS_FLASH_ADDR_BASE) if (FLASH_BASE >= LFS_FLASH_ADDR_BASE) {
{
/* There is not enough space on this device for a filesystem. */ /* There is not enough space on this device for a filesystem. */
return false; return false;
} }

View File

@ -76,8 +76,12 @@ class STM32_LittleFS
* code. User should not call these directly * code. User should not call these directly
*------------------------------------------------------------------*/ *------------------------------------------------------------------*/
lfs_t *_getFS(void) { return &_lfs; } lfs_t *_getFS(void) { return &_lfs; }
void _lockFS(void) { /* no-op */ } void _lockFS(void)
void _unlockFS(void) { /* no-op */ } { /* no-op */
}
void _unlockFS(void)
{ /* no-op */
}
protected: protected:
bool _mounted; bool _mounted;

View File

@ -9,29 +9,19 @@ build_flags =
-DPIN_SERIAL_RX=PB7 -DPIN_SERIAL_RX=PB7
-DPIN_SERIAL_TX=PB6 -DPIN_SERIAL_TX=PB6
-DHAL_DAC_MODULE_ONLY -DHAL_DAC_MODULE_ONLY
-DHAL_ADC_MODULE_DISABLED -DHAL_RNG_MODULE_ENABLED
-DHAL_COMP_MODULE_DISABLED
-DHAL_CRC_MODULE_DISABLED
-DHAL_CRYP_MODULE_DISABLED
-DHAL_GTZC_MODULE_DISABLED
-DHAL_HSEM_MODULE_DISABLED
-DHAL_I2C_MODULE_DISABLED
-DHAL_I2S_MODULE_DISABLED
-DHAL_IPCC_MODULE_DISABLED
-DHAL_IRDA_MODULE_DISABLED
-DHAL_IWDG_MODULE_DISABLED
-DHAL_LPTIM_MODULE_DISABLED
-DHAL_PKA_MODULE_DISABLED
-DHAL_RNG_MODULE_DISABLED
-DHAL_RTC_MODULE_DISABLED
-DHAL_SMARTCARD_MODULE_DISABLED
-DHAL_SMBUS_MODULE_DISABLED
-DHAL_TIM_MODULE_DISABLED
-DHAL_WWDG_MODULE_DISABLED
-DHAL_EXTI_MODULE_DISABLED
-DHAL_SAI_MODULE_DISABLED
-DHAL_ICACHE_MODULE_DISABLED
-DRADIOLIB_EXCLUDE_SX128X=1 -DRADIOLIB_EXCLUDE_SX128X=1
-DRADIOLIB_EXCLUDE_SX127X=1 -DRADIOLIB_EXCLUDE_SX127X=1
-DRADIOLIB_EXCLUDE_LR11X0=1 -DRADIOLIB_EXCLUDE_LR11X0=1
-DMESHTASTIC_EXCLUDE_ENVIRONMENTAL_SENSOR=1
-DMESHTASTIC_EXCLUDE_I2C=1
-DMESHTASTIC_EXCLUDE_WIFI=1
-DMESHTASTIC_EXCLUDE_BLUETOOTH=1
-DMESHTASTIC_EXCLUDE_GPS=1
-DMESHTASTIC_EXCLUDE_SCREEN=1
-DMESHTASTIC_EXCLUDE_MQTT=1
-DMESHTASTIC_EXCLUDE_POWERMON=1
;-DPIO_FRAMEWORK_ARDUINO_NANOLIB_FLOAT_PRINTF
;-DCFG_DEBUG
upload_port = stlink upload_port = stlink