0 一些开发资料
有方官网 https://cn.neoway.com/productDocumentation.html
1 开发流程
下载N58开发包
- 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说明文档
- N58-CB_OPEN 同上,主要是硬件相关资料
- Driver&Tools 开发工具,烧录软件、升级包制作软件、usb驱动等
- PAC 官方固件,
N58-R08-STD-OE_V43-004.pac
为底层包,使用sdk开发时,新模组必须烧录一次 - 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)
- 将当前使用的底层固件文件分别存放到 old 及 new 目录文件夹下(不升级模块的底层固件)
- 将待升级 APP 文件和目标版本的 APP 文件分别放到 old 和 new 文件夹下
- 以文本方式打开
startup.bat
脚本,并按如下所示修改对应文件的名称。如果需要制作固件的差分
包,修改 1 中相应的固件名称即可
- 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指令
2.1 AT指令