自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 收藏
  • 关注

原创 蓝牙的知识总结(1)

分析自己整理的一些蓝牙知识

2022-06-13 14:58:44 5365

原创 UCOSII操作系统(二)--内核的实现

1、OS_STK == 任务的堆栈任务切换的实质:SP指针的变化,通过SP指针的变化,可以跳转到你想要去的任何的一块不受保护的地址去2、任务的链表struct os_tcb *OSTCBNext; 指向下一个任务3、事件控制块OS_EVENT *OSTCBEventPtr是一个技术组件,用于后面的消息和消息队列,邮箱和信号量等的设计。typedef struct os_tcb {}4、如何得到最高的优先级的任务OSRdyGrp |= OSMapTbl[p

2022-06-13 14:38:52 555

原创 UCOSII操作系统(三)--系统启动过程

1、初始化UCOSII(1)在调用UCOSII在任何的其他的服务之前,UCOSII要求首先调用初始化函数OSInit();这个函数的目的就是在整个系统启动之前,初始化所有的变量和数据结构。(2)其中,在OSInit()函数中建立空闲任务OS_TaskIdle();这个任务总是处于就绪态的,空闲任务的优先级是设置为最低的。(3)调用OSInit以后任务控制块 缓冲池中有OS_MAX_TASKS个任务控制块事件控制 缓冲区中有OS_MAX_EVENTS个事件控制块消息队列

2022-06-13 14:38:26 716

原创 UCOSII操作系统(四)--任务管理

1、任务(1)任务可以是一个无限的循环,也可以在一次执行完毕后被删除。任务的代码并不是真正的删除了,而是UCOSII不再理会该任务代码,该任务代码不会再执行。(2)建立任务,OSTaskCreate()如果想让UCOSII管理用户的任务,必须先建立任务,可以通过将任务的地址(函数名)和其他参数传递到这2个函数中来建立任务。(3)任务可以在多任务调度之前开始建立,也可以在其他的任务中创建需要的任务。在启动UCOS之前必须至少得建立一个任务。2、分析创建任务(1)参数分析:参数1:任务的函数名:

2022-06-13 14:37:47 703

原创 UCOSII操作系统(五)--时间管理

1、UCOSII的定时中断(1)绝大多数的内核要求提供定时中断,以实现延时与超时控制等功能。这个定时中断叫做时钟节拍。(2)时钟的中断子程序ISR和时钟节拍函数OSTimeTick()该函数用于通知UCOSII,发生了时钟的节拍中断。2、UCOSII的5个关键的时钟函数(1)OSTimeDly();后面的4个函数可以根据需要进行配置使用(2)OSTimeHMSM();(3)OSTimeDlyResume();(4)OSTimeGet();(5)OSTimeSet();3、关键的时钟延

2022-06-13 14:37:22 549

原创 UCOSII操作系统(一)--基础知识

前言比较主流的操作系统有UCOSII、FREERTOS、LINUX等。参考书籍:《嵌入式实时操作系统μCOS-II原理及应用》《嵌入式实时操作系统uCOS-II 邵贝贝(第二版)》**1、操作系统的作用:**操作系统是计算机硬件系统与应用程序之间的接口2、嵌入式系统的特点:(1)专业性强:需要专业的人员(2)可裁剪:不需要的代码可以屏蔽(3)实时性和可靠性:你写的代码可以在适当的时间执行3、裸机和操作系统最大的区别:(1)裸机:在一个main函数中不断的执行,除了有中断才会跳转到别的相

2022-06-13 14:36:53 5332

原创 UCOSII系统学习零碎知识(一)

1、操作系统的作用操作系统是计算机硬件系统与应用程序之间的接口2、裸机和操作系统的区别(1)裸机是在一个main函数中不断的执行,除了有中断才会跳转到别的相应的代码中执行的()操作系统,main函数,当通过函数堆栈切换的跳转到第一个任务之后,通过优先级的判断优先级高的任务可以得到优先的执行,就好像有多个main函数在一起执行的假象(并行)......

2022-06-13 14:36:23 139

原创 PMP第4章的知识

1 制定项目章程 — 编写一份正式批准项目并授权项目经理在项目活动中使用组织资源的文件的过程。4.2 制定项目管理计划 — 定义、准备和协调项目计划的所有组成部分,并把它们整合为一份综合项目管理计划的过程。4.3 指导与管理项目工作 — 为实现项目目标而领导和执行项目管理计划中所确定的工作,并实施已批准变更的过程。4.4 管理项目知识 — 使用现有知识并生成新知识,以实现项目目标,并且帮助组织学习的过程。4.5 监控项目工作 — 跟踪、审查和报告整体项目进展,以实现项目管理计划中确定的绩效目

2022-06-13 14:35:42 77

原创 UCOSII操作系统(六)--事件控制块

1、任务和任务,任务和中断子程序是如何进行通信的事件控制块事件控制块使用的几点须知:(1)任务或者中断服务子程序可以给事件控住块ECB发送信号。(2)中断服务子程序不能等待事件控制块ECB给它发送信号的。(3)等待事件可以设置超时时间,后面会详细的说明实现的原理。(4)多个任务可以同时等待同一个事件发生,在这种情况下面,当事件发生后,所有等待该事件的任务中,只有优先级最高的任务得到该事件并进入就绪状态。2、事件控制块的结构(1)只有当所定义的事件是消息邮箱或者消息队列的时候才能使用,当所定义

2022-06-13 14:34:54 592

原创 图像的转换

图像处理,bmp,rgb555,rgb666

2022-03-09 15:00:38 53

原创 全职刷机工具PhoenixSuit的使用教程

1、下载PhoenixSuit的升级包链接:https://pan.baidu.com/s/1N0FNCWXcZhW57AhcGHQIeg提取码:7rrw2、使设备进入刷机模式,安装驱动(如用镊子短路flash的5,6脚插入电脑后松手)(1)点击我的电脑(2)设备管理(3)点击右键-更新设备驱动软件(4)选择安装包这个目录下的文件进行安装:C:\Users\Administrator\Desktop\PhoenixSuit\Drivers\AW_Driver(5)看到有这个设备出现证

2021-08-13 15:11:28 14359

原创 FreeRtos笔记(四)

2、队列管理2.1概括如何创建一个队列队列如何管理其数据如何向队列发送数据如何从队列接收数据队列阻塞是什么意思往队列发送和从队列接收时,任务的优先级时什么样的影响2.2队列的特性(1)数据存储:有限个具有确定长度的数据单元先进先出往队列写入数据时通过字节拷贝把数据复制存储到队列中;从队列读出数据使得把队列中的数据拷贝删除(2)可被多任务存取队列时具有自己独立权限的内核对象,并不属于或赋予任何任务。所有任务都可以向同一队列写入和读出。一个队列由多方写入时常有的事情,但是多方读出比

2021-07-07 21:15:07 124

原创 FreeRtos笔记(三)

1.7 空闲任务与空闲钩子函数上个笔记中讲到,任务大部分时间都处于阻塞态,这种状态下所有的任务都不可运行,所以也不能被调度器选中空闲任务拥有最低优先级,以保证其不会妨碍具有更高优先级的应用任务进入运行态。空闲任务钩子函数的实现限制例子:...

2021-07-06 20:51:26 70

原创 FreeRtos的笔记(二)

1.5 任务优先级1、

2021-06-29 20:45:27 106

原创 FreeRtos的笔记 (一)

**FreeRtos的笔记(一)**一、前言linux是分时系统 和 RTOS时实操作系统区别RTOS时实操作系统当外界事件或数据产生时,能够接受并以足够快的速度予以处理实时操作系统是保证在一定时间限制内完成特定功能的操作系统实时操作系统的特征1)多任务;2)有线程优先级;3)多种中断级别;任务:也称作一个线程,是一个简单的程序。每个任务被赋予一定的优先级,有它自己的一套CPU寄存器和自己的栈空间。典型地,每个任务都是一个无限的循环,每个任务都处在以下五个状态下:休眠态,就绪态,

