收藏1 举报
查看全部评分
为什么不是说多核处理器核心设计和编程方法就有考虑此问题呢? 对内存不做保护的操作不要说多核,就是单核都会出问题。 t.jm 发表于 2011-8-29 13:17
唉。。。。。 刘前辈辛苦啦,码了这么多字来教俺,谢谢~~~ 只是,程序运行中出错的地方不在 if ( DPTR>250 ) { } 中的DPTR是一个私有变量,是一种避免与ISR共享变量的解决方法。根本无法取消的(当然可以定义另 ... Cortex-M0 发表于 2011-8-29 13:20
102# lxyppc 说正经的,我也有个简单的测试: if(count == 0) { error++; } t.jm 发表于 2011-8-29 14:04
多核单核都不是靠内存保护来完成这个功能的.而是靠软件设计.. icecut 发表于 2011-8-29 14:05
#63楼 还用往下教?没事,菜鸟喜欢关中断,关几个字节谁也不好说什么。上面一句: EA=0; DPTR=count; // 能把高手设的临界区缩小到1 / 3 甚至更小,是件了不起的事。 EA=1; // 只有一条语句,临界区已经最小了。 if ( DPTR > 250 ) // count = 251~260 {……} 这也要刘前辈讲课?
count 对 DPTR 的赋值过程中,万一当中发生中断,并且在中断过程中 ,count 变量中间有半进位发生,中断返回后,再继续执行 count 对 DPTR 赋的值就杯具了~~~ 这个问题转了好大的一个圈,又回到了原地,再讨论下去又有神马意义? 至于本式中的 DPTR,可用任何 int变量代替,执行结果相同~~~
不要把这些东西推给硬件,推给指令集.软件就能解决 icecut 发表于 2011-8-29 14:06
#100楼 M0版主 DPTR = count ; // 所长是不是什么都要让刘前辈告诉你?一点都不长进。 count 对 DPTR 的赋值过程中,万一当中发生中断,并且在中断过程中 ,count 变量中间有半进位发生,中断返回后,再继续执行 count 对 DPTR 赋的值就杯具了~~~ 这个问题转了好大的一个圈,又回到了原地,再讨论下去又有神马意义?至于本式中的 DPTR,可用任何 int变量代替,执行结果相同~~~
您需要 登录 才可以下载或查看,没有账号?注册
唉~~~ 俺真笨,今天才明白,刘前辈的小儿科问题,为什么这么有市场~~~ 因为,懂的都笑笑,打酱油路过,不值的回答~~~ 不懂的总有一大堆理由,答非所问的解释一件很简单的小儿科问题~~~ 所以,刘前辈的小儿科问题,才能在二姨家所向披靡~~~123姐姐果然敏锐,看到问题的本质,俺这根粉丝心悦诚服。 井蛙不可语海,与一个把极其简单的问题说成“第一”“填补空白”,把挂一幅画的家政公司称为“巨人”却愚顽不化的人,看看笑话就可以了,不必过于认真。
多线程自旋锁迫使进程进入临界区从而解决临界区非原子操作所导致的资源冲突问题,是八维宇宙交变场由于熵减造成黑洞嬗变在第四维空间所产生的异常波动。... highgear 发表于 2011-8-29 21:17
本版积分规则 发表回复 回帖并转播 回帖后跳转到最后一页
等级类勋章
发帖类勋章
时间类勋章
人才类勋章
扫码关注 21ic 官方微信
扫码关注嵌入式微处理器
扫码关注电源系统设计
扫码关注21ic项目外包
扫码浏览21ic手机版
本站介绍 | 申请友情链接 | 欢迎投稿 | 隐私声明 | 广告业务 | 网站地图 | 联系我们 | 诚聘英才
京公网安备 11010802024343号