开源一个安信可A9g小项目微信小程序定位器项目①如何在windows10上环境搭建,编译烧录代码固件,查看运行日志;

版权声明:本文为博主原创文章,遵循 CC 4.0 BY 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/xh870189248/article/details/100123432

  • 本系列博客学习由非官方人员 半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途。如有不对之处,请留言,本人及时更改。

1、 如何在windows10上环境搭建,编译烧录代码固件,查看运行日志。

2、 GPS模块如何定位经纬度并且上报到MQTT服务器,实现远程查看模块的经纬度。



在这里插入图片描述


一、小项目简介;


     这个小diy项目是空闲时候做出来的,而且准备开源出来,主要功能是实现 在微信小程序上地图定位显示该 GPS模块的信息,想想都刺激啊!!

     先上图,再解释一波:


全部开源(微信端和硬件端):

     关注博文最下面的本人微信号二维码,回复 190828 即可获取本开源工程全部源码​!


     下面是实现原理:

  1. 采用安信可模块 A9G的开发板作为调试硬件,因为它支持 SDK 开发,插着中国移动的2G卡,再插着 GPS模块,可以实现全球定位;
  2. A9G模块可以实现MQTT协议连接,这个也是非常得意的,而且新版SDK支持重连机制;官网的SDK包有很多好玩的demo;
  3. A9G模块上面那个二维码是 IMEI信息,因此我用它作为我们与服务器通讯的主题设置;
  4. MQTT服务器我是自己搭建的,大家可以到我前面的博文参考怎么搭建。当然了,后面我会教大家使用阿里云物联网来实现;
  5. A9G模块定位的GPS出来的定位坐标系不是微信小程序的内置地图的坐标系,所以,需要进一步转换,而我使用依然是腾讯地图的开发服务,这个我后面会详细讲;
  6. 具体的通讯协议和睬坑记录都会在这个博文连载中一一为大家讲述;

二、前言;


    最近半月都没更新博客了,因为新公司的事情比较多,群里有人说我是工作室支持的,才有这么多时间写博客。o((⊙﹏⊙))o. 我竟无语凝噎。我再声明下,这些年的博客都是自己毕业开始写的哈,都是工作和平时学习的笔记,只是笔记较为详细哈!

    因为大学时候未好好玩够2G模块的 SDK 开发,所以出来社会,必须把这个玩下,于是乎,看中了安信可的 A9g 模块,因为它支持SDK内核开发,而且是C语言开发,集成了很多好玩的demo。

    虽然现在 2g网络逐渐减弱,甚至联通都放弃了2g网络,但是有中国移动在坚持,所以,我相信2g网络还是不会被取代的!

    我准备做些安信可GPRS模组片上(SoC)开发SDK C语言版的一些学习历程,空闲之余做一些好玩的demo,开源给大家玩下;

    A9G模块内核是基于RDA8955芯片的。安信可官网有很多关于它的介绍,大家可以去官网看看:

    GPIO、UART、基础信息获取如ICCID、IMEI、IMSI等、SPI、I2C、ADC、GPRS网络(包括基站信息查询)、基站定位(LBS)、socket(TCP/UDP)、dns、SSL/TLS、MQTT、短信、通话、低功耗、GPS、RTC、基站时间同步、FOTA、看门狗、音频播放(如播放MP3)、机智云平台快速接入、阿里云CSDK、其它库如json、NMEA解析库等等;


三、环境搭建;


    如何芯片的学习,搭建环境是第一步,而且也是重要的一步,那么这篇先给大家搭建一个环境和如何烧程序固件进去运行!


第一步:下载CSDTK4.2


    这是编译时候的工具,类似 gcc编译器;文章最下方会有下载链接!

    解压到某个文件夹,比如C:\CSDTK,路径请不要带中文!

    运行CSDTk目录下的 config_env_admin.bat 文件来设置环境变量!那么成功之后,会在我的电脑的环境变量看到如下:

在这里插入图片描述


第二步:下载SDK代码和demo


    这个步骤我弄了好久,讲道理,应该下载成功就是完整的代码,但是即使你下载成功之后,还是需要另外下载一些东西,官网推荐是这样的,因为里面还有一些子模块,需要这样,但是神奇的是,竟然这样也是没拉取子模块下来,还另外自己下载:

git clone --recursive https://github.com/Ai-Thinker-Open/GPRS_C_SDK.git

    因此,我自己创了个仓库,同步我的代码以及SDK工程上去,保证可以正常编译,而且是最新同步官方的,因为这个官方仓库更新代码也是在 8个月前了,所以推论是稳定的了。

    即使有更新,我也会立刻更新上去,希望大家拉取我的仓库就好,一次性下载所有代码:

git clone --recursive https://github.com/xuhongv/GPRS_A9G

第三步:编译demo


    首先,解压下载到的CSDK为GPRS_C_SDK文件夹放到某个目录下,比如 C:\GPRS_C_SDK ,请使用下划线(_)而不是减号(-)。

    然后,进入CSDK文件夹(C:\GPRS_C_SDK),按住shift,在文件夹内空白处鼠标右键单击,选择 cmd 打开或者 powershell 打开,如图:

