DA14531如何在固件中生成与时间相关的mac和版本号
一. 蓝牙device information service显示固件编译时间
这里我是用序列号的characteristic来显示。
只需要把序列号的characteristic value用宏的方式:
#define APP_DIS_SERIAL_NB_STR (__DATE__" "__TIME__)
#define APP_DIS_SERIAL_NB_STR_LEN (20)
app中显示如下:
二. DA14531中mac地址随着编译时间自动变化
代码如下
#define EXPAND_DATE_CHAR(n) __DATE__[n]//example:May 14 2025
#define EXPAND_TIME_CHAR(n) __TIME__[n]//example:18:06:48
//#define EXPAND_TIMESTAMP_CHAR(n) __TIMESTAMP__[n]//example:Wed May 14 18:06:45 2025static const struct nvds_data_struct nvds_data_storage =
{.lpclk_drift = CFG_NVDS_TAG_LPCLK_DRIFT,//.bd_address = CFG_NVDS_TAG_BD_ADDRESS,.bd_address = { ((EXPAND_TIME_CHAR(3)-'0')*10)+(EXPAND_TIME_CHAR(4)-'0'), //分。((EXPAND_TIME_CHAR(0)-'0')*10)+(EXPAND_TIME_CHAR(1)-'0'), //小时。((EXPAND_DATE_CHAR(4)-'0')*10)+(EXPAND_DATE_CHAR(5)-'0'), //日。EXPAND_DATE_CHAR(2), //月份。an,eb,ar,pr,ay,un,ul,ug,ep,ct,ov,ec分别对应1-12月。EXPAND_DATE_CHAR(1), //月份。an,eb,ar,pr,ay,un,ul,ug,ep,ct,ov,ec分别对应1-12月。EXPAND_DATE_CHAR(10)-'0'//年的最后一位数。},//CFG_NVDS_TAG_BD_ADDRESS,/// Default Channel Assessment Timer duration (5s - Multiple of 10ms).ble_ca_timer_dur = CFG_NVDS_TAG_BLE_CA_TIMER_DUR,/// Default Channel Reassessment Timer duration (Multiple of Channel Assessment Timer duration).ble_cra_timer_dur = CFG_NVDS_TAG_BLE_CRA_TIMER_DUR,/// Default minimum RSSI Threshold - -60dBm.ble_ca_min_rssi = (uint8_t)CFG_NVDS_TAG_BLE_CA_MIN_RSSI,/// Default number of packets to receive for statistics.ble_ca_nb_pkt = CFG_NVDS_TAG_BLE_CA_NB_PKT,/// Default number of bad packets needed to remove a channel.ble_ca_nb_bad_pkt = CFG_NVDS_TAG_BLE_CA_NB_BAD_PKT,
};
三. 版本号随编译自动实现版本号。可以参考如上。
disclaimer:
本 文 仅 代 表 作 者 个 人 观 点 限 制 在 修 改 日 期 前 , 不 代 表 现 在 观 点 。 其 原 创 性 以 及 文 中 陈 述 文 字 和 内 容 未 经 学 术 机 构 或 标 准 组 织 证 实 , 对 本 文 以 及 其 中 全 部 或 者 部 分 内 容 、 文 字 的 真 实 性 、 完 整 生 及 时 性 本 人 不 作 任 何 保 证 或 承 诺 , 请 读 者 仅 作 参 考 , 并 请 自 行 核 实 相 关 内 容 。 仅 供 学 习 参 考 ! 如 有 侵 权 , 请 邮 件 flourishinggarden@outlook.com , 谢 谢 !
copyright:
引 清 注 明 出 处 , 转 载 或 者 引 用 需 注 明 " 转 自 〔 或 引 用 自 〕 FlourishingMind" 字 样 。