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.

[参考译文] IWR6843AOPEVM:闪存访问有关

Guru**** 2455360 points
Other Parts Discussed in Thread: IWR6843AOP, MMWAVE-SDK

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/1509309/iwr6843aopevm-flash-storage-access-regarding

器件型号:IWR6843AOPEVM
Thread 中讨论的其他器件:IWR6843AOPMMWAVE-SDK

工具/软件:

大家好、我正在根据"3D_EVM"演示源代码使用 IWR6843AOP People_Tracking 处理一个项目。 我当前正在尝试将"chirp_configs"文件存储在闪存中。 我尝试了下面所示的方法、但遇到了从闪存读回的数据与写入的数据不匹配的问题。 我附上了用于参考的调试日志和源代码。

我对此有几个问题:

  1. 是否建议使用外部闪存来存储此类数据?

  2. 引导加载程序是否实施任何可能影响闪存读取/写入访问的保护?

  3. 是否可以获取 IWR6843AOP 引导加载程序的源代码?


调试日志:
正在启动闪存测试...>
正在擦除0x001E0000处的扇区...
扇区擦除成功
正在将1024字节模式写入闪存...
闪存写入成功
正在从闪存读回...
闪存读取成功
偏移0处不匹配:读取0x00、预期为0xA5

静态 int32_t flash_test (int32_t、char * argv[])

/* RAM 缓冲区*/
静态 uint8_t txBuffer[FLASH_TEST_SECTOR_SIZE];
静态 uint8_t rxBuffer[FLASH_TEST_SECTOR_size];
Bool 结果;
uint32_t i;

DBG_PRINT ("开始闪存测试...");

/*步骤1:擦除扇区*/
DBG_PRINT ("Erasing 扇区 at 0x%08X...\n"、flash_test_address);
结果= QSPIFlash_eraseSector (FLASH_TEST_ADDRESS);
if (!result)

DBG_PRINT ("扇区擦除失败!\n");
返回-1;
}
DBG_PRINT ("扇区擦除成功\n");

/*步骤2:准备模式*/
memset (txBuffer、flash_test_pattern、sizeof (txBuffer));

/*步骤3:写入模式*/
DBG_PRINT ("将%u 字节模式写入闪存……\n"、(unsigned int) sizeof (txBuffer));
结果= QSPIFlash_write (FLASH_TEST_ADDRESS、txBuffer、sizeof (txBuffer));
if (!result)

DBG_PRINT ("闪存写入失败!\n");
返回-1;
}
DBG_PRINT ("闪存写入成功\n");

/*步骤4:清除读取缓冲区*/
memset (rxBuffer、0、sizeof (rxBuffer));

/*步骤5:读回*/
DBG_PRINT ("从闪存读回...\n");
Result = QSPIFlash_read (flash_test_address、rxBuffer、sizeof (rxBuffer));
if (!result)

DBG_PRINT ("闪存读取失败!\n");
返回-1;
}
DBG_PRINT ("闪存读取成功\n");

/*步骤6:比较*/
对于(I = 0;I < FLASH_TEST_SECTOR_SIZE;I++)

if (rxBuffer[i]!= flash_test_pattern)

DBG_PRINT ("偏移%u 处不匹配:读取0x%02x、预期0x%02x\n"、
(unsigned int) i、rxBuffer[i]、flash_test_pattern);
返回-1;
}
}

DBG_PRINT ("闪存测试通过\n");
返回0;
}

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好:

    您是否有理由将其存储在闪存而不是 RAM 中? 如果您想要闪存读取/写入示例、您是否查看了 MMWAVE-SDK、网址为 C:\ti\mmwave_sdk_03_06_02_00-LTS\packages\ti\drivers\qspiflash\test\xwr68xx?

    此致、

    Pedrorm

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、感谢您的及时答复。

    具体思路是、如果chirp_configs将保存到闪存中、则可以在下次上电时自动重复使用。

    我有几个后续问题:

    • 建议使用外部闪存来存储这样的配置数据吗?

    • 引导加载程序是否应用任何可能限制闪存读取/写入操作的保护机制?

    • IWR6843AOP 引导加载程序的源代码是否可用?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好:

    当我们希望使用重复使用的配置进行自动上电时、我们通常会将示例代码二进制文件中的线性调频脉冲配置保存为数据包的一部分。 这样做时、线性调频脉冲配置将受到检查示例演示图像的所有相同机制的保护

    我们有一个使用6843执行此操作的指南、如下所示:

    https://dev.ti.com/tirex/explore/node?node=A__ACJ8xoQdpNpVq3e4C.mnUQ__radar_toolbox__1AslXXD__LATEST

    此致、

    Pedrorm