MN316_OPEN(NBIOT)物联网模块环境搭建

2023-05-16

因为项目的需要,这里要使用NBIOT,踩了一些坑,这里总结一下!
在这里插入图片描述

编译

官方给的SDK如下:
在这里插入图片描述
按照说明,在该目录下直接运行如下指令:".\build.bat dlvs_h0 demo"即可成功编译,但是我编译的时候不成功,报错如下:
在这里插入图片描述
最后发现是因为我的目录太深的原因造成的,把"MN316_OpenCPU(R14)_Standard_1.0.0.2203241036_release"文件夹重命名为"SourceCode"即可编译成功,如下:

PS F:\Documentation\Desktop\20221010\MN316_OPEN\SourceCode> .\build.bat clean
clear compiled files
PS F:\Documentation\Desktop\20221010\MN316_OPEN\SourceCode> .\build.bat dlvs_h0 demo
compile examples/adc/cm_demo_adc.c
compile examples/asocket/cm_demo_asocket.c
compile examples/ctwing/cm_demo_ctwing.c
compile examples/demo_main/cm_demo_main.c
compile examples/flash/cm_demo_flash.c
compile examples/gpio/cm_demo_gpio.c
compile examples/http/cm_demo_http.c
compile examples/i2c/cm_demo_i2c.c
compile examples/modem/cm_demo_modem.c
compile examples/mqtt/cm_demo_mqtt.c
compile examples/net/cm_demo_net.c
compile examples/onenet/cm_demo_onenet.c
compile examples/onenet/cm_demo_onenet_fota.c
compile examples/os/cm_demo_os.c
compile examples/ota/cm_demo_ota.c
compile examples/pm/cm_demo_pm.c
compile examples/pwm/cm_demo_pwm.c
compile examples/spi/cm_demo_spi.c
compile examples/sys/cm_demo_sys.c
compile examples/timer/cm_demo_timer.c
compile examples/uart/cm_demo_uart.c
compile src/cm_lib/cyclequeue/cm_cyclequeue.c
compile src/cm_lib/misc/cm_misc_bcd.c
compile src/cm_lib/misc/cm_misc_crc.c
compile src/cm_lib/misc/cm_misc_str.c
compile src/cm_lib/misc/cm_misc_time.c
Start link...
Creating flash.bin...
Creating ram.bin...
Creating .size...
Creating .lst...
Creating .dumpelf...
Calculating size...
   text    data     bss     dec     hex filename
 528248    4188   22644  555080   87848 xinyiNBSoc_M3.elf
2022-10-11 16:06:26,403 - xy_m3_packer - INFO - start generating arm allinone
2022-10-11 16:06:26,406 - xy_m3_packer - INFO - arm allinone generated
Moving files...
Done!!!
PS F:\Documentation\Desktop\20221010\MN316_OPEN\SourceCode>

vscode也是可以编译成功过的:
在这里插入图片描述

这里还要总结其他的坑:
1.官方提供的SDK是非常完善的,并不需要自己额外安装gcc,因为我之前使用果gcc来编译ARM内核文件并且有10.3.1的版本,这里看到readme有要说用3.8.1的说明,所以自己去安装了3.8.1,最后发现并没有什么作用,SDK默认使用自带的gcc了.
在这里插入图片描述
2.工程目录不能够有中文或者其他字符,只能够有英文或者数字!

这里上传本文到此所有的资料:https://download.csdn.net/download/chengdong1314/86747456
我靠了,发现上面的资料有病毒,这里删除文件夹从新上传:tools\toolchain\gcc\share:https://download.csdn.net/download/chengdong1314/86812590

烧录下载

电路板上电后实物图如下,烧录的过程中需要用到如下图的电源开关和烧录按键:
在这里插入图片描述

合并文件

