--- layout: post comments: true categories: 常用软件 --- ## KEIL使用方法
at$myfota=1,1,"http://110.42.233.58:9999/http/kv3_system_patch_20220901_to_20230621.bin","","" sudo passwd root su root Apache http://124.220.228.228/clm920/ http://124.220.228.228/clm920/kv3_system_patch_20220901_to_20230621.bin {"cmd":"childOta","child":"202308230001","params":{"product":"ITR326A","chipModel":"TI430","newversion":"1.0.02","taskId":"1699367847934091265"}} 升级命令寄存器 64个 128个字节 地址0x61C8 http://110.42.233.58:9999/http/kv3_system_patch_20220901_to_20230621.bin 希望路1108号 1、X86版本 ./config make -j4 make install DESTDIR=/home/hce/workspace/openssl tinglr@tinglr-VirtualBox:~/mqtt/ssl_arm/usr/local/lib$ readelf -h libssl.so tinglr@tinglr-VirtualBox:~/mqtt/ssl_arm/usr/local/lib$ https://www.baimatech.com/bmg700-gateway.html#list20 https://www.baimatech.com/qykzq.html https://www.baimatech.com/bmg800-gateway-pm.html http ://www.mpufire.com/productDetail/306 xzy001 delixi123 "/delixi/gateway/868777054743129/query" a123456 000105940023 000406730111 139.224.239.78 1883 {"cmd":"gatewaySet","params":{"serverAddress":"139.224.239.78","serverPort":1883,"encryption":0}} 204089004474 1.仪表4G网关测试记录更新20240506。 readelf -h libssl.so #arm-linux-gcc -I /home/tinglr/buildroot-2024.02/output/build/libmodbus-3.1.10/src modbustest.c -o modbustest -L /home/tinglr/buildroot-2024.02/output/images/rootfs/lib/ -lmodbus /buildroot$ source output/host/environment-setup sudo apt-get install curl mosquitto-clients mosquitto_pub -d -q 1 -h mqtt.thingsboard.cloud -p 1883 -t v1/devices/me/telemetry -u "Oc6MjYZVeiXUS2S5caiU" -m "{temperature:25}" Oc6MjYZVeiXUS2S5caiU 4G/868777055903912/up source output/host/environment-setup arm-linux-gcc -I /home/tinglr/nuc980/nuc980_buildroot/output/build/libmodbus-3.1.6/src modbustest.c -o modbustest -L /home/tinglr/nuc980/nuc980_buildroot/output/target/usr/lib -lmodbus 220603000122 AT+QIPCSGP=1,1,"3GNET" AT+QIPACT=1 10.218.4.210 AT+QIPOPEN=1,1,"TCP","124.220.228.228",8080,0,1 AT+QIPSEND=1,10 仪表4G网关: 1.DTSFU6606vbm/DDSU6606vbn(R)/DTSU6606vbn(R) 3款电表数据上报/抄读功能。 2.DTSFU6606vbm/DDSU6606vbn(R)/DTSU6606vbn(R) 3款电表拉合闸功能。 CDGA-4G:1.配电4G网关RS485通信测试4800波特率验证。 echo "Hello, UDP!" | nc -u 124.220.228.228 8080 nc -lu 8888 gcc udp.c -o udp 6月 0.8 7月 0.5 8月 0.5 9月 0.5 10月 0.5 11月 0.5 智能电表系统:DDSY606单相预付费电能表(液晶) DTSY606三相四线预付费电能表(液晶) DTS606-1三相四线电子式电能表 DSS606-1三相三线电子式电能表 DDS6606vcirj单相预付费电能表 DDS606vcp单相电子式电能表 DTSY606RH三相四线电子式预付费电能表 DSSY606三相三线预付费电能表 DDS606-1单相电子式电能表 DTSF606三相四线多费率电子式电能表 DDSF606单相多费率电子式电能表 DTSF6606vcn三相四线多费率电能表 DTS6606vcn三相四线电子式电能表 DDSF6606vcn单相多费率电子式电能表 DDSF6606vcp单相多费率电子式电能表 DDSU6606-1单相预付费导轨表(液晶) DTSU6606-1三相预付费导轨表(液晶) DDSU6606后付费导轨表2P DDSU6606vctbr单相电子式电能表(导轨) DDSU6606ctr单相电子式电能表(导轨) DDSU6606cfp单相电子式电能表(导轨) DTSU6606vcrf三相四线电子式电能表 DTSU6606csp三相四线电子式电能表 DDSU6606vctr单相电子式电能表(导轨) 三相四线电子式多费率电能表(导轨) DDSU6606vbn(R)单相电子式电能表(导轨) DTSU6606vbn(R)三相四线电子式电能表(导轨) DTSFU6606csp三相四线电子式多费率电能表(导轨) DTSFU6606三相四线电子式多费率电能表(导轨) DDSU6606后付费导轨表2P DDSU6606单相后付费导轨表2P(液晶) DDSU6606单相后付费导轨表4P(液晶) 数字配电系统:ACB-H.,ACB-A,PD606E,PD606T,PD606U DDSY606单相预付费电能表(液晶) DTSY606三相四线预付费电能表(液晶) DTS606-1三相四线电子式电能表 DSS606-1三相三线电子式电能表 DDS6606vcirj单相预付费电能表 DDS606vcp单相电子式电能表 DTSY606RH三相四线电子式预付费电能表 DSSY606三相三线预付费电能表 DDS606-1单相电子式电能表 DTSF606三相四线多费率电子式电能表 DDSF606单相多费率电子式电能表 DTSF6606vcn三相四线多费率电能表 DTS6606vcn三相四线电子式电能表 DDSF6606vcn单相多费率电子式电能表 DDSF6606vcp单相多费率电子式电能表 DDSU6606-1单相预付费导轨表(液晶) DTSU6606-1三相预付费导轨表(液晶) DDSU6606后付费导轨表2P DDSU6606vctbr单相电子式电能表(导轨) DDSU6606ctr单相电子式电能表(导轨) DDSU6606cfp单相电子式电能表(导轨) DTSU6606vcrf三相四线电子式电能表 DTSU6606csp三相四线电子式电能表 DDSU6606vctr单相电子式电能表(导轨) 三相四线电子式多费率电能表(导轨) DDSU6606vbn(R)单相电子式电能表(导轨) DTSU6606vbn(R)三相四线电子式电能表(导轨) DTSFU6606csp三相四线电子式多费率电能表(导轨) DTSFU6606三相四线电子式多费率电能表(导轨) DDSU6606后付费导轨表2P DDSU6606单相后付费导轨表2P(液晶) DDSU6606单相后付费导轨表4P(液晶) 新一代三相多费率电能表 DTSF606-8多费率电能表-8费率 DSSF606-8多费率电能表-8费率 智能电表系统: 设备主动上报消息 Topic: /delixi/{Type}/{ID}/up 下发控制命令至设备 Topic: /delixi/{Type}/{ID}/down 设备主动获取信息 Topic: /delixi/{Type}/{ID}/query 回复信息给设备 Topic: /delixi/{Type}/{ID}/reply 智能微断系统 设备主动上报消息 Topic: delixi/GW_4G_smartFD/{IMEI}/up 下发控制命令至设备 Topic: delixi/GW_4G_smartFD/{IMEI}/down 设备主动获取信息 Topic: delixi/GW_4G_smartFD/{IMEI}/query 回复信息给设备 Topic: delixi/GW_4G_smartFD/{IMEI}/reply 数字配电系统 基本格式:delixi/{type}/{productkey}/{ID}/{Category} 字段含义: Type: 通信类型;  CDGA-4G  CDGA-WIFI  CDGA-E  direct //直连 productkey: 设备类型;  CDBA  ACB_A  ACB_E  ACB_H  PD //数显表 ID: 设备的唯一标识,比如MAC地址、IMEI等通讯编码;  ID:以太网设备使用MAC地址或设备唯一ID码  ID: 其他通讯方式设备提供唯一标识 Category: Topic分类,如下;  up 设备主动上报消息  down下发控制命令至设备  query设备主动获取信息  reply回复信息给设备 F: copy F:\yugecat1opencpu-master1\out\LV9_08MB_20241210* F:\yugecat1opencpu-master1\tools\aboot del LV9_08MB_20241205* cd F:\yugecat1opencpu-master1\tools\aboot adownload.exe -u -a -s 115200 LV9_08MB_20241210 OTA测试 fota升级分以下几种情况: 1、单独升级app.bin,即单独升级客户应用程序,这选项可直接使用完整包升级 1). 参照fbfmake_full.bat脚本制作完整fota包; 2、单独升级system.img(包含cp、dsp、rf、rd),添加新功能或者解决某些bug需要升级system,此时需要使用差分升级, 1). 参照fbfmake_mini_m.bat脚本制作差分fota包, 该脚本制作的fota包fota升级时不会擦除nvm文件系统分区 2). 参照fbfmake_mini_m_ext_nvm.bat脚本制作差分fota包, 该脚本制作的fota包fota升级时会擦除nvm文件系统分区,主要当第一步制作fota包失败时使用 3、app.bin 和 system.img 一起升级,此时需要使用差分升级, 1). fbfmake_mini_m_with_app.bat脚本制作差分fota包, system差分升级app分区直接覆盖,该脚本制作的fota包fota升级时不会擦除nvm文件系统分区 2). fbfmake_mini_m_with_app_ext_nvm.bat脚本制作差分fota包,system差分升级app分区直接覆盖,该脚本制作的fota包fota升级时会擦除nvm文件系统分区,主要当第一步制作fota包失败时使用 /***************************************************************** * Function: lte_module_fota * Description: * 该函数用于发起fota请求,支持app单独升级,以及差分升级,该差分升级中差分只针对system,即system的差分包+app的完整包。 * Parameters: * mode [in] 0:FTP(默认不支持,需特殊sdk),1:HTTP。 * url [in] fota文件对应的http url。 * username [in] http校验用户名,无用户名时填NULL或者""。 * password [in] http校验密码,无密码时填NULL或者""。 * delay_s [in] fota文件下载校验成功后延迟时间重启。 * 0: 文件下载校验成功后不主动重启进入FOTA升级,任意时刻调用重启接口或者掉电重新上电后都会触发fota升级。 * >0: 文件下载校验成功后,指定时间重启进入fota升级, 单位:秒。 * * fota_cb [in] fota_cb参数(int result, char *msg, void *data): * result: * 0: 文件下载校验成功 * 1: 服务器连接失败 * 2: HTTP请求失败 * 3: 下载的fota包校验失败 * 4: 下载的fota包api检测失败 * 备注:该场景下参照fota说明,使用差分包升级(system+app),大部分场景无需升级sdk版本,特殊场景需要升级sdk对会遇到。 * 说明:app使用了cp不支持api,大部分情况是,随着sdk更新,新的app文件fota升级到已经烧录老版本的模块中,使用上面的差分包升级,使cp和system版本一致。 * 5: 下载的fota包ver检测不匹配 * 备注:该场景下参照fota说明,使用差分包升级(system+app),大部分场景无需升级sdk版本,特殊场景需要升级sdk对会遇到。 * 说明:即app与cp版本不一致,api已检测,单独ver不匹配,大部分场景是可以直接升级app的,但是便于版本管理,还是建议使用上面的差分包升级,使cp和system版本一致。 * 6: 其他错误 * msg: * 一些状态提示 * data: * api传入最后一个参数 * data [in] 传入回调函数的data参数: * Return: * 0 执行成功 * -1 执行失败 *****************************************************************/ 1.app.bin完整包升级 1)make生成app.bin文件,放入a文件夹下 2)使用aboot查看app起始地址 eg:0x00005E0000 3)修改confg文件,主要修改APP对应的起始地址Flash_Entry_Address 4)执行fbfmake_full.bat脚本成fbf.bin; 5)将fbf.bin放到http服务器上进fota测试; eg:http://124.220.228.228/clm920/fbf.bin 6)单独app升级验证成功。 2.system.img和app同时升级 1)解压旧的软件包复制system.img 到当前目录。并命名为system_old.img; 2)解压新的软件包复制system.img 和 app.bin 到当前目录。并命名为system_new.img,app.bin; 3)执行fbfmake_mini_m_with_app.bat脚本生成system_patch_with_app.bin; (优先fbfmake_mini_m_with_app.bat制作差分包,如果制作成功,fota升级后不会擦除nvm;如果制作 失败,fbfmake_mini_m_with_app_ext_nvm.bat制作差分文件,fota升级后会擦除nvm。) 4)将system_patch_with_app.bin放到http服务器上fota测试; eg:http://124.220.228.228/clm920/system_patch_with_app.bin 5)system.img和app同时升级验证成功。 http://124.220.228.228/clm920/kv3_system_patch_20220901_to_20230621.bin sudo cp fbf.bin /var/www/html/clm920 ./build.bat -c 1606s -autopkg LV9 sample\5.10-app_Fota LV9_08MB_20241217_154909 copy F:\yugecat1opencpu-master1\out\LV9_08MB_20241217* F:\yugecat1opencpu-master1\tools\aboot del LV9_08MB_20241205* cd F:\yugecat1opencpu-master1\tools\aboot adownload.exe -u -a -s 115200 LV9_08MB_20241217 RS485 pin17 RXD pin18 TXD EN pin18 rs485 pin18 rs485 MQTT测试 F: copy F:\yugecat1opencpu-master1\out\LV9_08MB_202412* F:\yugecat1opencpu-master1\tools\aboot del LV9_08MB_20241205* cd F:\yugecat1opencpu-master1\tools\aboot adownload.exe -u -a -s 115200 LV9_08MB_20241210 #define ADDRESS "ssl://fd.delixi-electric.com:58883" #define CLIENTID "DEV:866804055687261_12345" #define TOPIC "delixi/GW_4G_smartFD/866804055687261/down" #define TOPICUP "delixi/GW_4G_smartFD/866804055687261/up" #define TOPICTELEMETRYUP "v1/gateway/telemetry" #define TOPICQUERY "delixi/GW_4G_smartFD/866804055687261/query" #define TOPICREPLY "delixi/GW_4G_smartFD/866804055687261/reply" #define USERNAME "866804055687261" #define PASSWD "53484136c3304095d7fe27c7a6c921b3" #define QOS 1 #define KEEPALIVE 20 #define TIMEOUT 10000L #define PAYLOAD "hellotinglr1" #define PAYLOADONLINE "{\"cmd\":\"onlineStatus\",\"child\":\"001701100008\",\"params\":{\"online\":1}}" #define PAYLOADMCBON "{\"cmd\":\"switch\",\"child\":\"001701100008\",\"params\":{\"switch\":1}}" #define PAYLOADMCBOFF "{\"cmd\":\"switch\",\"child\":\"001701100008\",\"params\":{\"switch\":0}}" #define ADDRESS2 "ssl://test.delixi-electric.com:8883" #define CLIENTID2 "DEV:866804055687121_12345" #define TOPIC2 "/delixi/gateway/866804055687121/down" #define USERNAME2 "866804055687121" #define PASSWD2 "D570EC3EA4C07F2236CB68CD426A557F" #define QOS2 1 #define KEEPALIVE2 20 #define TIMEOUT2 10000L #define PAYLOAD2 "hellotinglr2" client_fd = mqtt_lease(); client_dm = mqtt_lease(); client_tinglr = mqtt_lease(); mqtt_set_host(client_fd, "124.220.228.228"); mqtt_set_port(client_fd, "1883"); mqtt_set_client_id(client_fd, "asr-mqtt-a5a5"); mqtt_set_clean_session(client_fd, 1); rc = mqtt_connect(client_fd); LOG_PRINTF("%s() mqtt_connect rc code:%d", __FUNCTION__, rc); rc = mqtt_subscribe(client_fd, "test_over_tcp", QOS0, sub_topic_handle1); LOG_PRINTF("%s() mqtt_subscribe rc code:%d", __FUNCTION__, rc); mqtt_set_host(client_dm, "124.220.228.228"); mqtt_set_port(client_dm, "1883"); mqtt_set_client_id(client_dm, "asr-mqtt-a5a5"); mqtt_set_clean_session(client_dm, 1); rc = mqtt_connect(client_dm); LOG_PRINTF("%s() mqtt_connect rc code:%d", __FUNCTION__, rc); rc = mqtt_subscribe(client_dm, "test_over_tcp", QOS0, sub_topic_handle1); LOG_PRINTF("%s() mqtt_subscribe rc code:%d", __FUNCTION__, rc); mqtt_set_host(client_tinglr, "124.220.228.228"); mqtt_set_port(client_tinglr, "1883"); mqtt_set_client_id(client_tinglr, "asr-mqtt-a5a5"); mqtt_set_clean_session(client_tinglr, 1); rc = mqtt_connect(client_tinglr); LOG_PRINTF("%s() mqtt_connect rc code:%d", __FUNCTION__, rc); rc = mqtt_subscribe(client_tinglr, "test_over_tcp", QOS0, sub_topic_handle1); LOG_PRINTF("%s() mqtt_subscribe rc code:%d", __FUNCTION__, rc); 1.定位 Gnss 是否可用 2.flash 操作 3.file 操作 4.文件取划分 下周 makefile自己移植。 5.建工程 建任务。 网关内部技术储备项目进度 本周进度: 1.CLM920 OpenCPU验证MQTT功能,TLS加密/非加密方式连接MQTT服务器完成。 2.测试连接FD/DM/LV服务器,订阅和发布实现MQTT通信正常。 3.验证同时连接3个服务器FD/DM/非加密MQTT服务器可以实现正常通信。 下周计划: 1.CLM920 OpenCPU验证flash操作功能。 2.了解CLM920 OpenCPU文件file读写操作功能。 了解clm920 flash 分区信息,flash操作和文件操作对应空间。 app区域 操作文件, 1.定位 Gnss 是否可用 2.flash 操作 3.file 操作 4.文件取划分 下周 makefile自己移植。 5.建工程 建任务。 6.烧录擦除flash? 2.flash 操作 ************************************************************************************************************************************************************************************ E: copy E:\newGitlab\cdga-4g-clm920lv9-vscode\out\LV9_08MB_2025* E:\newGitlab\cdga-4g-clm920lv9-vscode\tools\aboot del LV9_08MB_2025* cd E:\newGitlab\cdga-4g-clm920lv9-vscode\tools\aboot adownload.exe -u -a -s 115200 LV9_08MB_2025 ************************************************************************************************************************************************************************************ ./build.bat -c 1606s -autopkg LV9 .\sample\4.10-hal_FLASH 将sample文件夹替换成user文件夹 user-application -inc -main.h -app.h ... -src -main.c -app.c ... -bsp -inc -bsp.h ... -src -bsp.c ... -middlewares -scom -inc -scom.h -src -scom.c t-subdevice -inc -subdevice.h -src -subdevice.c ... -utilites -inc-utilites.h -src-utilites.c 文件系统 1.查看文件列表 2.查看文件大小 3.从文件尾写,写好了关闭文件,下次打开读正确变化 问题1.任务的初始优先级。范围0…31,其中0是最高值 优先级,31是最低优先级。如果 OSA_NO_PRIORIT_CONVERSION已启用,优先级范围 默认为旧的0…255范围。 没有搜到 1.OpenCPU CLM920LV9网关软件方案设计。 { "cmd":"ota", "params":{ "product":"CDGA4G", "chipModel":"ASR1606", "moduleModel":"CLM920LV9", "newversion":"1.0.01", "fileSize":"85728", "fileName":"cdga4gv1.0.01.bin", "fileMD5":"xxxxxMD5xxxxxxx", "address":"http://124.220.228.228/clm920/cdga4gV0.0.15.bin", "taskId":"1518043865361477634" } } SmartApp_CDBA_AT32F421K8U7_V3.0.13.bin lv9_system_patch_20250422_to_20250429.bin sudo cp cdga4gv1.0.01.bin /var/www/html/clm920/ cdga4gv1.0.01.bin 1.app.bin完整包升级 1)make生成app.bin文件,放入a文件夹下 2)使用aboot查看app起始地址 eg:0x00005E0000 3)修改confg文件,主要修改APP对应的起始地址Flash_Entry_Address 4)执行fbfmake_full.bat脚本成fbf.bin; 5)将fbf.bin放到http服务器上进fota测试; eg:http://124.220.228.228/clm920/fbf.bin 6)单独app升级验证成功。 V_MODE_LTE4GSendTask: 2.system.img和app同时升级 1)解压旧的软件包复制system.img 到当前目录。并命名为system_old.img; 2)解压新的软件包复制system.img 和 app.bin 到当前目录。并命名为system_new.img,app.bin; 3)执行fbfmake_mini_m_with_app.bat脚本生成system_patch_with_app.bin; (优先fbfmake_mini_m_with_app.bat制作差分包,如果制作成功,fota升级后不会擦除nvm;如果制作 失败,fbfmake_mini_m_with_app_ext_nvm.bat制作差分文件,fota升级后会擦除nvm。) 4)将system_patch_with_app.bin放到http服务器上fota测试; eg:http://124.220.228.228/clm920/system_patch_with_app.bin 5)system.img和app同时升级验证成功。 char* dev_GetSDKVersion(void); char* dev_GetCpVersion(void); { "cmd":"gatewayOta", "params":{ "product":"CDGA4G", "chipModel":"ASR1606", "moduleModel":"CLM920LV9", "newVersion":"1.0.01", "fileSize":"85728", "fileName":"cdga4g.bin", "fileMD5":"EF0438653CD77634", "address":"http://124.220.228.228/clm920/cdga4g.bin", "taskId":"1518043865361477634" } } { "cmd": " gatewayOta ", "params": { "curVersion":"1.0.00", "newVersion":"1.0.01", "resultCode":0, "taskId":"xxxxxxxx" } } { "cmd":"childOta", "child": "xxxxxxx", "params":{ "product":"CDBA", "newVersion":"1.0.01", "fileSize":"85728", "fileName":"SmartApp_CDBA_AT32F421K8U7_V3.0.12.bin", "fileMD5":"EF0438653CD77634", "address":"http://124.220.228.228/clm920/SmartApp_CDBA_AT32F421K8U7_V3.0.12.bin", "taskId":"1518043865361477634" } } { "cmd": "childOta", "child": "xxxxxxx", "params": { "curVersion":"1.0.00", "newVersion":"1.0.01", "progress":0, "resultCode":0, "taskId":"xxxxxxxx" } } { "cmd":"childOta", "child": "007907500016", "params":{ "product":"CDBA", "newVersion":"1.0.01", "fileSize":"85728", "fileName":"SmartApp_CDBA_AT32F421K8U7_V3.0.14.bin", "fileMD5":"EF0438653CD77634", "address":"http://124.220.228.228/clm920/SmartApp_CDBA_AT32F421K8U7_V3.0.14.bin", "taskId":"1518043865361477634" } } 0x2741 设备软件版本 007907500017 不能读 3012 2804 007907500018 能读 2013 007907500016 能读 2013 115200 的偶校验 115200 的无校验 9600 的偶校验 23FF 2537 2751 3404 0x2751 设备通信接口通讯参数 R/W —— 注 4,默认 0 275C 3004 0011 0000 0000 0100 0010 1000 2804 275C 867523077069212 {"cmd":"childSync","params":{"children":[{"sn":"007909380537","type":"MCB_1P"}]}} 007909380537 007907500017 不能读 3012 2804 007907500018 能读 2013 007907500016 能读 2013 FD delixi/GW_4G_smartFD/867523077176066/down {"cmd":"gatewayInfo"} delixi/GW_4G_smartFD/867523077176066/up {"cmd":"gatewayDebug"} 软件评审 断电 软件主频 重要流程图 代码走读 静态代码扫描 工作量 编译报警信息 aq3天 解决查重问题 {"cmd":"downloadFile","params":{"fileName":"SmartApp_CDBA_AT32F421K8U7_V3.0.14.bin","address":"http://124.220.228.228/clm920/SmartApp_CDBA_AT32F421K8U7_V3.0.14.bin"}} {"cmd":"deleteFile","params":{"fileName":"SmartApp_CDBA_AT32F421K8U7_V3.0.14.bin"}} {"cmd":"viewFile"} { "cmd":"rs485UpgradeFile", "child": "007907500016", "params":{ "fileName":"SmartApp_CDBA_AT32F421K8U7_V3.0.14.bin", } } cJSON_ParseDownloadFileObjects cJSON_ParseDeleteFileObjects cJSON_ParseRs485UpgradeFileObjects GatewayFileSystemOps_Typedef GatewayFileSystemOps_Typedef fileSystemOps;