TinyOS 再论FLASH与SPI总线问题
2011-12-14 20:32
162 查看
其实,在TinyOS系统内部,对CC2420与FLASH芯片上的SPI资源分配上已经实现好了,不需要用户自己调用Resource()接口,然后又再去释放资源。用户只需要调用Flash的接口的读写函数就可以了。
说到Telosb节点上FLASH的使用,说明文档给出了三种使用的方法。分别是:块存储Block、配置存储Config、日志存储Log。各种方法调用的FLASH读写组件都不同。但是,系统内部都同样已经实现了对其SPI总线使用的资源调度。也就是说,同样不需要用户自己分配SPI总线。
在测试的过程中,我需要把AD采集得到的数据存入FLASH,就开始测试FLASH 的读写问题。结果发现,ConfigStorage的方法比较慢,每次读写FLASH之间至少需要隔2秒的时间。至于为什么这么慢,看系统的文件我也没看出来。反正就是系统实现的,自己用就是了。
然后就是BlockStorage的方式,这个还好一点,每次读写的间隔只需要70ms左右。 日志模式,我猜也没什么用,就没去看了。
view
plain
uses interface BlockRead;
uses interface BlockWrite;
view
plain
uses int
4000
erface ConfigStorage;
uses interface Mount ;
2012年1月10日
博客荒废太久了,事情搞定之后就没有了想记录一下的动力,攻破了一个困难之后,好开心,心情就放松得很,不去回忆一下解决问题的过程,不记录经验,很快又忘了。下次,完成一项任务之后,就要立马把其中的解决难题的方法记录下来,不要养成拖拖拉拉的坏习惯。
其实在读写FLASH M25P80的时候,还有一个问题当时没搞清楚。那就是,每次写FLASH之前,都要确保所写的区域已经擦除过。FLASH不同于E2PROM,以前读写24C20的时候也不用什么擦除的,FLASH则不同。而M25P80的擦除分为扇区(sector erase)擦除和全擦除(bulk erase) 。擦除完毕之后,写入的话就有 页写入指令,当然,用页写入指令也不是每次都要规定入户写入完整的256个字节,可以写少于256字节的,多于256的话,那么前256字节将会丢弃,只在同一个地址写入多出的数据。
说到Telosb节点上FLASH的使用,说明文档给出了三种使用的方法。分别是:块存储Block、配置存储Config、日志存储Log。各种方法调用的FLASH读写组件都不同。但是,系统内部都同样已经实现了对其SPI总线使用的资源调度。也就是说,同样不需要用户自己分配SPI总线。
在测试的过程中,我需要把AD采集得到的数据存入FLASH,就开始测试FLASH 的读写问题。结果发现,ConfigStorage的方法比较慢,每次读写FLASH之间至少需要隔2秒的时间。至于为什么这么慢,看系统的文件我也没看出来。反正就是系统实现的,自己用就是了。
然后就是BlockStorage的方式,这个还好一点,每次读写的间隔只需要70ms左右。 日志模式,我猜也没什么用,就没去看了。
view
plain
uses interface BlockRead;
uses interface BlockWrite;
view
plain
uses int
4000
erface ConfigStorage;
uses interface Mount ;
2012年1月10日
博客荒废太久了,事情搞定之后就没有了想记录一下的动力,攻破了一个困难之后,好开心,心情就放松得很,不去回忆一下解决问题的过程,不记录经验,很快又忘了。下次,完成一项任务之后,就要立马把其中的解决难题的方法记录下来,不要养成拖拖拉拉的坏习惯。
其实在读写FLASH M25P80的时候,还有一个问题当时没搞清楚。那就是,每次写FLASH之前,都要确保所写的区域已经擦除过。FLASH不同于E2PROM,以前读写24C20的时候也不用什么擦除的,FLASH则不同。而M25P80的擦除分为扇区(sector erase)擦除和全擦除(bulk erase) 。擦除完毕之后,写入的话就有 页写入指令,当然,用页写入指令也不是每次都要规定入户写入完整的256个字节,可以写少于256字节的,多于256的话,那么前256字节将会丢弃,只在同一个地址写入多出的数据。
相关文章推荐
- STM32 SPI总线移植fatfs产生硬件异常问题
- 关于2.6.30.4在创建bus总线时的bus_id的问题
- spi总线概述2(spi-summary)
- SPI、I2C、UART三种串行总线协议的区别
- linux内核SPI总线驱动分析(一)
- SPI总线协议及SPI时序图详解
- linux内核SPI总线驱动分析(一)
- 驱动模块使用SPI总线范例
- Linux SPI总线和设备驱动架构之一:系统概述
- SPI总线协议解析
- SPI、I2C、UART三种串行总线的原理、区别及应用
- SPI总线协议介绍
- SPI总线知识点
- I2C,SPI,UART总线的区别详解
- linux内核SPI总线驱动分析思路
- SPI总线介绍和裸机编程分析
- 关于SPI的小问题
- SPI总线
- SPI总线接口
- Linux下的SPI总线驱动(一)