FLASH分区管理
什么是分区管理
FLASH分区管理是怎么一回事呢?我们可以以个人电脑来做类比,我们的电脑通常都分有很多个盘符:
这些都是我们硬盘的分区,我这里装了两块硬盘,512GB的机械硬盘+128GB的固态硬盘,共分C~H六个分区,我这里的C盘和H盘是固态硬盘,其它盘符是机械硬盘:
分区是为了方便我们对我们的资料进行管理,各个分区互不影响,比如格式化某个分区只会删除这个分区的内容而不会影响其它分区及整个硬盘等。
同样的,在我们的STM32上也是可以进行分区管理的,这篇笔记我们来使用RT-Thread的FAL软件包来对我STM32片内FLASH及片外FLASH的分区管理。
FAL软件包介绍
FAL (Flash Abstraction Layer) Flash 抽象层,是 RT-Thread 的一个软件包,是对 Flash 及基于 Flash的分区进行管理、操作的抽象层,对上层统一了 Flash 及分区操作的 API ,并具有以下特性:
• 支持静态可配置的分区表,并可关联多个 Flash 设备;
• 分区表支持 自动装载。避免在多固件项目,分区表被多次定义的问题;
• 代码精简,对操作系统 无依赖,可运行于裸机平台,比如对资源有一定要求的 bootloader;
• 统一的操作接口。保证了文件系统、 OTA、 NVM 等对 Flash 有一定依赖的组件,底层 Flash 驱动的可重用性;
• 自带基于 Finsh/MSH 的测试命令,可以通过 Shell 按字节寻址的方式操作(读写擦) Flash 或分区,方便开发者进行调试、测试;
FAL软件包使用
本笔记主要对潘多拉开发板的FAL例程进行一次梳理,所以部分表述来自于教程文档。我们这个实验建立如下分区表:
1、移植接口文件说明
FAL软件包的目录如下,其中samples文件夹下为移植接口文件:
其中fal_cfg.h 为fal 配置文件(Flash 设备配置和分区表配置) :
fal 是 Flash 抽象层,要操作 Flash 设备必然要将 Flash 的读、写、擦接口对接到 fal 抽象层中。在 fal中,使用 struct fal_flash_dev 结构体来让用户注册该 Flash 设备的操作接口。fal_flash_dev 结构体定义如下所示:
fal_flash_stm32f2_port.c为片内FLASH接口文件,这得根据实际芯片进行修改,主要是封装读、写、擦除函数,例如:
这和我们之前分享的:使用STM32内部Flash额外的空间来存储数据步骤差不多。片内 Flash 对接说明 :
Flash 设备名称为 onchip_flash,设备容量为 512K,最小擦除单元为 2K,无初始化接口。
fal_flash_sfud_port.c为片外FLASH接口文件,这使用SFUD 万能 SPI Flash 通用驱动库来驱动。 片外 Nor Flash 对接说明 :
Flash 设备名称为 nor_flash,设备容量为 16M,最小擦除单元为 4K。这里使用的 read、 write、 erase接口最终调用 SFUD 框架中的接口,无需用户进行驱动开发。
2、fal软件包API接口说明
这里主要列举出本实验需要用到的API说明,其它几个未用到的fal接口函数声明在fal.h文件中。
2.1 查找 Flash 设备
2.2 查找 Flash 分区
2.3 获取分区表
2.4 从分区读取数据
2.5 往分区写入数据
2.6 擦除分区数据
2.7 擦除整个分区数据
3、fal测试函数说明
移植完成后,调用 fal_init() 初始化该库。测试程序主函数:
对d分区与f分区进行读写测试。
(1)擦除分区测试:
擦除成功则分区内容会变成0xFF。
(2)读写测试
读出来的数据与写入的数据相等则测试成功。
程序运行结果:
使用SHELL命令测试FAL
为了方便用户验证 fal 功能是否正常,以及 Flash 驱动是否正确工作,分区表配置是否合理, RT-Thread为 fal 提供了一套测试命令:
1、探测命令
2、擦除命令
3、写数据命令
4、读数据命令
5、性能测试命令
性能测试将会测试 Flash 的擦除、写入及读取速度,同时将会测试写入及读取数据的准确性,保证整个 Flash 或整个分区的写入与读取数据的一致性。
注意事项:
• 如果要修改分区表,请正确配置起始地址和分区大小,不要有分区重叠。
• 在使用 fal 测试命令的时候,请先使用 fal probe 命令选择一个 Flash 分区。
以上就是本次的笔记分享,如有错误,欢迎指出!谢谢~
野心最大的腾讯游戏!要做第一款国产3A,游戏刚上线时就steam前十
在三月,X博士与大家一同见证了三款大作同台竞技的壮观景象。无论是《鬼泣5》、《全境2》还是《只狼》,都无一不带给了我们巨大的震撼。四月的新游阵容固然没有上月强大,不过仍有不少值得一玩佳作在其中。
《无限法则》
推荐理由: 第三赛季更新,开启海盗主题活动!
《无限法则》是由腾讯旗下北极光工作室自研的一款战术竞技类游戏,该游戏以酷炫的人物造型以及独特的玩法吸引了相当一批玩家。就在不久前,这款游戏也是开放了S3赛季,加入了不少全新内容。
在这次的“海盗主题”赛季中,玩家开局将搭乘滑翔翼进入战场,并且开局可以自己携带背包中的武器。不仅如此,M82A1和FN FAL这两款枪械的加入,也为玩家们的战斗提供了更多的选择。
本赛季已于3月27日启动,玩家们目前已经可以进入游戏体验了!
《梦幻模拟战1+2》
推荐理由: 经典的战略RPG,庞大的战争场面。
《梦幻模拟战》是Chara-ani社旗下的经典战略RPG类型游戏,该系列游戏自从1991年推出后,便以庞大的战争场面和美型的人物设计得到了诸多玩家的认可与青睐。
不过,自2015年3DS平台的《梦幻模拟战:转生》后,该系列在这四年里便一直没有后续作品。而这次的《梦幻模拟战1+2》的移植也对画面和系统进行了重置,玩家们完全可以当成一部新作来看待。
该作将于4月18日登陆PS4以及Switch平台。
《泰亚史诗》
推荐理由: 超写实的中世纪战争网游。
《泰亚史诗》是网易自研的一款以中世纪为题材的战争网游,该游戏以超写实的题材,为玩家们展现出了一个极具特色的魔幻世界。这款游戏经过三年的测试和打磨,终于迎来公测了。
《泰亚史诗》的最大特色便是其独有的角色成长体系,9大职业加上72套混搭套装的设定,使得这款游戏的玩家都拥有极其自由的发展路线。在玩法上,玩家种地挖矿搬南瓜推酒桶,也能呼朋唤友建立势力参与到大陆权力纷争之中。
可以说,该如何去游玩和发展自己的角色,完全取决于玩家自身。该游戏将于4月1日正式开启公测,也就是说玩家们已经可以进入中世纪的魔幻世界战斗了!
《代号LN》
推荐理由: 古风题材射击游戏?天美自研3A大作!
就在不久之前,腾讯召开了2019年的新文创生态大会,并公布了一款名为《代号LN》的端游新作。该游戏将“射击”和“古风”两大题材相结合,打造出了一款具有独特玩法的游戏。
据悉,《代号LN》的场景设计基本由古典建筑所构成,各类墨家机关也遍布其中。玩家所操纵的角色不仅拥有多种天赋技能,更有各类特色机关道具可供使用。独创的身份玩法,更让游戏过程充满“博弈”的感觉。
该游戏预计将于本月中旬登陆Steam测试。
《僵尸世界大战》
推荐理由: 肆意屠杀僵尸的快感,TPS版《求生之路》。
由开发商Saber Interactive 开发的电影改编游戏《僵尸世界大战》,是一款自去年E3后便饱受玩家们期待的游戏。该游戏以四人合作为主要玩法,需要和队友一起配合,在强大尸潮中谋求生存。
虽然听起来这种玩法和V社旗下的经典之作《求生之路》比较类似,但这次的《僵尸世界大战》无论是僵尸的进攻风格,还是不同职业之间玩家作战方式,都和前者有极大不同。是一款极具特色的僵尸题材TPS游戏。
在如今游戏越来越硬核的当下,X博士已经不记得上次愉快的屠杀僵尸是什么时候了……希望4月16日发售的该作,能重新带我们找回曾经的感觉。
《往日不再》
推荐理由: 开放世界打僵尸,被人遗忘后惊艳亮相!
如果不是今年年初有了一些相关消息,大家可能早就把两年前的这款《往日不再》给遗忘了。开放世界加上打僵尸的玩法,放到今天来看确实不那么新奇。但在这款跳票已久的新作身上,却有着其他值得一玩的理由。
首先,《往日不再》作为一款PS4末期的游戏,自然是将主机的性能压榨到了极致。而且,该游戏具有较大的地图以及丰富的游戏内容,成功的逃离开放游戏了“大而空”的致命缺陷。
就目前所能得知的消息来看,《往日不再》的世界观和《美国末日》有许多相似之处,这对于期待今年《美末2》的玩家而言,也算得上是一款提前“解馋”的游戏了。该作将于4月26日发售,独占登陆PS4平台。
《真人快打11》
推荐理由: 经典格斗IP新作,有望重回系列巅峰?
提起《真人快打》这一格斗游戏系列,想必玩家们都会想到该系列一贯的“掏心挖肺”的终结技。而这个以“暴力”著称的系列游戏,也将在本月推出其新作——《真人快打11》。
据悉,在这次的《真人快打11》中除了保留系列特色外,还加入了全新的“自定义角色”模板功能。而且电影剧情模式的表现以及经典角色的回归,对老玩家而言都是值得兴奋的事情,因此该作极有可能做到重回系列巅峰。
该作将于4月23日登陆PS4、Switch、Xbox以及PC平台。
相关问答
做 肝移植 手术需要60万,职工医保可以报销吗-找法网法律咨询做肝移植手术需要60万,职工医保可以报销吗劳动纠纷遭遇法律难题?点击为...立即咨询0l2c****sjm5z610分钟前提交了咨询2fal****t22m4h3分钟前提交了咨...
哪些误区是种植美国红点红枫应注意的问题[回答]土球太bian硬且粘度过大,引起根生长;红枫在幼儿园更多的营养物质,不仅根损伤移植后,土壤特性和环境因素:如变更,使发根困难。一些农民开始接触美国...
想问一下:桉树苗怎么选?[回答]爱我农业各种果苗:均采用耐旱、抗寒、亲合性强的种子作砧木嫁接,具有果苗抗逆性强,苗木寿命长等优点;均选择从未种植过果树、果苗的熟田、地培育果...