小熊派4G开发板初体验
开发板硬件资源介绍
前阵子小熊派发布了一款超高性价比的4G开发板(19.8元包邮),但是板子仅限量1000套。小熊派官方给我送了一块,我们一起来学习学习:


板子做得小巧精致,控制核心用的是移远的EC100Y LTE Cat1无线通信模组,该模组可对所有用户开放二次开发;EC100Y LTE Cat1模组两侧座子/排针是E53接口,可接小熊派的E53拓展模块,如:

小熊派4G开发板与其E53接口拓展模块配合来使用就可以做各种丰富的实验。EC100Y LTE Cat1模组下方是一个SIM卡槽,支持全网通。SIM卡卡槽左侧预留了几个排针孔,连着两个串口,可根据需要焊接排针来使用。板子顶部是一个小辣椒天线。板子左下角有一个摄像头接口与一个音频输入/输出接口。板子右下角是4个按键:BOOT按键、RESET按键、POWER按键、用户按键。板子最下方是一个USB口。
开发板入网测试
1、SIM卡槽插入一张手机卡
SIM卡插入一张手机卡,支持全网通,我这里用的是移动4G卡。
2、串口助手发送AT指令进行测试
AT+CPIN? : 查询SIM卡状态
AT+CSQ : 查询信号质量
AT+CGATT? : 查询是否附着网络


以上图片是入网成功的情况,如果不成功则需要检查SIM卡有没有插反、COM号有没有选对等等。
开发板OPENMCU开发
OPENMCU是一种以模块作为主处理器的应用方式。这里就是把移远的EC100Y LTE Cat1无线通信模组作为主处理器的应用。
1、SDK软件开发包

我们主要需要关注的是ql-application文件夹,一般的开发主要都是在这里面添代码。
2、生成固件
(1)编译环境
一种方法是自己搭建相关编译环境,另一种方法是直接用SDK包里面的编译工具。SDK包中相关的工具在ql-cross-tool中。为了简单省事,我们直接使用SDK包给我们提供的编译工具。
(2)编译流程

图片来自移远官方文档。
可见,固件打包需要用到一些镜像,主要分为四大块:kernel镜像、bootloader镜像、app镜像、其它镜像。
SDK包中有两个编译相关的批处理文件:build.bat、build_all.bat。其中:
build_all.bat:提供整体编译的功能,即双击这个批处理文件就会执行上面四大块镜像的编译及打包生成固件的过程。但一般我们都只是修改APP相关的代码,没有必要全部编译。
所以,SDK包中给我们提供了build.bat批处理文件,我们可以在命令行指定一些参数来执行相应的过程,如:
build.bat bootloader命令:只编译bootloader
build.bat kernel命令 :只编译kernel
build.bat app命令 :只编译app
build.bat firmware命令 :生成固件包
因为我们平时开发基本上只是修改了app,所以大多数情况下都是只需要这两条命令:
build.bat app命令 :只编译app
build.bat firmware命令 :生成固件包
win7环境下在sdk路径下快捷操作进入cmd窗口的方法:

与上面操作相同,在win10环境下可在sdk路径下进入Power shell窗口。当然,win10下也可以进入cmd窗口,然后再进入sdk路径。其中,在Power shell窗口中运行的编译命令与在cmd窗口中运行的编译命令有点不一样,在Power shell窗口中需要加上.\,如:

执行这个编译命令时,会自动找到ql-cross-tool里的编译工具来编译我们的程序。
生成固件操作:

固件存放的路径:

我们并没有编译bootloader与kernel,那么生成固件需要的bootloader镜像与kernel镜像又是从哪来?
其实,SDK包给我们提供了一组出厂的镜像,存放在路径ql-sdk\ql-config\quec-project\aboot\images下:

所以,当我们执行完编译app的命令,并执行生成固件包的命令时,大致过程如下:

当我们需要恢复出厂设置的时候,可以下载出厂自带的那组镜像,此时我们需要先执行如下清除命令:
build.bat kernel/bootloader/app clean命令
分别清除这三大模块编译生成的一些文件,然后再打包生成固件。
(3)实操:输出helloworld实验
sdk包中已经给我们做好了一个hello例程:

一般printf都是重定向到串口,小熊派4G开发板也有引出debug串口的排针孔,我们可以焊接排针来使用;但是小熊派这里给我们提供了另一种更方便的方法,重新封装一个打印函数,打印信息通过USB口输出。
还需要注意的是Makefile文件的修改。这里需要修改两个Makefile文件,一个是ql-sdk\ql-application\threadx\interface\init\example下的Makefile文件:

