- 主题:两个mcu共享一片flash,能做到吗?
再来一个更简单粗暴的方法,还是走CS线,不主动提供时钟信号
A需要先拉1时间单位有效信号,释放1时间单位
B需要先拉2时间单位有效信号,释放1时间单位
A的占用标志是1+0+1,需要B用2.x个时间单位来监听判定
B的占用标志是1+1+0+1,需要用3.x个时间单位来监听判定
缺点是B的优先级高
--
FROM 121.69.101.*
那就得计算一次flash访问最大时长和实时请求的最大允许时延了。
要是量没上M的话还是别省flash了
【 在 aventadors 的大作中提到: 】
: 这个方法确实能解决这个问题,也解决了我之前的一个疑问:两个mcu恰好同时访问怎么办。不过这个算法实现起来有点复杂啊,片内ram只有20k,目前代码基本上已经占完。另一个担心是这个算法会不会降低实时性?我这个是个强实时系统
--
FROM 222.90.55.*
“A需要先拉1时间单位有效信号”,是指A把CS拉低一个时间单位?
我其实觉得带随机回退的CSMA/CD算法是个完美的方案,就是实现的复杂度比较高,还可能影响实时性
【 在 pauljoe 的大作中提到: 】
: 再来一个更简单粗暴的方法,还是走CS线,不主动提供时钟信号
: A需要先拉1时间单位有效信号,释放1时间单位
: B需要先拉2时间单位有效信号,释放1时间单位
: ...................
--
FROM 183.222.204.*
CSMA/CD只是减少碰撞概率
你自己说的极端情况是无法避免的
【 在 aventadors 的大作中提到: 】
: “A需要先拉1时间单位有效信号”,是指A把CS拉低一个时间单位?
: 我其实觉得带随机回退的CSMA/CD算法是个完美的方案,就是实现的复杂度比较高,还可能影响实时性
--
FROM 124.64.120.*
两个mcu用gpio做临界区保护
然后一个操作的时候另一个人等待就可以了
【 在 aventadors 的大作中提到: 】
: 两个mcu都只会读flash,目前想到的办法是每个mcu要读之前,先读一下flash cs引脚的状态,为高才继续。但这样貌似也不能百分百安全,如果两个mcu恰好步调非常一致,恰好同时读cs,此时可能出现同时读flash的情况
: --
发自「今日水木 on iPhone 12 mini」
--
FROM 223.104.40.*
你这定制 mcu 有 gpio 输出和 reset 输入吗?
mcu 分主从;
从 mcu reset 电阻拉低;
主 mcu gpio -> 从 mcu reset,解决上电先后冲突
解决运行时冲突也类似
主 mcu gpio -> 从 mcu gpio
--
FROM 221.226.107.*