当前位置: 首页 > news >正文

wordpress表格自适应济南百度seo

wordpress表格自适应,济南百度seo,asp装修网站源码,楚雄市建设规划批前公示在那个网站文章目录 前言:首先要谢谢韦东山老师的无私奉献,让我学到了很多东西,我做这个笔记是害怕我会忘记,所以就记录了下来,希望对大家有帮助!关于寄存器CPU内部的寄存器这些寄存器到底要保存一些什么?…

文章目录

  • 前言:首先要谢谢韦东山老师的无私奉献,让我学到了很多东西,我做这个笔记是害怕我会忘记,所以就记录了下来,希望对大家有帮助!
  • 关于寄存器
    • CPU内部的寄存器
    • 这些寄存器到底要保存一些什么?
    • 某些寄存器记录的场景
  • FreeRTOS中怎么创建任务
    • 创建任务的函数:
    • 创建任务时函数内部都干了什么?:
  • 任务的调度
    • 任务调度的基本机制
    • 任务调度的核心
    • 再深度一点任务链表调度
    • 任务调度切换做了什么?
    • 关于任务挂起以及休眠期间的行为

前言:首先要谢谢韦东山老师的无私奉献,让我学到了很多东西,我做这个笔记是害怕我会忘记,所以就记录了下来,希望对大家有帮助!

关于寄存器

关于任务的轮换以及中断恢复继续得以原来为止继续运行,一点也离不开寄存器的作用,所以想要了解任务,了解寄存器也是必不可少的!

CPU内部的寄存器

CPU内部有R0、R1、……、R15共16个寄存器
某些寄存器有特殊作用
R13,别名SP,栈寄存器,保存着栈的地址
R14,别名LR,返回地址,保存着函数的返回地址
R15,别名PC,程序计数器,也就是当期程序运行到哪了

这些寄存器到底要保存一些什么?

记录程序运行到了哪里实际上是靠PC寄存器来完成的?PC寄存器的值

函数中一般也会有着函数嵌套的使用,一个函数中还调用了另外一个函数,当这个函数运行完成后,要怎么返回到调用的地址呢?这就要靠LR来记录了!

其他寄存器也有着他们各自要记录的数据,比如R0,R1就专门用来传函数参的!

某些寄存器记录的场景

1、函数调用 2、中断处理 3、任务切换

FreeRTOS中怎么创建任务

创建任务的核心:栈、TCB结构体

创建任务的函数:

在这里插入图片描述
看到这个函数的参数中的栈的大小,我们疑惑该如何合理定义他的大小呢?这个定义的栈的内存又是从哪里来的呢?

创建任务时函数内部都干了什么?:

大小的定义:这个一般取决于我们任务重的局部变量的大小以及函数调用的深度来决定的,我们使用过程中一般都会使用动态分配,所以就不再深究了。
哪里来?
打开一个工程,我们可以从里面的heap2.c文件中看到,里面开辟了一个数组(空闲的内存),这个就是用于各个任务的栈。
在这里插入图片描述

分配好了栈后,这个栈的起始地址就会存在这个任务的TCB结构体里面的pxstack.
再根据起始地址找到PC,得以继续从原来地方继续往下运行,假如给一个任务分配好了,大概样子就会是这样:

假设这个任务被中断了,各个寄存器就会保存好当前的东西,到时候这个任务再次运行的时候就恢复,继续在上次运行到的地方继续运行!
在这里插入图片描述
创建每个任务时,都会给每个任务分配一个结构体(TCB结构体)
在这里插入图片描述
关于结构体(有删减,保留了主要的内容):

在这里插入图片描述

任务的调度

任务调度的基本机制

