format codes

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

@ -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);

@ -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,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

@ -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);

@ -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);

@ -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,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

@ -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,13 +99,13 @@ 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);
} }

@ -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.

@ -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