双击打开工具:"MN316_OPEN\Logview_1.3.210601.0_CMVer1.3.6\LogView.exe"可以看到如下界面,下载之前要先合并文件,进入文件合并的功能界面:
在这里插入图片描述
选择合并的文件夹,这个工具编译选项不同就会有不同的文件夹,这里选择:F:\Study_Work\MN316_OPEN\MN316_OpenCPU(R14)_Standard_1.0.0.2203241036_release\out\images\DLVS\H0
在这里插入图片描述
选择输出文件名(和上面的选择文件夹的目录中有一个mimgx的文件名):
在这里插入图片描述
点击开始合并,等待合并成功:
在这里插入图片描述

Changing secondary_bootloader_prime.bin
secondary_bootloader_prime.bin Changed
Changing secondary_bootloader_backup.bin
secondary_bootloader_backup.bin Changed
Changing flash.bin
flash.bin Changed
Changing ram.bin
ram.bin Changed
Changing dram32_3ffd3800_2C800.bin
dram32_3ffd3800_2C800.bin Changed
Changing iram32_40000000_40000.bin
iram32_40000000_40000.bin Changed
Changing sram32_50000000_C000.bin
sram32_50000000_C000.bin Changed
Changing flash32_5102A000_85000.bin
flash32_5102A000_85000.bin Changed
Changing FACTORY_NV.hex
FACTORY_NV.hex Changed
Changing rfnv.hex
rfnv.hex Changed
Packaging secondary_bootloader_prime.bin
Packaging secondary_bootloader_backup.bin
Packaging flash.bin
Packaging ram.bin
Packaging dram32_3ffd3800_2C800.bin
Packaging iram32_40000000_40000.bin
Packaging sram32_50000000_C000.bin
Packaging flash32_5102A000_85000.bin
Packaging FACTORY_NV.hex
Packaging rfnv.hex
secondary_bootloader_prime.bin Generating Key
secondary_bootloader_backup.bin Generating Key
flash.bin Generating Key
ram.bin Generating Key
dram32_3ffd3800_2C800.bin Generating Key
iram32_40000000_40000.bin Generating Key
sram32_50000000_C000.bin Generating Key
flash32_5102A000_85000.bin Generating Key
FACTORY_NV.hex Generating Key
rfnv.hex Generating Key
secondary_bootloader_prime.bin Writing Header
secondary_bootloader_backup.bin Writing Header
flash.bin Writing Header
ram.bin Writing Header
dram32_3ffd3800_2C800.bin Writing Header
iram32_40000000_40000.bin Writing Header
sram32_50000000_C000.bin Writing Header
flash32_5102A000_85000.bin Writing Header
FACTORY_NV.hex Writing Header
rfnv.hex Writing Header
secondary_bootloader_prime.bin Writing Data
secondary_bootloader_backup.bin Writing Data
flash.bin Writing Data
ram.bin Writing Data
dram32_3ffd3800_2C800.bin Writing Data
iram32_40000000_40000.bin Writing Data
sram32_50000000_C000.bin Writing Data
flash32_5102A000_85000.bin Writing Data
FACTORY_NV.hex Writing Data
rfnv.hex Writing Data
Merse File Success

到这里合并文件的工具就结束了!

烧录代码

切换到"文件下载"界面,选择好串口,然后选择刚才合并的文件:
在这里插入图片描述
接下来要结合硬件做如下动作:
1.按照"烧录按键"的时候先关闭电源开关
2.然后点击"开始下载"按钮即可看到进度条开始走动了
在这里插入图片描述
3.等待两个进度条都走完代表下载成功了
在这里插入图片描述

Waiting
Start Check Baudrate
Check Baudrate OK
Board Version 0x202
Start Check OTP
Check OTP Finish
start down secondBoot
Update Header 
down secondBoot success
Erasing Flash 
Erase Addr From 0X27012000 to 0X270195B4
Erase Success 
Erase Addr From 0X2701E000 to 0X270255B4
Erase Success 
Erase Addr From 0X2711F000 to 0X2718B65C
Erase Success 
Erase Addr From 0X2718C000 to 0X271A1970
Erase Success 
Erase Addr From 0X270AF000 to 0X270BA090
Erase Success 
Erase Addr From 0X270D3000 to 0X27112FBC
Erase Success 
Erase Addr From 0X27113000 to 0X2711EE4C
Erase Success 
Erase Addr From 0X2702A000 to 0X2709E228
Erase Success 
Erase Addr From 0X27000000 to 0X27002FFF
Erase Success 
Erase Factory Nv
Erase Addr From 0X27003000 to 0X27005FFF
Erase Success 
Erase Flash Sucess 
Start Initializing Flash 
Initializing Flash Finish
Start DownloadFileInfo
downloading flash.bin
    Total length: 0x6C65C  addr 2711f000 2711f000
