如何获取免费的国内代理IP以优化网站性能?
摘要:做网站需要源码,国内代理ip免费网址,wordpress搭建后域名打不开,wordpress图片体积uCOSii中信号量的作用: 在创建信号量时,Sem_EventOSSemCre
做网站需要源码,国内代理ip免费网址,wordpress搭建后域名打不开,wordpress图片体积uCOSii中信号量的作用#xff1a;
在创建信号量时#xff0c;Sem_EventOSSemCreate(1)用于分时复用共享资源#xff1b;
Sem_EventOSSemCreate(0)用于中断和任务间同步或任务之间的同步。
具体在使用时#xff0c;需要灵活运用。在访问共享资源时#xff0c;我喜欢用互…uCOSii中信号量的作用
在创建信号量时Sem_EventOSSemCreate(1)用于分时复用共享资源
Sem_EventOSSemCreate(0)用于中断和任务间同步或任务之间的同步。
具体在使用时需要灵活运用。在访问共享资源时我喜欢用互斥信号量爱好不同而已。 一、uCOSii信号量用于对共享资源的保护
1、举例如下
任务1每隔1小时将DATA1数据保存到EEPROM。
任务2每隔2小时将DATA2数据保存到EEPROM。
可见任务1和任务2都要使用公共资源“写EEPROM”。为了防止使用冲突我们通过发送信号量和接收信号量来分时操作“写EEPROM”保证写入正确。
当然也可以放在一个任务里去做为了了解怎么使用共享资源这里使用信号量来实现。 2、实现方法
1)、声明事件指针
OS_EVENT *Sem_Event;//定义一个事件指针 2)、任务1
//函数功能:任务1每隔1小时将DATA1数据保存到EEPROM。
void SaveDATA1_Task(void *pdata)
{
u16 SaveDATA1_Cnt;
u8 Sem_Err; while(1)
{
OSTimeDlyHMSM(0,0,0,1000);//延时1秒
SaveDATA1_Cnt;
if(SaveDATA1_Cnt 3600)//1小时时间到,保存DATA1
{
OSSemPend(Sem_Event,0,Sem_Err);//等待一个信号量,实现资源保护
EEPROM_U8_Data_Write(DATA1, DATA1_address);
OSSemPost(Sem_Event);//发出一个信号量
SaveDATA1_Cnt 0;
}
}
} 3)、任务2
//函数功能:任务2每隔2小时将DATA2数据保存到EEPROM。
void SaveDATA2_Task(void *pdata)
{
u16 SaveDATA2_Cnt;
u8 Sem_Err; while(1)
{
OSTimeDlyHMSM(0,0,0,1000);//延时1秒
SaveDATA2_Cnt;
if(SaveDATA2_Cnt 7200)//2小时时间到,保存DATA2
{
OSSemPend(Sem_Event,0,Sem_Err);//等待一个信号量,实现资源保护
EEPROM_U8_Data_Write(DATA2, DATA2_address);
OSSemPost(Sem_Event);//发出一个信号量
SaveDATA2_Cnt 0;
}
}
} 4)、启动任务
void Start_Task(void *pdata)
{
OS_CPU_SR cpu_sr0; OS_ENTER_CRITICAL();
//进入临界区(无法被中断打断),需要定义cpu_sr变量
Sem_EventOSSemCreate(1);
//创建信号量Sem_Event设置计数器初始值设置为1即发送了一个信号量。
