1、引言
HaaS100开发板提供了灵活的存储软硬件方案,硬件上包括内存、内置Nor Flash和外置SD-Card,软件上提供内存文件系统、Flash文件系统和SD卡文件系统。其中扩展SD卡可以支持上百G的存储,可适用于需要存储图片、音视频等较大数据的场景。
本文主要讲述如何在HaaS100开发板上玩转SD扩展卡,包括硬件和软件上的有关操作。其中HaaS100运行操作系统AliOS Things 3.3, AliOS Things 3.3自带fatfs功能。
2、SD卡硬件操作
HaaS100支持外接微型SD卡(Micro SD),支持上百GB数据的存储。SD卡槽位于开发板背面(HaaS100 logo的反面),可以外接微型SD存储卡,具体的硬件连接方法请参考下图。
3、SD卡格式化
SD卡在使用前,一般都需要格式化以支持特定文件系统格式(一般是FAT)数据的存储。HaaS100软件支持SD卡上FAT16/FAT32/exFAT等格式的文件系统数据的读写访问。
请参考一下步骤准备好一张可用的微型SD存储卡(TF卡),并格式化成FAT文件系统格式。
- 准备好一张微型SD卡和一个读卡器,读卡器可以是专用的SD读卡器或USB读卡器等。
- 将SD卡插入读卡器,并连接到PC上进行格式化,支持格式化为FAT16/FAT32/exFAT格式(现在PC上一般只支持FAT32和exFAT)。注意:Windows系统上一般有自带的SD卡格式化软件,通过右键选择即可将SD卡格式化成FAT格式,macOS和Linux上请自行安装类似软件进行操作。
- 完成格式化后,将SD卡连接到HaaS100开发板,以备运行在HaaS100上的软件访问。
4、SD卡软件操作
提示:SD卡软件使用示例相关的代码下载、编译和固件烧录均依赖AliOS Things配套的开发工具 alios-studio ,所以首先需要参考《aos-studio使用说明之搭建开发环境》,下载安装 alios-studio 。
待开发环境搭建完成后,可以按照以下步骤进行示例的测试。
4.1、创建或打开工程
打开已有工程
如果用于测试的案例工程已存在,可参考《aos-studio使用说明之打开工程》打开已有工程。
创建新的工程
组件的示例代码可以通过编译链接到AliOS Things的任意案例(solution)来运行,这里选择helloworld_demo案例。helloworld_demo案例相关的源代码下载可参考《aos-studio使用说明之创建工程》。
4.2、添加组件
案例下载完成后,需要在helloworld_demo组件的package.yaml中添加对组件的依赖:
depends:
- fatfs: dev_aos # helloworld_demo中引入fatfs组件
4.3、下载组件
在已安装了 alios-studio 的开发环境工具栏中,选择Terminal -> New Terminal启动终端,并且默认工作路径为当前工程的workspace,此时在终端命令行中输入:
aos install fatfs
上述命令执行成功后,组件源码则被下载到了./components/fatfs路径中。
4.4、添加示例
在fatfs组件的package.yaml中添加example示例代码:
示例代码参考example/fatfs_example.c。
source_file:
- "src/*.c"
- "example/fatfs_example.c" # add fatfs_example.c
4.5、编译固件
在示例代码已经添加至组件的配置文件,并且helloworld_demo已添加了对该组件的依赖后,就可以编译helloworld_demo案例来生成固件了,具体编译方法可参考《aos-studio使用说明之编译固件》。
4.6、烧录固件
helloworld_demo案例的固件生成后,可参考《aos-studio使用说明之烧录固件》来烧录固件。
4.7、打开串口
固件烧录完成后,可以通过串口查看示例的运行结果,打开串口的具体方法可参考《aos-studio使用说明之查看日志》。
当串口终端打开成功后,可在串口中输入help来查看已添加的测试命令。
4.8、测试示例
CLI命令行输入:
fatfs_example
关键日志
CLI日志:
fatfs component example start!
aos_open fd1=xxx
aos_write num=xxx
aos_open fd2=xxx
aos_lseek position=xxx
aos_read: xxxx
fatfs component example end !
开发者支持
如需更多技术支持,可加入钉钉开发者群,或者关注微信公众号。
更多技术与解决方案介绍,请访问HaaS官方网站https://haas.iot.aliyun.com。