在这里插入图片描述


    最后,使用 ./build.bat app 或者 build.bat app来编译工程,测试环境是否可用,如果正常,会出现以下结果:

在这里插入图片描述


Tips:


    如果提示NO CSDTK,Please install CSDTK first!,则是环境变量没有生效(在win7下可能会出现),可以重启电脑以生效

    保证环境可以使用后,就可以在CMDpowershell窗口中使用build.bat脚本来编译工程,有以下参数:

  • 使用 ./build.bat $PROJ来编译你的应用模块,如 ./build.batsh app 则是编译app目录下的源码

  • 使用 ./build.bat demo $PROJ 来编译demo目录下的特定例程,比如./build.bat demo gpio

  • 使用 ./build.bat clean $PROJ 清除$PROJ目录的中间文件

  • 使用 ./build.bat clean all 清除所有中间文件

  • 使用 ./build.bat demo $PROJ release 来生成 release 版本,比如./build.bat demo gpio release, 如果最后一个参数不是release,则默认是debug版本, debug版本在死机后会停止运行并可以使用GDB调试,而release版本加入了看门狗功能,在死机时会自动重启系统,所以实际投入使用时请使用release版本以防止出现bug时死机,测试时使用debug版本

    比如:

./build.sh demo gpio

    进行编译,编译会生成一个build目录,编译完成会在hex目录下生成两个格式为 lod 的文件,这就是我们用来下载到开发板的目标文件;


四、如何下载固件进去运行;


    硬件连接:A9G模块的调试下载接口是HST接口,即引脚HST_RX和HST_TX脚分别连接连接USB转串口模块的TX和RX引脚(交叉连接,即HST_RX接TX)!

  • coolwatcher更新到最新版本(coolwatcher在CSDTK文件夹下)

  • 打开CSDTK/cooltools/coolwatcher.exe

  • 左边profiles选项选择8955,右边需要设置lastcomport为连接模块下载调试串口(HST)的端口
    在这里插入图片描述

  • 点击Ok

  • 等待连接成功,出现以下界面

在这里插入图片描述

如果出现连接失败的情况,请参考 coolwatcher 无法连接原因部分

  • 如果第一次使用,需要点击DRY图标,选择名字包含8955 ramrun spi32m .lod的文件(在工程platform/ramrun下或者coolwatcher

  • 只需要设置一次,后面都会记住的

  • 点击下图中的lod图标,选择编译生成的固件,在工程hex目录下.lod格式的文件,首次下载下载文件体积较大的.lod格式文件,后面为了加快下载速度只需要下载体积较小的固件文件即可

  • 点击 download图标,进行下载,正常效果如下图,右下角Command栏会有进度标志;
    在这里插入图片描述

如果下载失败,请参考官网coolwatcher无法下载部分说明;


五、如何查看运行日志;


Tracer基本介绍及使用

  • 查看debug信息:打开Plugins->Active Tracer,界面及功能如下图

在这里插入图片描述

使用前需要设置 Tracer,设置如下如1~6步:

在这里插入图片描述

  • 程序中需要输出调试信息可以调用api_debug.h中的bool Trace(uint16_t nIndex,const char* fmt, ...)函数,其中 nIndex就是对应tracer设置中的MMI 01 ~ MMI 16,即为:可以使用MMI 01 ~ MMI 16过滤日志;

Tracer使用容易遇到的问题

  • 有时候自己期望的调试数据没有显示,有可能是点了右上角的暂停显示最新的按钮,忘了关闭!!
  • 刚开机的时候Trace模块可能还没启动完成,可能会出现开始部分信息没有打印的情况

六、参考资料和个人仓库介绍;


    参考资料:

    因为官网的代码开源仓库,在拉取时候总会出现小问题,初学者可以拉取我的仓库,我的是同步官网最新的,不用担心是否新版代码;

1. 下载代码

git clone --recursive https://github.com/xuhongv/GPRS_A9G

2. 检查代码完整性

下载完后请检查目录platform/csdk目录写是否包含debugrelease目录。如果没有,则是下载方式错误,请仔细阅读第一步下载正确的文件!

3. 搭建编译环境

请移步到官网文档搭建,或者参考我这博文:传送门

4. 编译工程

本仓库包含有官网的demo和我写的demo工程;

编译官方demo步骤:比如编译这个 gpio ,可以cd 到本工程目录,然后:

 ./build.bat demo gpio

编译我写的demo步骤:比如编译这个我分析的这个 微信小程序追踪器 ,可以cd 到本工程目录,然后:

 ./build.bat mycode mini_tracer

七、其他;


另外,不要把我的博客作为学习标准,我的只是笔记,难有疏忽之处,如果有,请指出来,也欢迎留言哈!

  • 玩转esp8266带你飞、加群付费QQ群,不喜的朋友勿喷勿加:434878850
  • esp8266源代码学习汇总(持续更新,欢迎star):https://github.com/xuhongv/StudyInEsp8266
  • esp32源代码学习汇总(持续更新,欢迎star):https://github.com/xuhongv/StudyInEsp32
  • 邮箱联系或者加群联系我,就可以啦!
展开阅读全文

没有更多推荐了,返回首页