另一个是ql-sdk\ql-application\threadx\下的Makefile文件:

编译、生成固件前面已经介绍过了。下面看一下如何下载固件到板子里:
打开aboot工具,找到我们编译生成的.zip后缀的固件,点击start:



下载成功,点击back返回。然后按下板子的RESET键复位板子。


这里需要随意发送一串字符串触发我们的输出,至于为什么要这样,后续还需研究研究。另外,有些电脑可能识别不出这个USB串行设备,那打印输出的信息就没办法从USB口输出。我有两台电脑,刚开始用另一台开发,发现一直识别不出这个USB串行设备,各种重启、重装驱动的方法也都试过,还是没用。然后我换用另一台电脑,另一台电脑竟然可以识别。所以可能原因有:
①电脑USB口输出电流不足。小熊派这个USB口的输入的电流有一定的要求,电脑的USB口输出的电流不足板子可能就不正常;
②系统的问题。我一台电脑装的是win7、另一台电脑装的是win10。装win10的那台电脑可以正常识别这个USB串行设备,win7的那一台识别不了。
(4)实操:LED实验
我们创建一个example_led.c文件,与上面的example_helloworld.c放在同一个路径下,并编写如下代码:
#include "ql_application.h"
#include "ql_gpio.h"
#include <stdio.h>
/* led配置表 */
static quec_gpio_cfg_t led_gpio_cfg[] =
{
/*---引脚号-----------引脚方向---------引脚边沿--------内部上下拉--------引脚电平---*/
{GPIO_PIN_NO_75, PIN_DIRECTION_OUT, PIN_NO_EDGE, PIN_PULL_DISABLE, PIN_LEVEL_LOW},
// 其它GPIO配置......
};
/* led测试任务 */
static void led_test(void * argv)
{
/* 用户LED引脚初始化 */
ql_gpio_init(led_gpio_cfg[0].gpio_pin_num, led_gpio_cfg[0].pin_dir, led_gpio_cfg[0].pin_pull, led_gpio_cfg[0].pin_level);
while(1)
{
ql_gpio_set_level(led_gpio_cfg[0].gpio_pin_num, PIN_LEVEL_LOW);
ql_rtos_task_sleep_s(1);
ql_gpio_set_level(led_gpio_cfg[0].gpio_pin_num, PIN_LEVEL_HIGH);
ql_rtos_task_sleep_s(1);
}
}
application_init(led_test, "led_test", 2, 2);
这里需要注意的是:这里的引脚号并不是原理图上标的(原理图上标的是引脚名)。每个引脚都有好几种模式/功能,我们需要查看《Quectel_EC100Y_QuecOpen硬件设计手册V1.0.pdf》的功能复用表查看真正的引脚号:

这里我们创建了一个led配置表,这样方便添加、修改LED的配置。创建表的形式有时候更清晰一些,关于表驱动的相关文章:
修改同目录下的Makefile文件:

