admin 管理员组文章数量: 893893
重启碰上FLASH
一:简述
8266芯片有自己的外部flash,可以存放一些用户参数,对flash的操作主要有擦,读,写。这里记录一下自己的对这部分的运用。
硬件:ESP-LAUNCHER开发板
二:SPI Flash API接口展示
注:读/写Flash的地址,不能够和系统程序区产生冲突,建议放在0x70000之后。
Flash的读写,必须与4字节对齐
向某一个扇区写数据之前,要先擦除该扇区
三:程序
// 宏定义
#define SPI_FLASH_SEC_SIZE 4096 // Flash扇区大小,4KB,每1KB=1024// 全局变量
//u16 Sector_Flash = 0x90; // 存储数据的扇区编号
u32 W_Data[6] = {1,2,3,4,5,6};// 写入Flash的数据
u32 R_Data[6] = {0}; // 缓存读Flash的数据// 毫秒延时函数
void ICACHE_FLASH_ATTR delay_ms(u32 C_time)
{ for(;C_time>0;C_time--)os_delay_us(1000);
}void ICACHE_FLASH_ATTR user_init(void)
{u8 i = 0;uart_init(115200,115200); // 初始化串口波特率os_delay_us(10000); // 等待串口稳定os_printf("\t SDK version:\t%s", system_get_sdk_version());// 向0x90地址起,写入6个数据(每个数据占4字节)spi_flash_erase_sector(0x90); // 擦除0x90扇区 参数==扇区编号// 向Flash写数据(参数1=字节地址、参数2=写入数据的指针、参数3=数据长度)spi_flash_write(0x90*4096, (uint32 *)W_Data, sizeof(W_Data));os_printf("-_- -_- -_- -_- -_- -_- -_- -_- -_- -_- -_- -_- -_- -_- -_- \n");// 从0x90 地址起,读出6个数据(每个数据占4字节)spi_flash_read(0x90*4096, (uint32 *)R_Data, sizeof(W_Data));// 串口打印读出的数据for(i=0; i<6; i++){os_printf("Read Data = %d \r\n",R_Data[i]);delay_ms(10);}
}
本文标签: 重启碰上FLASH
版权声明:本文标题:重启碰上FLASH 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1687605677h120295.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论