写点什么

快来一起玩转 LiteOS 组件:Curl

  • 2022 年 4 月 06 日
  • 本文字数:1464 字

    阅读完需:约 5 分钟

本文分享自华为云社区《LiteOS组件尝鲜—玩转Curl》,作者:W922。

基本介绍

Curl 是一个文件传输工具,常用于数据上传和下载,本 demo 基于 Cloud_STM32F429IGTx_FIRE 开发板演示了在 curl demo 中调用 curl 提供的 API 来下载一个文件,并将其保存到本地文件中。

Curl demo 的运行需要嵌入式设备支持网络和文件系统功能,Cloud_STM32F429IGTx_FIRE 开发板适配了 lwip 网络协议栈和 fatfs 文件系统,curl API 的更多示例请参考:https://github.com/curl/curl/tree/master/docs/examples。

参数配置

修改 demos/utility/curl/curl_demo.c 中的文件下载地址,文件保存路径。 请根据实际的下载地址进行修改。curl demo 中的 url 下载地址和文件路径如下:

#define URL_ADDRESS    "192.168.3.37"#define FILE_PATH            "/fatfs/curl.txt" 
复制代码

使能 Curl Demo

拷贝 Cloud_STM32F429IGTx_FIRE 开发板默认配置文件,在 LiteOS 源码根目录下,拷贝 tools/build/config/Cloud_STM32F429IGTx_FIRE.config,并重命名为.config。使用 Linux 系统作为编译环境,执行如下命令完成配置文件的拷贝和重命名:

cp tools/build/config/Cloud_STM32F429IGTx_FIRE.config .config
复制代码

本 demo 使用 SD 存储下载的测试文件,所以需要使能 FATFS 文件系统并设置为 SD 卡模式,在 LiteOS 源码根目录下执行命令:make menuconfig

按如下路径使能各组件及 demo

Components  --->        FileSystem  --->            -*- Enable FATFS (NEW)                    Choose Peripheral Driver (SD Card)  --->                        (X) SD Card        Network  --->            -*- Enable Lwip                    Enable Ipv4 Or Ipv6 (Enable Ipv4)  --->                        (X) Enable Ipv4        Utility  --->            -*- Enable CurlDemos  --->       Utility Demo  --->               [*] Enable Curl Demo
复制代码

保存退出后,LiteOS 会从 github 自动下载 curl 源码,并从 gitee 上的 LiteOS 组件仓库里下载对应的 patch 包,并将 patch 打入源码,此过程的详细流程,请查阅 components/download.sh 文件。

注:下载需要 Linux 主机可以访问互联网,并安装 git 工具。

编译运行 Curl Demo

在 LiteOS 源码根目录下执行如下命令编译 LiteOS 工程:make clean;make -j

编译成功后将在 out/Cloud_STM32F429IGTx_FIRE/lib 目录下生成 curl 的库文件 libcurl.a 和本 demo 的库文件 libcurl_demo.a,系统镜像文件为 Huawei_LiteOS.bin。将系统镜像文件烧录到开发板,重启开发板 demo 即开始运行,串口输出结果如下所示:

********Hello Huawei LiteOS********LiteOS Kernel Version : 5.0.0build data : Mar 19 2021 15:19:22**********************************osAppInitcpu 0 entering schedulerapp init!Hello, welcome to liteos demo!lwip test init ok.Curl demo task start to run.Fatfs file system mount successHuawei LiteOS #*** readed /fatfs/curl.txt 315 data ***[file info]**************************************Curl demo task finised.
复制代码

注:demo 运行成功后,会将下载的文件保存到本地文件 curl.txt 中(具体内容参考实际情况,此处用[file info]代替)。

结语

未来我们还会持续新增更多组件、开发板、架构、特性等。

感谢您的阅读,有任何问题、建议,都可以留言给我们,让我们一起进步:https://gitee.com/LiteOS/LiteOS/issues

为了更容易找到“LiteOS”代码仓,建议访问https://gitee.com/LiteOS/LiteOS,关注“ Watch”、点赞“Star”、并“Fork”到自己账号下,如图所示。

点击关注,第一时间了解华为云新鲜技术~


发布于: 2 小时前阅读数: 3
用户头像

提供全面深入的云计算技术干货 2020.07.14 加入

华为云开发者社区,提供全面深入的云计算前景分析、丰富的技术干货、程序样例,分享华为云前沿资讯动态,方便开发者快速成长与发展,欢迎提问、互动,多方位了解云计算! 传送门:https://bbs.huaweicloud.com/

评论

发布
暂无评论
快来一起玩转LiteOS组件:Curl_LiteOS_华为云开发者社区_InfoQ写作平台