虫虫首页| 资源下载| 资源专辑| 精品软件
登录| 注册

Microc-Os-Ii-The-<b>real</b>-Time-Kerne

  • ucosII源码分析

    ucosII源码分析,从CPU的执行顺序来看吧,这样也许清晰一些,并且我们暂时抛弃那些Event/MailBox、信号量等元素,还是先看看作为一个OS核心的Task Schedule部分内容吧。首先从main函数开始,下面是uC/OS-II main函数的大致流程:

    标签: ucosII 源码分析

    上传时间: 2017-06-19

    上传用户:hwl453472107

  • 本代码为编码开关代码

    本代码为编码开关代码,编码开关也就是数字音响中的 360度旋转的数字音量以及显示器上用的(单键飞梭开 关)等类似鼠标滚轮的手动计数输入设备。 我使用的编码开关为5个引脚的,其中2个引脚为按下 转轮开关(也就相当于鼠标中键)。另外3个引脚用来 检测旋转方向以及旋转步数的检测端。引脚分别为a,b,c b接地a,c分别接到P2.0和P2.1口并分别接两个10K上拉 电阻,并且a,c需要分别对地接一个104的电容,否则 因为编码开关的触点抖动会引起轻微误动作。本程序不 使用定时器,不占用中断,不使用延时代码,并对每个 细分步数进行判断,避免一切误动作,性能超级稳定。 我使用的编码器是APLS的EC11B可以参照附件的时序图 编码器控制流水灯最能说明问题,下面是以一段流水 灯来演示。

    标签: 代码 编码开关

    上传时间: 2017-07-03

    上传用户:gaojiao1999

  • 【问题描述】 在一个N*N的点阵中

    【问题描述】 在一个N*N的点阵中,如N=4,你现在站在(1,1),出口在(4,4)。你可以通过上、下、左、右四种移动方法,在迷宫内行走,但是同一个位置不可以访问两次,亦不可以越界。表格最上面的一行加黑数字A[1..4]分别表示迷宫第I列中需要访问并仅可以访问的格子数。右边一行加下划线数字B[1..4]则表示迷宫第I行需要访问并仅可以访问的格子数。如图中带括号红色数字就是一条符合条件的路线。 给定N,A[1..N] B[1..N]。输出一条符合条件的路线,若无解,输出NO ANSWER。(使用U,D,L,R分别表示上、下、左、右。) 2 2 1 2 (4,4) 1 (2,3) (3,3) (4,3) 3 (1,2) (2,2) 2 (1,1) 1 【输入格式】 第一行是数m (n < 6 )。第二行有n个数,表示a[1]..a[n]。第三行有n个数,表示b[1]..b[n]。 【输出格式】 仅有一行。若有解则输出一条可行路线,否则输出“NO ANSWER”。

    标签: 点阵

    上传时间: 2014-06-21

    上传用户:llandlu

  • UCGUI 中文资料

    UCGUI 中文资料,详细介绍了在UC/OS-II上的使用

    标签: UCGUI

    上传时间: 2013-12-16

    上传用户:王楚楚

  • 广嵌GEC2410开发板实验程序及PDF文档 GEC2410实战手册目录 一、基本接口实验 1.1 ARM汇编指令编程实验 1.2 Thumb和ARM指令混合编程实验 1.3 C和AR

    广嵌GEC2410开发板实验程序及PDF文档 GEC2410实战手册目录 一、基本接口实验 1.1 ARM汇编指令编程实验 1.2 Thumb和ARM指令混合编程实验 1.3 C和ARM汇编混合编程实验 1.4 C编程实现LED控制实验 1.5 ARM启动及工作模式切换实验 1.6 外部中断应用实验 1.7 看门狗定时器应用实验 1.8 PWM控制蜂鸣器实验 1.9 实时时钟及闹钟设计实验 1.10 Nor flash 应用实验 1.11 Nand flash 应用实验 二、人机接口实验 2.1 矩阵键盘扫描实验 2.2 ADC模数转换实验 2.3 TFT液晶屏显示实验 2.4 触摸屏控制实验 2.5 汉字字符显示实验 2.6 SD卡应用实验 三、通信接口实验 3.1 串口通信应用实验 3.2 红外模块控制实验 3.3 IIC 总线应用实验 3.4 TFTP以太网通讯实验 3.5 USB device 实验 3.6 IIS音频接口实验. 四、实时操作系统实验 4.1 U-boot在GEC2410上的移植 4.2 嵌入式linux内核移植实现 4.3 uC/OS-II在GEC2410上的移植 4.4 uC/OS-II应用程序设计 4.5 WinCE的BSP设计及hello world实现 4.6 Nucleus PLUS 在GEC2410上的移植 4.7 Nucleus PLUS应用程序设计 共30个实验

    标签: 2410 GEC ARM Thumb

    上传时间: 2014-01-27

    上传用户:懒龙1988

  • 所谓“移植”

    所谓“移植”,就是使一个实时内核能在其它的微处理器或微控制器上运行。 尽管大部分μC/OS-II的代码是用C语言编写的,但是在编写与处理器硬件相关的代码时还是不得不使用汇编语言。 移植的主要工作就是编写这些与处理器硬件相关的代码。 操作系统的移植大体可以分为两个层次: 跨体系结构的移植 针对特定处理器的移植

    标签: 移植

    上传时间: 2017-07-19

    上传用户:三人用菜

  • uCOS-II2.76

    μC/OS-II由Micrium公司提供,是一个可移植、可固化的、可裁剪的、占先式多任务实时内核,它适用于多种微处理器,微控制器和数字处理芯片(已经移植到超过100种以上的微处理器应用中)。

    标签: uCOS-II2.76操作系统

    上传时间: 2015-12-11

    上传用户:hardcandy

  • 离散实验 一个包的传递 用warshall

     实验源代码 //Warshall.cpp #include<stdio.h> void warshall(int k,int n) { int i , j, t; int temp[20][20]; for(int a=0;a<k;a++) { printf("请输入矩阵第%d 行元素:",a); for(int b=0;b<n;b++) { scanf ("%d",&temp[a][b]); } } for(i=0;i<k;i++){ for( j=0;j<k;j++){ if(temp[ j][i]==1) { for(t=0;t<n;t++) { temp[ j][t]=temp[i][t]||temp[ j][t]; } } } } printf("可传递闭包关系矩阵是:\n"); for(i=0;i<k;i++) { for( j=0;j<n;j++) { printf("%d", temp[i][ j]); } printf("\n"); } } void main() { printf("利用 Warshall 算法求二元关系的可传递闭包\n"); void warshall(int,int); int k , n; printf("请输入矩阵的行数 i: "); scanf("%d",&k); 四川大学实验报告 printf("请输入矩阵的列数 j: "); scanf("%d",&n); warshall(k,n); } 

    标签: warshall 离散 实验

    上传时间: 2016-06-27

    上传用户:梁雪文以

  • 基于PIC18F458的嵌入式实时操作系统uCOS-Ⅱ的移植与测试

    对实时操作系统uC/OS-II进行分析研究

    标签: F458 uCOS PIC 18F 458 18 嵌入式 实时操作系统 移植 测试

    上传时间: 2016-07-15

    上传用户:zsling

  • 道理特分解法

    #include "iostream" using namespace std; class Matrix { private: double** A; //矩阵A double *b; //向量b public: int size; Matrix(int ); ~Matrix(); friend double* Dooli(Matrix& ); void Input(); void Disp(); }; Matrix::Matrix(int x) { size=x; //为向量b分配空间并初始化为0 b=new double [x]; for(int j=0;j<x;j++) b[j]=0; //为向量A分配空间并初始化为0 A=new double* [x]; for(int i=0;i<x;i++) A[i]=new double [x]; for(int m=0;m<x;m++) for(int n=0;n<x;n++) A[m][n]=0; } Matrix::~Matrix() { cout<<"正在析构中~~~~"<<endl; delete b; for(int i=0;i<size;i++) delete A[i]; delete A; } void Matrix::Disp() { for(int i=0;i<size;i++) { for(int j=0;j<size;j++) cout<<A[i][j]<<" "; cout<<endl; } } void Matrix::Input() { cout<<"请输入A:"<<endl; for(int i=0;i<size;i++) for(int j=0;j<size;j++){ cout<<"第"<<i+1<<"行"<<"第"<<j+1<<"列:"<<endl; cin>>A[i][j]; } cout<<"请输入b:"<<endl; for(int j=0;j<size;j++){ cout<<"第"<<j+1<<"个:"<<endl; cin>>b[j]; } } double* Dooli(Matrix& A) { double *Xn=new double [A.size]; Matrix L(A.size),U(A.size); //分别求得U,L的第一行与第一列 for(int i=0;i<A.size;i++) U.A[0][i]=A.A[0][i]; for(int j=1;j<A.size;j++) L.A[j][0]=A.A[j][0]/U.A[0][0]; //分别求得U,L的第r行,第r列 double temp1=0,temp2=0; for(int r=1;r<A.size;r++){ //U for(int i=r;i<A.size;i++){ for(int k=0;k<r-1;k++) temp1=temp1+L.A[r][k]*U.A[k][i]; U.A[r][i]=A.A[r][i]-temp1; } //L for(int i=r+1;i<A.size;i++){ for(int k=0;k<r-1;k++) temp2=temp2+L.A[i][k]*U.A[k][r]; L.A[i][r]=(A.A[i][r]-temp2)/U.A[r][r]; } } cout<<"计算U得:"<<endl; U.Disp(); cout<<"计算L的:"<<endl; L.Disp(); double *Y=new double [A.size]; Y[0]=A.b[0]; for(int i=1;i<A.size;i++ ){ double temp3=0; for(int k=0;k<i-1;k++) temp3=temp3+L.A[i][k]*Y[k]; Y[i]=A.b[i]-temp3; } Xn[A.size-1]=Y[A.size-1]/U.A[A.size-1][A.size-1]; for(int i=A.size-1;i>=0;i--){ double temp4=0; for(int k=i+1;k<A.size;k++) temp4=temp4+U.A[i][k]*Xn[k]; Xn[i]=(Y[i]-temp4)/U.A[i][i]; } return Xn; } int main() { Matrix B(4); B.Input(); double *X; X=Dooli(B); cout<<"~~~~解得:"<<endl; for(int i=0;i<B.size;i++) cout<<"X["<<i<<"]:"<<X[i]<<" "; cout<<endl<<"呵呵呵呵呵"; return 0; } 

    标签: 道理特分解法

    上传时间: 2018-05-20

    上传用户:Aa123456789