快来一起玩转LiteOS组件:Curl
本文分享自华为云社区《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相关推荐
- 快来一起玩转LiteOS组件:RHas
摘要:RHash是一个C语言编写的哈希函数库,用于计算和验证磁力链接和各种消息摘要的控制台实用程序. 本文分享自华为云社区<LiteOS组件尝鲜-玩转RHas>,作者:Lionlace . ...
- 玩转LiteOS组件:玩转Librws
本文分享自华为云社区<LiteOS组件尝鲜-玩转Librws>,作者: W922 . 本期小编为大家带来LiteOS开源版本Librws 组件的使用说明,请跟随小编的步伐一起进入探索之旅 ...
- 一起玩转LiteOS组件:Pixman
摘要:本文将以Pixman Demo为例,详细说明Pixman的功能. 本文分享自华为云社区<LiteOS组件尝鲜-玩转Pixman>,作者:Lionlace. 基本介绍 Pixman是由 ...
- 一起玩转玩转LiteOS组件:Opus
摘要:Opus编码器是一个开源的有损声音编码格式,适用于网络实时声音传输,标准格式为RFC 6716,相对于其他编码格式来说,保真性更好. 本文分享自华为云社区<LiteOS组件尝鲜-玩转Opu ...
- 手把手带你玩转LiteOS Ping组件
摘要:本期小编为大家带来LiteOS开源版本Ping组件的使用说明,请跟随小编的步伐一起进入探索之旅吧! 本文分享自华为云社区<LiteOS组件尝鲜-玩转Ping>,作者:Lionlace ...
- 带你尝鲜LiteOS 组件EasyFlash
摘要:EasyFlash是一个开源的轻量级嵌入式闪存库. 本文分享自华为云社区<LiteOS组件尝鲜-玩转EasyFlash>,作者:Lionlace . 基本介绍 EasyFlash是一 ...
- 一分钟带你了解Huawei LiteOS组件开发指南
摘要:本文将基于Huawei LiteOS系统,从组件定义开始带你走进组件开发指南. 本文分享自华为云社区<一分钟带你了解Huawei LiteOS之组件开发指南>,作者: Lionlac ...
- 诺基亚6300手机游戏下载_回忆杀!重温那些年你一定玩过的经典手机游戏,快看你玩过几个?...
虽然现在的手机功能非常齐全,游戏更是多种多样,游戏体验越来越真实.酷炫,但它们带给我们的乐趣却大不如前了.有时候还挺怀念以前玩着简单游戏的日子,现在想起来还是让人记忆深刻. 今天就来一波回忆杀,带大家 ...
- 支持蓝牙的模拟器_手机外设系列:手机秒变掌机,快约老铁玩一局魂斗罗-蓝牙手柄篇...
那些年,我们玩过的游戏,你还记得吗? 超级玛利.魂斗罗.炸弹人.90坦克.快打旋风.雪人兄弟...... 玩过这些游戏的小伙伴们,都成了油腻中年大叔了. 还记得下午放学后,约上一两个同学,插上大黄卡, ...
最新文章
- EPSON机器人建立TCP/IP通讯的简单demo
- R语言:再谈REmap包
- 计算机教师应该读的书籍,信息技术教师读书心得
- log4j2 异步日志
- 使用js在桌面上写一个倒计时器_论一个倒计时器的性能优化之路
- Applet、Scriptlet与Servlet
- 启动tomcat的startup.bat闪退问题
- stylegan2-pytorch 自己训练的model 出错
- LINQ 之 JOIN(2)
- 没解决:MMC不能打开文件MSC可能是由于文件不存在,不是一个MMC控制台,或者用后来的MMC版本创建。也可能你没有访问此文件的足够权限
- 阿里云助贫困大学生用技能点亮人生
- 如何打开屏幕坏的手机_手机屏幕碎了怎么开usb?不通过屏幕打开usb调试方法
- android图片剪切第三方,Android第三方开源图片裁剪截取:cropper
- HITB | 360议题分享:卫星可欺骗 地震警报可伪造
- 告别奇虎360、依图科技,再谋他途!依图CTO颜水成被曝离职!
- 源码分析学习记录(9)——PBR材质
- Apple Sign in with Apple(苹果授权登录PHP)
- 小程序使用云开发,拍照获取银行卡卡号
- wangyi3-数据挖掘研究员
- RBF神经网络理论与实现
热门文章
- 程序员项目_您如何让程序员加入您的项目?
- linux java services_在Linux上将Java应用程序作为服务运行
- SLAM GMapping(6)扫描匹配器
- ROS笔记(2) Kinetic 的安装和配置
- python做日历牌_中秋节到了,送你一个Python做的Crossin牌“月饼”
- linux利用* vim提权,Linux使用suid vim.basic文件实现提权
- python 获取帮助页_Python-爬取页面内容(涉及urllib、requests、UserAgent、Json等)
- ajax同步获得数据字典的值,使用ajax加载数据字典,生成select(示例代码)
- 5,线程池,进程池,协程,IO模型
- 洛谷P1856 [USACO5.5]矩形周长Picture