自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 资源 (1)
  • 收藏
  • 关注

原创 uCOS之任务

一、任务的组成一个任务由三个组成部分组成:任务程序代码、任务堆栈、任务控制块组成为了方便管理、ucos 把每一个任务看作一个节点,把它们链接成如图的任务链表:二、任务状态嵌入式系统只有一个CPU,一个时刻只能有一个任务占据cpu,根据任务是否占据CPU,可以将任务划分成5种状态:睡眠状态、就绪状态、运行状态、等待状态、中断服务状态任务在不同状态之间的转换图:创建任务代码:/*************************************...

2021-10-14 17:52:25 552

原创 uC/OS-系统

一、uCOSμC/OS-II由Micrium公司提供,是一个可移植、可固化的、可裁剪的、占先式多任务实时内核,它适用于多种微处理器,微控制器和数字处理芯片(已经移植到超过100种以上的微处理器应用中)。同时,该系统源代码开放、整洁、一致,注释详尽,适合系统开发。 μC/OS-II已经通过联邦航空局(FAA)商用航行器认证,符合航空无线电技术委员会(RTCA)DO-178B标准。现在最新版的是μC/OS-III。uC/OS-II只是一个实时操作系统内核,它仅仅包含了任务...

2021-10-14 16:57:41 420

原创 数据结构之排序

本节介绍的排序算法的数据存储结构使用顺序表,为讨论方便定义顺序表为:#define MAXSIZE 100typedef int KeyType; /*关键字类型*/typedef int DataType;typedef struct{ /*数据元素类型*/ KeyType key; /*关键字*/ DataType data; /*其他数据*/}SortItem , SqList[MAXSIZE]一、冒泡排序假设数据元素存放于数组L中。初始时, L[0].

2021-09-12 10:11:16 115

原创 进程的同步——信号量机制

信号量(Semaphore)是Dijkstra在1965年提出的进程同步机制,表示临界资源的实体。用于解决进程的同步和互斥问题。信号量的分类:整形信号量、记录型信号量、AND型信号量、信号量集一、整形信号量信号量定义为一个整型量S,S≤0表示资源已被占用,S>0表示资源可用。//申请资源操作原语wait(int &S){ // P(S) while(S<=0); //S不够时阻塞进程 S=S-1;}//释放资源操作原语signal

2021-08-30 12:26:05 1038

原创 操作系统及Linux内核(一、进程)

一、进程管理一、进程1、什么是进程?进程就是运行中的程序 1、用户角度: 进程是程序的一次动态执行过程 2、操作系统: 进程是操作系统分配资源的基本单位,也是最小单位一个简单的c程序,要让它执行,先要经过汇编汇编,再通过编译器编译,再通过链接器形成可执行文件,再通过装载器加载到内存中执行。这种可执行文件交给系统执行就成为进程了。操作系统有一种可执行文件格式, 这个格式是一种数据结构。2、程序进程的区别3、进程状态的转换...

2021-08-30 01:44:55 203

原创 C语言内存分配

一、内存区间:在C/C++中内存分为5个区,分别为栈区、堆区、全局/静态存储区、常量存储区、代码区。栈区:存放函数内的局部变量,形参和函数返回值。栈区之中的数据的作用范围过了之后,系统就会自动回收栈区的内存。堆区:由程序员手动分配释放的储存区,如果程序员不释放这块内存,内存将一直被占用,直到程序运行结束由系统自动收回。全局/静态储存区:全局变量和静态变量的储存是放在一块(可读写区)的,这块空间当程序运行结束后由系统释放。只读区:常量字符串以及程序代码储存在这里。二、栈、堆区...

2021-08-30 00:29:02 512

原创 C语言的文件操作

C语言中,按文件中的数据组织形式来分,数据文件可分为ASCII码文件(即文本文件)和二进制文件。一、打开文件使用 <stdio.h> 头文件中的 fopen() 函数即可打开文件,它的用法为:FILE *fopen(char *filename, char *mode);FILE是stdio.h头文件中的结构体,filename为文件名(包括文件路径),mode为打开方式。fopen() 会获取文件信息,包括文件名、文件状态、当前读写位置等,并将这些信息保存到一个 FIL..

2021-08-29 23:22:17 356

原创 C语言预处理命令

C语言提供多种预处理功能,主要处理#开始的预编译指令,如宏定义(#define)、文件包含(#include)、条件编译(#ifdef)等。合理使用预处理功能编写的程序便于阅读、修改、移植和调试,也有利于模块化程序设计。#define 叫做宏定义命令,它也是C语言预处理命令的一种。所谓宏定义,就是用一个标识符来表示一个字符串,如果在后面的代码中出现了该标识符,那么就全部替换成指定的字符串。无参宏的宏名后不带参数,其定义的一般形式为:#define标识符字符串如:#define MAX ...

2021-08-29 22:14:44 155

原创 C语言变量和数据类型

一、数据类型及长度:1、不同整型的输出使用不同的格式控制符可以输出不同类型的整数,它们分别是:%hd用来输出 short int 类型,hd 是 shortdecimal 的简写; %d用来输出 int 类型,d 是decimal 的简写; %ld用来输出 long int 类型,ld 是 longdecimal 的简写。2、二进制数、八进制数和十六进制数的表示二进制由 0 和 1 两个数字组成,使用时必须以0b或0B(不区分大小写)开头。八进制由 0~7 八...

2021-08-29 21:39:34 492

原创 C语言知识点整理(编译过程)

一、编译过程编译过程可以分为4部分内容组成:预处理器->编译器->汇编器->链接器1、预处理器(1)、处理所有的注释,以空格代替(2)、讲所有的#define删除,并且展开所有的宏定义(3)、处理条件编译指令#if,#ifdef、#elif,#else、#endif(4)、处理#include,展开文件包含(5)、保留编译器需要使用#pragma指令预处理用于将所有的#include头文件以及宏定义替换成其真正的内容,预处理之后得到的仍然是文本文件,但文

2021-08-29 20:49:30 149

原创 记录我的嵌入式学习

嵌入式软件开发知识树

2021-08-29 20:31:58 76

uC-OS2系统源码,供大家学习

uCOS II ,从GitHub拷贝

2021-09-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除