2019-12-31 19:13发布
xiaoergao 发表于 2016-11-7 20:27 如果是在中断中去写数据会不会引起异常? 比如,采用串口非空闲中断用来接收串口发过来的数据,然后将接收 ...
sunnydragon 发表于 2016-11-2 16:15 多谢支持,软件版本号在库的头文件中有定义~ 初始化的时候也会有输出。 ...
sunnydragon 发表于 2016-12-7 09:28 这也是个不错的优化方法,牺牲空间换时间喽。后期可以考虑改改。 我日志现在基本都存在片内 Flash ,STM ...
最多设置5个标签!
不同的平台有不同的处理方法,例如:
裸机平台下:unlock,lock 可以使用开关中断,所以写 Flash 中断不开,即便有数据来,也不会影响写 Flash。
操作系统平台下:使用 sem 或 mutex作为锁,上次的正在写,还没写完,锁不会打开,新数据自然没法写入。
谢谢,我再仔细看一下
我的想法是始终保证有一个空的区域 也就是正在写的区域的后一个区域擦除掉 这样在初始化时 只需要检测 每个区域的指定量(比如20个)数据来判断该区域是否为空 然后进行空区域的前一个区域的内部查找
我后面更改为,判断存储区状态时 提取片区 前32字节 和 后32字节 来判断 取结束地址仍然按照原来的片区扫描
你程序读数据快 是因为你使用内部的flash 外部flash要通过spi 我使用的频率是25MHz 这种片区扫描要慢很多
m25p40 8个扇区 1个扇区64K 我还是想换个4K一个扇区的 应该会快些
我在这样更改后 查询地址时间大大滴减少了
一周热门 更多>