客户侧能力:RTC、开机锁键与 BLE 协议收敛

1、新增 usr_periph RTC,DEVICEINFO 自动对时;对外精简为 get_time(sys_time*),开发板 RTC 时钟改用 LRC
2、iokey 开机锁键改为公开 start/stop 接口,板级宏 TCFG_IOKEY_BOOT_LOCK_ENABLE 可关闭
3、对齐模组 BLE 收发/组包与公开 API,更新 libusr_le_code.a;Release 包命名调整为 JBao_JL7016_SOC_SDK_Vx.x.x
This commit is contained in:
2026-08-19 15:26:35 +08:00
parent 3e9fb2cd06
commit aa724c6758
21 changed files with 1118 additions and 600 deletions
+34 -35
View File
@@ -205,42 +205,41 @@ int ble_proto_unpack(const uint8_t *buf, size_t len, ble_proto_packet_t *pkt)
pkt->bytes_data = (pkt->device_bytes_len > 0) ? p : NULL;
printf("cmd = %d", pkt->cmd);
printf("reserved = %d", pkt->reserved);
printf("gateway_int_cnt = %d", pkt->gateway_int_cnt);
printf("device_int_len = %d", pkt->device_int_len);
printf("device_str_len = %d", pkt->device_str_len);
printf("device_bytes_len = %d", pkt->device_bytes_len);
// printf("cmd = %d", pkt->cmd);
// printf("reserved = %d", pkt->reserved);
// printf("gateway_int_cnt = %d", pkt->gateway_int_cnt);
// printf("device_int_len = %d", pkt->device_int_len);
// printf("device_str_len = %d", pkt->device_str_len);
// printf("device_bytes_len = %d", pkt->device_bytes_len);
/* int_data 指向 buf 内部,地址未必 4 字节对齐,
* 不能直接解引用 int32_t*(对齐访问会触发硬件异常);
* 必须按字节读取,用 get_be32 还原数值 */
if (pkt->int_data && pkt->device_int_len >= 4) {
const uint8_t *ip = (const uint8_t *)pkt->int_data;
printf("int_data = ");
for (uint16_t i = 0; i < pkt->device_int_len / 4u; i++) {
printf("%08X ", (unsigned int)get_be32(ip + (uint32_t)i * 4u));
}
printf("\n");
}
/* str_data / bytes_data 不保证有 '\0',用 printf_buf 打印 hex */
if (pkt->str_data && pkt->device_str_len > 0) {
printf("str_data = ");
for (size_t i = 0; i < pkt->device_str_len; i++) {
printf("%02X ", *(pkt->str_data + i));
}
printf("\n");
}
if (pkt->bytes_data && pkt->device_bytes_len > 0) {
printf("bytes_data = ");
for (size_t i = 0; i < pkt->device_bytes_len; i++) {
printf("%02X ", *(pkt->bytes_data + i));
}
printf("\n");
}
printf("crc = %04X", crc_recv);
printf("\n");
// /* int_data 指向 buf 内部,地址未必 4 字节对齐,
// * 不能直接解引用 int32_t*(对齐访问会触发硬件异常);
// * 必须按字节读取,用 get_be32 还原数值 */
// if (pkt->int_data && pkt->device_int_len >= 4) {
// const uint8_t *ip = (const uint8_t *)pkt->int_data;
// printf("int_data = ");
// for (uint16_t i = 0; i < pkt->device_int_len / 4u; i++) {
// printf("%08X ", (unsigned int)get_be32(ip + (uint32_t)i * 4u));
// }
// printf("\n");
// }
// /* str_data / bytes_data 不保证有 '\0',用 printf_buf 打印 hex */
// if (pkt->str_data && pkt->device_str_len > 0) {
// printf("str_data = ");
// for (size_t i = 0; i < pkt->device_str_len; i++) {
// printf("%02X ", *(pkt->str_data + i));
// }
// printf("\n");
// }
// if (pkt->bytes_data && pkt->device_bytes_len > 0) {
// printf("bytes_data = ");
// for (size_t i = 0; i < pkt->device_bytes_len; i++) {
// printf("%02X ", *(pkt->bytes_data + i));
// }
// printf("\n");
// }
// printf("crc = %04X", crc_recv);
// printf("\n");
return BLE_PROTO_OK;
}