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

文明网站建设男男做的视频网站

文明网站建设,男男做的视频网站,网站备案的意思,汕尾市住房和城建设局网站前言 ARM篇主要介绍一下寄存器和中断机制,至于汇编这一块…还请大家感兴趣自行学习 1.寄存器 R0 - R3 R4 - R11 寄存器 R0 - R3一般用作函数传参 R4 - R11用来保存程序运算的中间结果或函数的局部变量 在函数调用过程中 注意在发生异常的时候 cortex-M0架构会自动将R0-R3压入…前言 ARM篇主要介绍一下寄存器和中断机制,至于汇编这一块…还请大家感兴趣自行学习 1.寄存器 R0 - R3 R4 - R11 寄存器 R0 - R3一般用作函数传参 R4 - R11用来保存程序运算的中间结果或函数的局部变量 在函数调用过程中 注意在发生异常的时候 cortex-M0架构会自动将R0-R3压入栈中, 这也是为什么我们的PendSV只用压入R4 - R11 R12 没啥用 R13寄存器 R13寄存器又叫做堆栈指针寄存器SP 总是指向当前正在运行的函数的栈帧 MSP 和 PSP 对于 cortex-M3架构 存在两个SP 指针 一个 MSP 一个 PSP PSP只能被用作线程模式 MSP可以在 线程/handler模式运行 具体的等后面模式做详解 FP 与 SP   前面将函数调用过程的时候讲到了 栈帧是靠这俩寄存器FP和SP维护的 可是为啥没见FP寄存器呢? FP似乎通常是R11寄存器 但不绝对 R14寄存器—LR寄存器 用来保存保存上一级函数调用者的返回地址,这样当我们函数调用返回的时候就知道从哪里接着运行了当异常发生时LR中保存的值等于异常发生时PC的值减4或者减2因此在各种异常模式下可以根据LR的值返回到异常发生前的相应位置继续执行当中断发生的时候,LR寄存器的值会被设定为EXC_RETURNBL function 当我们通过这样的指令跳转的时候 就会更新我们的LR寄存器的值了BX LR 这个我们在RTOS的PendSV函数的最后会看到 BX LR 指令 这是因为PendSV结束调用时还处于特权模式LR EXC_RETURN,而我们实际上是想返回线程模式的 所以用BX LR 而不是 MOV PC, LR R15寄存器—PC寄存器 每取一次指令,PC的值会自动 8 各种状态寄存器 不必关心 ARM的三级流水线   一条指令的执行分为三步:取址, 译码 和 执行 每一条都需要一个时钟周期 所以一条指令需要三个时钟周期。 那如果我们只有第一条指令执行完才执行第二条 就意味着取址单元会有两个时钟周期啥也不干。 所以引入流水线就好了 为什么是PC PC 8 呢 这么理解 “正在取值的指令” “正在执行的指令” 8 * 就对了,反正这也是给你看的不是给机器看的… 可以看到对于第一条指令add r0,r1,#5真正执行的时候,我们取的是第三条指令cmp r2,#3的值 顺序执行与乱序执行 因为我们的指令很有可能下个指令依赖上个指令的结果,那此时三级流水线就出问题了 比如上个指令的结果还没放回内存了 这边已经从内存开始取数据了 此时就得加入空指令 暂停流水线了–效率低下 所以就会有乱序执行–有专门逻辑电路进行分析做这个事 2.特权与模式 cortex-M3的模式 两种模式 – handler模式与线程模式 两种特权 – 用户级和特权级ARM的七种模式 用户模式User这是唯一的非特权模式快速中断模式FIQ, Fast Interrupt Request标准中断模式IRQ, Interrupt Request管理模式SVC, Supervisor。中止模式Abort未定义模式Undefined系统模式System 用户级和特权级是针对访问权限:特权级访问寄存器不受限用户级不行   模式是针对运行状态: 触发异常了就得进入 handler模式 普通状态就是线程模式   所以不能在用户级去操作handler模式,但是线程模式下特权级还是用户级都无所谓啦 复位后的状态 复位后处理器默认进入线程模式(MSP),特权极访问 可以通过修改CTRL寄存器回到线程模式(PSP指针) 但是线程模式可就不能修改CTRL寄存器了—那想回去怎么办?触发异常再异常中修该 3.存储区映射 对于32位的处理器 地址空间是4个G 这4G对于ARM来说是这么定义的 异常 对于所有的异常都进行了编号 前15种是系统异常 后面的都是外部中断 我们可以看到对于后面几个异常是可编程的,这个在RTOS的任务切换很重要,我们一般会把PendSV这个异常设定为最低优先级(0xffffffff)—为了在对所有中断都响应后在切换任务 抢占优先级和响应优先级 高抢占优先级可以打断低抢占优先级 但是同抢占优先级下,高响应优先级打断不了低的响应优先级 中断向量表—处理中断的关键 这个是在starup.s中定义的 一般我们也不会有重新定义新的中断的需求 对中断的响应 正常来说需要我们在中断服务程序清除对应的标志位 如果不清除会咋样—那就反复进入该中断处理程序操作 如果极短时间多次请求–一般只会响应一次,因为中断就悬起了一次 假如在中断服务函数执行过程中,又触发了一次相同的中断–就会再执行一次 NVIC中断控制器 中断的悬起与解悬中断的优先级控制对中断响应的暂时屏蔽 中断 msp与psp指针 MSP:复位后缺省使用的堆栈指针用于操作系统内核以及异常处理例程包括中断服务例程 PSP:由用户的应用程序代码使用。 两个堆栈指针同一时刻只能用一个。 作用提升程序健壮性。一定程度上保证应用的数据栈空间不会溢出到操作系统数据栈空间中断发生后做了什么 当一个中断发生的时候 我们的内核到底做了什么 寄存器入栈–保存现场 地址总线从向量表查询中断向量 更新寄存器–此时就进入handler模式了同时使用的也是MSP指针了 跳转执行中断服务程序 中断返回–包括把之前保存的寄存器的值自动弹出来(恢复现场) 中断的递归调用 不用我等操心 但是需要我们注意的是就是给栈提供一个合适的大小中断与异常的区别 中断——外部事件引起正在运行的程序所不期望的–异步的 异常——内部执行指令引起–同步的
http://www.pierceye.com/news/239605/

