尊敬的工程师:
您好,我们使用的是28069芯片,系统长时间运行出错,例如运行个20天左右就会出错。
其实程序并没有跑飞,因为没有重新启动(看门狗已经启用,测试看门狗是正常工作的)。
但是程序就是不运行了,看门狗的喂狗是在操作系统的Idle任务里面执行,说明Idle是在运行的
但是由操作系统调配的Hwi以及Timer都不运行了。
我从link生成map的文件看到sys/bios的函数都是在falsh中运行的,是这样吗?
其实以前发生过这个问题,我采用例程中的flash的初始化函数里面的几个参数改了一下,就从7天可以坚持到20多天了,不知道是为啥?
//Set the Paged Waitstate for the Flash
FlashRegs.FBANKWAIT.bit.PAGEWAIT = 3; 默认这个设置3,我改到了1
//Set the Random Waitstate for the Flash
FlashRegs.FBANKWAIT.bit.RANDWAIT = 3; 默认这个设置3,我该到了2
//Set the Waitstate for the OTP
FlashRegs.FOTPWAIT.bit.OTPWAIT = 5; 默认这个设置5,我该到了2
以上的改动似乎对程序长期运行起到了效果,但也只是从7天左右延长到了20天的时间左右,但还是不能长期运行,但是我不知道为啥,我猜想是不是sys/bios在falsh运行,是不是这几个参数设置的有啥问题。 谢谢!
我想解决这个问题,我现在想把仿真器长期连接上,如果出现错误了,我就用仿真器进行查看,请问连接上仿真器,和我实际从flash中启动运行的状态是不是一样的,谢谢,连接上仿真器是不是原本从flash中运行的函数还是从flash运行,谢谢!
祝您好心情!
yongtao ma59:
回复 Susan Yang:
谢谢Yang工的回复
尊敬的工程师:
您好,我们使用的是28069芯片,系统长时间运行出错,例如运行个20天左右就会出错。
其实程序并没有跑飞,因为没有重新启动(看门狗已经启用,测试看门狗是正常工作的)。
但是程序就是不运行了,看门狗的喂狗是在操作系统的Idle任务里面执行,说明Idle是在运行的
但是由操作系统调配的Hwi以及Timer都不运行了。
我从link生成map的文件看到sys/bios的函数都是在falsh中运行的,是这样吗?
其实以前发生过这个问题,我采用例程中的flash的初始化函数里面的几个参数改了一下,就从7天可以坚持到20多天了,不知道是为啥?
//Set the Paged Waitstate for the Flash
FlashRegs.FBANKWAIT.bit.PAGEWAIT = 3; 默认这个设置3,我改到了1
//Set the Random Waitstate for the Flash
FlashRegs.FBANKWAIT.bit.RANDWAIT = 3; 默认这个设置3,我该到了2
//Set the Waitstate for the OTP
FlashRegs.FOTPWAIT.bit.OTPWAIT = 5; 默认这个设置5,我该到了2
以上的改动似乎对程序长期运行起到了效果,但也只是从7天左右延长到了20天的时间左右,但还是不能长期运行,但是我不知道为啥,我猜想是不是sys/bios在falsh运行,是不是这几个参数设置的有啥问题。 谢谢!
我想解决这个问题,我现在想把仿真器长期连接上,如果出现错误了,我就用仿真器进行查看,请问连接上仿真器,和我实际从flash中启动运行的状态是不是一样的,谢谢,连接上仿真器是不是原本从flash中运行的函数还是从flash运行,谢谢!
祝您好心情!
Susan Yang:
回复 yongtao ma59:
很高兴能帮到您