DA14580 --- flash分析
来源:互联网 发布:淘宝拍照用什么手机好 编辑:程序博客网 时间:2024/05/16 04:59
在使用suta功能的时候,flash分布的map图如下
offset#0开始地址在0x0000
AN-B-001 Header(spi)数据分布如下 8个字节大小
#Image#0 Bootloader 开始地址 0x0008 开始
offset#1 开始地址在0x8000
offset#2 开始地址在0x13000
Last section 开始地址为0x1f000
AN-B-001Header+Image 0 (bootloader )大小为 0x8000 = 32kb
Header#1+Image 1大小为 0x13000 -0x8000 = 44kb
Header#2+Image 2大小为 0x1f000-0x13000 = 48kb
Lastsection 大小为4kb (最小单位扇区)
44+48+4+32=128kb
所以整体大小最小需要128kb的大小才能实现空中升级等功能
flash 0x0000 --0x1ffff 的空间是放程序用的地方
0x20000之后的地址就是可以随便存储东西了
接下来来分析往SPI-flash写数据操作
图片中 自定义flash大小 为我们使用的flash的型号以及大小等等参数 根据自己使用来变化
#include "flash.h"
#define SECTION_ADDRESS 80 //这个扇区的地址必须大于128kb 原因上面写了
void flash_spi_init(void)
{
SPI_Pad_t cs_pad_param = { GPIO_PORT_0,GPIO_PIN_3 };
spi_init(&cs_pad_param, SPI_MODE_8BIT, SPI_ROLE_MASTER,SPI_CLK_IDLE_POL_LOW, SPI_PHA_MODE_0, SPI_MINT_DISABLE, SPI_XTAL_DIV_8);
//初始化flash
spi_flash_init(W25Q40_FLASH_SIZE,W25Q40_FLASH_PAGE_SIZE);
}
uint8_treadbuf[100]={0};
void Flash_test(void)
{
uint8_t writebuf[88]={0};
for(uint8_t i=0;i<sizeof(writebuf)/sizeof(uint8_t);i++)
{
writebuf[i]= i ;
}
//spi_flash_sector_earse
spi_flash_release_from_power_down();
spi_flash_write_data(writebuf,(uint32_t)((SECTION_ADDRESS)*4096),sizeof(writebuf));
spi_flash_power_down();
spi_flash_release_from_power_down();
spi_flash_read_data(readbuf,(uint32_t)((SECTION_ADDRESS)*4096),sizeof(readbuf));
spi_flash_power_down();
}
#ifndef __FLASH__H
#define __FLASH__H
#include "stdio.h"
#include "spi_flash.h"
void flash_spi_init(void);
void Flash_test(void);
#endif
这里是flash 初始化过程
Flash_test 里面写进去和读出来的数据一样 表示操作flash,ok
- DA14580 --- flash分析
- DA14580 --- 基本流程分析
- DA14580 --- 广播开始分析
- DA14580 启动过程分析
- DA14580低功耗及在低功耗模式下烧录flash的问题
- DA14580 --- adc
- 全球最低功耗蓝牙单芯片(DA14580)系统架构和应用开发框架分析
- DA14580与ADXL362应用
- DA14580 OTP烧录
- DA14580 --- 连接参数
- DA14580 --- 空升升级
- DA14580 --- IIC通信
- da14580-SUOTA 空中升级
- DA14580 官方SDK详解
- nand FLASH 驱动分析
- nand flash启动分析
- flash 性能分析工具
- Nand Flash驱动程序分析
- Binder机制分析(1)——Binder结构简介
- MFC+GDI
- Django的分页 Paginator
- 安卓开发中非常炫的效果集合
- 在线书籍整理-java/web/算法
- DA14580 --- flash分析
- DrawerLayout(导航抽屉)
- eclipse 点击打开的时候Failed to load the JNIshared library解决办法
- Binder机制分析(2)——从MediaService中看Binder的实现和使用(1)
- java日常笔记2016-12-27
- servlet基础
- Shell 基本运算符
- MySQL索引学习笔记
- Mac上的windows 10系统,bootcamp 5更新 bootcamp 6,缺少bootcamp.msi