5秒后页面跳转
FAQ0106 PDF预览

FAQ0106

更新时间: 2024-11-13 14:57:23
品牌 Logo 应用领域
雅特力 - ARTERY /
页数 文件大小 规格书
11页 266K
描述
带看门狗时,如何进行Flash 字节半字的读写操作?

FAQ0106 数据手册

 浏览型号FAQ0106的Datasheet PDF文件第2页浏览型号FAQ0106的Datasheet PDF文件第3页浏览型号FAQ0106的Datasheet PDF文件第4页浏览型号FAQ0106的Datasheet PDF文件第5页浏览型号FAQ0106的Datasheet PDF文件第6页浏览型号FAQ0106的Datasheet PDF文件第7页 
Flash 带看门狗字节半字读写操作  
FAQ0106  
常见问题解答  
Flash带看门狗字节半字读写操作  
Questions带看门狗时,如何进行 Flash 字节半字的读写操作?  
Answer:  
FLASH 擦除操作 flash_sector_erase(sector_position * SECTOR_SIZE + FLASH_BASE);之前添加看门  
狗的喂狗操作 wdt_counter_reload ();。且喂狗时间开到最长 26 秒以防止在擦除 FLASH 和写入 FLASH 时看  
门狗超时产生系统复位。  
喂狗时间试算其中,40kHz HICK 时钟,0xff 为看门狗时钟最大分频值,0xfff 为最长喂狗时间)  
1
푊퐷푇  
=
× 0푥푓푓푓  
40푘퐻푧/0푥푓푓  
BSP 库原有的读、写半字函数的基础上,增加了读、写字节函数。函数源码请见下文附录一。  
void flash_read_byte(uint32_t read_addr, uint8_t *p_buffer, uint16_t num_read);  
void flash_write_byte_nocheck(uint32_t write_addr, uint8_t *p_buffer, uint16_t num_write);  
flash.h 中,#define WDT_EN 以使能 WDT 且喂狗,喂狗操作体现在 flash.c flash_write_byte 和  
flash_write 函数中,需要注意的是,在这两个函数的末尾,用户应当将看门狗重新配置为写 flash 前的设定  
值。函数源码请见下文附录一。  
同时,添加了读、写 FLASH 函数操作通过参数的选择实现字节或半字操作功能,方便用户调用。  
FLASH 函数操作通过参数的选择实现写字节或半字操作功能:  
/**  
* @brief flash 函数操作通过参数的选择实现写字节或半字操作功能  
* @param read_addr: 第一个参数是数据将要写到 flash 的起始地址,  
* @param _8pbuffer: 第二个参数为被写入 flash 的字节的数组(如果此次操作的数据是半字,则此值为 0,  
* @param _16pbuffer:第三个参数为被写入 flash 的半字的数组(如果此次操作的数据是字节,则此值为 0,  
* @param num_read: 第四个参数为将要写入数据的个数,  
* @param _16bit_is_1_8bit_is_0: 第五个为操作半字或者字节的选如果此值为 1是半字操作节则为 0。  
*/  
void flash_write_halfword_or_byte(uint32_twrite_addr,uint8_t* _8bitpbuffer,uint16_t*_16bitpbuffer,uint16_t  
num_write,uint8_t_16bit_is_1_8bit_is_0)  
{
if(_16bit_is_1_8bit_is_0==0)  
flash_write_byte(write_addr,_8bitpbuffer,num_write);  
else  
flash_write(write_addr,_16bitpbuffer,num_write);  
2022.3.24  
1 页  
版本 2.0.0  

与FAQ0106相关器件

型号 品牌 获取价格 描述 数据表
FAQ0107 ARTERY

获取价格

使用其他M3 内核MCU 的库,AT32 的pack 文件,程序会进入hardfault?
FAQ0108 ARTERY

获取价格

擦除或者编程flash 时,如果操作地址不在flash 绝对地址范围内,则操作会失败?
FAQ0109 ARTERY

获取价格

中断标志清除有何注意事项?
FAQ0110 ARTERY

获取价格

有零等待区的MCU 系列,在擦除零等待区时需注意事项?
FAQ0111 ARTERY

获取价格

应用有时会遇到无法正常进入低功耗的问题?
FAQ0112 ARTERY

获取价格

编写代码利用CPU 去翻转IO 口,模拟PWM 输出,但是第一个波形的频率会不准?
FAQ0114 ARTERY

获取价格

在使用 Deepsleep 模式时,唤醒源在进入 Deepsleep 的过程中进来的话,将
FAQ0115 ARTERY

获取价格

在使用ARM Compiler version 6(AC6)时,可能会出现如下情形之一:
FAQ0116 ARTERY

获取价格

CAN 接收报文数据错位问题
FAQ0117 ARTERY

获取价格

配置XMC时序注意事项