您的位置: OpenADSP社区论坛 -> Blackfin专区 -> 新手上路 -> BF703上DDR问题
本帖共有221个阅读者
发表帖子 发表投票 回复主题
BF703上DDR问题
小五(论坛新手)
小五
头衔:社区公民
帮派:无帮无派
帖数:8
金钱:199
积分:15
注册时间:2019/3/4
楼主信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
BF703上DDR问题
项目上需要做个硬件看门狗自检,大概思路是这样的,上电后,会往DDR的固定地址写一个值(该地址放在ddr的末尾),然后等待3秒,这时候如果存在硬件看门狗,则必然会产生复位信号,重新启动后读取ddr固定地址的值,如果和写入的一样,则表示自检成功。现在遇到的问题就是,每次复位完,写进去的值都会被重新初始化掉,这个问题应该怎么解决呢?

这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2020/7/12 22:56:36
尊贵身份标志
OpenADSP(管理员)
OpenADSP
头衔:社区公民
帮派:无帮无派
帖数:5187
金钱:34761
积分:6369
注册时间:2011/6/7
1信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
我觉得你的整个思路都是错的。如果你的DDR上没有接复位的话,那么每次芯片复位后会重新对这个地址写入值,然后再等到三秒。复位之后,为什么会要读取值呢?而不是最先的写入值?

在硬件上把看门狗过来的信号做一个切换开关,开关另一路接个io,然后上电的时候默认开关状态是切换到io的,然后用io检测看门狗的复位,如果OK的话,就把开关切到复位那一路。

我是OP...
等级:管理员 参考IP地址:*.*.*.*
2020/7/19 9:43:13
小五(论坛新手)
小五
头衔:社区公民
帮派:无帮无派
帖数:8
金钱:199
积分:15
注册时间:2019/3/4
2信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
上电后是先对比地址上的值,如果相等,说明看门狗复位了,不会再等待三秒,如果不相等,说明看门狗复位失败,就进去等待分支,同时往地址写值。

这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2020/7/20 9:37:53
尊贵身份标志
OpenADSP(管理员)
OpenADSP
头衔:社区公民
帮派:无帮无派
帖数:5187
金钱:34761
积分:6369
注册时间:2011/6/7
3信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
不太记得内存芯片有没有复位了,如果内存有复位,和看门狗连接在一起,那复位后内存的数据肯定丢失的

我是OP...
等级:管理员 参考IP地址:*.*.*.*
2020/7/20 23:10:59
尊贵身份标志
OpenADSP(管理员)
OpenADSP
头衔:社区公民
帮派:无帮无派
帖数:5187
金钱:34761
积分:6369
注册时间:2011/6/7
4信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
你看看内存会不会跟着复位?还有就是处理器复位后,有没有对内存做初始化归0操作,blackfin是有这个初始化归零的指令的,但很少使用。就比如仿真器编译后,内存肯定清零。

如果不是复位引起的,是不是处理器初始化导致数据丢的。

我是OP...
等级:管理员 参考IP地址:*.*.*.*
2020/7/20 23:13:25
Powered by OpenADSP Copyright © 2010 www.Openadsp.com. All rights reserved.153457 Call, 1 Queries, Processed in 0.015625 second(s),