| |
|
开发:
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 说明本文内容来源于调试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 移植libcrypthttps://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 移植ppphttps://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例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |