IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 在hi3518ev300平台移植EC20 -> 正文阅读

[嵌入式]在hi3518ev300平台移植EC20

目录

1 说明

2 使用USB HOST功能

3 EC20/EC25驱动移植与调试

3.1 驱动编译进内核(kernel)

3.2 驱动编译成模块(ko)

3.3 移植libcrypt

3.4 移植ppp

3.5 其他修改

3.6 拨号上网

3.7 使用经验

3.8 未插卡的表现

3.9 使用AT命令查看4G模块的IMEI


1 说明

本文内容来源于调试hi3518ev300的过程中总结的经验。EC20及开发包购买自深圳市时讯捷通讯有限公司。

2 使用USB HOST功能

参考文档:Hi3516E V200R001C01SPC011\Hi3516E V200R001C01SPC011\ReleaseDoc\zh\01.software\board\OSDRV\外围设备驱动 操作指南.doc->2 USB 2.0 DRD操作指南。

海思SDK包里面默认配置了大部分的USB HOST功能,内核配置时需要修改一个地方:

Device Drivers->USB support->DesignWare USB3 DRD Core Support->DWC3 Mode Selection选择”Host only mode”,SDK默认配置为Dual Role mode(这个模式下不能自动识别USB设备)。

以下是自动识别USB设备,挂载USB设备的日志截图:

3 EC20/EC25驱动移植与调试

3.1 驱动编译进内核(kernel)

参考文档:《Quectel_WCDMA<E_Linux_USB_Driver_User_Guide_V1.8.pdf》->3.2. USB Serial Driver for UCxx/EC2x/EGxx/EP06/EM06/BG96/AG35、3.6. Configure Kernel to Support PPP、4 Power Management、5 Test the Module

按照参考文档更改内核文件,

make ARCH=arm CROSS_COMPILE=arm-himix100-linux- menuconfig

选中Device Drivers->USB support->USB Serial Converter support及其子选项USB driver for GSM and CDMA modems为‘*’

选中Device Drivers->Network device support->PPP (point-to-point protocol) support及其子选项为‘*’,如果缺少这个选中操作会出现类似如下错误,

?

make ARCH=arm CROSS_COMPILE=arm-himix100-linux-

make ARCH=arm CROSS_COMPILE=arm-himix100-linux-?uImage

生成的内核文件(uImage)已支持拨号上网功能。

烧入内核文件到板端,启动之后拔插EC20/EC25模块会出现打印信息,如下分别是EC20、EC25的打印,

?

3.2 驱动编译成模块(ko)

参考文档:《Quectel_WCDMA<E_Linux_USB_Driver_User_Guide_V1.8.pdf》->3.2. USB Serial Driver for UCxx/EC2x/EGxx/EP06/EM06/BG96/AG35、3.6. Configure Kernel to Support PPP、4. ?Power Management、5. Test the Module

make ARCH=arm CROSS_COMPILE=arm-himix100-linux- menuconfig

选中Device Drivers->USB support->USB Serial Converter support为’*’,其子选项USB driver for GSM and CDMA modems为‘M’,如果子选项USB driver for GSM and CDMA modems为‘*’则在加载ko文件时出现如下错误:

选中Device Drivers->Network device support->PPP (point-to-point protocol) support及其子选项为‘*’,如果缺少这个选中操作会出现类似如下错误,?

make ARCH=arm CROSS_COMPILE=arm-himix100-linux- M=`pwd`/drivers/usb/serial obj-m=option.o modules

make ARCH=arm CROSS_COMPILE=arm-himix100-linux- M=`pwd`/drivers/usb/serial obj-m=usb_wwan.o modules,会输出如下警告,不会产生影响,

make ARCH=arm CROSS_COMPILE=arm-himix100-linux- M=`pwd`/drivers/usb/serial obj-m=qcserial.o modules

在内核根目录\drivers\usb\serial目录下生成option.ko、usb_wwan.ko、qcserial.ko。

make ARCH=arm CROSS_COMPILE=arm-himix100-linux-

make ARCH=arm CROSS_COMPILE=arm-himix100-linux- uImage

烧入内核,将生成的ko文件拷贝至板端,启动板端之后不会自动创建/dev/ttyUSB*设备文件,依次加载usb_wwan.ko、qcserial.ko、option.ko(后面两个ko依赖前面一个ko)会自动创建/dev/ttyUSB*设备文件,如下所示,

3.3 移植libcrypt

https://sourceforge.net/projects/libcrypt/files/latest/download

pppd可执行程序依赖crypt库文件,如果没有该文件执行时会报如下错误,

修改makefile中的相关变量(CC、CPP、AR),

由于板端/lib文件夹下有crypto共享库,所以先删除它们,rm -rf /lib/libcrypt.so.0 /lib/libcrypt-0.9.33.2.so,将libcrypt.so拷贝至板端/lib目录下,并创建链接文件libcrypt.so.0(ln -s libcrypt.so libcrypt.so.0)。

3.4 移植ppp

https://download.samba.org/pub/ppp/

解压之后进入目录,执行./configure、make CC=arm-himix100-linux-gcc之后即可生成pppd、chat可执行程序。

将pppd、chat放入板端的/usr/sbin目录下,如果放入/bin/目录下可能会遇到如下错误:

这是因为板端/usr/sbin目录下已有chat可执行文件且环境PATH的值中/usr/sbin在/bin之前。

创建/etc/ppp(mkdir -m777 /etc/ppp)、/etc/ppp/peers(mkdir -m777 /etc/ppp/peers),将以下压缩包的文件放入/etc/ppp/peers中,

要保证这些文件为linux格式而非windows文件格式,否则可能会出错。

3.5 其他修改

执行拨号操作之前需要创建/var/lock目录(mkdir /var/lock -p),否则会遇到如下错误,

如果没有/var/run目录则也需要创建该目录(mkdir /var/run -p)。?

3.6 拨号上网

在完成上述操作之后进入/etc/ppp/peers,执行pppd call quectel-ppp &,即可完成拨号入网,获取到IP地址,如下图所示,

此时还不能ping通www.baidu.com,需要在/etc/resolv.conf中追加域名解析才行(echo "nameserver 114.114.114.114" >> /etc/resolv.conf)。

如果想断开网络再重新拨号,执行/etc/ppp/peers/quectel-ppp-kill &,待网络断开之后即可重新执行pppd call quectel-ppp &拨号上网。

3.7 使用经验

网上有说不通运营商的SIM卡,拨号时使用的APN不一样,移动用”cmnet”,联通用”3gnet”,电信用”ctnet”。笔者使用移动SIM卡,使用”cmnet”、”3gnet”、”ctnet”皆可拨号成功上网。

3.8 未插卡的表现

3.9 使用AT命令查看4G模块的IMEI

参考《Quectel_WCDMA<E_Linux_USB_Driver_User_Guide_V1.8.pdf》->2 Products Overview,

?

可以看到/dev/ttyUSB2字符设备用来执行AT命令,可以将执行结果保存在临时文件中,cat /dev/ttyUSB2 > /tmp/IMEI &,echo -e "AT+GSN\r\n" > /dev/ttyUSB2,如下图所示,?

查看SIM卡的ICCID(echo -e "AT+QCCID\r\n" > /dev/ttyUSB2),查看SIM卡的CNUM(echo -e "AT+CNUM\r\n" > /dev/ttyUSB2,物联网卡一般为空)。?

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-07-14 11:05:27  更:2021-07-14 11:05:53 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/27 10:07:59-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计