format codes

pull/117/head
Meco Man 5 years ago
parent ef3556f202
commit 97ef8c16a6

@ -6,21 +6,21 @@
static void test_env(void); static void test_env(void);
int main(void){ int main(void){
BSP_Init(); BSP_Init();
if (easyflash_init() == EF_NO_ERR) { if (easyflash_init() == EF_NO_ERR) {
/* test Env demo */ /* test Env demo */
test_env(); test_env();
} }
while(1) { while(1) {
LED_RUN_ON; LED_RUN_ON;
delay(6000000); delay(6000000);
LED_RUN_OFF; LED_RUN_OFF;
delay(6000000); delay(6000000);
} }
return 0; return 0;
} }

@ -96,10 +96,10 @@ EfErrCode ef_port_erase(uint32_t addr, size_t size) {
EfErrCode result = EF_NO_ERR; EfErrCode result = EF_NO_ERR;
sfud_err sfud_result = SFUD_SUCCESS; sfud_err sfud_result = SFUD_SUCCESS;
const sfud_flash *flash = sfud_get_device_table() + SFUD_SST25_DEVICE_INDEX; const sfud_flash *flash = sfud_get_device_table() + SFUD_SST25_DEVICE_INDEX;
/* make sure the start address is a multiple of FLASH_ERASE_MIN_SIZE */ /* make sure the start address is a multiple of FLASH_ERASE_MIN_SIZE */
EF_ASSERT(addr % EF_ERASE_MIN_SIZE == 0); EF_ASSERT(addr % EF_ERASE_MIN_SIZE == 0);
sfud_result = sfud_erase(flash, addr, size); sfud_result = sfud_erase(flash, addr, size);
if(sfud_result != SFUD_SUCCESS) { if(sfud_result != SFUD_SUCCESS) {

@ -32,20 +32,20 @@
*/ */
static void RCC_Configuration(void) static void RCC_Configuration(void)
{ {
//下面是给各模块开启时钟 //下面是给各模块开启时钟
//启动GPIO //启动GPIO
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | \ RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | \
RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOD | \ RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOD | \
RCC_APB2Periph_GPIOE | RCC_APB2Periph_GPIOG, RCC_APB2Periph_GPIOE | RCC_APB2Periph_GPIOG,
ENABLE); ENABLE);
//启动AFIO //启动AFIO
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
//启动USART1时钟 //启动USART1时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);
//启动USART2时钟 //启动USART2时钟
RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE); RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE);
//启动DMA时钟 //启动DMA时钟
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE); RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE);
/* Enable ADC1 and GPIOC clock */ /* Enable ADC1 and GPIOC clock */
RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE);
@ -95,13 +95,13 @@ static void GPIO_Configuration(void)
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure); GPIO_Init(GPIOB, &GPIO_InitStructure);
/* USART1_TX */ /* USART1_TX */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_Init(GPIOA, &GPIO_InitStructure); GPIO_Init(GPIOA, &GPIO_InitStructure);
/* USART1_RX */ /* USART1_RX */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
@ -118,7 +118,7 @@ static void GPIO_Configuration(void)
void USART1_Configuration(void) void USART1_Configuration(void)
{ {
USART_InitTypeDef USART_InitStructure; USART_InitTypeDef USART_InitStructure;
USART_InitStructure.USART_BaudRate = 115200; USART_InitStructure.USART_BaudRate = 115200;
USART_InitStructure.USART_WordLength = USART_WordLength_8b; USART_InitStructure.USART_WordLength = USART_WordLength_8b;
USART_InitStructure.USART_StopBits = USART_StopBits_1; USART_InitStructure.USART_StopBits = USART_StopBits_1;
@ -126,14 +126,14 @@ void USART1_Configuration(void)
USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
USART_InitStructure.USART_Mode = USART_Mode_Tx | USART_Mode_Rx; USART_InitStructure.USART_Mode = USART_Mode_Tx | USART_Mode_Rx;
USART_Init(USART1, &USART_InitStructure); USART_Init(USART1, &USART_InitStructure);
USART_Cmd(USART1, ENABLE); USART_Cmd(USART1, ENABLE);
} }
/** /**
* IWDG_Configuration * IWDG_Configuration
*/ */
static void IWDG_Configuration(void) static void IWDG_Configuration(void)
{ {
IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable); IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);
IWDG_SetPrescaler(IWDG_Prescaler_64); IWDG_SetPrescaler(IWDG_Prescaler_64);
@ -161,12 +161,12 @@ int fputc(int ch, FILE *f)
int fgetc(FILE *f) int fgetc(FILE *f)
{ {
while(!(USART_GetFlagStatus(USART1, USART_FLAG_RXNE) == SET)) while(!(USART_GetFlagStatus(USART1, USART_FLAG_RXNE) == SET))
{ {
} }
return (USART_ReceiveData(USART1)); return (USART_ReceiveData(USART1));
} }

