Files
banban/ql-bootloader/updater/inc/rs_ua_flash.h
T

75 lines
2.0 KiB
C

/*
*
* 版权(c) 2017 红石阳光(北京)科技有限公司
* 版权(c) 2011-2017 红石阳光(北京)科技有限公司版权所有
*
* 本文档包含信息是私密的且为红石阳光私有,且在民法和刑法中定义为商业秘密信息。
* 任何人士不得擅自复印,扫描或以其他任何方式进行传播,否则红石阳光有权追究法律责任。
* 阅读和使用本资料必须获得相应的书面授权,承担保密责任和接受相应的法律约束。
*
*/
#ifndef __RS_UA_FLASH_H__
#define __RS_UA_FLASH_H__
#include "rsplatform.h"
/**
* 函数说明:flash初始化
* 参数说明:无
* 返回值:成功返回rs_true,失败为rs_false
*/
rs_bool rs_ua_flash_init(void);
/**
* 函数说明:读取flash中的数据到内存缓冲区中
* 参数说明:[IN OUT]destination 接收读取flash中数据的缓冲区
* [IN]address flash的地址
* [IN]size 需要读取的长度
*
* 返回值:成功返回rs_true, 失败返回rs_false
*/
rs_bool rs_ua_flash_read(rs_u8 *destination,
volatile rs_u8 *address,
rs_u32 size);
/**
* 函数说明:把内存缓冲区数据写入到flash中
* 参数说明:[IN]address flash的地址
* [IN]source 需要写入的数据缓冲区
* [IN]size 数据长度
*
* 返回值:成功返回rs_true, 失败返回rs_false
*
* 备注:address升级过程中都是block对齐的,size都是block的长度,不用考虑不对齐的情况。而在应用层下载过程中如果直接往
往flash里面写的时候,都是page对齐的,size是一个page的大小。
*/
rs_bool rs_ua_flash_write(volatile rs_u8 *address,
rs_u8 *source,
rs_u32 size);
/**
* 函数说明:按block擦除flash
* 参数说明:[IN]address flash的地址
* [IN]size 要擦出的数据的长度
*
* 返回值:成功返回rs_true, 失败返回rs_false
*
* 备注:不管在升级过程中或者应用层,address都是block对齐的,size都是block的长度。
*/
rs_bool rs_ua_flash_erase(volatile rs_u8 *address,
rs_u32 size);
/**
* 函数说明:可变参数的输出日志接口
* 参数说明:[IN]format 格式化字符串
*
*
* 返回值:成功返回rs_true, 失败返回rs_false
*
* 备注:
*/
rs_bool rs_trace(const rs_s8 *format,...);
#endif