iap 逻辑初步

Signed-off-by: a1012112796 <1012112796@qq.com>
This commit is contained in:
2022-11-08 13:44:31 +08:00
parent 927d8a2bb8
commit 8903a09f2c
10 changed files with 981 additions and 279 deletions

View File

@@ -165,6 +165,7 @@ menu "On-chip Peripheral Drivers"
config BSP_USING_ON_CHIP_FLASH
bool "Enable on-chip FLASH"
select RT_USING_FAL
default n
config BSP_USING_USBD

View File

@@ -59,3 +59,16 @@ void SystemClock_Config(void)
*/
HAL_RCC_EnableCSS();
}
// init ports
extern int cplusplus_system_init(void);
INIT_COMPONENT_EXPORT(cplusplus_system_init);
extern void fal(uint8_t argc, char **argv);
MSH_CMD_EXPORT(fal, FAL (Flash Abstraction Layer) operate.);
extern int fal_init(void);
INIT_ENV_EXPORT(fal_init);
extern int iap_main_entry(void);
INIT_ENV_EXPORT(iap_main_entry);

63
board/fal_cfg.h Normal file
View File

@@ -0,0 +1,63 @@
/*
* Copyright (c) 2006-2021, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
* Change Logs:
* Date Author Notes
* 2018-12-5 SummerGift first version
*/
#ifndef _FAL_CFG_H_
#define _FAL_CFG_H_
#include <rtthread.h>
#include <board.h>
#define FLASH_SIZE_GRANULARITY_16K (4 * 16 * 1024)
#define FLASH_SIZE_GRANULARITY_64K (64 * 1024)
#define FLASH_SIZE_GRANULARITY_128K (7 * 128 * 1024)
#define STM32_FLASH_START_ADRESS_16K STM32_FLASH_START_ADRESS
#define STM32_FLASH_START_ADRESS_64K (STM32_FLASH_START_ADRESS_16K + FLASH_SIZE_GRANULARITY_16K)
#define STM32_FLASH_START_ADRESS_128K (STM32_FLASH_START_ADRESS_64K + FLASH_SIZE_GRANULARITY_64K)
#define FLASH_SIZE_APP (5 * 128 * 1024)
#define FLASH_SIZE_LOG (2 * 128 * 1024)
#define FLASH_OFFSET_LOG (FLASH_SIZE_APP)
extern const struct fal_flash_dev stm32_onchip_flash_16k;
extern const struct fal_flash_dev stm32_onchip_flash_64k;
extern const struct fal_flash_dev stm32_onchip_flash_128k;
/* flash device table */
#define FAL_FLASH_DEV_TABLE \
{ \
&stm32_onchip_flash_16k, \
&stm32_onchip_flash_64k, \
&stm32_onchip_flash_128k, \
}
/* ====================== Partition Configuration ========================== */
#ifdef FAL_PART_HAS_TABLE_CFG
/* partition table */
/**
* @brief flash 分配:
* section addr size
* 0 - 4 0x08000000 128kb bootloader
* 5 - 9 0x08020000 640kb app
* 10 - 11 0x080C0000 256kb ulog
*
*/
#define FAL_PART_TABLE \
{ \
{FAL_PART_MAGIC_WROD, "boot_0", "onchip_flash_16k", 0 , FLASH_SIZE_GRANULARITY_16K , 0}, \
{FAL_PART_MAGIC_WROD, "boot_1", "onchip_flash_64k", 0 , FLASH_SIZE_GRANULARITY_64K , 0}, \
{FAL_PART_MAGIC_WROD, "app", "onchip_flash_128k", 0 , FLASH_SIZE_APP, 0}, \
{FAL_PART_MAGIC_WROD, "ulog", "onchip_flash_128k", FLASH_OFFSET_LOG , FLASH_SIZE_LOG, 0}, \
}
#endif /* FAL_PART_HAS_TABLE_CFG */
#endif /* _FAL_CFG_H_ */