@ -26,38 +26,38 @@
*/ */
/* board configuration */ /* board configuration */
// <o> SDCard Driver <1=>SDIO sdcard <0=>SPI MMC card // <o> SDCard Driver <1=>SDIO sdcard <0=>SPI MMC card
// <i>Default: 1 // <i>Default: 1
#define STM32_USE_SDIO 0 #define STM32_USE_SDIO 0
/* whether use board external SRAM memory */ /* whether use board external SRAM memory */
// <e>Use external SRAM memory on the board // <e>Use external SRAM memory on the board
// <i>Enable External SRAM memory // <i>Enable External SRAM memory
#define STM32_EXT_SRAM 0 #define STM32_EXT_SRAM 0
// <o>Begin Address of External SRAM // <o>Begin Address of External SRAM
// <i>Default: 0x68000000 // <i>Default: 0x68000000
#define STM32_EXT_SRAM_BEGIN 0x68000000 /* the begining address of external SRAM */ #define STM32_EXT_SRAM_BEGIN 0x68000000 /* the begining address of external SRAM */
// <o>End Address of External SRAM // <o>End Address of External SRAM
// <i>Default: 0x68080000 // <i>Default: 0x68080000
#define STM32_EXT_SRAM_END 0x68080000 /* the end address of external SRAM */ #define STM32_EXT_SRAM_END 0x68080000 /* the end address of external SRAM */
// </e> // </e>
// <o> Internal SRAM memory size[Kbytes] <8-64> // <o> Internal SRAM memory size[Kbytes] <8-64>
// <i>Default: 64 // <i>Default: 64
#define STM32_SRAM_SIZE 64 #define STM32_SRAM_SIZE 64
#define STM32_SRAM_END (SRAM_BASE + STM32_SRAM_SIZE * 1024) #define STM32_SRAM_END (SRAM_BASE + STM32_SRAM_SIZE * 1024)
#define VECT_TAB_FLASH /* use Flash to store vector table */ #define VECT_TAB_FLASH /* use Flash to store vector table */
#define LED_RUN_ON GPIO_SetBits (GPIOB,GPIO_Pin_5) //RUN #define LED_RUN_ON GPIO_SetBits (GPIOB,GPIO_Pin_5) //RUN
#define LED_RUN_OFF GPIO_ResetBits(GPIOB,GPIO_Pin_5) //RUN #define LED_RUN_OFF GPIO_ResetBits(GPIOB,GPIO_Pin_5) //RUN
/*********************************************************************************************************/ /*********************************************************************************************************/
/** MACRO'S */ /** MACRO'S */
/***********************************************************************************************************/ /***********************************************************************************************************/
/***********************************************************************************************************/ /***********************************************************************************************************/
/* DATA TYPES */ /* DATA TYPES */
/***********************************************************************************************************/ /***********************************************************************************************************/

@ -7,15 +7,15 @@
typedef int bool_t; /**< boolean type */ typedef int bool_t; /**< boolean type */
#ifndef TRUE #ifndef TRUE
#define TRUE 1 #define TRUE 1
#endif #endif
#ifndef FALSE #ifndef FALSE
#define FALSE 0 #define FALSE 0
#endif #endif
#ifndef NULL #ifndef NULL
#define NULL 0 #define NULL 0
#endif #endif
#define success 0 #define success 0

