研发课堂丨手把手教你添加i.MX6UL对curl软件的支持

Posted 小螃蟹ya

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了研发课堂丨手把手教你添加i.MX6UL对curl软件的支持相关的知识,希望对你有一定的参考价值。

前言

curl是一个开源项目,名字的含义是客户端(client)的URL工具的意思。主要的产品是curl(命令行工具)和libcurl(C语言的API库),两者功能均是:基于网络协议,对指定URL进行网络传输。

curl是强大的网络协议传输工具,它支持http/https/ftp等协议,还支持POST、cookies、认证、断点续传、指定user-agent、限制下载速度和文件大小、传输进度条等等功能,涉及任何网络协议传输,不涉及对具体数据的具体处理(如:html的渲染等)。curl在命令行或脚本中用于传输数据,用于汽车、电视机、路由器、打印机、音频设备、手机、平板电脑、机顶盒、媒体播放器等等设备中,是每天影响数十亿人口的互联网传输基础软件。

基于CortexA7架构 i.MX6UL设计的FETMX6UL-C核心板应用场景比较多,客户的需求也各不相同。本文将结合操作实例,分享FETMX6UL-C支持curl软件的方法。

前期准备

在移植curl之前需要准备以下工具:

1. i.MX6UL开发环境:Ubuntu12.04 x32 (下载地址在文末)

2. libcurl的安装包:curl-7.67.0.tar.gz(官网下载的最新版,官网地址在文末提供)

3. 交叉编译环境:根据安装时的配置而不同,大部分都在/opt下或者~/opt下(本文的交叉编译环境位置:/opt/freescale/usr/local/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin)。交叉编译工具链使用的是linaro的4.6.2版本,在i.MX6UL开发资料中有提供。以下是目录下的内容:


 

4. 移植平台:FETMX6UL-C Linux3.14.38系统 Qt4.8/Console

操作步骤

1. 从官网下载最新版,并解压:

2.  


3. 进入到解压文件夹:


 

4. 编译器配置,(其中--profix参数是指软件最终编译生成的位置,本文设置的路径为:/home/bk/work/libcurl目录下),指令执行后会配置编译器:


 

5. 使用交叉编译工具链编译:


 

6. 执行如下命令编译安装到步骤3中指定的位置。注意:本步骤会有多出错误提示,忽略即可。


 

7. 打开步骤3中的位置,此时目录下已经生成如下4个目录:


 

8. 将libcurl文件夹的内容拷贝到开发板上。(本文将libcurl文件夹拷贝到U盘再使用开发板复制文件到/lib文件夹,因为libcurl中包含链接文件直接拷贝会导致丢失,所以需要单独复制下链接文件)。


 


 

9. 在i.MX6UL开发板将U盘中的文件拷贝到/lib文件下:


   

10. 将curl命令加入系统环境变量:


 

在箭头处加入 :/lib/bin代码(上图已经加入),保存退出后命令行输入sync 命令之后重启开发板。

11.  重启开发板后即可输入curl使用:


 

测试用例

测试新浪官网,使用命令curl -v www.sina.com 

`-v`参数可以显示一次http通信的整个过程,包括端口连接和http request头信息。


 

参考:

Ubuntu下载地址:https://mirrors.tuna.tsinghua.edu.cn/ubuntu-releases/12.04.5/

curl官网下载地址:https://curl.haxx.se/download.html 作者:飞凌嵌入式 https://www.bilibili.com/read/cv12894816 出处:bilibili

以上是关于研发课堂丨手把手教你添加i.MX6UL对curl软件的支持的主要内容,如果未能解决你的问题,请参考以下文章

如何在i.MX6UL平台上实现硬浮点与软浮点?

极光小课堂|手把手教你做接口测试

手把手教你使用Java开发在线生成pdf文档

融云微课堂第五讲 | 基于原生代码开发 Flutter 插件

动手实践丨手把手教你用STM32做一个智能鱼缸

动手实践丨手把手教你用STM32做一个智能鱼缸