快来一起玩转LiteOS组件:Curl
摘要:Curl是一个文件传输工具,常用于数据上传和下载,本demo基于Cloud_STM32F429IGTx_FIRE开发板演示了在curl demo中调用curl提供的API来下载一个文件,并将其保存到本地文件中。
本文分享自华为云社区《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 Curl Demos ---> 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.0 build data : Mar 19 2021 15:19:22 ********************************** osAppInit cpu 0 entering scheduler app init! Hello, welcome to liteos demo! lwip test init ok. Curl demo task start to run. Fatfs file system mount success Huawei 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”到自己账号下,如图所示。
相关文章
- 全面兼容手机端访问与toTop
- 红队技术-各端口横向移动方法
- 钓鱼技巧-Nginx反向代理伪造页面
- docker高级篇:实战-自己开发的微服务怎么在docker上面运行?
- 如何实现RTS游戏中鼠标在屏幕边缘时移动视角功能
- 如何给多个页面,添加统一的导航栏?我罗列对比了 5 个方案
- 2022新书《图神经网络》,崔鹏、裴健等领域大牛撰写,全面介绍GNN算法与应用
- 一图了解“5G+工业互联网”的十大应用场景
- 多模态认知计算
- ICRA2022 | 数据集:用于移动机器人视觉异常检测
- 免费领取 | 从二维到三维,计算机视觉全覆盖
- 小白系列(1) | 计算机视觉之图像分类
- 小白系列(3)| 计算机视觉之直接视觉跟踪
- 大盘点 | 2023年最受欢迎的53个计算机视觉应用(上)
- Vue面试必须会的Proxy
- Java面试题总结
- 记一次 .NET 某桌面奇侠游戏 非托管内存泄漏分析
- 2021 VDC :vivo 互联网服务亿级用户的技术架构演进之路
- vivo浏览器的快速开发平台实践-总览篇
- 字节码引用检测原理与实战