相关文章:

  • 0基础网站建设教程wordpress去掉rss订阅
  • 爱网站查询外贸推广具体是做什么
  • 商务网站价格找人做效果图那个网站
  • 上传到网站租一个服务器要多少钱
  • 网站制作服务合同安徽建设工程信息网文件
  • 成都企业网站建设公司正规的跨境电商平台有哪些
  • 中山工程建设信息网站网站监控系统
  • 个人网站想添加支付功能怎么做北京二次感染最新消息
  • 上海注册汽车租赁公司网站模板对seo的影响
  • 上海松江做网站公司wordpress 网站暂停
  • 太仓苏州网站建设网站的规划与建设课程设计
  • 遵义住房城乡建设厅网站电子商务网店毕业设计
  • 惠州市博罗县建设局网站防静电产品东莞网站建设技术支持
  • 茂名整站优化百度一下 你知道首页
  • 郑州网站微信微博维护品牌网站建设流程图
  • 网站建站销售怎么做做门窗安装去哪些网站找生意
  • 太原建站司点击查看荆州网站开发
  • 个人音乐网站开发宁波网站推广工作室电话
  • 建设部网站 造价工程师wordpress忘了秘密
  • 如何分析一个网站建设策划案湖南网络推广公司大全
  • 惠州市建设工程交易中心网站如何制作网页导航栏
  • 保山网站建设哪家好做led视频好的网站
  • 如何利用网站策划做好网站建设申请域名要多少钱
  • 专业做公司logo的网站谷歌网站推广方案
  • 公司网站建设情况说明网站开发用php好吗
  • 网站做关键词库的作用空间怎么做网站
  • 制作网站公司名称网络营销与策划实践报告
  • 哈尔滨手机网站建设价格低长沙网业公司
  • 如皋网站建设公司网站推广优化排名
  • 行业网站方案网站搭建合同