嵌入式学习小组
直播中

刘彬彬

7年用户 199经验值
私信 关注

怎么定义一个信号量可以让多个.C文件用?

最近在学习发烧友的UCOS III视频,但是视频里讲信号量和消息队列时,所建的信号量和消息队列在是在同一个.C文件里的,因为在实际使用中,我们的工程会有很多.C文件。
比如说我的串口中断处理函数放在别的.C文件里面,跟处理中断处理函数的任务不在同一个.C文件里面。那我要实行同步时,我中断处理函数接收完数据要发送信号量给别的.C文件里的任务,那我的这个信号量怎么定义呢(难道要像定义外部全局变量一样,声明成一个外部信号量嘛?)?  在任务同步的过程中,中断处理函数的数据怎么通过消息队列传递给别的.C文件里面的任务呢(也是把消息队列声明成外部消息队列嘛)?
问题:
1、怎么定义一个信号量可以让多个.C文件用?2、在某个.C文件里面有个全局数组的值怎么通过消息队列发送给别的.C文件的任务(是不是要定义个外部消息队列,像裸跑程序一样用extern定义义成外部消息队列)?

回帖(3)

黎明

2019-9-6 07:09:25
可以用指针传递
举报

李红霞

2019-9-6 07:17:17
有点疑问,打个比方,我在串口中断处理理函数的.C文件里声明了一个全局结构体,同时在同一个。C文件声明一个消息队列,串口中断处理函数把接收的数据存在全局结构体中,然后把全局结构体的指针赋给声明的消息队列,然后发送消息队列出去,但是别的.C文件里面的任务应该是识别不了我的消息队列的吧?因为在两个不同的.C文件里面。
举报

邬连拓

2019-9-6 07:32:48
自己验证
举报

更多回帖

发帖
×
20
完善资料,
赚取积分