硬汉嵌入式论坛

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

[开发工具] 【求助】Cannot access Memory 报错

[复制链接]

0

主题

4

回帖

4

积分

新手上路

积分
4
发表于 2024-5-8 01:13:09 | 显示全部楼层 |阅读模式
本帖最后由 fzs 于 2024-5-8 01:22 编辑

【求助】在做stm32h743的Bootloader程序,keil里debug中运行到AppJump()之后就跳这个弹窗了
下载.png
,然后旁边command窗口里
下载 (1).png
是这些信息,然后板子就死机了,请问这是什么情况呀?0x08160000是我设置的AppAddr,JumpToApp()我是参考“基于SD卡的Bootloader”那个程序写的,基本是一样的,然后还带一个LVGL的界面,求助求助
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107272
QQ
发表于 2024-5-8 08:23:39 | 显示全部楼层
调试boot+app,  先把boot下载好,然后单独调试APP工程即可。注意调试的时候别把boot代码给擦除了。
回复

使用道具 举报

0

主题

4

回帖

4

积分

新手上路

积分
4
 楼主| 发表于 2024-5-8 11:20:05 | 显示全部楼层
eric2013 发表于 2024-5-8 08:23
调试boot+app,  先把boot下载好,然后单独调试APP工程即可。注意调试的时候别把boot代码给擦除了。

你好。我在debug里的memory窗口查看了,app和boot程序没有互相影响,中间还隔了很多FF没有覆盖。这个APP程序我是用那个“基于SD卡的Bootloader”程序就调试好的,在那个程序作Boot时都是可以正常跳转的,然后我把JumptoAPP()基本照搬到这个写好的有lvgl界面的程序里,就会跳转死机。请问lvgl会对这个跳转有什么影响吗?这个“Cannnot access Memory(@ 0x08160000,Read,Acc Size: 4 Byte)”能看出什么问题吗?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107272
QQ
发表于 2024-5-8 14:56:50 | 显示全部楼层
fzs 发表于 2024-5-8 11:20
你好。我在debug里的memory窗口查看了,app和boot程序没有互相影响,中间还隔了很多FF没有覆盖。这个APP ...

这样的话,有个重要的问题,不使用调试,APP和BOOT都下载进去后,重新上电能正常吗,这样能正常也行。
回复

使用道具 举报

0

主题

4

回帖

4

积分

新手上路

积分
4
 楼主| 发表于 2024-5-8 16:16:28 | 显示全部楼层
eric2013 发表于 2024-5-8 14:56
这样的话,有个重要的问题,不使用调试,APP和BOOT都下载进去后,重新上电能正常吗,这样能正常也行。

BOOT和APP都下载进去,boot是可以跑的,就是一跳转就死机,而且一死机就没法再直接烧录的那种,会有"Could not stop Cortex-M device!Please check the JTAG cable."的弹窗,必须得手动按一下复位才能再烧得进去。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107272
QQ
发表于 2024-5-9 08:34:07 | 显示全部楼层
fzs 发表于 2024-5-8 16:16
BOOT和APP都下载进去,boot是可以跑的,就是一跳转就死机,而且一死机就没法再直接烧录的那种,会有"Coul ...

应该是你的BOOT调整前没有提供干净的运行环境,是这个试试吧。

实战技能分享,一劳永逸的解决BOOT跳转APP失败问题,含MDK AC5,AC6和IAR,同时制作了一个视频操作说明
https://www.armbbs.cn/forum.php?mod=viewthread&tid=109595
回复

使用道具 举报

0

主题

4

回帖

4

积分

新手上路

积分
4
 楼主| 发表于 2024-5-11 04:48:00 | 显示全部楼层
eric2013 发表于 2024-5-9 08:34
应该是你的BOOT调整前没有提供干净的运行环境,是这个试试吧。

实战技能分享,一劳永逸的解决BOOT跳转 ...

硬汉哥,我这个bug查了好几天,应该是找到了,我把sdram_init()注释掉就能跑了。我按照这个方向查了一些帖子,找到了这个STM32H7实现BootLoader内SDRAM的初始化注意事项。帖子里说要把system_stm32h7xx.c中的"FMC_Bank1_R->BTCR[0] = 0x000030D2;"这句注释掉,sdram就好了,但我发现我在我的system_stm32h7xx.c中对应位置找不到这句,只能在安富莱的一些类似的代码里有,而我的代码里找不到这句。
BTCR.png
请问这句话是必须有的吗?我顺着FMC_Bank1这个找,但是没找到发挥类似作用的语句,不知道怎么解决这个问题了。

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
我后面看到另一个帖子也提到了,我就去看了“V7-063_QSPI Flash运行程序(用户APP)”那个代码,我发现那个代码的system_stm32h7xx.c里也没有这句"FMC_Bank1_R->BTCR[0] = 0x000030D2;",而且我的这个代码是操作内部FLASH,不知道是不是因为这个原因,“V7-063_QSPI Flash运行程序(用户APP)”这个代码在我的板子上跑不起来。现在就是不知道怎么修改我自己这个代码,能正常用sdram?
这个确实比较头大,如果硬汉哥能帮忙看一眼,实在是感谢!

链接:https://pan.baidu.com/s/1Gx9WhVhRGxb-5tbpcc_Hrg?pwd=wgl3
提取码:wgl3


回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-24 05:25 , Processed in 0.246838 second(s), 31 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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