其实这个FTL我去年就弄完了,而且已经在项目上使用了,但是这几天一天,又忘了差不多了,因此,我决定把这个东西详细认真的再好好看看,趁着还有残留的记忆,巩固一下知识。

这个软件真的很好,软件为为3层,FS, FTL, LLD,非常清晰,这也是当初能够顺利移植成功的原因。

先上图吧,

这个图简单明了了展现出了此软件的结构,

上层为文件系统,有spasion公司自己的FS,因为软件良好的分层,也可以支持第3方文件系统,比如我已经移植了FATFS了,此外还支持ext3等。

中间为FTL(BD)层,这是关键,它向FS层提供逻辑块操作接口函数。

最重要的几个函数如下: ftl_if_ex.h

FTL_STATUS FTL_InitAll(FTL_INIT_STRUCT *initStructPtr);
FTL_STATUS FTL_Format(void);
/* Utiltiy */
FTL_STATUS FTL_GetCapacity( FTL_CAPACITY * capacity );
/* Read */
FTL_STATUS FTL_DeviceObjectsRead( unsigned char * buffer, unsigned long LBA, unsigned long NB, 
    unsigned long * bytesDone );
/* Write */
FTL_STATUS FTL_DeviceObjectsWrite(unsigned char * buffer , unsigned long LBA, unsigned long NB, 
    unsigned long * bytesDone );

初始化,格式化,读,写,如果是移植FATFS的话,有这几个就够了。此外还有其它的几个函数,针对特殊的文件系统可能会肜到。

其次就是配置了,针对不同的底层FLASH,需要对FTL进行必要的配置,大部分配置都在Format.h文件中,可以配置FLASH类型,是NOR还是NAND?  FLASH大小等,当然如果真的要使用spansion FFS,最好还是要详细阅读相关移植文档。

FTL与下面LLD的接口是通过ftl_flash.c来完成的。这个文件不需要修改,这个文件是把NOR、NAND、SPI做了统一的接口,真正需要修改的是下层 LLD SLLD等。

最后说一下LLD层(Low Level Driver),这层是直接与硬件打交道的,需要自己实现,不过也很简单,spasion已经提供了很简单的接口例子,比如如果是nor的话,只需要移植读,编程,探险就行了,如果 你用的是spasion的存储芯片的话,这些也不用做,直接就可以驱动起来,超简单吧?

FFS学习 (FTL)相关推荐

  1. 联邦学习安全与隐私保护综述 A survey on security and privacy of federated learning

    联邦学习安全与隐私保护综述 写在前面的话 联邦学习是什么 联邦学习工作流程 联邦学习的技术分类 安全问题和解答 隐私问题和解答 未来方向 写在前面的话 本篇博客参考<A survey on se ...

  2. keycloak 自定义登录页面

    keycloak 自定义登录页面详细步骤如下: 因为keycloak是jboss开发的,使用FTL后缀开发前端文件,可能根据以下方式实现 keycloak将前端页面分为四类:按类设置主题. •Acco ...

  3. Fed-SCNN: A Federated Shallow-CNN Recognition Framework for Distracted Driving

    Fed-SCNN:用于分散驾驶的联合浅层CNN识别框架 (IF:1.968) 摘要: 虽然分心驾驶识别对交通安全具有重要意义,但出于隐私保护的考虑,驾驶员不愿意向机器学习提供自己的个性化驾驶数据.如何 ...

  4. 【Paper Reading FedBCD: A Communication-Efficient Collaborative Learning Framework for DF

    FedBCD: A Communication-Efficient Collaborative Learning Framework for Distributed Features 原文来源:[TS ...

  5. Secure Federated Transfer Learning (论文翻译与拓展)

    Secure Federated Transfer Learning 安全联邦迁移学习 #论文链接 https://arxiv.org/pdf/1812.03337.pdf (因数学符号无法正常表示, ...

  6. 不平衡问题: 深度神经网络训练之殇

    目录 1. 概述 2. 类别重平衡 2.1 重采样 2.2 代价敏感学习 2.3 Logit调整 2.4 小结 3. 信息增强 3.1 迁移学习 3.2 数据增强 3.3 小结 4. 模块改进 4.1 ...

  7. oracle12178错误,Oracle学习笔记_20080522:Index FS vs Index FFS

    Index Full Scan vs Index Fast Full Scan index full scan和index fast full scan是指同样的东西吗?答案是no.两者虽然从字面上看 ...

  8. 【JAVA】FreeMarker学习1(Ftl)

    <# ... > 中存放所有freemaker的内容,之外的内容全部原样输出. <@ ... /> 是函数调用 两个定界符内的内容中,第一个符号表示指令或者函数名,其后的跟随参 ...

  9. 联邦学习 OR 迁移学习?No,我们需要联邦迁移学习

    2020-11-18 13:40:43 机器之心分析师网络 作者:仵冀颖 编辑:H4O 在这篇文章中,作者通过 4 篇论文详细介绍了联邦学习中的联邦迁移学习问题,并探讨了向经典联邦学习中引入迁移学习的 ...

  10. FreeMarker中文帮助手册API文档,基础入门学习文档

    FreeMarker中文帮助手册API文档,基础入门学习文档 分类: 编程技术 发布: bywei 浏览: 7 日期: 2011年5月28日 分享到: QQ空间 新浪微博 腾讯微博 人人网 什么是Fr ...

最新文章

  1. C enum(枚举)
  2. JS中调用本地exe程序
  3. 获取一组radio按钮选中的值Value
  4. 1_boostrap概述
  5. 扩展--使用队列来优化递归操作完成文件下载
  6. python绘制横向堆积柱状图_Python 堆叠柱状图绘制方法
  7. 什么是Ext(ExtJs)【转载】
  8. Spring Boot缓存注解@Cacheable、@CacheEvict、@CachePut使用
  9. 今天的天气格外地好的dabeicun
  10. 有关TinyXML使用的简单总结
  11. 常见面试算法:回归、岭回归、局部加权回归
  12. 用正则表达式将前后空格用空字符串替代:replace(/(^\s*)|(\s*$)/g, )
  13. 数据类型、变量和数组
  14. 使用APICloud AVM多端组件快速实现app中的搜索功能
  15. 挖金矿问题java课程设计_Win32 挖金矿游戏源代码
  16. 【算法】汇总:求解π值的算法
  17. CentOS 7.9 Xfce桌面安装中文输入法
  18. 新辰:十种外链终极方法 让SEOer外链之路不再孤独!
  19. “美亚杯”第二届中国电子数据取证大赛答案解析(团体赛)
  20. 华硕PRIME B660M-K D4 i5-13600KF黑苹果efi引导文件

热门文章

  1. 计算机应不应该学电路,应该怎么学才能入门电子技术
  2. sw2014计算机配置,SolidWorks 2014电脑配置要求
  3. 计算机网络的拓扑结构
  4. Android报警功能,报警铃音,手机开始震动
  5. Qt --- 基础知识
  6. jsp综合开发实例——夏日九宫格日记网
  7. 用计算机制作标准曲线的方法,如何绘制标准曲线
  8. RPG Maker MV如何导入dlc素材?
  9. w ndows10图标,Windows10系统图标怎样提取
  10. php jmail实例,Jmail发邮件的例子