STM32
直播中

李林

7年用户 1117经验值
私信 关注
[问答]

STM32H750如何使用IAR调试运行在外部SDRAM的程序?

正在使用STM32H750开发应用。
我的用户程序,储存在QSPI Flash中,运行在SDRAM中,采用了Bootloader来复制程序到SDRAM中并跳转。
下载程序的方法是Bootloader + 自制的命令行程序,进行串口通信下载。
调试方式是使用IAR进行编译,然后下载程序,再通过IAR的Debug Without Downloading进行调试。
但是这样的话就很麻烦,在IAR编译以后,要打开命令行工具下载程序,然后回到IAR调试。
我了解到IAR可以通过Option -> Debugger -> Setup中设置自定义的setup micros (.mac file)脚本,在程序下载前,运行脚本初始化外部SDRAM,然后直接下载程序到外部SDRAM。
然后就要像在内存中调试代码一样,可以直接调试了。
就是有一点非常困难,setup micros (.mac file)脚本都是寄存器操作,请问有没有人有类似的经验?


回帖(1)

莫联雪

2024-4-1 16:56:49
您可以通过在IAR中添加自定义的Setup Macros脚本来实现在下载程序之前初始化外部SDRAM的操作。以下是一些步骤和脚本示例供参考:

1. 在IAR中打开您的工程。

2. 在菜单中选择"Option" -> "Debugger" -> "Setup"。

3. 在弹出的对话框中,选择"Use project options",然后点击"Edit"按钮。

4. 在弹出的对话框中,选择"Debugger" -> "Setup"。

5. 在"Initialization script"字段中,点击"..."按钮,选择您自定义的.macro文件。这个脚本将在下载程序之前运行。

6. 编写您的自定义.macro文件。以下是一个示例:

```
define macro setup_sdram
{
    ; 初始化外部SDRAM
    ; 例如编写一些寄存器配置的操作
}

setup_sdram();
```

在您的.macro文件中添加初始化外部SDRAM的代码。请参考您的硬件文档和SDRAM外设的寄存器配置。

7. 保存并关闭所有对话框。

这样,您在调试时只需要点击"IAR"菜单中的"Download and Debug"选项,IAR将自动运行您的自定义.macro文件来初始化外部SDRAM,并开始下载和调试程序。这样就可以避免每次编译后都需要手动运行命令行工具进行下载的麻烦。

希望这对您有帮助!
举报

更多回帖

发帖
×
20
完善资料,
赚取积分