完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
DSP28346平台,没有用操作系统。平台提供的时间片资源有限。 while主循环中有时间片任务:task1msApp(); task2msApp();等,且while循环中任务执行一遍的时间不能超过10ms,否则系统超时复位。
现在的问题是:经测试f_write()函数写一个扇区占用的时间绝对大于10ms,如果将f_write函数放入主循环任务中,肯定不行。 最后想做到的是:f_write这个函数写一个扇区操作拆分成多次执行,每次耗时100us左右执行一小部分。这样貌似就复杂了,还得修改文件系统代码。使用操作系统就不会存在这种问题,因为系统会自动帮你保存现场。 还有没有更好的解决方法? |
|
相关推荐
7个回答
|
|
|
|
|
|
做定时器,10ms中断,处理喂狗。
|
|
|
|
由于系统实时性的要求,while循环一遍的时间一定要在10ms之内完成。 否则复位,这是一种保护机制。 任何时候10ms之内,while中的任务都得执行一遍,要不然就有可能炸机了。
你说的10ms中断喂狗 ,不太清楚怎么个处理法, 能详细一点吗? |
|
|
|
|
|
|
|
你是如何保证10ms会复位的?
|
|
|
|
主循环while每循环一次都给一个全局变量赋值30,在333.333us的中断每执行一次减一。也就是中断执行30次,30*333.333us=10ms。如果该全局变量还没有更新就会变为0。在中断中看门狗复位。
|
|
|
|
你说的这个用了操作系统,就不需要死等了,当然没问题。我说的这个是没有操作系统的。
|
|
|
|
只有小组成员才能发言,加入小组>>
2893 浏览 3 评论
27693 浏览 2 评论
3467 浏览 2 评论
3981 浏览 4 评论
基于采用FPGA控制MV-D1024E系列相机的图像采集系统设计
2331 浏览 3 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-19 01:45 , Processed in 0.705957 second(s), Total 90, Slave 70 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号