优先级不同
1、高优先级的任务,优先执行,可以抢占低优先级的任务
2、高优先级的任务不停止,低优先级的任务永远无法执行
3、同等优先级的任务,轮流执行:时间片轮转
状态
运行态:running
就绪态:ready
阻塞:blocked,等待某件事(时间、事件)
暂停:suspend,休息去了
怎么管理?
找到最高优先级的运行态、就绪态任务,运行它
如果大家平级,轮流执行:排队,链表前面的先运行,运行1个tick后乖乖地去链表尾部排队
谁进行调度?
TICK中断!

任务调度的核心

任务的调度的核心就是链表!!!
在每次创建任务时,都会产生一个TCB结构体,上面也有讲,每次创建任务时,里面的操作还会将这个任务的TCB结构体加入到一个链表里面。
在这里插入图片描述
循序渐进,我们可以发现里面定义了很多链表,现在我们就先来了解其中关于任务创建的链表:
在这里插入图片描述
在这里插入图片描述
相信可以从链表的英文名就可以看出,这些链表的命名与任务的状态有关系。自然而然的就知道了其中的奥妙了吧!
创建任务时会把任务的TCB放入到Ready链表中,“就绪了,准备发车!“。

再深度一点任务链表调度

在这里插入图片描述

我们首先创建两个优先级一样的任务,好了,函数就会把他们两个的TCB放入Ready链表里面,那么到底是谁先运行呢?我刚开始以为是随机的,起始不然,程序运行时,内核会逐个的从高优先级往下找,找到高优先级的就先运行
在这里插入图片描述
这里只创建了两个相同优先级的任务,这里先创建的任务1,其次再是任务2,等级都为0,那么Ready链表里面存有它们的TCB,里面会有一个“指针”寻址这位置,创建任务一时,指向任务1,创建任务2时,就指向了2了,所以这里会先找到任务2,运行了任务2再到任务1!(TCB里面有着每个任务的栈的起始地址,再根据起始地址找到PC)

任务调度切换做了什么?

精简四字概括:保留,恢复
在这里插入图片描述

关于任务挂起以及休眠期间的行为

在这里插入图片描述
Delay函数就会做出这样的行为:
在这里插入图片描述
这里delay了五个Tick:
接下来没一个Tick,系统都会去Delay链表里面看看任务的时间有没有到,如果到了,就会将Task3的TCB从Delay链表中移去,重新加入到Reeay链表中!
在这里插入图片描述

http://www.tj-hxxt.cn/news/81203.html

相关文章:

  • 程序员做兼职的网站今天重大国际新闻
  • 网站备案时间也太慢了重庆seo博客
  • 域名网站账号凡科建站网站
  • 贵阳市做网站的公司搜一搜排名点击软件
  • hdwiki做网站百度商店应用市场
  • 程序员接私活平台seo搜索引擎优化报价
  • 网站制作谁家好网上销售有哪些方法
  • 网站制作推广公司seo公司服务
  • 有专门做网站的公司吗网络营销的特点举例说明
  • html留言簿网站基本框架搭建个人免费网站申请注册
  • 上海哪家做公司网站手机百度快照
  • 15年做哪些网站致富seo收费还是免费
  • 台湾做电商网站百度网络营销中心官网
  • hype做网站动效网络销售是什么
  • 做网站合伙怎么分制作网页的网站
  • 廊坊网站制作seo属于运营还是技术
  • 网站降权怎么办桌子seo关键词
  • 网站如何与域名绑定建立网站费用大概需要多少钱
  • 做seo网站推广价格google关键词挖掘工具
  • 网站seo怎么做知乎网络营销课程大概学什么内容
  • 大学生兼职做网站竞价网络推广培训
  • 学网页设计制作小红书关键词优化
  • 如何创建自己的公司网站站内推广和站外推广的区别
  • 专门做微信公众号的网站百度知道网页入口
  • 如何做网站效果更好合肥seo整站优化网站
  • 一级做ae视频教程上海官网seo
  • 网站建设公司 广告法被处罚福州短视频seo网站
  • phpcms 调用网站名称正规seo排名公司
  • 重庆游戏网站开发公司写手接单平台
  • seo站群干什么的百度认证营销顾问