主题:MSPM0G1106 中讨论的其他器件
工具/软件:
您好、
我尝试集成 TI 提供的诊断测试 (mspm0_diag_lib_0_90_00_01)。 具体来说、我将为 LP-MSPM0G3607 使用示例工程、因为它与我的工程使用的微控制器 MSPM0G1106 最匹配。
问题 1:RAM 测试
在文件中test_config.c
、宏SAFE_BUFFER_SIZE
似乎不是在项目层次结构中的任何位置定义的。 是由用户定义和使用此宏、还是应在该文件未包含的代码中的其他位置定义?
此外、程序员是否有责任通过工程的链接器命令文件预先创建“.RAMsafeBuff"部分“部分、以便以下代码正常工作?
/* test_config.c */ PLACE_IN_MEMORY(".RAMsafeBuff") uint32_t safebuffer[MSPM0_DIAG_RAM_SAFE_BUFF_NUM_OF_WORDS_TO_TEST];
问题 2:闪存测试
同样、 程序员是否有责任通过工程的链接器命令文件提前创建“.FLASHTestCRC"段“段、以使以下代码正常工作?
/* test_config.c */ PLACE_IN_MEMORY(".FLASHTestCRC") const uint32_t FLASHTestgoldenCRC = MSPM0_DIAG_FLASH_EXPECTED_CRC;
此外、根据代码的以下部分、好像您正在计算前 16380 个字(即 65,520 字节)的 CRC、不包含最后 4 个字(即 16 字节)。 这是否用于将 4 字节 CRC 值存储在该区域中的某个位置? 如何以及何时(在闪存之前或闪存之后) 计算预期的 CRC 值 0x52A05524?
/* test_config.h */ /******************************************************************************* * FLASH Test configuration ******************************************************************************/ #define MSPM0_DIAG_FLASH_FAULT_INJECTION (MSPM0_DIAG_test_inject_fault_false) #define MSPM0_DIAG_FLASH_START_ADDR ((uint32_t *)0x00000000) #define MSPM0_DIAG_FLASH_NUM_OF_WORDS (16380) #define MSPM0_DIAG_FLASH_GOLDEN_CRC ((uint32_t *)&FLASHTestgoldenCRC) #define MSPM0_DIAG_FLASH_EXPECTED_CRC ((uint32_t)0x52A05524)
我很感激就此提供任何指导。
谢谢您、
李庆宰