@ -74,16 +74,16 @@ static void gpio_configuration(spi_user_data_t spi) {
static void spi_configuration(spi_user_data_t spi) { static void spi_configuration(spi_user_data_t spi) {
SPI_InitTypeDef SPI_InitStructure; SPI_InitTypeDef SPI_InitStructure;
SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex; //SPI 设置为双线双向全双工 SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex; //SPI 设置为双线双向全双工
SPI_InitStructure.SPI_Mode = SPI_Mode_Master; //设置为主 SPI SPI_InitStructure.SPI_Mode = SPI_Mode_Master; //设置为主 SPI
SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b; //SPI 发送接收 8 位帧结构 SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b; //SPI 发送接收 8 位帧结构
SPI_InitStructure.SPI_CPOL = SPI_CPOL_Low; //时钟悬空低 SPI_InitStructure.SPI_CPOL = SPI_CPOL_Low; //时钟悬空低
SPI_InitStructure.SPI_CPHA = SPI_CPHA_1Edge; //数据捕获于第一个时钟沿 SPI_InitStructure.SPI_CPHA = SPI_CPHA_1Edge; //数据捕获于第一个时钟沿
//TODO 以后可以尝试硬件 CS //TODO 以后可以尝试硬件 CS
SPI_InitStructure.SPI_NSS = SPI_NSS_Soft; //内部 NSS 信号由 SSI 位控制 SPI_InitStructure.SPI_NSS = SPI_NSS_Soft; //内部 NSS 信号由 SSI 位控制
SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_2; //波特率预分频值为 2 SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_2; //波特率预分频值为 2
SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB; //数据传输从 MSB 位开始 SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB; //数据传输从 MSB 位开始
SPI_InitStructure.SPI_CRCPolynomial = 7; // CRC 值计算的多项式 SPI_InitStructure.SPI_CRCPolynomial = 7; // CRC 值计算的多项式
SPI_I2S_DeInit(spi->spix); SPI_I2S_DeInit(spi->spix);
SPI_Init(spi->spix, &SPI_InitStructure); SPI_Init(spi->spix, &SPI_InitStructure);
@ -117,15 +117,15 @@ static sfud_err spi_write_read(const sfud_spi *spi, const uint8_t *write_buf, si
} }
GPIO_ResetBits(spi_dev->cs_gpiox, spi_dev->cs_gpio_pin); GPIO_ResetBits(spi_dev->cs_gpiox, spi_dev->cs_gpio_pin);
/* 开始读写数据 */ /* 开始读写数据 */
for (size_t i = 0, retry_times; i < write_size + read_size; i++) { for (size_t i = 0, retry_times; i < write_size + read_size; i++) {
/* 先写缓冲区中的数据到 SPI 总线,数据写完后,再写 dummy(0xFF) 到 SPI 总线 */ /* 先写缓冲区中的数据到 SPI 总线,数据写完后,再写 dummy(0xFF) 到 SPI 总线 */
if (i < write_size) { if (i < write_size) {
send_data = *write_buf++; send_data = *write_buf++;
} else { } else {
send_data = SFUD_DUMMY_DATA; send_data = SFUD_DUMMY_DATA;
} }
/* 发送数据 */ /* 发送数据 */
retry_times = 1000; retry_times = 1000;
while (SPI_I2S_GetFlagStatus(spi_dev->spix, SPI_I2S_FLAG_TXE) == RESET) { while (SPI_I2S_GetFlagStatus(spi_dev->spix, SPI_I2S_FLAG_TXE) == RESET) {
SFUD_RETRY_PROCESS(NULL, retry_times, result); SFUD_RETRY_PROCESS(NULL, retry_times, result);
@ -134,7 +134,7 @@ static sfud_err spi_write_read(const sfud_spi *spi, const uint8_t *write_buf, si
goto exit; goto exit;
} }
SPI_I2S_SendData(spi_dev->spix, send_data); SPI_I2S_SendData(spi_dev->spix, send_data);
/* 接收数据 */ /* 接收数据 */
retry_times = 1000; retry_times = 1000;
while (SPI_I2S_GetFlagStatus(spi_dev->spix, SPI_I2S_FLAG_RXNE) == RESET) { while (SPI_I2S_GetFlagStatus(spi_dev->spix, SPI_I2S_FLAG_RXNE) == RESET) {
SFUD_RETRY_PROCESS(NULL, retry_times, result); SFUD_RETRY_PROCESS(NULL, retry_times, result);
@ -143,7 +143,7 @@ static sfud_err spi_write_read(const sfud_spi *spi, const uint8_t *write_buf, si
goto exit; goto exit;
} }
read_data = SPI_I2S_ReceiveData(spi_dev->spix); read_data = SPI_I2S_ReceiveData(spi_dev->spix);
/* 写缓冲区中的数据发完后,再读取 SPI 总线中的数据到读缓冲区 */ /* 写缓冲区中的数据发完后,再读取 SPI 总线中的数据到读缓冲区 */
if (i >= write_size) { if (i >= write_size) {
*read_buf++ = read_data; *read_buf++ = read_data;
} }
@ -167,13 +167,13 @@ sfud_err sfud_spi_port_init(sfud_flash *flash) {
switch (flash->index) { switch (flash->index) {
case SFUD_SST25_DEVICE_INDEX: { case SFUD_SST25_DEVICE_INDEX: {
/* RCC 初始化 */ /* RCC 初始化 */
rcc_configuration(&spi1); rcc_configuration(&spi1);
/* GPIO 初始化 */ /* GPIO 初始化 */
gpio_configuration(&spi1); gpio_configuration(&spi1);
/* SPI 外设初始化 */ /* SPI 外设初始化 */
spi_configuration(&spi1); spi_configuration(&spi1);
/* 同步 Flash 移植所需的接口及数据 */ /* 同步 Flash 移植所需的接口及数据 */
flash->spi.wr = spi_write_read; flash->spi.wr = spi_write_read;
flash->spi.lock = spi_lock; flash->spi.lock = spi_lock;
flash->spi.unlock = spi_unlock; flash->spi.unlock = spi_unlock;

@ -223,7 +223,7 @@ static bool read_basic_table(sfud_flash *flash, sfdp_para_header *basic_header)
return false; return false;
} }
/* get write granularity */ /* get write granularity */
//TODO 目前为 1.0 所提供的方式,后期支持 V1.5 及以上的方式读取 page size //TODO 目前为 1.0 所提供的方式,后期支持 V1.5 及以上的方式读取 page size
switch ((table[0] & (0x01 << 2)) >> 2) { switch ((table[0] & (0x01 << 2)) >> 2) {
case 0: case 0:
sfdp->write_gran = 1; sfdp->write_gran = 1;

@ -4,7 +4,7 @@
#ifndef APP_TASK_H #ifndef APP_TASK_H
#define APP_TASK_H #define APP_TASK_H
#include <rthw.h> #include <rthw.h>
#include <rtthread.h> #include <rtthread.h>
#include <stm32f10x_conf.h> #include <stm32f10x_conf.h>

@ -4,29 +4,29 @@
#include"rtconfig.h" #include"rtconfig.h"
#if RT_TICK_PER_SECOND == 1 #if RT_TICK_PER_SECOND == 1
#define DELAY_1S (RT_TICK_PER_SECOND) #define DELAY_1S (RT_TICK_PER_SECOND)
#define DELAY_S(X) (X*DELAY_1S) #define DELAY_S(X) (X*DELAY_1S)
#elif RT_TICK_PER_SECOND == 10 #elif RT_TICK_PER_SECOND == 10
#define DELAY_100MS(X) (X) #define DELAY_100MS(X) (X)
#define DELAY_S(X) (X*10) #define DELAY_S(X) (X*10)
#elif RT_TICK_PER_SECOND == 100 #elif RT_TICK_PER_SECOND == 100
#define DELAY_10MS(X) (X) #define DELAY_10MS(X) (X)
#define DELAY_100MS(X) (X*10) #define DELAY_100MS(X) (X*10)
#define DELAY_S(X) (X*100) #define DELAY_S(X) (X*100)
#elif (RT_TICK_PER_SECOND == 1000) #elif (RT_TICK_PER_SECOND == 1000)
#define DELAY_1MS (RT_TICK_PER_SECOND/1000) #define DELAY_1MS (RT_TICK_PER_SECOND/1000)
#define DELAY_MS(X) (X*DELAY_1MS) #define DELAY_MS(X) (X*DELAY_1MS)
#define DELAY_S(X) (X*1000*DELAY_1MS) #define DELAY_S(X) (X*1000*DELAY_1MS)
#elif (RT_TICK_PER_SECOND == 10000) #elif (RT_TICK_PER_SECOND == 10000)
#define DELAY_100US(X) (X*RT_TICK_PER_SECOND/10000) #define DELAY_100US(X) (X*RT_TICK_PER_SECOND/10000)
#define DELAY_1MS (RT_TICK_PER_SECOND/1000) #define DELAY_1MS (RT_TICK_PER_SECOND/1000)
#define DELAY_MS(X) (X*DELAY_1MS) #define DELAY_MS(X) (X*DELAY_1MS)
#define DELAY_S(X) (X*1000*DELAY_1MS) #define DELAY_S(X) (X*1000*DELAY_1MS)
#endif #endif
@ -37,5 +37,5 @@
#define DELAY_SYS_FAULT_LED_ON DELAY_MS(50) #define DELAY_SYS_FAULT_LED_ON DELAY_MS(50)
#define DELAY_SYS_FAULT_LED_OFF DELAY_MS(950) #define DELAY_SYS_FAULT_LED_OFF DELAY_MS(950)
#endif #endif

@ -3,16 +3,16 @@
#define __RTTHREAD_CFG_H__ #define __RTTHREAD_CFG_H__
/* RT_NAME_MAX*/ /* RT_NAME_MAX*/
#define RT_NAME_MAX 24 #define RT_NAME_MAX 24
/* RT_ALIGN_SIZE*/ /* RT_ALIGN_SIZE*/
#define RT_ALIGN_SIZE 8 #define RT_ALIGN_SIZE 8
/* PRIORITY_MAX */ /* PRIORITY_MAX */
#define RT_THREAD_PRIORITY_MAX 32 #define RT_THREAD_PRIORITY_MAX 32
/* Tick per Second */ /* Tick per Second */
#define RT_TICK_PER_SECOND 10000 //0.1ms #define RT_TICK_PER_SECOND 10000 //0.1ms
/* SECTION: RT_DEBUG */ /* SECTION: RT_DEBUG */
/* Thread Debug */ /* Thread Debug */
@ -26,9 +26,9 @@
/* Using Software Timer */ /* Using Software Timer */
/* #define RT_USING_TIMER_SOFT */ /* #define RT_USING_TIMER_SOFT */
#define RT_TIMER_THREAD_PRIO 4 #define RT_TIMER_THREAD_PRIO 4
#define RT_TIMER_THREAD_STACK_SIZE 512 #define RT_TIMER_THREAD_STACK_SIZE 512
#define RT_TIMER_TICK_PER_SECOND 1000 #define RT_TIMER_TICK_PER_SECOND 1000
/* SECTION: IPC */ /* SECTION: IPC */
/* Using Semaphore*/ /* Using Semaphore*/
@ -60,11 +60,11 @@
/* Using Device System */ /* Using Device System */
#define RT_USING_CONSOLE #define RT_USING_CONSOLE
// <string name="RT_CONSOLE_DEVICE_NAME" description="The device name for console" default="uart1" /> // <string name="RT_CONSOLE_DEVICE_NAME" description="The device name for console" default="uart1" />
#define RT_CONSOLE_DEVICE_NAME "uart1" #define RT_CONSOLE_DEVICE_NAME "uart1"
/* SECTION: Console options */ /* SECTION: Console options */
/* the buffer size of console*/ /* the buffer size of console*/
#define RT_CONSOLEBUF_SIZE 512 #define RT_CONSOLEBUF_SIZE 512
/* SECTION: finsh, a C-Express shell */ /* SECTION: finsh, a C-Express shell */
#define RT_USING_FINSH #define RT_USING_FINSH

@ -1,13 +1,13 @@
#include "app_task.h" #include "app_task.h"
int main(void){ int main(void){
/* disable interrupt first */ /* disable interrupt first */
rt_hw_interrupt_disable(); rt_hw_interrupt_disable();
/* startup RT-Thread RTOS */ /* startup RT-Thread RTOS */
rtthread_startup(); rtthread_startup();
return 0; return 0;
} }

@ -83,14 +83,14 @@ void test_env(void) {
* @param parameter parameter * @param parameter parameter
*/ */
void sys_init_thread(void* parameter){ void sys_init_thread(void* parameter){
set_system_status(SYSTEM_STATUS_INIT); set_system_status(SYSTEM_STATUS_INIT);
/* EasyFlash initialization */ /* EasyFlash initialization */
if (easyflash_init() == EF_NO_ERR) { if (easyflash_init() == EF_NO_ERR) {
/* initialize OK and switch to running status */ /* initialize OK and switch to running status */
set_system_status(SYSTEM_STATUS_RUN); set_system_status(SYSTEM_STATUS_RUN);
/* test Env demo */ /* test Env demo */
test_env(); test_env();
} else { } else {
/* initialize fail and switch to fault status */ /* initialize fail and switch to fault status */
set_system_status(SYSTEM_STATUS_FAULT); set_system_status(SYSTEM_STATUS_FAULT);

@ -53,7 +53,7 @@ static struct rt_semaphore env_cache_lock;
*/ */
EfErrCode ef_port_init(ef_env const **default_env, size_t *default_env_size) { EfErrCode ef_port_init(ef_env const **default_env, size_t *default_env_size) {
EfErrCode result = EF_NO_ERR; EfErrCode result = EF_NO_ERR;
*default_env = default_env_set; *default_env = default_env_set;
*default_env_size = sizeof(default_env_set) / sizeof(default_env_set[0]); *default_env_size = sizeof(default_env_set) / sizeof(default_env_set[0]);
@ -99,10 +99,10 @@ EfErrCode ef_port_erase(uint32_t addr, size_t size) {
EfErrCode result = EF_NO_ERR; EfErrCode result = EF_NO_ERR;
FLASH_Status flash_status; FLASH_Status flash_status;
size_t erase_pages, i; size_t erase_pages, i;
/* make sure the start address is a multiple of FLASH_ERASE_MIN_SIZE */ /* make sure the start address is a multiple of FLASH_ERASE_MIN_SIZE */
EF_ASSERT(addr % EF_ERASE_MIN_SIZE == 0); EF_ASSERT(addr % EF_ERASE_MIN_SIZE == 0);
/* calculate pages */ /* calculate pages */
erase_pages = size / PAGE_SIZE; erase_pages = size / PAGE_SIZE;
if (size % PAGE_SIZE != 0) { if (size % PAGE_SIZE != 0) {

@ -39,20 +39,20 @@ void rt_hw_board_init()
*/ */
static void RCC_Configuration(void) static void RCC_Configuration(void)
{ {
//下面是给各模块开启时钟 //下面是给各模块开启时钟
//启动GPIO //启动GPIO
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | \ RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | \
RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOD | \ RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOD | \
RCC_APB2Periph_GPIOE | RCC_APB2Periph_GPIOG, RCC_APB2Periph_GPIOE | RCC_APB2Periph_GPIOG,
ENABLE); ENABLE);
//启动AFIO //启动AFIO
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
//启动USART1时钟 //启动USART1时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);
//启动USART2时钟 //启动USART2时钟
RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE); RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE);
//启动DMA时钟 //启动DMA时钟
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE); RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE);
/* Enable ADC1 and GPIOC clock */ /* Enable ADC1 and GPIOC clock */
RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE);
@ -108,7 +108,7 @@ static void GPIO_Configuration(void)
/** /**
* IWDG_Configuration * IWDG_Configuration
*/ */
static void IWDG_Configuration(void) static void IWDG_Configuration(void)
{ {
IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable); IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);
IWDG_SetPrescaler(IWDG_Prescaler_64); IWDG_SetPrescaler(IWDG_Prescaler_64);

@ -29,23 +29,23 @@
*/ */
/* board configuration */ /* board configuration */
// <o> SDCard Driver <1=>SDIO sdcard <0=>SPI MMC card // <o> SDCard Driver <1=>SDIO sdcard <0=>SPI MMC card
// <i>Default: 1 // <i>Default: 1
#define STM32_USE_SDIO 0 #define STM32_USE_SDIO 0
/* whether use board external SRAM memory */ /* whether use board external SRAM memory */
// <e>Use external SRAM memory on the board // <e>Use external SRAM memory on the board
// <i>Enable External SRAM memory // <i>Enable External SRAM memory
#define STM32_EXT_SRAM 0 #define STM32_EXT_SRAM 0
// <o>Begin Address of External SRAM // <o>Begin Address of External SRAM
// <i>Default: 0x68000000 // <i>Default: 0x68000000
#define STM32_EXT_SRAM_BEGIN 0x68000000 /* the begining address of external SRAM */ #define STM32_EXT_SRAM_BEGIN 0x68000000 /* the begining address of external SRAM */
// <o>End Address of External SRAM // <o>End Address of External SRAM
// <i>Default: 0x68080000 // <i>Default: 0x68080000
#define STM32_EXT_SRAM_END 0x68080000 /* the end address of external SRAM */ #define STM32_EXT_SRAM_END 0x68080000 /* the end address of external SRAM */
// </e> // </e>
// <o> Internal SRAM memory size[Kbytes] <8-64> // <o> Internal SRAM memory size[Kbytes] <8-64>
// <i>Default: 64 // <i>Default: 64
#define STM32_SRAM_SIZE 64 #define STM32_SRAM_SIZE 64
#define STM32_SRAM_END (SRAM_BASE + STM32_SRAM_SIZE * 1024) #define STM32_SRAM_END (SRAM_BASE + STM32_SRAM_SIZE * 1024)
@ -53,18 +53,18 @@
/* RT_USING_UART */ /* RT_USING_UART */
#define RT_USING_UART1 #define RT_USING_UART1
#define RT_UART_RX_BUFFER_SIZE 64 #define RT_UART_RX_BUFFER_SIZE 64
#define LED_RUN_ON GPIO_SetBits (GPIOA,GPIO_Pin_10) //RUN #define LED_RUN_ON GPIO_SetBits (GPIOA,GPIO_Pin_10) //RUN
#define LED_RUN_OFF GPIO_ResetBits(GPIOA,GPIO_Pin_10) //RUN #define LED_RUN_OFF GPIO_ResetBits(GPIOA,GPIO_Pin_10) //RUN
/*********************************************************************************************************/ /*********************************************************************************************************/
/** MACRO'S */ /** MACRO'S */
/***********************************************************************************************************/ /***********************************************************************************************************/
/***********************************************************************************************************/ /***********************************************************************************************************/
/* DATA TYPES */ /* DATA TYPES */
/***********************************************************************************************************/ /***********************************************************************************************************/

@ -7,15 +7,15 @@
typedef int bool_t; /**< boolean type */ typedef int bool_t; /**< boolean type */
#ifndef TRUE #ifndef TRUE
#define TRUE 1 #define TRUE 1
#endif #endif
#ifndef FALSE #ifndef FALSE
#define FALSE 0 #define FALSE 0
#endif #endif
#ifndef NULL #ifndef NULL
#define NULL 0 #define NULL 0
#endif #endif
#define success 0 #define success 0

@ -1,7 +1,7 @@
/* /*
* File : usart.c * File : usart.c
* This file is part of RT-Thread RTOS * This file is part of RT-Thread RTOS
* COPYRIGHT (C) 2006-2013, RT-Thread Development Team * COPYRIGHT (C) 2006-2021, RT-Thread Development Team
* *
* The license and distribution terms for this file may be * The license and distribution terms for this file may be
* found in the file LICENSE in this distribution or at * found in the file LICENSE in this distribution or at
@ -155,18 +155,18 @@ static rt_err_t stm32_control(struct rt_serial_device *serial, int cmd, void *ar
if (irq_type == RT_DEVICE_FLAG_INT_RX) if (irq_type == RT_DEVICE_FLAG_INT_RX)
{ {
/* return rx irq flag */ /* return rx irq flag */
return USART_GetFlagStatus(uart->uart_device, USART_FLAG_RXNE); return USART_GetFlagStatus(uart->uart_device, USART_FLAG_RXNE);
} }
else if (irq_type == RT_DEVICE_FLAG_INT_TX) else if (irq_type == RT_DEVICE_FLAG_INT_TX)
{ {
/* return tx flag */ /* return tx flag */
if (uart->tx_irq_type == USART_IT_TC) if (uart->tx_irq_type == USART_IT_TC)
{ {
return USART_GetFlagStatus(uart->uart_device, USART_FLAG_TC); return USART_GetFlagStatus(uart->uart_device, USART_FLAG_TC);
} }
else if (uart->tx_irq_type == USART_IT_TXE) else if (uart->tx_irq_type == USART_IT_TXE)
{ {
return USART_GetFlagStatus(uart->uart_device, USART_FLAG_TXE); return USART_GetFlagStatus(uart->uart_device, USART_FLAG_TXE);
} }
} }
break; break;

@ -4,7 +4,7 @@
#ifndef APP_TASK_H #ifndef APP_TASK_H
#define APP_TASK_H #define APP_TASK_H
#include <rthw.h> #include <rthw.h>
#include <rtthread.h> #include <rtthread.h>
#include <stm32f4xx_conf.h> #include <stm32f4xx_conf.h>

@ -4,29 +4,29 @@
#include"rtconfig.h" #include"rtconfig.h"
#if RT_TICK_PER_SECOND == 1 #if RT_TICK_PER_SECOND == 1
#define DELAY_1S (RT_TICK_PER_SECOND) #define DELAY_1S (RT_TICK_PER_SECOND)
#define DELAY_S(X) (X*DELAY_1S) #define DELAY_S(X) (X*DELAY_1S)
#elif RT_TICK_PER_SECOND == 10 #elif RT_TICK_PER_SECOND == 10
#define DELAY_100MS(X) (X) #define DELAY_100MS(X) (X)
#define DELAY_S(X) (X*10) #define DELAY_S(X) (X*10)
#elif RT_TICK_PER_SECOND == 100 #elif RT_TICK_PER_SECOND == 100
#define DELAY_10MS(X) (X) #define DELAY_10MS(X) (X)
#define DELAY_100MS(X) (X*10) #define DELAY_100MS(X) (X*10)
#define DELAY_S(X) (X*100) #define DELAY_S(X) (X*100)
#elif (RT_TICK_PER_SECOND == 1000) #elif (RT_TICK_PER_SECOND == 1000)
#define DELAY_1MS (RT_TICK_PER_SECOND/1000) #define DELAY_1MS (RT_TICK_PER_SECOND/1000)
#define DELAY_MS(X) (X*DELAY_1MS) #define DELAY_MS(X) (X*DELAY_1MS)
#define DELAY_S(X) (X*1000*DELAY_1MS) #define DELAY_S(X) (X*1000*DELAY_1MS)
#elif (RT_TICK_PER_SECOND == 10000) #elif (RT_TICK_PER_SECOND == 10000)
#define DELAY_100US(X) (X*RT_TICK_PER_SECOND/10000) #define DELAY_100US(X) (X*RT_TICK_PER_SECOND/10000)
#define DELAY_1MS (RT_TICK_PER_SECOND/1000) #define DELAY_1MS (RT_TICK_PER_SECOND/1000)
#define DELAY_MS(X) (X*DELAY_1MS) #define DELAY_MS(X) (X*DELAY_1MS)
#define DELAY_S(X) (X*1000*DELAY_1MS) #define DELAY_S(X) (X*1000*DELAY_1MS)
#endif #endif
@ -37,5 +37,5 @@
#define DELAY_SYS_FAULT_LED_ON DELAY_MS(50) #define DELAY_SYS_FAULT_LED_ON DELAY_MS(50)
#define DELAY_SYS_FAULT_LED_OFF DELAY_MS(950) #define DELAY_SYS_FAULT_LED_OFF DELAY_MS(950)
#endif #endif

@ -3,16 +3,16 @@
#define __RTTHREAD_CFG_H__ #define __RTTHREAD_CFG_H__
/* RT_NAME_MAX*/ /* RT_NAME_MAX*/
#define RT_NAME_MAX 24 #define RT_NAME_MAX 24
/* RT_ALIGN_SIZE*/ /* RT_ALIGN_SIZE*/
#define RT_ALIGN_SIZE 8 #define RT_ALIGN_SIZE 8
/* PRIORITY_MAX */ /* PRIORITY_MAX */
#define RT_THREAD_PRIORITY_MAX 32 #define RT_THREAD_PRIORITY_MAX 32
/* Tick per Second */ /* Tick per Second */
#define RT_TICK_PER_SECOND 10000 //0.1ms #define RT_TICK_PER_SECOND 10000 //0.1ms
/* SECTION: RT_DEBUG */ /* SECTION: RT_DEBUG */
/* Thread Debug */ /* Thread Debug */
@ -26,9 +26,9 @@
/* Using Software Timer */ /* Using Software Timer */
/* #define RT_USING_TIMER_SOFT */ /* #define RT_USING_TIMER_SOFT */
#define RT_TIMER_THREAD_PRIO 4 #define RT_TIMER_THREAD_PRIO 4
#define RT_TIMER_THREAD_STACK_SIZE 512 #define RT_TIMER_THREAD_STACK_SIZE 512
#define RT_TIMER_TICK_PER_SECOND 1000 #define RT_TIMER_TICK_PER_SECOND 1000
/* SECTION: IPC */ /* SECTION: IPC */
/* Using Semaphore*/ /* Using Semaphore*/
@ -60,11 +60,11 @@
/* Using Device System */ /* Using Device System */
#define RT_USING_CONSOLE #define RT_USING_CONSOLE
// <string name="RT_CONSOLE_DEVICE_NAME" description="The device name for console" default="uart1" /> // <string name="RT_CONSOLE_DEVICE_NAME" description="The device name for console" default="uart1" />
#define RT_CONSOLE_DEVICE_NAME "uart1" #define RT_CONSOLE_DEVICE_NAME "uart1"
/* SECTION: Console options */ /* SECTION: Console options */
/* the buffer size of console*/ /* the buffer size of console*/
#define RT_CONSOLEBUF_SIZE 512 #define RT_CONSOLEBUF_SIZE 512
/* SECTION: finsh, a C-Express shell */ /* SECTION: finsh, a C-Express shell */
#define RT_USING_FINSH #define RT_USING_FINSH

@ -1,13 +1,13 @@
#include "app_task.h" #include "app_task.h"
int main(void){ int main(void){
/* disable interrupt first */ /* disable interrupt first */
rt_hw_interrupt_disable(); rt_hw_interrupt_disable();
/* startup RT-Thread RTOS */ /* startup RT-Thread RTOS */
rtthread_startup(); rtthread_startup();
return 0; return 0;
} }

@ -75,7 +75,7 @@ void test_env(void) {
* @param parameter parameter * @param parameter parameter
*/ */
void sys_init_thread(void* parameter){ void sys_init_thread(void* parameter){
set_system_status(SYSTEM_STATUS_INIT); set_system_status(SYSTEM_STATUS_INIT);
/* EasyFlash initialization */ /* EasyFlash initialization */
if (easyflash_init() == EF_NO_ERR) { if (easyflash_init() == EF_NO_ERR) {
@ -134,8 +134,8 @@ void rtthread_startup(void)
rt_system_timer_init(); rt_system_timer_init();
#ifdef RT_USING_HEAP #ifdef RT_USING_HEAP
/* init memory system */ /* init memory system */
rt_system_heap_init((void*)STM32_SRAM_BEGIN, (void*)STM32_SRAM_END); rt_system_heap_init((void*)STM32_SRAM_BEGIN, (void*)STM32_SRAM_END);
#endif #endif
/* init scheduler system */ /* init scheduler system */

@ -1,7 +1,7 @@
/* /*
* user_finsh_cmd.c * user_finsh_cmd.c
* *
* Created on: 2013127 * Created on: 2013127
* Author: Armink * Author: Armink
*/ */
#include <rthw.h> #include <rthw.h>

@ -39,23 +39,23 @@ void rt_hw_board_init()
*/ */
static void RCC_Configuration(void) static void RCC_Configuration(void)
{ {
//下面是给各模块开启时钟 //下面是给各模块开启时钟
//启动GPIO //启动GPIO
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA | RCC_AHB1Periph_GPIOB | \ RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA | RCC_AHB1Periph_GPIOB | \
RCC_AHB1Periph_GPIOC | RCC_AHB1Periph_GPIOD | \ RCC_AHB1Periph_GPIOC | RCC_AHB1Periph_GPIOD | \
RCC_AHB1Periph_GPIOE | RCC_AHB1Periph_GPIOG, RCC_AHB1Periph_GPIOE | RCC_AHB1Periph_GPIOG,
ENABLE); ENABLE);
//启动USART1时钟 //启动USART1时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);
//启动USART2时钟 //启动USART2时钟
RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE); RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE);
//启动DMA时钟 //启动DMA时钟
RCC_APB1PeriphClockCmd(RCC_AHB1Periph_DMA1, ENABLE); RCC_APB1PeriphClockCmd(RCC_AHB1Periph_DMA1, ENABLE);
/* Enable ADC1 and GPIOC clock */ /* Enable ADC1 and GPIOC clock */
RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE);
/* Enable WWDG clock */ /* Enable WWDG clock */
RCC_APB1PeriphClockCmd(RCC_APB1Periph_WWDG, ENABLE); RCC_APB1PeriphClockCmd(RCC_APB1Periph_WWDG, ENABLE);
} }
/** /**
@ -81,9 +81,9 @@ static void NVIC_Configuration(void)
*/ */
static void GPIO_Configuration(void) static void GPIO_Configuration(void)
{ {
GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitTypeDef GPIO_InitStructure;
/* PA13:SWDIO PA14:SWCLK for debug, can't set to output mode */ /* PA13:SWDIO PA14:SWCLK for debug, can't set to output mode */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All & (~(GPIO_Pin_13 | GPIO_Pin_14)); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All & (~(GPIO_Pin_13 | GPIO_Pin_14));
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
@ -99,20 +99,20 @@ static void GPIO_Configuration(void)
GPIO_Init(GPIOF, &GPIO_InitStructure); GPIO_Init(GPIOF, &GPIO_InitStructure);
GPIO_Init(GPIOG, &GPIO_InitStructure); GPIO_Init(GPIOG, &GPIO_InitStructure);
/******************系统运行LED指示灯配置*******************/ /******************系统运行LED指示灯配置*******************/
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure); GPIO_Init(GPIOB, &GPIO_InitStructure);
} }
/** /**
* IWDG_Configuration * IWDG_Configuration
*/ */
static void IWDG_Configuration(void) static void IWDG_Configuration(void)
{ {
IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable); IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);
IWDG_SetPrescaler(IWDG_Prescaler_64); IWDG_SetPrescaler(IWDG_Prescaler_64);

@ -29,24 +29,24 @@
*/ */
/* board configuration */ /* board configuration */
// <o> SDCard Driver <1=>SDIO sdcard <0=>SPI MMC card // <o> SDCard Driver <1=>SDIO sdcard <0=>SPI MMC card
// <i>Default: 1 // <i>Default: 1
#define STM32_USE_SDIO 0 #define STM32_USE_SDIO 0
/* whether use board external SRAM memory */ /* whether use board external SRAM memory */
// <e>Use external SRAM memory on the board // <e>Use external SRAM memory on the board
// <i>Enable External SRAM memory // <i>Enable External SRAM memory
#define STM32_EXT_SRAM 0 #define STM32_EXT_SRAM 0
// <o>Begin Address of External SRAM // <o>Begin Address of External SRAM
// <i>Default: 0x68000000 // <i>Default: 0x68000000
#define STM32_EXT_SRAM_BEGIN 0x68000000 /* the begining address of external SRAM */ #define STM32_EXT_SRAM_BEGIN 0x68000000 /* the begining address of external SRAM */
// <o>End Address of External SRAM // <o>End Address of External SRAM
// <i>Default: 0x68080000 // <i>Default: 0x68080000
#define STM32_EXT_SRAM_END 0x68080000 /* the end address of external SRAM */ #define STM32_EXT_SRAM_END 0x68080000 /* the end address of external SRAM */
// </e> // </e>
#define STM32_SRAM_BEGIN SRAM_BASE #define STM32_SRAM_BEGIN SRAM_BASE
// <o> Internal SRAM memory size[Kbytes] // <o> Internal SRAM memory size[Kbytes]
// <i>Default: 128 // <i>Default: 128
#define STM32_SRAM_SIZE 128 #define STM32_SRAM_SIZE 128
#define STM32_SRAM_END (SRAM_BASE + STM32_SRAM_SIZE * 1024) #define STM32_SRAM_END (SRAM_BASE + STM32_SRAM_SIZE * 1024)
@ -54,18 +54,18 @@
/* RT_USING_UART */ /* RT_USING_UART */
#define RT_USING_UART1 #define RT_USING_UART1
#define RT_UART_RX_BUFFER_SIZE 64 #define RT_UART_RX_BUFFER_SIZE 64
#define LED_RUN_ON GPIO_SetBits (GPIOB,GPIO_Pin_12) //RUN #define LED_RUN_ON GPIO_SetBits (GPIOB,GPIO_Pin_12) //RUN
#define LED_RUN_OFF GPIO_ResetBits(GPIOB,GPIO_Pin_12) //RUN #define LED_RUN_OFF GPIO_ResetBits(GPIOB,GPIO_Pin_12) //RUN
/*********************************************************************************************************/ /*********************************************************************************************************/
/** MACRO'S */ /** MACRO'S */
/***********************************************************************************************************/ /***********************************************************************************************************/
/***********************************************************************************************************/ /***********************************************************************************************************/
/* DATA TYPES */ /* DATA TYPES */
/***********************************************************************************************************/ /***********************************************************************************************************/

@ -7,15 +7,15 @@
typedef int bool_t; /**< boolean type */ typedef int bool_t; /**< boolean type */
#ifndef TRUE #ifndef TRUE
#define TRUE 1 #define TRUE 1
#endif #endif
#ifndef FALSE #ifndef FALSE
#define FALSE 0 #define FALSE 0
#endif #endif
#ifndef NULL #ifndef NULL
#define NULL 0 #define NULL 0
#endif #endif
#define success 0 #define success 0

@ -28,14 +28,14 @@
/** /**
* IAP * IAP
* 1RT-ThreadFinsh"update" * 1RT-ThreadFinsh"update"
* 2Ymodemymodem_on_begin使ef_erase_bak_app * 2Ymodemymodem_on_begin使ef_erase_bak_app
* 3使ef_write_data_to_bakFlashYmodemymodem_on_data * 3使ef_write_data_to_bakFlashYmodemymodem_on_data
* 4"iap_need_copy_app"1"change iap_copy_app_size"APP * 4"iap_need_copy_app"1"change iap_copy_app_size"APP
* *
* 5 * 5
* 6"iap_need_copy_app""iap_copy_app_size"0 * 6"iap_need_copy_app""iap_copy_app_size"0
* *
* IAP update step: * IAP update step:
* 1. Input "update" command in RT-Thread finsh terminal. * 1. Input "update" command in RT-Thread finsh terminal.

@ -40,9 +40,9 @@
* Please change it when your firmware add a new ENV to default_env_set. * Please change it when your firmware add a new ENV to default_env_set.
*/ */
#define EF_ENV_VER_NUM /* @note you must define it for a value, such as 0 */ #define EF_ENV_VER_NUM /* @note you must define it for a value, such as 0 */
/* MCU Endian Configuration, default is Little Endian Order. */ /* MCU Endian Configuration, default is Little Endian Order. */
/* #define EF_BIG_ENDIAN */ /* #define EF_BIG_ENDIAN */
#endif /* EF_USING_ENV */ #endif /* EF_USING_ENV */

@ -102,7 +102,7 @@ EfErrCode ef_port_erase(uint32_t addr, size_t size) {
*/ */
EfErrCode ef_port_write(uint32_t addr, const uint32_t *buf, size_t size) { EfErrCode ef_port_write(uint32_t addr, const uint32_t *buf, size_t size) {
EfErrCode result = EF_NO_ERR; EfErrCode result = EF_NO_ERR;
/* You can add your code under here. */ /* You can add your code under here. */
return result; return result;
@ -112,18 +112,18 @@ EfErrCode ef_port_write(uint32_t addr, const uint32_t *buf, size_t size) {
* lock the ENV ram cache * lock the ENV ram cache
*/ */
void ef_port_env_lock(void) { void ef_port_env_lock(void) {
/* You can add your code under here. */ /* You can add your code under here. */
} }
/** /**
* unlock the ENV ram cache * unlock the ENV ram cache
*/ */
void ef_port_env_unlock(void) { void ef_port_env_unlock(void) {
/* You can add your code under here. */ /* You can add your code under here. */
} }
@ -146,7 +146,7 @@ void ef_log_debug(const char *file, const long line, const char *format, ...) {
va_start(args, format); va_start(args, format);
/* You can add your code under here. */ /* You can add your code under here. */
va_end(args); va_end(args);
#endif #endif
@ -166,7 +166,7 @@ void ef_log_info(const char *format, ...) {
va_start(args, format); va_start(args, format);
/* You can add your code under here. */ /* You can add your code under here. */
va_end(args); va_end(args);
} }
/** /**
@ -182,6 +182,6 @@ void ef_print(const char *format, ...) {
va_start(args, format); va_start(args, format);
/* You can add your code under here. */ /* You can add your code under here. */
va_end(args); va_end(args);
} }

@ -507,7 +507,7 @@ static uint32_t get_next_env_addr(sector_meta_data_t sector, env_node_obj_t pre_
addr = find_next_env_addr(addr, sector->addr + SECTOR_SIZE - SECTOR_HDR_DATA_SIZE); addr = find_next_env_addr(addr, sector->addr + SECTOR_SIZE - SECTOR_HDR_DATA_SIZE);
if (addr > sector->addr + SECTOR_SIZE || pre_env->len == 0) { if (addr > sector->addr + SECTOR_SIZE || pre_env->len == 0) {
//TODO 扇区连续模式 //TODO 扇区连续模式
return FAILED_ADDR; return FAILED_ADDR;
} }
} else { } else {
@ -542,7 +542,7 @@ static EfErrCode read_env(env_node_obj_t env)
env->crc_is_ok = false; env->crc_is_ok = false;
return EF_READ_ERR; return EF_READ_ERR;
} else if (env->len > SECTOR_SIZE - SECTOR_HDR_DATA_SIZE && env->len < ENV_AREA_SIZE) { } else if (env->len > SECTOR_SIZE - SECTOR_HDR_DATA_SIZE && env->len < ENV_AREA_SIZE) {
//TODO 扇区连续模式,或者写入长度没有写入完整 //TODO 扇区连续模式,或者写入长度没有写入完整
EF_ASSERT(0); EF_ASSERT(0);
} }
@ -1726,7 +1726,7 @@ static bool check_and_recovery_env_cb(env_node_obj_t env, void *arg1, void *arg2
} else if (env->status == ENV_PRE_WRITE) { } else if (env->status == ENV_PRE_WRITE) {
uint8_t status_table[ENV_STATUS_TABLE_SIZE]; uint8_t status_table[ENV_STATUS_TABLE_SIZE];
/* the ENV has not write finish, change the status to error */ /* the ENV has not write finish, change the status to error */
//TODO 绘制异常处理的状态装换图 //TODO 绘制异常处理的状态装换图
write_status(env->addr.start, status_table, ENV_STATUS_NUM, ENV_ERR_HDR); write_status(env->addr.start, status_table, ENV_STATUS_NUM, ENV_ERR_HDR);
return true; return true;
} }

Loading…
Cancel
Save