有仿真器就单步调试找到卡死在哪,没有的话可以在可能发生卡死的地方加入一些比如LED亮、蜂鸣器响等提示,判断程序能不能执行到此处,用这样的方法找到卡死的地方,然后查找原因
在你的Keil中查看Option-Target中IROM的Start地址是多少,因为你的镜像是烧当在FLASH中的
假设是0x0800 0000, 即你的镜像烧录在的起始地址为0x0800 0000,而你的程序又写了0x0800 3000,相当于把自己写死了,当然复位拔电不行啊,因为烧录后的镜像被你破坏了
至于0x0800 3000可以,是因为你的镜像没有越过这个地址,当然可以随便写了
你的可能是内存太小,显卡配置低,系统垃圾多,病毒的可能性较小。
首先看看是不是你的配置低了,(最好补充一下你的电脑配置)要运行FLASH等大型软件,建议内存512M以上
你的可能是开机启动的程序太多了,或者交换文件太小,或者C盘空间太小,或者要做磁盘碎片整理清理系统垃圾了。
查一下你的虚拟内存设置,是不是小了点?512M的内存虚拟内存建议设置1G左右。
清理系统垃圾.bat ——30秒还你超爽系统,
新建一个记事本,打开后把下面一段代码粘贴上去,另存为"清理系统垃圾.bat",
从这里开始复制——
@echo off
echo 正在清除系统垃圾文件,请稍等......
del /f /s /q %systemdrive%\*.tmp
del /f /s /q %systemdrive%\*._mp
del /f /s /q %systemdrive%\*.log
del /f /s /q %systemdrive%\*.gid
del /f /s /q %systemdrive%\*.chk
del /f /s /q %systemdrive%\*.old
del /f /s /q %systemdrive%\recycled\*.*
del /f /s /q %windir%\*.bak
del /f /s /q %windir%\prefetch\*.*
rd /s /q %windir%\temp md %windir%\temp
del /f /q %userprofile%\cookies\*.*
del /f /q %userprofile%\recent\*.*
del /f /s /q "%userprofile%\Local Settings\Temporary Internet Files\*.*"
del /f /s /q "%userprofile%\Local Settings\Temp\*.*"
del /f /s /q "%userprofile%\recent\*.*"
del /f /s /q "%userprofile%\Application Data\SogouPY.users\00000001\sgim_ext.bin"
echo 清除系统LJ完成!
echo. pause
——复制结束
双击运行"清理系统垃圾.bat",清理你的系统垃圾。
针对你的flash问题,建议:更新DirectX,下载安装新版本的adobo flash player,
另外,建议用优化大师或者超级兔子扫描清理系统和注册表垃圾,优化一下显卡,优化大师有圈套优化功能,你选择“设置向导”,不停地选择“下一步”,按默认设置,优化完后重启电脑即可。
是不是出现“非法操作”了?,写Flash前要先解锁,写数据时要保证写入地址是在可写的地址范围内,写完后记得上锁,应该是这样的流程才对。
本文标签:stm32f103写flash死机