OTP NVDS次要主要值

⚠️
嗨,...感谢您来论坛。令人兴奋的消息!我们现在正在迁至我们的新论坛平台,将提供更好的功能,并包含在主对话框网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量 - 请发布任何新线程https://www.dialog-seminile.com/support.。我们将在未来几天修复错误/优化搜索和标记。
7个帖子/ 0新
最后一篇
DLO.
离线
最后一次露面:1个月1周前
加入:2017-05-26 16:21
OTP NVDS次要主要值

我想修改Beacon示例以从OTP NVDS中拉动主要值和次要值。

OTP NVDS将在生产(BD地址,主要,次要)期间以不同的值进行编程,以充当各种序列号。

是否需要在nvds_data_struct中添加一个字段来定义主要和次要字段?IE。

struct nvds_data_struct {
uint32_t nvds_validation_flag;//定义哪个字段有效
uint32_t nvds_tag_uart_baudrate; // uart baudrate
UINT32_T NVDS_TAG_DIAG_SW;// diagport配置
uint32_t nvds_tag_diag_ble_hw;// diagport配置
uint16_t nvds_tag_neb_id;// NEB会话ID
uint16_t nvds_tag_lpclk_drift;//低功耗时钟浮雕
UINT8_T NVDS_TAG_SLEEP_ENABLE;//启用睡眠模式
uint8_t nvds_tag_ext_wakeup_enable;//外部唤醒启用
uint8_t nvds_tag_security_enable;//为BLE应用程序启用安全性
UINT8_T ADV_DATA_TAG_LEN;//宣传数据大小
uint8_t scan_resp_data_tag_len;//扫描响应数据大小
uint8_t device_name_tag_len;//设备名称大小
uint8_t nvds_tag_app_ble_adv_data [32];//宣传数据
uint8_t nvds_tag_app_ble_scan_resp_data [32];//扫描响应数据
uint8_t nvds_tag_device_name [62];// 设备名称
uint8_t nvds_tag_bd_address [6];//设备蓝牙地址
UINT16_T NVDS_TAG_BLE_CA_TIMER_DUR;//默认通道评估定时器持续时间
uint8_t nvds_tag_ble_cra_timer_dur;//默认信道重新评估定时器持续时间
UINT8_T NVDS_TAG_BLE_CA_MIN_RSSI; //默认最小RSSI阈值
uint8_t nvds_tag_ble_ca_nb_pkt;//接收统计数据的默认数据包数
UINT8_T NVDS_TAG_BLE_CA_NB_BAD_PKT; //删除频道所需的缺省数据包数

UINT16_T NVDS_TAG_MAJOR; //主要的广告数据
UINT16_T NVDS_TAG_MINOR; //次要广告数据
};

然后在代码的初始化部分期间:

const struct user_beacon_config_tag user_default_beacon_config = {
.uuid = {0xc3,0x8b,0x2d,0x50,0xbe,0xe8,0xce,0x52,0x14,0xA6,// 10字节命名空间
0xF3,0xA7,0xC6,0x99,0x2f,0x0b},// 6字节实例
.major_alt_val1 = nvds_tag_major,//主要值
.minor_alt_val2 = nvds_tag_minor,//次要值
.亚博全网company_id = Apple_Comp_id,// Beacon公司ID
。adv_int = beacon_advertising_interval,//广告间隔
.Power = 0xC5,// TX功率
.beacon_type = default_beacon_type,
.url_prefix = httpwww,
.url = {0x0e,'d','我','a','s','e','m','我',dotcom},
.tlm_version = 0x00,
.tlm_used = 0x01
};

由于我们需要在OTP上测试这一点,因此由于其一次可编程,因此难以进行试用和错误而不会浪费很多部件。
感谢您的帮助!

设备:
yhe.
离线
最后一次露面:10个月3周前
职员
加入:2016-09-16 11:16
你好,

你好,

您在OTP中添加私有参数的方式无法保证工作。您可以直接将参数存储在可用的OTP地址中,并直接从地址读取。

问候,
yhe_dialog

DLO.
离线
最后一次露面:1个月1周前
加入:2017-05-26 16:21
你好,

你好,

因此,我可以创建指向NVDS地址的指针,例如:

uint16_t * nvds_tag_major = 0x20000360;//主要广告数据指针
UINT16_T * NVDS_TAG_MINOR = 0x20000364;//次要广告数据指针

const struct user_beacon_config_tag user_default_beacon_config = {
.uuid = {0xc3,0x8b,0x2d,0x50,0xbe,0xe8,0xce,0x52,0x14,0xA6,// 10字节命名空间
0xF3,0xA7,0xC6,0x99,0x2f,0x0b},// 6字节实例
.major_alt_val1 = nvds_tag_major,//主要值
.minor_alt_val2 = nvds_tag_minor,//次要值
.亚博全网company_id = Apple_Comp_id,// Beacon公司ID
。adv_int = beacon_advertising_interval,//广告间隔
.Power = 0xC5,// TX功率
.beacon_type = default_beacon_type,
.url_prefix = httpwww,
.url = {0x0e,'d','我','a','s','e','m','我',dotcom},
.tlm_version = 0x00,
.tlm_used = 0x01
};

然后使用PLT将数据写入NVDS位置?

生成序列号的推荐方式是什么,以便编程为该NVDS内存位置?PLT工具中有一个脚本来实现这个吗?

感谢您一直以来的支持!

yhe.
离线
最后一次露面:10个月3周前
职员
加入:2016-09-16 11:16
你好,

你好,

建议不要修改OTP NVDS。在PLT中,有办法将客户特定字段刻录到OTP标题中。检查UM-B-041的7.2.8部分。
在您的固件中,您可以从右侧OTP字段中读出来并应用它。

问候,
yhe.

DLO.
离线
最后一次露面:1个月1周前
加入:2017-05-26 16:21
谢谢你,

谢谢你,

如果在我在文档中找到它之前,请在最后回答它的最后一个问题。OTP客户字段的内存地址是什么,所以我可以分配主=&0xxxxx和minor =&0xxxxx?

谢谢你的快速支持!

DLO.
离线
最后一次露面:1个月1周前
加入:2017-05-26 16:21
我想我发现了

我想我发现了信息:自定义特定字段在Word地址0x7f54到0x7f60。如果这些地址镜像到RAM上电时,是否意味着变量可以在RAM地址找到:0x20007F54至0x20007F60?

谢谢,
DLO.

yhe.
离线
最后一次露面:10个月3周前
职员
加入:2016-09-16 11:16
你好,

你好,

我认为OTP标题将镜像到RAM。在您的固件中,您需要直接从OTP读取自定义特定字段。

问候,
yhe.