硬汉嵌入式论坛

 找回密码
 立即注册
查看: 765|回复: 8
收起左侧

[STM32H7] 求助,H7B0程序放在外部flash,gdb无法打断点

[复制链接]

1

主题

3

回帖

6

积分

新手上路

积分
6
发表于 2023-3-22 11:39:10 | 显示全部楼层 |阅读模式
各位大佬好!
本人在用STM32H7B0调试的时候,boot放在内部flash(0x08000000),启动后OSPI初始化外部flash(W25Q64),并且设置为内存映射模式到 0x90000000,然后跳转到 0x90000000运行;
程序跑起来都没啥问题,但是我用gdb调试的时候,打上断点,就提示这个:
1.png
但是我直接读该地址,又是可以读出来的:
2.png

随后我不用boot,直接把程序减小(小于128k),烧写到内部flash上,就可以运行并且正常打断点调试。
请问有碰到类似情况的朋友吗?
还有另外再问一下,我看到说H7B0虽然手册上说内部flash为128k,但是实际上有2M,我试过将我的程序(约将近300k)烧写到内部flash上,可以烧写成功,但是程序跑不起来;
请问有大于128k的程序放在内部flash上跑成功的先例么?
谢谢大家!!~~

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106739
QQ
发表于 2023-3-22 11:50:46 | 显示全部楼层
你的外置Flash算法文件应该不支持在外部Flash做程序调试。

支持外部调试,要做好内存映射支持。
回复

使用道具 举报

4

主题

26

回帖

38

积分

新手上路

积分
38
发表于 2023-3-22 14:26:32 | 显示全部楼层
在外部FLASH初始化完成之后打第一个断点,这时候应该还在内部ROM里面,外部FLASH映射也完成,可以通过总线访问外部FLASH
然后就可以在映射的代码段上打断点了吧
想方便点的话写一个gdbinit文件自动打第一个断点
回复

使用道具 举报

1

主题

3

回帖

6

积分

新手上路

积分
6
 楼主| 发表于 2023-3-22 14:40:19 | 显示全部楼层
eric2013 发表于 2023-3-22 11:50
你的外置Flash算法文件应该不支持在外部Flash做程序调试。

支持外部调试,要做好内存映射支持。

感谢回复!但是我在keil里调试就可以打上断点,gdb就不行,并且在boot里已经通过HAL库的HAL_OSPI_MemoryMapped开启了内存映射,不然程序也跳不到0x90000000执行。
以上是不是可以理解为映射成功?
还是说gdb需要再次单独映射?
回复

使用道具 举报

1

主题

3

回帖

6

积分

新手上路

积分
6
 楼主| 发表于 2023-3-22 15:50:00 | 显示全部楼层
zbianbiaos 发表于 2023-3-22 14:26
在外部FLASH初始化完成之后打第一个断点,这时候应该还在内部ROM里面,外部FLASH映射也完成,可以通过总线 ...

我在boot里,映射结束后,跳转到外部flash代码之前,打上了断点,然后在这个断点停下来的时候,在外部flash代码段上打了个断点,然后c,问题还是依旧
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106739
QQ
发表于 2023-3-23 01:38:11 | 显示全部楼层
sheepy_chan 发表于 2023-3-22 15:50
我在boot里,映射结束后,跳转到外部flash代码之前,打上了断点,然后在这个断点停下来的时候,在外部fla ...

你现在的GBD调试用的什么方案,openocd? 然后又整个那个基于gcc的外部算法?
回复

使用道具 举报

1

主题

3

回帖

6

积分

新手上路

积分
6
 楼主| 发表于 2023-3-23 11:44:39 | 显示全部楼层
eric2013 发表于 2023-3-23 01:38
你现在的GBD调试用的什么方案,openocd? 然后又整个那个基于gcc的外部算法?

是openocd,没有基于gcc的外部算法,只有一个keil上用的FLM下载算法,并在boot中开启外部flash的地址映射,没有单独给调试器的外部算法
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106739
QQ
发表于 2023-3-24 10:16:56 | 显示全部楼层
sheepy_chan 发表于 2023-3-23 11:44
是openocd,没有基于gcc的外部算法,只有一个keil上用的FLM下载算法,并在boot中开启外部flash的地址映射 ...

这种玩法没整过。
回复

使用道具 举报

0

主题

1

回帖

1

积分

新手上路

积分
1
发表于 2024-4-1 12:48:07 | 显示全部楼层
楼主问题解决吗
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-3 12:55 , Processed in 0.228981 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表