2021-06-22 21:00:13 534

原创 C语言memset函数及其用法

C语言memset函数及其用法include <string.h>void *memset(void *s, int c, unsigned long n);函数的功能是:将指针变量 s 所指向的前 n 字节的内存单元用一个“整数” c 替换,注意 c 是 int 型。s 是 void* 型的指针变量,所以它可以为任何类型的数据进行初始化。根据memset函数的不同,输出结果也不同,分为以下几种情况:memset(p, 0, sizeof§); //地址的大小都是4字节0

2021-02-05 15:51:05 2359 1

原创 关于指针的零碎知识and数组

指针1、指针是什么?int *p; int a;声明语句; 类型 变量; int *p p是一个指针变量 指针是一个变量(特殊的变量:存地址的变量) 指针变量占用4个字节数组1、数组声明时,编译器要根据[ ]里面的数据去分配空间 int a[ ]; // 错误 2、[ ]里面是一个整数常量表达式 整型常量...

2018-08-02 18:04:08 170

原创 C语言比较容易忽略的知识点

scanf的返回值是什么? 1.scanf()函数有返回值且为int型。 2.scanf()函数返回的值为:正确按指定格式输入变量的个数;也即能正确接收到值的变量个数。 变量的地址:&amp;amp;amp; 变量名 &amp;amp;amp;a&amp;amp;amp; :取地址符,得到变量的空间首地址(地址值)C语言函数传递指针参数的问题#include &amp;amp;lt;stdio.h&amp;amp;gt;void swap

2018-07-31 17:53:29 232

原创 写一个函数实现输出 1 -- n 之间的所有回文素数 如:131 -- 是素数 -- 131 回文素数

#include &amp;amp;lt;stdio.h&amp;amp;gt;void ng_ss(int n);int pd_ss(int n);int sz_dd(int n);int main(void){ int t = 0; printf(&amp;quot;请输入大于1的整数n:&amp;quot;); scanf(&amp;quot;%d&amp;quot;,&amp;amp;amp;t); printf(&amp

2018-07-30 16:56:32 1396

原创 写一个函数实现输出 1 -- n 之间的所有可逆素数

//方法1:#include &amp;amp;amp;lt;stdio.h&amp;amp;amp;gt;void ng_ss(int n);int pd_ss(int n);int sz_dd(int n);int main(void){ ng_ss(1000); return 0;}void ng_ss(int n){ int i,sum = 0,flath = 0; printf(&amp;amp;quot;可逆素数如下:\n&amp;

2018-07-30 15:16:40 1512

转载 break和continue的区别及使用方法

1、break和continue的区别和作用 break和continue的区别和作用 break和continue都是用来控制循环结构的,主要是停止循环。 1.break 有时候我们想在某种条件出现的时候终止循环而不是等到循环条件为false才终止。 这是我们可以使用break来完成。break用于完全结束一个循环,跳出循环体执行循环后面的语句。 2.continue contin...

2018-07-30 09:58:12 2322

空空如也

空空如也

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

TA关注的人

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