本文分享自华为云社区《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 CardNetwork  --->-*- Enable LwipEnable Ipv4 Or Ipv6 (Enable Ipv4)  --->(X) Enable Ipv4Utility  --->-*- 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”到自己账号下,如图所示。

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

快来一起玩转LiteOS组件:Curl相关推荐

  1. 快来一起玩转LiteOS组件:RHas

    摘要:RHash是一个C语言编写的哈希函数库,用于计算和验证磁力链接和各种消息摘要的控制台实用程序. 本文分享自华为云社区<LiteOS组件尝鲜-玩转RHas>,作者:Lionlace . ...

  2. 玩转LiteOS组件:玩转Librws

    本文分享自华为云社区<LiteOS组件尝鲜-玩转Librws>,作者: W922  . 本期小编为大家带来LiteOS开源版本Librws 组件的使用说明,请跟随小编的步伐一起进入探索之旅 ...

  3. 一起玩转LiteOS组件:Pixman

    摘要:本文将以Pixman Demo为例,详细说明Pixman的功能. 本文分享自华为云社区<LiteOS组件尝鲜-玩转Pixman>,作者:Lionlace. 基本介绍 Pixman是由 ...

  4. 一起玩转玩转LiteOS组件:Opus

    摘要:Opus编码器是一个开源的有损声音编码格式,适用于网络实时声音传输,标准格式为RFC 6716,相对于其他编码格式来说,保真性更好. 本文分享自华为云社区<LiteOS组件尝鲜-玩转Opu ...

  5. 手把手带你玩转LiteOS Ping组件

    摘要:本期小编为大家带来LiteOS开源版本Ping组件的使用说明,请跟随小编的步伐一起进入探索之旅吧! 本文分享自华为云社区<LiteOS组件尝鲜-玩转Ping>,作者:Lionlace ...

  6. 带你尝鲜LiteOS 组件EasyFlash

    摘要:EasyFlash是一个开源的轻量级嵌入式闪存库. 本文分享自华为云社区<LiteOS组件尝鲜-玩转EasyFlash>,作者:Lionlace . 基本介绍 EasyFlash是一 ...

  7. 一分钟带你了解Huawei LiteOS组件开发指南

    摘要:本文将基于Huawei LiteOS系统,从组件定义开始带你走进组件开发指南. 本文分享自华为云社区<一分钟带你了解Huawei LiteOS之组件开发指南>,作者: Lionlac ...

  8. 诺基亚6300手机游戏下载_回忆杀!重温那些年你一定玩过的经典手机游戏,快看你玩过几个?...

    虽然现在的手机功能非常齐全,游戏更是多种多样,游戏体验越来越真实.酷炫,但它们带给我们的乐趣却大不如前了.有时候还挺怀念以前玩着简单游戏的日子,现在想起来还是让人记忆深刻. 今天就来一波回忆杀,带大家 ...

  9. 支持蓝牙的模拟器_手机外设系列:手机秒变掌机,快约老铁玩一局魂斗罗-蓝牙手柄篇...

    那些年,我们玩过的游戏,你还记得吗? 超级玛利.魂斗罗.炸弹人.90坦克.快打旋风.雪人兄弟...... 玩过这些游戏的小伙伴们,都成了油腻中年大叔了. 还记得下午放学后,约上一两个同学,插上大黄卡, ...

最新文章

  1. EPSON机器人建立TCP/IP通讯的简单demo
  2. R语言:再谈REmap包
  3. 计算机教师应该读的书籍,信息技术教师读书心得
  4. log4j2 异步日志
  5. 使用js在桌面上写一个倒计时器_论一个倒计时器的性能优化之路
  6. Applet、Scriptlet与Servlet
  7. 启动tomcat的startup.bat闪退问题
  8. stylegan2-pytorch 自己训练的model 出错
  9. LINQ 之 JOIN(2)
  10. 没解决:MMC不能打开文件MSC可能是由于文件不存在,不是一个MMC控制台,或者用后来的MMC版本创建。也可能你没有访问此文件的足够权限
  11. 阿里云助贫困大学生用技能点亮人生
  12. 如何打开屏幕坏的手机_手机屏幕碎了怎么开usb?不通过屏幕打开usb调试方法
  13. android图片剪切第三方,Android第三方开源图片裁剪截取:cropper
  14. HITB | 360议题分享:卫星可欺骗 地震警报可伪造
  15. 告别奇虎360、依图科技,再谋他途!依图CTO颜水成被曝离职!
  16. 源码分析学习记录(9)——PBR材质
  17. Apple Sign in with Apple(苹果授权登录PHP)
  18. 小程序使用云开发,拍照获取银行卡卡号
  19. wangyi3-数据挖掘研究员
  20. RBF神经网络理论与实现

热门文章

  1. 程序员项目_您如何让程序员加入您的项目?
  2. linux java services_在Linux上将Java应用程序作为服务运行
  3. SLAM GMapping(6)扫描匹配器
  4. ROS笔记(2) Kinetic 的安装和配置
  5. python做日历牌_中秋节到了,送你一个Python做的Crossin牌“月饼”
  6. linux利用* vim提权,Linux使用suid vim.basic文件实现提权
  7. python 获取帮助页_Python-爬取页面内容(涉及urllib、requests、UserAgent、Json等)
  8. ajax同步获得数据字典的值,使用ajax加载数据字典,生成select(示例代码)
  9. 5,线程池,进程池,协程,IO模型
  10. 洛谷P1856 [USACO5.5]矩形周长Picture