新手上路
- 积分
- 29
- 金钱
- 29
- 注册时间
- 2018-11-7
- 在线时间
- 7 小时
|
楼主 |
发表于 2018-11-7 15:45:45
|
显示全部楼层
比如,我有一个项目里,有4个任务:taskA, taskB, taskC, taskD,它们分别在不同的文件里。
在taskA所在文件里,定义static uint8_t taskA_Flag_Bit;
在taskB所在文件里,定义static uint8_t taskB_Char_Var;
在taskC所在文件里,定义static uint16_t taskC_Word_Var;
然后,我在执行任务taskD时,需要用到taskA_Flag_Bit,taskB_Char_Var, taskC_Word_Var;
那么,我在taskD的文件里,是不是要定义一个结构体
typedef struct _MsgBuf
{
uint8_t taskA_Flag_Bit;
uint8_t taskB_Char_Var;
uint16_t taskC_Word_Var;
}MsgBuf ;
static MsgBuf s_GetMsg;
然后,s_GetMsg.taskA_Flag_Bit采用事件标志,从taskA传过来24位各种标志taskA_Flag_Bit;
s_GetMsg.taskB_Char_Var采用消息队列,从taskB传过来数据taskB_Char_Var;
s_GetMsg.taskC_Word_Var采用消息队列,从taskC传过来数据taskC_Word_Var;
最后,才能在taskD中,根据以上不同情况,执行不同动作。
我这么做的目的,就是不用全局变量。问题是,一个项目,裸机程序里可能有上百个标志位和全局变量,按我说的这种方法做,好像很麻烦。这个操作系统,是不是要这样做? |
|