Thread 中讨论的其他器件:SysConfig、 Z-stack
您好、TI!
ZigBee 密钥存储在 CC1352/2652中的何处?
在电路板的生产过程中、如何将其存储在 MCU 中?
能否通过 UART 对其进行配置?
注意:这些问题主要与作为终端器件的 CC1352/CC2652有关。
谢谢!
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
您好、albgarc:
您是否指的是默认 NWK 密钥? 这可以由 SysConfig -> Z-Stack ->网络模块内的编译器进行定义。 此值存储在 NWK_globals.c 内定义的 defaultKey 变量中、并在 stackInit -> zgInit -> zgPreconfigKeyInit 内进一步计算 、这在栈初始化期间发生如果未设置为全部0x00、则它确定 zgPreConfigKey 的值、否则会随机生成此值。 然后、它被存储在 NV 项目 ZCD_NV_PRECFGKEY 中、然后被局部清零。 您可以选择 在运行时使用 UART 重新写入 ZCD_NV_PRECFGKEY 的值、这与 Monitor 和 Test UTIL_SET_PRECFGKEY 命令类似、该命令转换为 ZNP 项目的 MT_UtilSetPreCfgKey。
此致、
Ryan
您好、Ryan!
真诚的、非常感谢!
我们需要在生产中设置 De NWK Key。
如果我们知道存储 NWK 密钥的闪存地址、我们可以通过 JTAG 进行写入、对吧?
那么、我如何知道 NWK 密钥所在的闪存地址?
从这个意义上讲、
在固件中、我们定义了以下值:
#define FLASH_NV_BASE 0xAA000
#define ZCD_NV_EX_EX_legacy 0x0000
#define ZCD_NV_PRECFGKEY 0x0062
使用这些值、我们可以计算 NWK 密钥的地址?
非常感谢。
此致。
我不建议直接修改单个 NV 项、因为这可能与 NVOCMP TI 驱动程序预期运行相冲突。 相反、最好指定闪存中已知定义的位置、然后您可以通过 JTAG 按照合适的方式进行编程。 例如、以下 custom_default_key 将写入闪存位置0xAE000、并可通过查看.hex 输出文件进行验证。
//nwk_globals.c
// LINES ADDED
__attribute__((section(".custom")))
#define CUSTOM_DEFAULT_KEY {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0xC0,0x0D,0x0E,0x0F}
CONFIG_ITEM uint8_t defaultKey[SEC_KEY_LEN] = CUSTOM_DEFAULT_KEY; // LINE MODIFIED
//cc13x2_cc26x2_tirtos7_ticlang.cmd
.emb_text : > FLASH
.custom : > FLASH_LAST /* LINE ADDED */
.ccfg : > FLASH_LAST (HIGH)
此致、
Ryan
初始 POST 请求在 MCU 上的已知位置以包含用于电路板生产的 NWK 密钥。 我已经给出了一个预先确定的存储 NWK 密钥的位置来解决这个问题、然后应用程序代码会读取并使用 NWK 密钥。 现在您"知道 NWK 密钥所在的闪存地址、我们可以通过 JTAG 写入"。 您可以修改输出 hex/bin 文件中的存储器地址、通过 JTAG 写入或使用引导加载程序修改它。 NV 存储器也存储在闪存中、如果使用首选方法、则可以执行必要的调试步骤来发现存储的 NWK 密钥存储器位置。 在这方面、您可以参考 SWRA671。
此致、
Ryan