ffxz 发表于 2010-7-15 07:41:14

[公告] 0.4.x中一个比较大的更改

因为这个更改涉及的内容有些宽,所以发一个公告。现在还不能确定是否会应用这个补丁到0.3.1版本中(STM32 radio会考虑在这个分支支持超过4G的SDHC卡?)。

更改内容:支持超过4G大小的文件系统,块设备驱动读写接口,偏移和缓冲大小单位更改为块设备中一个块大小的单位。
更改原因:原来的块设备操作方式是以字节为单位的,在32位无符号变量上,当超过4G大小时,这个变量将溢出。

涉及代码:所有块设备驱动。

具体更改:(假设块设备的大小是512字节)
static rt_size_t rt_msd_read(rt_device_t dev, rt_off_t pos, void* buffer, rt_size_t size)
static rt_size_t rt_msd_write (rt_device_t dev, rt_off_t pos, const void* buffer, rt_size_t size)
更改前:pos以字节为单位;size以字节为单位;
更改后:pos以512字节为单位;size以512字节为单位;

在0.4.x各个移植中,块设备相应的驱动都需要进行修改。

aozima 发表于 2010-7-15 10:46:05

"假设块设备的大小是512字节"

现在好多块设备都是 1024或更大 的块了.
然后然后这类. pos依然以512为单位?
还是以1024?

是否根据每个设备的control函数的获取块大小的命令结果来决定?

按512计算,最大容量2TB,估计对于RTOS来说是够用了.

ffxz 发表于 2010-7-15 10:50:04

回复【1楼】aozima
"假设块设备的大小是512字节"
现在好多块设备都是 1024或更大 的块了.
然后然后这类. pos依然以512为单位?
还是以1024?
是否根据每个设备的control函数的获取块大小的命令结果来决定?
按512计算,最大容量2tb,估计对于rtos来说是够用了.
-----------------------------------------------------------------------

根据每个设备的块大小

jhdtry 发表于 2010-7-20 23:10:49

加个usb无线网卡···<^^>我没那能力....
页: [1]
查看完整版本: [公告] 0.4.x中一个比较大的更改