当前位置: 首页 > news >正文

北京做网站一般多少钱优化设计答案四年级上册语文

北京做网站一般多少钱,优化设计答案四年级上册语文,wordpress获取链接地址,门户网站自查报告Linux驱动中有字符设备、块设备、网络设备三大设备,其中开发难度也是递增的,网络设备>块设备>字符设备。但是在实际开发过程中,大家可能觉得难度都差不多啊,甚至觉得字符设备仿佛开发工作量更大,而块设备和网络设…

Linux驱动中有字符设备、块设备、网络设备三大设备,其中开发难度也是递增的,网络设备>块设备>字符设备。但是在实际开发过程中,大家可能觉得难度都差不多啊,甚至觉得字符设备仿佛开发工作量更大,而块设备和网络设备往往只需要规规矩矩地把钩子接口填写完毕就可以了。我以前也是这么认为的,但直到近期遇到问题后才明白这三类驱动开发难度区别。块设备和网络设备往往在架构上给你做了大量的集成,再开放出几个钩子函数给你,在原有架构下开发不难,难点在于问题的排查

在块设备架构中,上层应用可通过VFS系统的open、write、read接口实现简易存储操作;中间层由yaffs、jffs2、ext4等文件系统负责Flash管理;底层则通过Linux提供的MTD接口实现,该层由驱动工程师开发,不同的驱动和设备对应不同的MTD控制块,MTD1、MTD2、MTD3...

关键函数1:

函数MTD_BREAD下层即MTD钩子函数,通过此函数调用实现了对具体MTD flash驱动的读取。即此函数为驱动MTD的上一层。

static int yaffs_read_chunk_fn(FAR struct yaffs_dev *dev, int nand_chunk,FAR u8 *data, int data_len,FAR u8 *oob, int oob_len,FAR enum yaffs_ecc_result *ecc_result)
{FAR struct mtd_dev_s *mtd;int nchunk;ssize_t retval;enum yaffs_ecc_result ecc_status;int ret = YAFFS_OK;mtd = yaffs_dev_to_mtd(dev);nchunk = data_len / dev->param.total_bytes_per_chunk;if (data && data_len > 0){retval = MTD_BREAD(mtd, nand_chunk, nchunk, data); // MTD 接口读取if (retval == nchunk){ecc_status = YAFFS_ECC_RESULT_NO_ERROR;   // 无ECC纠错}else{ret = YAFFS_FAIL;if (retval == -EUCLEAN){ecc_status = YAFFS_ECC_RESULT_FIXED;   // ECC 可修复}else if (retval == -EBADMSG){ecc_status = YAFFS_ECC_RESULT_UNFIXED; // ECC 不可修复}else{ecc_status = YAFFS_ECC_RESULT_UNKNOWN;}}}else{ecc_status = YAFFS_ECC_RESULT_UNKNOWN;}if (ecc_result){*ecc_result = ecc_status;}if (oob && oob_len > 0){ferr("### read oob? inband tag should not read oob!\n");}return ret;
}

此函数返回了这个chunk的ECC状态(无ECC纠错/有ECC纠错/ECC无法纠正),将状态反馈给上层,Yaffs文件系统对此chunk做针对性处理。

在yaffs中分配单元为CHUNK(chunk),一般情况,典型情况下其值与一页(page)大小相同(同时可灵活配置)。

垃圾回收机制:通过淘汰低质量块(如频繁出错的老化块),降低未来ECC错误的概率。

将有效数据复制到连续的健康块,形成新的逻辑地址映射。

擦除无效数据所在的块,使其可重新分配。

为什么需要垃圾回收:ECC(纠错码)通过冗余数据检测并修正内存或存储介质中的位翻转错误。当单比特错误发生时,ECC可自动修复;但若错误率持续升高(如因硬件老化、环境干扰),修复操作会频繁触发,此时可能伴随以下问题:

  • 不可修复的错误:当错误超过ECC纠错能力(如多比特错误),数据块会被标记为“坏块”,无法继续使用。
  • 数据迁移的残留:在修复过程中,系统可能将有效数据迁移到新块,而原块因错误被废弃。若频繁发生此类迁移,废弃块数量增加,可能被视为“无效数据”。

为什么要对坏块进行擦除操作?

擦除原理:通过高压脉冲将所有单元的阈值电压重置为“1”状态(未编程),消除残留电荷对后续写入的影响。

擦除作用

因为块并不是不能用了,擦除可以重置其部分状态,使其重新投入使用。

  • 物理层面:清除残留错误源(如电荷陷阱、磁畴紊乱)。
  • 逻辑层面:强制系统重新分配该块,避免继续写入导致错误进一步累积。

 关键函数2:

当Yaffs读取页时,若一个块中有超过三次读到纠错或者无法纠正的数据,则对该块进行坏块标记。但坏块标记信息为全局变量,则需保证在一个完整生命周期内连续读取到这个页才会被标记。即若累积到3次,若出现重启的情况,块也不会被标记。

http://www.dtcms.com/a/502069.html

相关文章:

  • 零食网站建设前的市场分析苏州网络营销推广多少钱
  • 青海省公路建设服务网站app十大免费下载排行榜
  • 云虚拟主机做网站wordpress 上传时发生了错误
  • 广州网站推广软件网站开发简答题
  • 建设银行网站查询密码怎么设置大气的公司名字
  • 做淘宝门头的网站深圳网站开发哪家专业
  • 焦作网站开发公司好动词做的网站能行吗
  • iis7 网站权限设置做仿网站的书
  • 用腾讯云做网站的好处网站策划方案800字
  • 丹东站申请免费的个人网站
  • 建站推广外包做网站类网站费用
  • 做竞价可以让网站提高快速排名吗传奇服务器如何做网站
  • 学校网站建设厂家网站cms系统 开源框架
  • 广州建网站腾虎建设集团有限公司简介
  • 做网站的图片字虚镇江市网站开发公司
  • h5 小米网站模板国际外贸网站
  • 郴州网站制作公司哪家好android移动网站开发详解
  • 网站项目ppt怎么做国外的有名的网站
  • 手机网站定制 杭州我要自学网app下载
  • wordpress自定义网站想做电商应该怎么入门
  • 廊坊网站制作套餐饮水机企业网站模板
  • 网站备案取消上海发布微博
  • 网站怎么做彩页制作营销网站模板免费下载
  • 广州网站建设乐云seowordpress 统计文章数量
  • 淄博网站建设同圈科技东莞网站推广费用
  • 网站建设模板平台如何注册网站卖东西
  • 有什么网站建设类岗位大连做网站公司哪家好
  • 兴宁网站建设好网站建设公司的网站
  • 参考文献 教学网站建设南充城市建设投诉网站
  • 用vs2010做的网站的源码自己做发卡网站长