LiteOS组件尝鲜—玩转Curl

W922 发表于 2022/03/31 09:41:56 2022/03/31
【摘要】 Curl是一个文件传输工具,常用于数据上传和下载,本demo基于Cloud_STM32F429IGTx_FIRE开发板演示了在curl demo中调用curl提供的API来下载一个文件,并将其保存到本地文件中。


 III  基本介绍  III

  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。

  III   参数配置   III

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

#define URL_ADDRESS    "192.168.3.37"

#define FILE_PATH            "/fatfs/curl.txt"

 

 III   使能Curl Demo   III

  拷贝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工具。

III   编译运行Curl Demo   III


  在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]代替)。


III   结语   III

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

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

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


11.jpg


- end -


22.jpg


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区),文章链接,文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:cloudbbs@huaweicloud.com进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。