操作系统
Auto笔记
本人从事汽车电子行业,主要负责底层驱动开发、上位机软件开发、应用层逻辑开发
包括:UDS、OSEK、SIMULINK、Bootloader、ISO14229、ISO15765.。。。
展开
-
uCOS-II 基础入门教程(四)
互斥条件 实现任务间通讯最简便到办法是使用共享数据结构。。虽然共享数据区法简化了任务间的信息交换,但是必须保证每个任务在处理共享数据时的排它性,以避免竞争和数据的破坏。与共享资源打交道时,使之满足互斥条件最一般的方法有:关中断 使用测试并置位指令 禁止做任务切换 利用信号量 关中断和开中断 处理共享数据时保证互斥,最简便快捷的办法是关中断和...原创 2019-01-07 20:38:50 · 1704 阅读 · 1 评论 -
uCOS-II 基础入门教程(十二)
内存管理在ANSI C中可以用malloc()和free()两个函数动态地分配内存和释放内存。但是,在嵌入式实时操作系统中,多次这样做会把原来很大的一块连续内存区域,逐渐地分割成许多非常小而且彼此又不相邻的内存区域,也就是内存碎片。由于这些碎片的大量存在,使得程序到后来连非常小的内存也分配不到。由于内存管理算法的原因,malloc()和free()函数执行时间是不确定的。在µC/OS-I...转载 2019-01-23 22:03:29 · 807 阅读 · 0 评论 -
uCOS-II 基础入门教程(五)
死锁(或抱死)(Deadlock (or Deadly Embrace))死锁也称作抱死,指两个任务无限期地互相等待对方控制着的资源。设任务T1正独享资源R1,任务T2在独享资源T2,而此时T1又要独享R2,T2也要独享R1,于是哪个任务都没法继续执行了,发生了死锁。最简单的防止发生死锁的方法是让每个任务都:先得到全部需要的资源再做下一步的工作 用同样的顺序去申请多个资源 释放资源时使...原创 2019-01-08 22:21:10 · 1151 阅读 · 0 评论 -
uCOS-II 基础入门教程(六)
中断中断是一种硬件机制,用于通知CPU有个异步事件发生了。中断一旦被识别,CPU保存部分(或全部)现场(Context)即部分或全部寄存器的值,跳转到专门的子程序,称为中断服务子程序(ISR)。中断服务子程序做事件处理,处理完成后,程序回到:在前后台系统中,程序回到后台程序 对不可剥夺型内核而言,程序回到被中断了的任务 对可剥夺型内核而言,让进入就绪态的优先级最高的任务开始运行...转载 2019-01-14 21:10:07 · 956 阅读 · 1 评论 -
uCOS-II 基础入门教程(九)
建立任务,OSTaskCreate()想让µC/OS-Ⅱ管理用户的任务,用户必须要先建立任务。用户可以通过传递任务地址和其它参数到以下两个函数之一来建立任务:OSTaskCreate() 或 OSTaskCreateExt()。OSTaskCreate()与µC/OS是向下兼容的,OSTaskCreateExt()是OSTaskCreate()的扩展版本,提供了一些附加的功能。用两...转载 2019-01-20 20:47:58 · 1065 阅读 · 0 评论 -
uCOS-II 基础入门教程(七)
任务调度(Task Scheduling)μC/OS-Ⅱ总是运行进入就绪态任务中优先级最高的那一个。确定哪个任务优先级最高,下面该哪个任务运行了的工作是由调度器(Scheduler)完成的。任务级的调度是由函数OSSched()完成的。中断级的调度是由另一个函数OSIntExt()完成的,这个函数将在以后描述。OSSched()的代码如程序: void OSSched (vo...转载 2019-01-15 21:38:58 · 1058 阅读 · 0 评论 -
uCOS-II 基础入门教程(十)
任务堆栈 每个任务都有自己的堆栈空间。堆栈必须声明为OS_STK类型,并且由连续的内存空间组成。用户可以静态分配堆栈空间(在编译的时候分配)也可以动态地分配堆栈空间(在运行的时候分配)。静态堆栈声明如程序,这两种声明应放置在函数的外面。 静态堆栈static OS_STK MyTaskStack[stack_size]; 用户可以用C编译器提供的malloc()...转载 2019-01-21 21:29:43 · 684 阅读 · 0 评论 -
uCOS-II 基础入门教程(八)
μC/OS-Ⅱ初始化在调用μC/OS-Ⅱ的任何其它服务之前,μC/OS-Ⅱ要求用户首先调用系统初始化函数OSIint()。OSIint()初始化μC/OS-Ⅱ所有的变量和数据结构(。OSInit()建立空闲任务idle task,这个任务总是处于就绪态的。空闲任务OSTaskIdle()的优先级总是设成最低,即OS_LOWEST_PRIO。如果统计任务允许OS_TASK_STAT_E...转载 2019-01-16 22:41:41 · 819 阅读 · 0 评论 -
uCOS-II 基础入门教程(十一)
任务之间的通讯与同步在µC/OS-II中,有多种方法可以保护任务之间的共享数据和提供任务之间的通讯。在前面的章节中,已经讲到了其中的两种:一是利用宏OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL()来关闭中断和打开中断。当两个任务或者一个任务和一个中断服务子程序共享某些数据时。二是利用函数OSSchedLock()和OSSchekUnlock()对µC/OS...转载 2019-01-22 23:10:11 · 780 阅读 · 0 评论