- 博客(21)
- 资源 (8)
- 收藏
- 关注
原创 进程与程序的区别
<br />进程和程序是有本质区别的,程序是静态的,它是一些保存在磁盘上的指令的有序集合,没有任何执行的概念;而进程是一个动态的概念,它是程序执行的过程,包括了动态创建、调度和消亡的整个过程。它是程序执行和资源管理的最小单位。因此,对系统而言,当用户在系统中键入命令执行一个程序的时候,它将启动一个进程。在LINUX中通过进程控制块,对进程进行描述,太其中包括了进程的描述信息,控制信息,以及资源信息。他被包含在文件include/linux/sched.h中。
2010-09-28 21:36:00 1367
原创 任务控制块的相关操作
1,任务控制块os_tcb的结构体typedef struct os_tcb { OS_STK *OSTCBStkPtr; 任务的栈顶#if OS_TASK_CREATE_EXT_EN > 0 void *OSTCBExtPtr; /* Pointer to user definable data for TCB extension */ OS_STK *OSTCBStkBottom;
2010-09-26 20:57:00 801
原创 UCOSii事件总结2
初始化事件列表 3.1.1信号量,互斥信号量,消息邮箱,消息队列,,信号量集,内存块。初始化创建链表,static void OS_InitEventList (void){ INT16U i;#if (OS_MAX_EVENTS > 1) OS_EVENT *pevent1; OS_EVENT *pevent
2010-09-26 20:49:00 906
原创 ucosII事件总结1
<br /> 一,事件和相关的结构体总结<br />1、 在ucosii中事件主要有五种<br />A、信号量 OS_EVENT_TYPE_SEM<br />B、互斥信号量 OS_EVENT_TYPE_MUTEX<br />C、消息邮箱 OS_EVENT_TYPE_MBOX<br />D、消息队列 OS_EVENT_TYPE_Q<br
2010-09-26 20:41:00 490
原创 UCOSii事件总结
一,事件和相关的结构体总结1、 在ucosii中事件主要有五种A、信号量 OS_EVENT_TYPE_SEMB、互斥信号量 OS_EVENT_TYPE_MUTEXC、消息邮箱 OS_EVENT_TYPE_MBOX D、消息队列 OS_EVENT_TYPE_QE、信号量集 OS_EVNET_TYPE_FLAG2、事件的结构体。
2010-09-26 20:34:00 1119
原创 UCOS 内核2.83学习总结——互斥型信号量
一: 互斥型信号量的理解 互斥型信号量首先是二值信号量,实现对共享资源的独占式处理,其次互斥型信号量可以在应用程序代码中用于降解优先级的反转问题,这个是它和普通信号量的最本质的区别。二: 优先级反转的问题 假设现在有三个任务分别是Task1,Task2,Task3,优先级从大到小。程序在运行过程中,Task1和Task2处于挂起(pend)的状态,等待某个事件的发生。这样优
2010-09-21 22:50:00 2120
原创 ucos事件总结1
<br />对UCOSII事件的总结<br />1、 在ucosii中事件主要有五种<br />A、信号量 OS_EVENT_TYPE_SEM<br />B、互斥信号量 OS_EVENT_TYPE_MUTEX<br />C、消息邮箱 OS_EVENT_TYPE_MBOX<br />D、消息队列 OS_EVENT_TYPE_Q<br />E、信号量集 OS_EVNET_TYPE_FLAG<br />2、事件的结构体。<br />OS_EVENT_TYPE_SEM OS_EVENT_TY
2010-09-20 22:27:00 852
原创 ucos事件总结1
<br />对UCOSII事件的总结<br />1、 在ucosii中事件主要有五种<br />A、信号量 OS_EVENT_TYPE_SEM<br />B、互斥信号量 OS_EVENT_TYPE_MUTEX<br />C、消息邮箱 OS_EVENT_TYPE_MBOX<br />D、消息队列 OS_EVENT_TYPE_Q<br />E、信号量集 OS_EVNET_TYPE_FLAG<br />2、事件的结构体。<br />OS_EVENT_TYPE_SEM OS_EVENT_TY
2010-09-20 22:26:00 2892
原创 函数的全局变量
<br />1、全局变量的作用域<br /> 全局变量的适用范围是:定义全局变量的文件和申明全局变量的文件。<br /> 例如:<br /> 文件abc:<br /> int overall;<br /> abc()<br /> {<br /> overall++;<br />
2010-09-18 10:23:00 746
原创 浅析μCOS/II v2.85内核OSFlagPend()和OSFlagPost()
<br />浅析μCOS/II v2.85内核OSFlagPend()和OSFlagPost()函数工作原理<br />http://gliethttp.cublog.cn<br />//对于flag--"事件组"的使用,可以用一个简单的例子做说明:<br />// 比如,我现在用迅雷下载一部10集的连续剧,我打算10集全部下载完成之后,<br />//才开始正式看,现在3~10集因为种子原因,先早下完了,现在第1集下到了82%,<br />//第2集下到了97%,因为我的计划是10集全部下完才开始看,而第
2010-09-16 21:34:00 6470
原创 浅析μCOS/II v2.85内核OSQPend()和OSQPost()函数工作原理
//----------------------------------------------------------------------//1.OSQPend()函数void*OSQPend(OS_EVENT*pevent, INT16U timeout, INT8U*perr){ void*pmsg; OS_Q*pq;
2010-09-16 21:12:00 6666
原创 ucosII消息队列创建函数
/*****************************************************************************函数名:*OSQCreate 函数的参数:void **start 消息队列的首地址 INT16U size 消息队列的长度函数的返回值:指向消息队列的指针函数实现的过程: 一,从空的事件链表中取一个事件 pevent = OSEventFreeList if(pevnet !
2010-09-16 20:45:00 1315
原创 非常完美的函数
<br />非常完美的函数<br />#if OS_EVENT_EN > 0<br />INT8U OS_EventTaskRdy (OS_EVENT *pevent, void *msg, INT8U msk)<br />{<br /> OS_TCB *ptcb;<br /> INT8U x;<br /> INT8U y;<br /> INT8U bitx;<br /> INT8U bity;<br /> INT8U prio;<br />y =
2010-09-13 22:10:00 977
原创 在程序中经常容易出错的地方
<br />1,关于>>和<<的操作数<br /> 在左移和右移的运算中记住:被移位的数是放在操作码的左边的,移动的位数是放在操作码的右边的。
2010-09-13 20:58:00 629
原创 c语言嵌入式系统编程修炼之软件构架
<br />模块划分<br /><br /> 模块划分的"划"是规划的意思,意指怎样合理的将一个很大的软件划分为一系列功能独立的部分合作完成系统的需求。C语言作为一种结构化的程序设计语言,在模块的划分上主要依据功能(依功能进行划分在面向对象设计中成为一个错误,牛顿定律遇到了相对论),C语言模块化程序设计需理解如下概念:<br /><br /> (1) 模块即是一个.c文件和一个.h文件的结合,头文件(.h)中是对于该模块接口的声明;<br /><br /> (2) 某模块提供给其它模块调用的外部函数及
2010-09-12 14:49:00 715
原创 UCOSII信号量的三个主要的函数
一,信号量创建函数OS_EVENT *OSSemCreate (INT16U cnt){ OS_EVENT *pevent;#if OS_CRITICAL_METHOD == 3 /* Allocate storage for CPU status register */ OS_CPU_SR cpu_sr = 0;#endif if (OSIntNesting > 0) {
2010-09-12 14:12:00 4187
原创 多线程编程
<br />一、问题的提出<br />编写一个耗时的单线程程序:<br /> 新建一个基于对话框的应用程序SingleThread,在主对话框IDD_SINGLETHREAD_DIALOG添加一个按钮,ID为IDC_SLEEP_SIX_SECOND,标题为“延时6秒”,添加按钮的响应函数,代码如下:<br />void CSingleThreadDlg::OnSleepSixSecond() <br />{<br /> Sleep(6000); //延时6秒<br />}<br /> 编译并
2010-09-05 14:52:00 483
原创 多线程编程
<br />一、问题的提出<br />编写一个耗时的单线程程序:<br /> 新建一个基于对话框的应用程序SingleThread,在主对话框IDD_SINGLETHREAD_DIALOG添加一个按钮,ID为IDC_SLEEP_SIX_SECOND,标题为“延时6秒”,添加按钮的响应函数,代码如下:<br />void CSingleThreadDlg::OnSleepSixSecond() <br />{<br /> Sleep(6000); //延时6秒<br />}<br /> 编译并
2010-09-05 14:50:00 356
原创 多线程编程
<br />一、问题的提出<br />编写一个耗时的单线程程序:<br /> 新建一个基于对话框的应用程序SingleThread,在主对话框IDD_SINGLETHREAD_DIALOG添加一个按钮,ID为IDC_SLEEP_SIX_SECOND,标题为“延时6秒”,添加按钮的响应函数,代码如下:<br />void CSingleThreadDlg::OnSleepSixSecond() <br />{<br /> Sleep(6000); //延时6秒<br />}<br /> 编译并
2010-09-05 14:49:00 499
原创 c语言描述生产者消费者问题
<br />#include <windows.h> <br />#include <stdio.h> <br />#include <stdlib.h> <br /> <br />typedef HANDLE Semaphore; //信号量的Windows原型 <br /> <br />#define P(S) WaitForSingleObject(S, INFINITE) // 定义Windows下的P操作 <br />#define
2010-09-05 11:42:00 5627
MINI2440启动程序
2011-01-22
uboot readme 中文注释
2010-12-25
C++ Builder 程序设计实用教程.pdf
2010-12-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人