编译、生成固件,下载固件,可以看到LED闪烁的现象。
小熊派4G开发板初体验的更多相关文章
- 小熊派IoT开发板系列教程正式发布——免费学习
[摘要] 小熊派开源社区针对小熊派IoT开发板首次规划了小熊派未来的系列教程.从基础到进阶的设计,可适应具有不同基础的开发者,通过该系列教程的学习,开发者能够轻松掌握IoT产品的开发.该系列教程包括单 ...
- 迅为iTOP-4418嵌入式开发板初体验
iTOP-4418开发板预装 Android4.4.4 系统, 支持9.7 寸.7 寸.4.3 寸屏幕. 参数:核心板参数 尺寸 50mm*60mm高度 核心板连接器为1.5mmCPU ARM Cor ...
- MEF 插件式开发 - WPF 初体验
原文:MEF 插件式开发 - WPF 初体验 目录 MEF 在 WPF 中的简单应用 加载插件 获取元数据 依赖注入 总结 MEF 在 WPF 中的简单应用 MEF 的开发模式主要适用于插件化的业务场 ...
- 开发实践丨用小熊派STM32开发板模拟自动售货机
摘要:本文内容是讲述用小熊派开发板模拟自动售货机,基于论坛提供的工程代码,通过云端开发和设备终端开发,实现终端数据在的华为云平台显示. 本文内容是讲述用小熊派开发板模拟自动售货机,基于论坛提供的工程代 ...
- ASP.NET2.0组件控件开发视频 初体验
原文:ASP.NET2.0组件控件开发视频 初体验 ASP.NET2.0组件控件开发视频 初体验 录了视频,质量不是很好,大家体验下.我会重新录制的 如果不清楚,可以看看http://v.youku. ...
- x86 版的 Arduino Intel Galileo 开发板的体验、分析和应用
1.前言 在今年(2013)罗马举办的首届欧洲 Make Faire 上,Intel 向对外发布了采用 x86 构架的 Arduino 开发板:Intel Galileo.这无疑是一个开源硬件领域的重 ...
- [6818开发板]八核开发板|4G开发板|GPS开发板|嵌入式开发平台
IMX6开发板(基本型):960元 IMX6开发板(豪华型):1460元 S5P4418 核心板可以无缝支持核心系统S5P6818,并保持底板设计不变,将兼顾更高端 的应用领域,为项目和产品提供更好的 ...
- TMDXEVM6678L EVM开发板初使用(1)
1. 板子上电风扇转个不停,震动很大. 2. 有点懵逼,第一步干啥,首先安装板子的软件开发包,资料下载地址http://www2.advantech.com/Support/TI-EVM/6678le ...
- 迅为4412全新升级版|3G开发板|4G开发板
iTOP-Exynos4412开发板采用 Exynos4412的主芯片,具有更高的主频和更丰富外设,配置 2GB 双通道 DDR3的内存及 16GB 存储,支持3G/G模块.GPS模块.陀螺仪.HDM ...
随机推荐
- java实现第七届蓝桥杯搭积木
搭积木 题目描述 小明最近喜欢搭数字积木, 一共有10块积木,每个积木上有一个数字,0~9. 搭积木规则: 每个积木放到其它两个积木的上面,并且一定比下面的两个积木数字小. 最后搭成4层的金字塔形,必 ...
- JSP+SSM+Mysql实现的学生成绩管理系统
项目简介 项目来源于:https://gitee.com/z77z/StuSystem 本系统是基于JSP+SSM+Mysql实现的学生成绩管理系统.主要实现的功能有教师管理.学生管理.课程管理.学生 ...
- httpd解析php的小贴士
以前使用php的时候, 都是直接用nginx和php对接的, 极少是用apache去对接, 但是最近在用httpd测试WordPress的时候, 发现一个有趣的问题, php不用启动也能直接去解析ph ...
- jQuery实现打飞机游戏
玩法介绍:不同样式的飞机出来其它飞机会暂停飞行且处于无敌状态,子弹对它无效,你操纵的飞机不能碰到任何飞机,发出的子弹可以攻击正在飞行的飞机,每击落一架飞机会记录分数,你操纵的飞机碰到其它飞机即为游戏结 ...
- 一个可扩展的弹幕播放器的HTML5实现范例---ABPlayerHTML5
ABPlayerHTML5 是一个简单易懂的现代弹幕魔法播放器.这个项目意在取代基于 Flash 的 ABPlayer,同时也希望能为新一代的HTML5弹幕播放器打造一个实现范例.这个播放器將用相对通 ...
- Swift 界面跳转
iOS开发中界面跳转有两种方式,上下跳转和左右跳转. 上下跳转_TO: let secondViewController = SecondViewController() self.presentVi ...
- vue-toy: 200行代码模拟Vue实现
vue-toy 200行左右代码模拟vue实现,视图渲染部分使用React来代替Snabbdom,欢迎Star. 项目地址:https://github.com/bplok20010/vue-toy ...
- 使用java实现单链表(转载自:https://www.cnblogs.com/zhongyimeng/p/9945332.html)
使用java实现单链表----(java中的引用就是指针)转载自:https://www.cnblogs.com/zhongyimeng/p/9945332.html ? 1 2 3 4 5 6 7 ...
- Happens-Before原则
Java内存模型是通过各种操作来定义的,包括对变量的读/写操作,监视器的加锁和释放操作,以及线程的启动和合并操作.JMM为程序中所有的操作定义了一个偏序关系,称之为Happens-Before.要想保 ...
- mongoDB的基本使用方法
MongoDB 安装(乌班图系统) apt install mongodb mongoDB与sql的对比 SQL术语/概念 MongoDB术语/概念 解释/说明 database database 数 ...