天狼落星
在使用NVDS的时候如何初始化 NvdsTag_t tag,
有什么主意事项吗,我引入到UART透传的工程中,但芯片无限重启
定义了3个tag
sherlock
NVDS_START_ADDR可以是0x01002000~0x01100000的任意一个4K对齐地址上;但不能落在应用程序地址空间上,否则会导致读写NVDS时破坏Flash存储的应用程序。
每个Page是4K;Page的取值范围应该满足NVDS_START_ADDR + Page number * 4K < Flash End Address。
NVDS会根据每个tag对应数据的长度,从NVDS地址空间分配空间来存储tag对应的数据,在Read时NVDS会根据tag去对应的地址取数据。
tag与地址的关系是NVDS内部自动分配的。调用 nvds_pus时传入的tag,若是新增tag则该api会新建该tag。
开发者需要维护tag值的含义,后续read的时候根据tag取数据。
tag编号开发者可使用0x4000~0x8000的编号;
例如nvds_get(NvdsTag_t tag, uint16_t *p_len, uint8_t *p_buf)函数的tag入参范围是0x4000~0x8000;
如果传入0x4000这样的数值不方便,建议用NV_TAG_APP宏来转换,例如: nvds_put(NV_TAG_APP(1), len, p_buf);
打开微信,使用“扫一扫”即可关注