[【极海APM32F407】 1. 开箱啦](https://bbs.eeworld.com.cn/thread-1244122-1-1.html)
[【极海APM32F407】2. KEIL下实现printf和scanf对串口的重定向](https://bbs.eeworld.com.cn/thread-1244768-1-1.html)
[【极海APM32F407】 3. 极简方式集成FreeRTOS](https://bbs.eeworld.com.cn/thread-1245426-1-1.html)
# 问题描述
在使用MDK的软件开发过程中,某一次下载软件之后,再次下载就会上报如下问题[Cannot access Memory(@ 0xe00ffff0, Read, Acc Size: 4Bytes)]:
当该问题出现之后,就算下载之前能使用的软件也会报同样的问题,换句话说,什么程序都下载不进去了。
回忆了一下是因为使用freeRTOS的时候,修改了配置参数如下:
`#define configTOTAL_HEAP_SIZE ((size_t)8192)`,默认情况下是4096,增加了堆空间大小。
> 理论上不会有这样的问题,因为AMP32F407的RAM有192KB,完全足够的,不知道是什么原因导致的。
下面说一下解决不能下载的问题的方法。
# 解决方法
出现这个问题,在网上搜索了一下,很多人遇到,但是都不能实际解决问题。我还以为是板载的调试器坏掉了,最后还是找到了适当的方式进行挽救。
> 出现这种现象一般是内容使用上的问题。具体原因目前还未知,有知道的小伙伴可以解答一下,谢谢。
解决方式其实也很简单,步骤如下:
1. 先设置下载功能为'Erase Full Chip',即全擦除,这样做的目的是在下一次下载的时候将整个区域全部擦除。
2. 按下复位按钮并保持按住,然后使用MDK下载程序(点击下载按钮),这个时候一直按住复位按钮不要松手,直到弹出如下窗口:
3. 松开复位按钮,再次点击下载按钮,此时就可以正常下载程序了。
如果上述步骤还是没有解决的话,可以试下如下设置,在 `Debug`界面下,选择 连接方式为 `under Reset`,表示在复位状态下连接,选择 Reset为 `HW RESET`,并选中 `Download to Flash`。设置完成之后,进行上述第二步,在进行第三步之前需要将下面的设置恢复为之前的设置项。