硬汉嵌入式论坛

 找回密码
 立即注册
查看: 3742|回复: 5
收起左侧

[FreeRTOS] 关于在FreeRTOS系统中使用EEPROM的问题

[复制链接]

2

主题

2

回帖

28

积分

新手上路

积分
28
发表于 2018-7-5 16:37:27 | 显示全部楼层 |阅读模式
刚开始学习FreeRTOS,我想请教一下程序中读写EEPROM的时候需要特殊的保护吗?比如初始化过程,有多个任务读写EEPROM等
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107220
QQ
发表于 2018-7-5 16:49:43 | 显示全部楼层
不管是用的模拟I2C还是硬件I2C,推荐仅创建一个EERPOM任务,专门做参数的存取。需要读取或者存储的任务,给此任务发消息。

这种方式,比在在多个任务里面做调度锁或者开关中断要好。
回复

使用道具 举报

6

主题

17

回帖

35

积分

新手上路

积分
35
发表于 2018-7-5 18:19:27 | 显示全部楼层
eric2013 发表于 2018-7-5 16:49
不管是用的模拟I2C还是硬件I2C,推荐仅创建一个EERPOM任务,专门做参数的存取。需要读取或者存储的任务,给 ...

像eeprom这种一个写周期就10ms时间的,写的数据比较多是不是也要加调度锁或者关中断?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107220
QQ
发表于 2018-7-6 02:12:10 | 显示全部楼层
一毛 发表于 2018-7-5 18:19
像eeprom这种一个写周期就10ms时间的,写的数据比较多是不是也要加调度锁或者关中断?

如果是硬件I2C的话,不用管。如果是IO模拟的话,放在一个高优先级任务里面搞即可,因为EEROM记录参数仅仅某个时间才记录一次,不需要周期性的频繁记录。另外还有防止中断影响,中断服务程序的执行时间越短越好。
回复

使用道具 举报

2

主题

2

回帖

28

积分

新手上路

积分
28
 楼主| 发表于 2018-7-6 11:14:19 | 显示全部楼层
嗯嗯,感谢大神的解答,我消化一下……
回复

使用道具 举报

0

主题

7

回帖

7

积分

新手上路

积分
7
发表于 2018-7-17 12:32:22 | 显示全部楼层
如果多个IIC设备共用一个总线的话,在初始化的时候一定要创建一个递归互斥量,用于保护总线对于字节的读写操作即可,确保保护时间最短。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-22 02:32 , Processed in 0.219911 second(s), 31 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表