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

无锡微网站开发河南app软件开发

无锡微网站开发,河南app软件开发,wordpress首页缓存自动清空,东莞社保官方网站1910_野火FreeRTOS教程阅读笔记_prvStartFirstTask函数 全部学习汇总: g_FreeRTOS: FreeRTOS学习笔记 这是教程中的一个函数,通过汇编来实现的。注释部分以及结合后面的讲解部分,可能还是有一点点细节的地方让初学者疑惑。我结合我自己的理解…

1910_野火FreeRTOS教程阅读笔记_prvStartFirstTask函数

全部学习汇总: g_FreeRTOS: FreeRTOS学习笔记

这是教程中的一个函数,通过汇编来实现的。注释部分以及结合后面的讲解部分,可能还是有一点点细节的地方让初学者疑惑。我结合我自己的理解,再度补充一些信息。

SCB_VTOR地址是如何得出来的?

首先,可以从手册中找到基地址0xE000ED00。

再从细分章节中找到,偏移量是0x08,两个信息组合就可以得出上面对应的地址。

至于这个地址为什么可以读取到MSP的数值,需要结合下面的信息理解。

这里描述的事向量表的内容,向量表的0地址偏移处刚好是SP的初始值。现在还在内核状态,还没有进入到task运行的线程模式。因此,这里读取出来的数值是MSP的信息。

野火的教程中说有点多于,我觉得可能这个原自于这一段描述。读取的数值是来自于地址

0x00000000的。

直接通过代码打印可以看得出来这个推测是准确的。

而上面的这个接口在执行的时候会触发SVC。

超级调用(SVC)是由SVC指令触发的异常。在操作系统环境中,应用程序可以使用SVC指令访问操作系统内核函数和设备驱动程序。

之后会触发这个SVC Handler,这个接口是在启动代码文件中定义的,这里通过了宏定义进行了转换。

因此,实际的效果是SVC_Handler。如果不增加这个宏定义,直接定义SVC_Handler也是一样的。

这是汇编代码中的信息。

再回去看上面vPortSVCHandler代码中的信息,代码到124行,其实是获取了当前任务TCB中的栈顶信息。继续往下的8个寄存器,实现了局部变量的加载。

之前查看文档的时候看到过这个24bit一直是1,其实这个代表的事Thumb状态位。

M3的处理器只能够再Thumb状态下执行指令,但是如下操作可以清除掉这个指令:

  • 指令BLX, BX和POP{PC}
  • 从异常上的堆叠xPSR值恢复
  • 异常项上的向量值的位[0]或复位

以上,是为什么要进入到这个状态的原因,但是这个描述应该是适用于线程等分支调用。至于为什么要写入0xD,其实有其他的原因,因为这里的这段代码是一个异常的Handler。

之所以出现最后两个指令操作,主要原因还是因为这里需要完成一次异常的返回。EXC_RETURN是在异常entry上加载到LR中的值。异常机制依赖此值来检测处理器何时完成异常处理程序。该值的最低四位提供有关返回堆栈和处理器模式的信息。表17显示了EXC_RETURN[3:0]值以及异常返回行为的描述。

这是上面提到的表17。因此,这里实现的功能是返回到线程模式、从PSP获取状态、返回之后利用PSP执行。这样,SP就从MSP切换到了PSP。而BX指令是上面提到的三种返回exception的方式之一。

而返回之后,由于之前的SVC等已经设置了PSP的信息,因此接下来的软件会按照PSP中的设定去执行。任务调度也就会启动。为什么能够启动,结合之前梳理的任务创建的分析是可以理解的。因为任务创建的时候,把执行入口绑定到了TCB的栈中,在这次的退出时会返回执行。

这里的这个示意图还是比较有参考意义的,至于上面为什么没有R13,这是因为R13座位了SP寄存器在使用中。

http://www.hyszgw.com/news/55633.html

相关文章:

  • 江苏 做网站火鸟门户系统优点
  • 青岛专业制作网站的公司市场监督管理局官网查询
  • 网站建设作业指导书seo的收费标准
  • 建设网站源码wordpress内容页主题修改
  • cpa个人网站怎么做男女做啊免费视频网站
  • 北京公司注册地址新规定昆明网站seo服务
  • 网站建设分类方案网站开发的项目流程图
  • 中国建设银行企业官网站短视频推广公司
  • ssh网站怎么做开发平台指什么
  • 网站下做二级域名建设云个人证件查询系统
  • 视频教学网站cmsasia 域名 知名网站
  • 杰讯山西网站建设建视频网站模板
  • 南京最好的网站设计公司WordPress搬家后所有页面404
  • 新手做站必看 手把手教你做网站午夜资源站
  • ppt插件 网站seo服务的三种方式
  • 怎么在网站上投放广告高端的网站优化公司
  • 电商网站开发实例简网 互联 专业wordpress主机
  • 北京网站建设哪家强郑州工程设计公司官网
  • 做外贸的j交易网站网站文章更新怎么通知搜索引擎
  • 深圳辰硕网站优化六安品牌网站建设怎么样
  • 做购物网站的业务轻淘客网站怎么做
  • 山西焦煤集团公司网站个人网站主页怎么做
  • 上海响应式网站沈阳网站建设方案外包
  • 地方网站建站平台建设直播平台网站软件
  • 网站的关键词搜索怎么做网站空间租用价格
  • 网站建设h5是指的那一块wordpress 手机 重定向 子目录
  • 毕设做网站类型老男孩搭建wordpress
  • 凯里市网站建设易语言怎么做网站自动登录
  • 去哪个网站找题目给孩子做网站中的搜索框图标怎么做的
  • 腾云网建设网站wordpress 付费模版