Neoway_N58 开发笔记

笔记自用 仅供参考

0 一些开发资料

有方官网 https://cn.neoway.com/productDocumentation.html

1 开发流程

下载N58开发包

  1. Cat.1_OpenCPU开发文档 N58的一些资料,主要是软件资料。0-Cat.1_OpenCPU开发文档\3-SDK开发指南\Neoway_Cat.1_OpenCPU_SDK_开发指南_V1.0.pdf 和 Neoway_Cat.1_OpenCPU_API说明_V3.2.pdf 这两个文档,分别是模组的SDK使用说明和API说明文档
  2. N58-CB_OPEN 同上,主要是硬件相关资料
  3. Driver&Tools 开发工具,烧录软件、升级包制作软件、usb驱动等
  4. PAC 官方固件,N58-R08-STD-OE_V43-004.pac 为底层包,使用sdk开发时,新模组必须烧录一次
  5. core_sdk.7z 官方sdk开发环境 nwy_opencpu.bat 为编译脚本
开发包目录

开发包目录

1.1 编译

执行 nwy_opencpu.bat 后,在目录 core_sdk\out\appimage_release\hex 下找到 app.pac 即为编译结果

1.2 烧录

点击第一个按钮选择刚才编译好的 app.pac 包,点击第三个按钮开始烧录

烧录工具

烧录工具

注意
开发板以boot模式启动才能烧录,烧录完成需要重启

1.3 远程升级

实现思路:通过mqtt将升级信号以及ftp地址发送给设备,设备从ftp服务器上下载升级包,实现远程升级

1.3.1 差分升级包制作(仅 APP)

  1. 将当前使用的底层固件文件分别存放到 old 及 new 目录文件夹下(不升级模块的底层固件)
  2. 将待升级 APP 文件和目标版本的 APP 文件分别放到 old 和 new 文件夹下
  3. 以文本方式打开 startup.bat 脚本,并按如下所示修改对应文件的名称。如果需要制作固件的差分 包,修改 1 中相应的固件名称即可
差分升级工具

差分升级工具

startup.bat

startup.bat

  • 1 === 当前使用的底层固件文件名称
  • 2 === 旧的 APP 文件名称
  • 3 === 新的 APP 文件名称
  • 4 === 产出的差分包文件名称
注意
只升级 APP 时,待升级底层固件与目标底层固件文件名称需要一致

1.3.2 全量升级包制作

就是 core_sdk\out\appimage_release\hex 目录下的 app.bin

1.3.3 bat脚本

差分升级和全量升级分别将注释的代码打开,并且修改差分全量升级配置

  • LOCAL_FILE_NAME 升级包名称
  • IS_FULL 0-差分 1-全量
  • FTP_REMOTE_PATH ftp目录
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
@echo off
cls
set script_path=%~dp0
:: 如果没有找到 "FAILED",则继续执行
:: 设置 WinSCP 路径,用户名,密码,服务器地址
set WINSCP_PATH="D:\WinSCP\WinSCP.com"
:: ftp配置
set FTP_USERNAME=ftpuser
set FTP_PASSWORD=ftptest
set FTP_HOST=*
set FTP_PORT=21

:: 设置本地和远程文件路径
:: 差分升级
set LOCAL_FILE_PATH="D:\clionproject\core_sdk\1.0.2_1.0.3_up.pac"
:: 全量升级
:: set LOCAL_FILE_PATH="D:\clionproject\core_sdk\out\appimage_release\hex\app.bin"

:: 差分全量升级配置
set LOCAL_FILE_NAME=1.0.2_1.0.3_up.pac
set IS_FULL=0
set FTP_REMOTE_PATH=/

echo FTP_PORT is %FTP_PORT%
:: 如果没有找到 "FAILED",则继续执行
:: 设置 WinSCP 路径,用户名,密码,服务器地址
:: 使用WinSCP上传文件
%WINSCP_PATH% /command ^
    "open ftp://%FTP_USERNAME%:%FTP_PASSWORD%@%FTP_HOST%:%FTP_PORT%" ^
    "put %local_file_path% %remote_file_path%" ^
    "exit"
	
:: 检查上传是否成功
if %ERRORLEVEL% neq 0 (
    echo Upload failed.
    exit /b 1
) else (
    echo Upload successful.
)

:: mqtt配置
set MOSQUITTO_PATH="D:\mosquitto\mosquitto_pub.exe"
set MQTT_HOST=*
set MQTT_PORT=18830
:: set MQTT_USERNAME=hello
:: set MQTT_PASSWORD=hello
:: 设置默认设备 IMEI
set DEFAULT_DEVICE_ID=863781055284971
:: 使用传入参数,如果没有传入参数,则使用默认值
if "%1"=="" (
    set MQTT_TOPIC=/dev/cmd/%DEFAULT_DEVICE_ID%
) else (
    set MQTT_TOPIC=/dev/cmd/%1
)
set MQTT_MESSAGE="{\"cmd\":\"update\",\"param\":{\"server\":\"%FTP_HOST%\",\"port\":%FTP_PORT%,\"username\":\"%FTP_USERNAME%\",\"passwd\":\"%FTP_PASSWORD%\",\"filename\":\"%LOCAL_FILE_NAME%\",\"isfull\":%IS_FULL%}}"

set MQTT_CLIENT_ID=zxy-pc
set MQTT_COMPILE_TIME="{\"cmd\":\"compile_time\"}"
@REM set MQTT_COMPILE_TIME_TOPIC=/dev/reply/%1

@REM %MOSQUITTO_PATH% --help
@REM start cmd /k "%MOSQUITTO_PATH% -h %MQTT_HOST% -p %MQTT_PORT% -u %MQTT_USERNAME% -P %MQTT_PASSWORD% -t %MQTT_COMPILE_TIME_TOPIC% -m "%MQTT_COMPILE_TIME%" -d"
%MOSQUITTO_PATH% -h %MQTT_HOST% -p %MQTT_PORT% -t %MQTT_TOPIC% -m "%MQTT_COMPILE_TIME%"  -i %MQTT_CLIENT_ID%  -q 2 -d

%MOSQUITTO_PATH% -h %MQTT_HOST% -p %MQTT_PORT% -t %MQTT_TOPIC% -m "%MQTT_MESSAGE%"  -i %MQTT_CLIENT_ID%  -q 2 -d

echo MQTT SEND FINISH

exit /b 1

2 串口调试

USB连接开发板到电脑,打开SSCOM串口调试工具

  • 端口号 Neoway USB OPEN_CON 查看log输出
  • 端口号 Neoway USB AT 发送AT指令
SSCOM串口调试工具

SSCOM串口调试工具

2.1 AT指令

  • AT+CGSN 查看设备IMEI号
注意
AT指令结尾加回车换行
0%