你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

你的缓存清了吗?

[复制链接]
黄小狼 发布时间:2015-1-30 20:23
最近在搞一个手持操作器的程序,原来是想在stm32f103vb上跑一个ucosII2.92的,但是后来不论怎么搞,在写入SD卡数据时总是出问题,卡死了,原因找了很久,没有搞定。
0 y5 _( A/ n6 ?5 \* y9 t后来又把ucos去除了,回到裸奔时代!
; @# y8 w0 R8 ~  g/ R嘿!还别说,这裸奔就是爽,速度那是刚刚的,不过这里出故事了。' G+ m3 P4 @6 W* C, _! `
有操作系统的跑得慢,没有的系统的跑得快,中间加的延时间就出问题了!
2 K+ G: ~, U5 ?1 i  h& U% o; [* E+ S) t, z- L$ W  l3 h
; M5 x2 d- O4 r
后来就用定时器定时,用了一个数据准备标志来判断数据是否接收完,或是超时。
& \4 }- }- ?8 H其中,在接收中断中,判断数据长度是否超过指定长度,超过了数据准备标志置位。4 z) X7 e5 |+ [
在定时器中加也加入超时判定,数据发出后,开始计时,时间到时数据准备标志置位。
5 L2 B% w% F" o3 h9 a主程序中,检测到数据准备标志置位后,对数据区进行解析,然后将解析好的数据存到SD卡中。9 L# H" q$ h! L$ o8 e/ ?6 o0 Q/ X

+ b- K) [6 C. e0 R# r) v
% O* o; k' `$ E& i
但是,这下好玩了,DEBUG!过了,没有问题!!!. @" X' K" M  U6 \; P
让程序自动跑吧,嘿嘿,SD写入的数据怎的据和上面的几条一样呢?
- V3 g5 a( Q/ J' A$ n后来才发现,当时从ucos中移植回来时,去除了当时解析长度,对整个数据缓冲区进行解析(主要是一次接收的数据特别多)
) j2 h0 V8 v; e" }$ x由于在数据发出到接收完成的时间不是固定的,因为对方的速度有时会慢一点(各种原因啦,主要是得从flash中读取数据再返回过来),在定时器时间内这个慢的数据并不能完全到达,而这个时候,禁止了数据的接收,导致数据区不能完全更新,正进行解析,嘿嘿,就出故事了!& H5 q2 T+ U; z; @4 Q

# d+ ]# T: X5 e! g0 |% d* M0 M

4 m# j4 m# G. H综上所述,之所以出现前后部分数据相同的情况,都是因为缓冲区数据没有完全被更新闹的,如果今后有人遇到这个情况,也不凡清除一下数据接收缓存,或许就好了。总的来说还是自己在设计时没有考虑周全,只清了数据写入的缓存,数据源的缓存没有清。
, }+ W/ B0 B+ x- g1 _: F  J/ j9 |5 Q$ [' z. X* H
' R' ~! B" A3 j6 R9 S
感谢各位看官,看完俺这出笑话,是否噗嗤一乐?
2 O/ s3 ^6 a5 ~$ W+ d+ }4 Q9 V' v8 Q& \/ I; [' \& f& p  h
1ST币,50%,看看谁手气好
! A. Q: S/ q' I% O
7 o0 N5 J# t$ s" h/ j

/ A9 U* {2 ?' L
赞 收藏 评论10 发布时间:2015-1-30 20:23

举报

10个回答
qianfan 回答时间:2015-1-30 20:34:18
不知道我的运气怎么样
mikeliujia 回答时间:2015-1-30 20:44:01
学习了
黄小狼 回答时间:2015-1-30 20:46:07
QianFan 发表于 2015-1-30 20:34, z; _9 Z( x$ }' @
不知道我的运气怎么样
; ^+ c- Z8 A/ Y8 q! ?
哇,您这运气太好了,可以买彩票!
feel-376797 回答时间:2015-1-31 05:51:50
谢谢分享
默默前行 回答时间:2015-1-31 07:54:31
感谢楼主分享,我也试试运气!
埃斯提爱慕 回答时间:2015-1-31 08:58:26
提示: 作者被禁止或删除 内容自动屏蔽
lkl0305 回答时间:2015-1-31 09:04:38
多谢分享啊
holts1 回答时间:2015-1-31 09:20:34
我通常下载时全清
chendiand 回答时间:2015-2-2 09:51:39
弱弱的问一句,怎么清
天天晓宇 回答时间:2015-2-2 10:13:41
呵呵,谢谢分享
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版