最近调试程序,发现程序加载到仿真器上后,必须先复位:硬件复位和软件复位都可以,然后在重新加载程序。程序才能正确运行,请问,各位有没有好的解决方案?,程序bootloader后,如何通过软复位使程序正常执行?
Tony Tang:
join join发现程序加载到仿真器上后,
这是什么意思?通过仿真器加载程序到板子上?
join join程序bootloader后,如何通过软复位使程序正常执行?
你是烧写了程序到板子上的flash,从板子的flash boot运行吗?前后说的是同一个问题吗?
join join:
回复 Tony Tang:
你好,是这样的。一、在线调试的时候,程序运行之前需要先复位CPU,在将,out文件加到芯片里,程序才能正确的执行。不理解为什么会如此?
二、上面问题的解决方案,我希望能够对整个芯片实现软件复位功能。
Tony Tang:
回复 join join:
自己做的板子?是不是上电复位时序没做对啊?
join join:
回复 Tony Tang:
是自己做得板子,上电复位给了0.1s的延迟,应该足够了吧。您那边对这块有什么好的介意?
join join:
回复 join join:
手册上要求延迟是至少三个时钟周期,我系统是给的32.768kHZ.
Tony Tang:
回复 join join:
看不到你的设计,不好做评论,但我想这是个硬件的问题,建议仔细对比一下开发的电路设计。
还有,可以试试强制将RESET拉低,比如接到GND,再给板子上电,再把RESET拉高,再连仿真器下载,看能不能正常跑,这样看是不是复位时序有问题。
join join:
回复 Tony Tang:
具体时钟电路和复位电路见下图
Tony Tang:
回复 join join:
这是通过电容充电做的复位延时不一定可靠吧,不过这个电路好验证,按住K4再上电试试就知道了。
join join:
回复 Tony Tang:
那复位延时该怎么做呢
Tony Tang:
回复 join join:
电源芯片一般都有PG管脚,或者专用的监控电压的复位芯片。