Files
kunlun/app/iot_dlt645_app/driver/app_flash.h
2024-09-28 14:24:04 +08:00

92 lines
2.9 KiB
C

/****************************************************************************
Copyright(c) 2019 by Aerospace C.Power (Chongqing) Microelectronics. ALL RIGHTS RESERVED.
This Information is proprietary to Aerospace C.Power (Chongqing) Microelectronics and MAY NOT
be copied by any method or incorporated into another program without
the express written consent of Aerospace C.Power. This Information or any portion
thereof remains the property of Aerospace C.Power. The Information contained herein
is believed to be accurate and Aerospace C.Power assumes no responsibility or
liability for its use in any way and conveys no license or title under
any patent or copyright and makes no representation or warranty that this
Information is free from patent or copyright infringement.
****************************************************************************/
#ifndef _APP_FLASH_H_
#define _APP_FLASH_H_
#include "app_types.h"
#define APP_NV_FTM_SIZE 0x40 /* 64 Bytes */
/* ****************************************** */
/* The total size of flash is 122880 (120K) */
/* ****************************************** */
#define APP_FLASH_START_ADDR 0x0
#define APP_FLASH_NV_FTM_ADDR 0x0
#define APP_FLASH_NV_FTM_SIZE 0x1000
#define APP_FLASH_NV_SCN_ADDR 0x1000
#define APP_FLASH_NV_SCN_SIZE 0x1000
/* ****************************************** */
/* The value range of id NV ID [0x00, 0x39] */
/* ****************************************** */
#define NV_FTM_ID_START 0x00
#define NV_FTM_FACTORY_ID 0x0f
#define NV_FTM_ID_END 0x39
#pragma pack(push)
#pragma pack(1)
/* 8 Bytes Used*/
typedef struct {
/* Baud rate. */
uint32_t baudrate;
/* Number of data bits. The value can be 6 bits, 7 bits, or 8 bits. */
uint8_t data_bits;
/* Number of stop bits. <1: 1 stop bit, 2: 2 stop bit> */
uint8_t stop_bits;
/* Parity check flag. <0: No check, 1: Odd parity, 2: Even parity> */
uint8_t parity;
/* pad 1 byte */
uint8_t resv;
} app_uart_param;
/* NV="0x0f" 64 Bytes Used */
typedef struct {
uint32_t hw_ver;
uint8_t multicast_mac[6];
app_uart_param uart_para;
uint8_t sta_join_notify;
/* pad 45 byte */
uint8_t resv[45];
} nv_ftm_factory_id;
#pragma pack(pop)
/**
* @brief app_flash_read() - read data from customer flash
*
* @param [in] offset: offset of data
* @param [out] buffer: buffer of read out data
* @param [in] size: data size to read
*
* @return 0: succeeded;
* @return others: failed;
*/
uint16_t app_flash_read(uint32_t offset, uint8_t * buffer, uint32_t size);
/**
* @brief app_flash_write() - write data to customer flash
*
* @param [in] offset: offset of data
* @param [in] buffer: buffer of write data
* @param [in] size: data size to write
*
* @return 0: succeeded;
* @return others: failed;
*/
uint16_t app_flash_write(uint32_t offset, uint8_t * buffer, uint32_t size);
#endif /* _APP_FLASH_H_ */