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.
工具与软件:
大家好、团队成员:
我们需要在 MSPM0L1305.ASAP 中检查 RAM 测试。任何人可以吗?请 尽快在 MSPM0L1305.ASAP 中建议如何实现该测试
您好!
对于 MSPM0L1305、还有针对闪存的 ECC 和经过奇偶校验的 SRAM。
请参阅本文档 MSPM0 L 系列32MHz 微控制器技术参考手册(修订版 D)的1.3.2 (TI.com)
要测试该函数、您可以将数据写入未检查的 SRAM、 然后从经过奇偶校验的 SRAM 中读取、之后将生成奇偶校验错误。
此致、
Zoey
Zoey、您好!
非常感谢您的回复、
您能分享一下 RAM 测试的任意示例代码吗
您好!
抱歉、我们没有 RAM 测试演示代码。
您可以自行编写。 如果您在编写代码时遇到问题、可以开始新帖子或继续查看此主题。
谢谢!
Zoey
Zoey、您好!
非常感谢您的回复、我无法编辑 CCS.ca中的启动文件、请提供相关帮助
您好!
在 SysConfig 中取消选中下面的。
您好!
取消选中后、我遇到此问题
您好!
请将旧的启动文件复制到工程中、然后取消选中它。
Zoey、您好!
抱歉、我不清楚您提到的是哪个旧启动文件。
您好!
很抱歉您输入的信息不明确。
1.请将以下 SDK 中的启动文件: ...\ti\mspm0_sdk_2_00_01_00\source\ti\devices\msp\m0p\startup_system_files\ticlang 复制 到您的自项目中。 例如:
2.然后、在 SysConfig 中取消选中
3.构建项目。
此致、
Zoey
Zoey、您好!
谢谢你这么多的答复
空 Reset_Handler (空)
{
_asm (
"LDR R1、=0x20000000\n"// SRAM 的起始地址
"LDR R2、=0x20001000\n"// SRAM 的结束地址
"MOV R3、#0x0A\n\t"//测试模式
"SRAM_TEST_LOOP:\n"
"CMP R1、R2\n"//将当前地址与结束地址进行比较
"Bge SRAM_TEST_DONE\n"//如果达到结束地址、则退出循环
"STR R3、[R1]\n"//将测试模式写入 R1指向的 SRAM 地址
"LDR R4、[R1]\n"//从 R1指向的 SRAM 地址读回
"CMP R4、R3\n"//将读取值与测试模式进行比较
"BNE SRAM_TEST_FAILED\n"//如果不匹配、则分支
"添加 R1、R1、#4\n"//为下一次迭代增加地址
"b SRAM_TEST_LOOP\n"//重复循环
"SRAM_TEST_DONE:\n"
".global _c_int00\n"
"b _c_int00\n"//跳转至 C 初始化例程
"SRAM_TEST_FAILED:\n"
"b SRAM_TEST_FAILED\n"//针对失败测试的无限循环或错误处理
);
}
在这两个 section.ca中显示了一个无效指令、请帮我解决这个问题
Zoey、您好!
感谢您的答复
我面对这个问题,我不知道我在做什么错,你能帮我解决这个问题吗?
您好!
请使用"MOV"而非"MOV"
和"adds"、而非"add"。
此致、
Zoey
Zoey、您好!
非常感谢您的回复、
现在可以使用、但我想知道如何清除(清除汇编语言)
您好!
请参阅以下代码:
/* Erase SRAM completely before jumping to BSL */ __asm( #if defined(__GNUC__) ".syntax unified\n" /* Load SRAMFLASH register*/ #endif "ldr r4, = 0x41C40018\n" /* Load SRAMFLASH register*/ "ldr r4, [r4]\n" "ldr r1, = 0x03FF0000\n" /* SRAMFLASH.SRAM_SZ mask */ "ands r4, r1\n" /* Get SRAMFLASH.SRAM_SZ */ "lsrs r4, r4, #6\n" /* SRAMFLASH.SRAM_SZ to kB */ "ldr r1, = 0x20300000\n" /* Start of ECC-code */ "adds r2, r4, r1\n" /* End of ECC-code */ "movs r3, #0\n" "init_ecc_loop: \n" /* Loop to clear ECC-code */ "str r3, [r1]\n" "adds r1, r1, #4\n" "cmp r1, r2\n" "blo init_ecc_loop\n" "ldr r1, = 0x20200000\n" /* Start of NON-ECC-data */ "adds r2, r4, r1\n" /* End of NON-ECC-data */ "movs r3, #0\n" "init_data_loop:\n" /* Loop to clear ECC-data */ "str r3, [r1]\n" "adds r1, r1, #4\n" "cmp r1, r2\n" "blo init_data_loop\n" );
此致、
Zoey
Zoey、您好!
非常感谢您的回复,这对我们很有帮助
如何在汇编语言中调用函数
您好!
请参阅以下代码:
void Reset_Handler(void) { /* Jump to the ticlang C Initialization Routine. */ __asm( " .global _c_int00\n" " b _c_int00"); }
Zoey、您好!
谢谢你这么多的答复
我们正在尝试调用切换函数、该函数使 LED 闪烁但 LED 不闪烁。 如果我这样实施、您可以尽快帮助我解决此问题
您好!
我们的目标是调用函数并使 LED 从启动文件闪烁。 对此、任何人都可以提供帮助吗
您好!
如果您只想在启动文件中使 LED 闪烁。 只需在 reset_handler 函数中使用 C 语言(如 Blink_LED ()函数)
Zoey、您好!
谢谢你这么多的答复,对我来说,它是不工作的。 我附上了供您参考的代码
您好!
您的 GPIO 尚未初始化。
请将 SYSCFG_DL_init ();添加到 TOGGLE ()函数中;
此致、
Zoey
您好!
是否出乎您的意料?
这对我来说不起作用
否、请使用以下代码:
void toggle(void) { SYSCFG_DL_init(); DL_GPIO_setPins(GPIO_LEDS_PORT, GPIO_LEDS_USER_LED_1_PIN | GPIO_LEDS_USER_LED_3_PIN | GPIO_LEDS_USER_TEST_PIN); while(1){} }
如果您不使用 while (1)
代码将运行到 main 函数中、GPIO 将再次初始化。
Zoey、您好!
感谢您的回复、它在我这边工作、但我无法调试、我附上了代码供您参考、请帮我解决这个问题
您好!
如果要分步调试 汇编语言、请将代码更改为:
例如:
发件人:
__asm( "ldr r1, =0x20000000\n" // Start address of SRAM "ldr r2, =0x20001000\n" // End address of SRAM );
收件人:
__asm("ldr r1, =0x20000000\n"); // Start address of SRAM __asm(""ldr r2, =0x20001000\n"); // End address of SRAM
此致、
Zoey
您好!
在这里、我想检查失败或完成条件、了解如何使用汇编语言进行写入
Zoey、您好!
我们正在等待您的回复
如前所 述、请 单独编写汇编语言以进行分步调试。
__asm("sram_test_done:\n"); __asm("b toggle()\n"); __asm("sram_test_failed:\n");
Zoey、您好!
我们现在处于 RAM 测试部分的最后阶段、但我们面临的小问题、即使在遵循您的指令后、我也无法进行调试
我附上了供您参考的代码
我正面临这一问题、在这方面、您能帮我吗
您好!
您能告诉我哪个步骤或代码行会导致此问题吗?
谢谢!
Zoey
Zoey、您好!
谢谢你这么多的答复,在这一行53
您好!
您会进入 Default_Handler 吗?
您好!
是的、现在进入 Default_Handler
您好!
这是因为、一旦 CPU 运行 完成切换、您就无需运行下一个函数。
如果您希望在此函数之后运行主代码、可以添加
_asm (
".global _c_int00\n"
" b _c_int00\n"
);
调试到您的切换函数中、然后是 PC、并更改为主函数。 但是请确保你也许需要 while (1);来结束你的函数、或者在你完成主代码后、它仍将运行到 Default_Handler 中
Zoey、您好!
谢谢你,这是为我工作