Update Header 
downloading ram.bin
    Total length: 0x15970  addr 2718c000 2001d000
Update Header 
downloading dram32_3ffd3800_2C800.bin
    Total length: 0xB090  addr 270af000 3ffd3800
Update Header 
downloading iram32_40000000_40000.bin
    Total length: 0x3FFBC  addr 270d3000 40000000
Update Header 
downloading sram32_50000000_C000.bin
    Total length: 0xBE4C  addr 27113000 20000000
Update Header 
downloading flash32_5102A000_85000.bin
    Total length: 0x74228  addr 2702a000 2702a000
Update Header 
downloading secondary_bootloader_backup.bin
    Total length: 0x75B4  addr 2701e000 20010000
Update Header 
downloading secondary_bootloader_prime.bin
    Total length: 0x75B4  addr 27012000 20010000
Update Header 
DownloadFileInfo Finish
WriteNv 27003000 4096
Update Factory Nv
Update Sha
Update Sha Checksum
DownloadFile Success
hh:0 mm:28 ss:781

测试

这里打开串口助手,波特率为9600,然后从新运行代码(上下电)可以看到如下打印:
在这里插入图片描述
这里按照上图的信息发送命令"CM:ADC"可以看到开发板回应如下:
在这里插入图片描述
如下图把手按在热敏电阻上再次发送命令可以看到ADC值有变化了:

在这里插入图片描述
在这里插入图片描述
到这里简单的ADC测试流程结束!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MN316_OPEN(NBIOT)物联网模块环境搭建 的相关文章

