Redian新闻
>
C嵌入式一个问题:SanDisk CF API
avatar
C嵌入式一个问题:SanDisk CF API# Programming - 葵花宝典
o*s
1
之前看联系了某学校的老板A和B,看似不像一个系的,A要更牛一点。A当天就回信了,
说会和你老板接触要推荐信之类的。
过了几天,B也回信了,介绍了自己的项目课题,并说我们这里学术环境良好,有很多
合作,比如我们这个项目,和教授XX,以及教授A,都有合作,问我可不可以向我老板
要推荐信之类的。
请问这种情况下,我是不是应该主动和B讲,我也和A联系了呢?
avatar
b*i
3
嵌入式设备,一个CPU, 有网络芯片,有CF卡。用SanDisk api写CF,同时有一个tcp/
ip的库,似乎是poll,不是多任务的,没有os。
发现一个bug,有几个设备,CF卡里某个目录里面的文件消失了,原因是文件目录表被
最新的文件的内容,最后的一个扇区给覆盖了。比如文件最后一个扇区是字符串 5, 34
, time, 等,那么这些字符串就也出现在文件目录表那个cluster,该文件目录项所在
的扇区,比如如果是第33个文件,那么就不是文件目录表的第一个扇区。
这样的错误可能发生在什么地方?我看了,没发现网卡的中断执行过SanDisk api。当
然,我们的SanDisk api是没有critical section保护的,因为本来就不会重入。
大牛帮想想是什么原因?buffer overflow? stack overflow? 需要critical section
保护?
avatar
m*e
4
面试过了吗?
avatar
F*g
5
写应该要保护的吧。
地址有算错吗?
avatar
o*s
6
没有,都是说要招人,A问我准备什么时候毕业,什么时候可以过去,然后就说他会和
我老板联系要推荐信。
B也大概是这个意思,说要和我老板联系。但我感觉他们似乎还有点熟,B还主动提了她
和A有合作的事,我需要和她说,其实我也联系A了这种事吗。。。
avatar
b*i
7
是指api内部代码吗还是CF卡内部的嵌入式代码?
如果是api内部,写保护是什么意思?没有重入啊?

【在 F********g 的大作中提到】
: 写应该要保护的吧。
: 地址有算错吗?

avatar
k*n
8
直说
让他们都知道
你联系两个人没什么错,为什么怕他们知道

【在 o****s 的大作中提到】
: 没有,都是说要招人,A问我准备什么时候毕业,什么时候可以过去,然后就说他会和
: 我老板联系要推荐信。
: B也大概是这个意思,说要和我老板联系。但我感觉他们似乎还有点熟,B还主动提了她
: 和A有合作的事,我需要和她说,其实我也联系A了这种事吗。。。

avatar
n*e
9
什么文件系统?

【在 b***i 的大作中提到】
: 是指api内部代码吗还是CF卡内部的嵌入式代码?
: 如果是api内部,写保护是什么意思?没有重入啊?

avatar
b*i
10
FAT16

【在 n***e 的大作中提到】
: 什么文件系统?
avatar
b*i
11
找到问题原因了,哈哈哈哈
庆祝一个星期吃龙虾了

34
section

【在 b***i 的大作中提到】
: 嵌入式设备,一个CPU, 有网络芯片,有CF卡。用SanDisk api写CF,同时有一个tcp/
: ip的库,似乎是poll,不是多任务的,没有os。
: 发现一个bug,有几个设备,CF卡里某个目录里面的文件消失了,原因是文件目录表被
: 最新的文件的内容,最后的一个扇区给覆盖了。比如文件最后一个扇区是字符串 5, 34
: , time, 等,那么这些字符串就也出现在文件目录表那个cluster,该文件目录项所在
: 的扇区,比如如果是第33个文件,那么就不是文件目录表的第一个扇区。
: 这样的错误可能发生在什么地方?我看了,没发现网卡的中断执行过SanDisk api。当
: 然,我们的SanDisk api是没有critical section保护的,因为本来就不会重入。
: 大牛帮想想是什么原因?buffer overflow? stack overflow? 需要critical section
: 保护?

avatar
n*e
12
呵呵,恭喜恭喜!
给说说原因?
我猜是不不是哪个index溢出了?

【在 b***i 的大作中提到】
: 找到问题原因了,哈哈哈哈
: 庆祝一个星期吃龙虾了
:
: 34
: section

avatar
b*i
13
不完全是。答案对了一半。再猜?

【在 n***e 的大作中提到】
: 呵呵,恭喜恭喜!
: 给说说原因?
: 我猜是不不是哪个index溢出了?

avatar
n*e
14
猜不出。。。求答案!

【在 b***i 的大作中提到】
: 不完全是。答案对了一半。再猜?
avatar
b*i
15
是一个 计数器,用来记毫秒数的溢出,大概2^32毫秒就溢出(每1毫秒加一次),就是
大约50天。而我们两个设备都是在50天左右出现了错误的文件目录区。就是SanDisk的
API没有考虑这个问题,它们的代码在等待的时候是直接比较当前的毫秒计数和预期计
数,而不是先做减法再跟等待的毫秒数比较。快溢出的的时候如果正好马上等待,那么
等待不会进行。

【在 n***e 的大作中提到】
: 猜不出。。。求答案!
avatar
n*e
16
这个您都能找出来!拜服中!

【在 b***i 的大作中提到】
: 是一个 计数器,用来记毫秒数的溢出,大概2^32毫秒就溢出(每1毫秒加一次),就是
: 大约50天。而我们两个设备都是在50天左右出现了错误的文件目录区。就是SanDisk的
: API没有考虑这个问题,它们的代码在等待的时候是直接比较当前的毫秒计数和预期计
: 数,而不是先做减法再跟等待的毫秒数比较。快溢出的的时候如果正好马上等待,那么
: 等待不会进行。

avatar
b*i
17
准确的死机时间是49.7天。结果一个学机械的经理上网一看,
Windows 98

【在 n***e 的大作中提到】
: 这个您都能找出来!拜服中!
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。