void OSInit (void){ INT16U i; /*****/
在8051核单片机庞大的家族中,C8051F系列作为其中的后起之秀,是目前功能最全、速度最快的8051衍生单片机之一,正得到越来越广泛的应用。它集成了嵌入式系统的许多先进技术,有丰...
一、什么是PendSV
PendSV是可悬起异常,如果我们把它配置最低优先级,那么如果同时有多个异常被触发,它会在其他异常执行完毕后再执行,而且任何异常都可以中断它。更详细的内容...
一、上篇回顾
上次代码中Task_Switch实现了两个任务的切换,代码如下:
void Task_Switch()
{
if(g_OS_Tcb_CurP == &am...
时间管理
uC/OS-II的时间管理是通过定时中断来实现的,该定时中断一般为10毫秒或100毫秒发生一次(这个时间片段是OS的作者推荐的,大家可以参考邵贝贝翻译的...
任务间通信与同步
对一个多任务的操作系统来说,任务间的通信和同步是必不可少的。uC/OS-II中提供了4种同步对象,分别是信号量,邮箱,消息队列和事件。所有这些同...
UCOS的运行是基于任务运行的,为了能够好的使用UCOS我们先要对UCOS的任务的概念做一个理解
在学习UCOS任务前我们先对我们以前使用的模式做一个回顾--前后台模式。
&l...
任务调度是内核的主要职责之一,就是要决定该轮到哪个任务运行了。多数实时内核是基于优先级调度法的,UCOS也不例外。每个任务根据其重要程度的不同被赋予一定的优先级。基于优先级的调度法...
释放一个互斥信号量:OSMutexPost()关键代码剖析:INT8U OSMutexPost (OS_EVENT *pevent){ ...
本节我们将从实时操作系统来讲解,主要是从下面3个方面进行讲解:
1.操作...
本节我们将对ucosII操作系统有个初步的认识,主要是从下面2个方面进行讲解:
1.UCOSII
1:任务有切换,但切换到某个任务,总是出现hardfault错误?【现象:给出错的任务换一个大小一样但名字不一样的堆栈就可以,使用原来名字的堆栈就是出错】
解决:
1:查看ha...
开场白: 上一节鸿哥列出了初学者七大误区,到底什么才是初学者关注的核心?那就是裸机奔跑的程序结构。一个好的程序结构,本身就是一个微型的多任务操作系统。鸿哥...
1.模块划分
模块划分的“划”是规划的意思,意指怎样合理的将一个很大的软件划分为一系列功能独立的部分合作完成系统的需求。C语言作为一种结构化的程序设计语言...
来自
C语言|by
粽子糖果 |发表时间 2017-09-06
|0个回复
本文讲述了将ANSIC程序移植到KeilC51上应该注意的事项。文章讲述了存储类型、指针类型、重入函数、根据目标系统RAM的分布的段定位和仿真栈设置、函数指针、NULL指针问题、字...