随机推荐

  • python open按行读取txt 去掉\n

    加 strip 39 n 39
  • OOQP安装指南

    文章目录 1 OOQP的github链接 xff1a 2 准备工作 xff1a 3 安装OOQP xff1a 4 简单使用 xff1a 1 OOQP的github链接 xff1a ompl的官网网址为 xff1a https github
  • 海康摄像头实时显示与字符叠加详解

    1 说明 文章详细叙述了海康摄像头的两种实时显示方法 基于SDK 解码显示和基于数据流回调显示 xff0c 并且讲述了这在两种显示方法下如何往画面添加字符和图像 xff0c 最后比较了这两种方法的优劣 文章全程给以详细的程序说明 xff0c
  • Proto3序列化协议

    Proto3序列化协议 简介 对于互联网应用来说 xff0c 客户端 客户端 客户端 服务端之间需要数据的交互 xff0c 其数据传输是二进制流的方式在互联网上传输 xff0c 因为需要一种手段将数据对象编码为一种可以在网络上传输的二进制流
  • 一文读懂数据库分库分表

    阅读此文你将了解 xff1a 什么是分库分表以及为什么分库分表如何分库分表分库分表常见几种方式以及优缺点如何选择分库分表的方式 数据库常见优化方案 对于后端程序员来说 xff0c 绕不开数据库的使用与方案选型 xff0c 那么随着业务规模的
  • 从操作系统漫谈GOLang GPM模型

    前言 本文从操作系统谈起 xff0c 简单介绍操作系统基本知识 xff0c 引出进程 线程调度的基本原理和基本模型 xff0c 然后从0到1设计Golang调度器 xff0c 通过方案的逐步演进升级 xff0c 可以了解到GPM模型设计理念
  • 卡尔曼滤波经典讲解,C++算法实现

    请移步跳转文章排版更加清晰 在学习卡尔曼滤波器之前 xff0c 首先看看为什么叫 卡尔曼 跟其他著名的理论 xff08 例如傅立叶变换 xff0c 泰勒级数等等 xff09 一样 xff0c 卡尔曼也是一个人的名字 xff0c 而跟他们不同
  • 解决linux不能安装g++问题

    问题描述 xff1a Ubuntu如何通过重新安装G 43 43 编译器 xff0c 修复不能安装使用g 43 43 的问题 我刚安装的Ubuntu 14 10的g 43 43 编译器不能使用 xff0c 用sudo apt get ins
  • MySQL系列之源码浅析

    源码才是王道 真正的高手从来不是临场发挥 xff0c 随机应变是外人看来的错觉 1 主函数sql mysqld cc中 xff0c 代码如下 xff1a span class hljs keyword int span main span
  • 卡尔曼算法精讲与C++实现

    在学习卡尔曼滤波器之前 xff0c 首先看看为什么叫 卡尔曼 跟其他著名的理论 xff08 例如傅立叶变换 xff0c 泰勒级数等等 xff09 一样 xff0c 卡尔曼也是一个人的名字 xff0c 而跟他们不同的是 xff0c 他是个现代
  • 腾讯后端面试经验

    终于等来腾讯的面试 4 3号 机试 机试包括选择 xff08 30多 xff09 简答 xff08 2题 xff09 编程 xff08 2 xff09 选择和简答编程分别一小时 xff0c 选择题考的比较广 xff0c 概率 Linux 操
  • Springboot整合摘要式(Digest)身份认证

    百度下来关于springboot整合摘要式省份认证的帖子基本都是说原理的 xff0c 很少有直接的demo xff0c 前些天找到了一个博主写的demo xff0c 但是我只是截图了忘记了博主的地址很抱歉了 下面直接上代码截图 xff1a
  • kalibr相机内参标定优化过程和原理

    在估计出内参之后 xff0c 会进行优化迭代操作 如果是多相机标定 xff0c 在完成内参标定的同时 xff0c 也会完成具有交叉视野相机外参的的标定 初始估计步骤也会进行多相机基线距离的估计 xff0c 用作后续的迭代优化 优化过程如下
  • Curl多线程并发任务实例函数

    function curl post3 url arrs flen for i 61 0 i lt flen i 43 43 foreach arrs i as k 61 gt v tmp str 61 k 34 61 34 v 34 am
  • Linux下原子操作(信号量 自旋锁)的实现原理和底层代码分析

    csdn越改版 xff0c 越丑 开始我们的主题 xff1a Linux下原子操作 xff08 信号量 自旋锁 xff09 的实现原理和底层代码分析 2017年8月27日12 47 02 1 何为原子操作 xff1f 原子操作是什么 xff
  • Linux下用c语言实现发送http请求

    前言 在linux下 xff0c 使用socket进行编程 xff0c 需要到服务器上进行获取数据 xff0c 服务器使用的php编程 xff0c 需要使用http的方式进行获取数据 代码 span class hljs preproces
  • VSCode 的C++编译

    0 参考文档 0 1 官方参考 由于C 43 43 在不同平台上编译使用的编译器不同 xff0c 所以我们先将官网针对不同平台的编译文档摘录出来 xff0c 以便大家参考 xff1a 0 0 1 Linux平台使用GCC 参考 xff1a
  • STM32在子函数中的局部变量数组利用DMA发送无法正确发送数据的问题

    现象 xff1a 在子函数中 xff0c 定义了一个局部变量sendbuf 8 61 1 2 3 4 5 6 7 8 xff0c 然后分别利用普通串口发送函数发送可以正常发送和利用DMA发送 xff0c 并利用串口调试助手查看 xff0c
  • 如何使用Qt插件在Qt中进行ROS开发

    一 前言 本文介绍一种Qt下进行ROS开发的完美方案 xff0c 使用的是ros industrial的Levi Armstrong在2015年12月开发的一个Qt插件ros qtc plugin xff0c 这个插件使得Qt 新建项目 和
  • MN316_OPEN(NBIOT)物联网模块环境搭建

    因为项目的需要 这里要使用NBIOT 踩了一些坑 这里总结一下 编译 官方给的SDK如下 按照说明 在该目录下直接运行如下指令 34 build bat dlvs h0 demo 34 即可成功编译 但是我编译的时候不成功 报错如下 最后发