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

建设营销型网站的原因网站上设置多语言怎么做

建设营销型网站的原因,网站上设置多语言怎么做,360°网站标签旋转显示特效,wordpress3.8模板请阅读【嵌入式开发学习必备专栏 之 ARM Cortex-Mx专栏】 文章目录 背景EXC_RETURN 与 LR 及 PCcortex-m33 从异常返回后 各个寄存器出战顺序ARM 栈增长方式 背景 接着上篇文章#xff1a;【ARMv8M Cortex-M33 系列 7.2 – HardFault 问题定位 1】#xff0c;后面定位到是在…请阅读【嵌入式开发学习必备专栏 之 ARM Cortex-Mx专栏】 文章目录 背景EXC_RETURN 与 LR 及 PCcortex-m33 从异常返回后 各个寄存器出战顺序ARM 栈增长方式 背景 接着上篇文章【ARMv8M Cortex-M33 系列 7.2 – HardFault 问题定位 1】后面定位到是在cortex-m33/context_gcc.S执行完 BX Lr之后就发生了 HardFault通过JLink 发现 LR的值为0xfffffffd 所以又继续调查了EXC_RETURN 的具体含义。 pendsv_exit:/* restore interrupt */MSR PRIMASK, r2ORR lr, lr, #0x04BX lrEXC_RETURN 与 LR 及 PC 在 ARM Cortex-M33以及其他Cortex-M系列处理器中异常返回值EXC_RETURN用于指示当处理器完成异常处理例如中断或系统调用后应如何返回到异常发生前的状态。这个值被自动加载到LR链接寄存器中在异常返回时由处理器使用。 当发生异常时处理器会自动将当前的程序状态保存到堆栈中包括程序计数器PC的值和其他重要寄存器并将特定的值加载到LR。这个LR中的值称为EXC_RETURN它决定了异常返回时处理器的行为如使用哪个堆栈指针MSP或PSP以及是否返回到Thread或Handler模式。 EXC_RETURN 的值如下 0xFFFFFFF1返回到Handler模式使用MSP主堆栈指针作为堆栈指针。0xFFFFFFF9返回到Thread模式使用MSP作为堆栈指针。0xFFFFFFFD返回到Thread模式使用PSP进程堆栈指针作为堆栈指针。0xFFFFFFBC 的设置表示返回时处理器将 使用 PSP 作为栈指针返回到线程模式而不是异常模式如中断恢复浮点上下文。 此外当在硬件浮点单元FPU支持的设备上编译代码时还会有以下EXC_RETURN值 0xFFFFFFE1返回到Handler模式使用MSP作为堆栈指针并且需要恢复浮点状态。0xFFFFFFE9返回到Thread模式使用MSP作为堆栈指针并且需要恢复浮点状态。0xFFFFFFED返回到Thread模式使用PSP作为堆栈指针并且需要恢复浮点状态。 在异常处理完毕后处理器将执行一个异常返回操作这个操作会根据LR中的EXC_RETURN值来从堆栈恢复之前保存的状态并将控制权交回到异常发生前的代码。这个恢复过程包括将之前保存在堆栈上的PC值重新加载到PC寄存器这样程序就会从中断前被中断的点继续执行。 在实践中异常处理函数通常不需要显式地处理这些细节因为处理器硬件和操作系统的异常管理机制会自动处理这些过程。当开发裸机应用或自己的操作系统时理解EXC_RETURN和异常返回机制将非常重要。在使用操作系统如FreeRTOS或其他RTOS时上下文切换和异常返回通常由操作系统管理。 在异常处理函数中你可以检查LR的值来确定异常发生时的上下文。例如在异常处理函数中你可以使用类似于以下的代码 uint32_t lr_value; asm(MOV %0, lr : r (lr_value)); // lr_value 现在包含了 EXC_RETURN 值 或者如果你需要在你的异常处理函数中手动操作LR以改变返回行为你也可以编写相应的汇编代码但通常这样的操作是不必要的而且需要对ARM架构有深入的理解。 cortex-m33 从异常返回后 各个寄存器出战顺序 由于上面问题涉及到了入栈出栈的问题所以又温习了一遍栈的内容 在 ARM Cortex-M33 微控制器上从异常如中断返回时处理器会从堆栈中出栈pop寄存器的值来恢复到异常发生之前的状态。这一过程发生在异常处理完成后当执行异常返回序列时。异常返回过程是自动的由处理器硬件管理。 当异常发生时处理器会将当前的上下文某些寄存器的值压入当前使用的堆栈中MSP 或 PSP。在从异常返回时处理器将这些值出栈到寄存器中。这些寄存器包括程序计数器PC、链接寄存器LR、程序状态寄存器xPSR以及可能的一些通用寄存器。 异常返回时的出栈顺序与入栈顺序相反。入栈顺序通常如下 xPSR 2. 返回地址PCLRR12R3R2R1R0如果有浮点状态会进一步保存 S16-S31 浮点寄存器 因此异常返回时寄存器的出栈顺序是 R0R1R2R3R12LRPC返回地址xPSR如果有浮点状态会进一步恢复 S16-S31 浮点寄存器 在异常返回序列结束时处理器从堆栈恢复了这些寄存器的值并跳转到返回地址之前的PC继续执行程序。 值得注意的是这里所说的 LR 寄存器在异常发生时会被自动设置为一个特殊的值EXC_RETURN该值包含了关于返回时所需使用的堆栈指针MSP 或 PSP以及是否使用了浮点寄存器等信息。异常返回时处理器会检查 LR 中的 EXC_RETURN 值以决定如何恢复上下文并从哪个堆栈指针出栈。 此外浮点寄存器如果有的保存和恢复取决于浮点单元FPU的使用以及处理器的配置。如果在异常发生时使用了 FPU则会额外保存和恢复 S16-S31 寄存器。如果 FPU 未启用或未使用则不会保存和恢复这些浮点寄存器。 ARM 栈增长方式 在 ARM Cortex-M33 微控制器以及所有 ARM Cortex-M 系列处理器中栈是向下增长的。这意味着当数据被压入栈push时栈指针SP会递减相应地当数据从栈中弹出pop时栈指针会递增。 这个行为符合大多数现代处理器的常见约定即栈空间的起始地址通常较高随着数据的增加栈指针向着较低的内存地址方向移动。这种设计可以有效利用内存空间因为栈的最大尺寸通常是不确定的而向下增长可以确保栈不会与静态分配或动态分配的内存空间发生冲突。 在thread.c 中可以看到对栈的具体使用选择 static rt_err_t _rt_thread_init(struct rt_thread *thread,const char *name,void (*entry)(void *parameter),void *parameter,void *stack_start,rt_uint32_t stack_size,rt_uint8_t priority,rt_uint32_t tick) {/* init thread list */rt_list_init((thread-tlist));thread-entry (void *)entry;thread-parameter parameter;/* stack init */thread-stack_addr stack_start;thread-stack_size stack_size;/* init thread stack */rt_memset(thread-stack_addr, #, thread-stack_size); #ifdef ARCH_CPU_STACK_GROWS_UPWARDthread-sp (void *)rt_hw_stack_init(thread-entry, thread-parameter,(void *)((char *)thread-stack_addr),(void *)_rt_thread_exit); #elsethread-sp (void *)rt_hw_stack_init(thread-entry, thread-parameter,(rt_uint8_t *)((char *)thread-stack_addr thread-stack_size - sizeof(rt_ubase_t)),(void *)_rt_thread_exit); 所以宏ARCH_CPU_STACK_GROWS_UPWARD 处的内容不会编译进去使用的是#else分支。
http://www.w-s-a.com/news/306976/

相关文章:

  • 济南seo网站推广搜索广告推广
  • 有关于网站建设的参考文献宁波seo网络推广公司
  • 网站设配色个人主页介绍文案
  • 网站seo相关设置优化网站建设的好处
  • 上海市建设工程安全生产协会网站郴州网站设计公司
  • 网站大型网页游戏自己搭建服务器做视频网站
  • 建立网站企业wordpress用户名密码破解
  • 网站管理助手建站教程国外网站做acm题目比较好
  • 网站开发框架排行专业网页制作服务商
  • 企业网站建设入账政务网站建设信息
  • 网络平台建设是什么江门排名优化怎么做
  • 响应式旅游网站模板下载网址做
  • 个人做网站名称可以随意更改吗惠州网站推广排名
  • 自己建设一个网站步骤网站认证怎么认证
  • 深圳建站公司开发费用沧州手机建站哪家好
  • 兰州网站设计公司排名百度怎么发布短视频
  • 大连模板开发建站泰州网站建设策划方案
  • 厦门好的网站设计局域网内建网站
  • 关键词那种网站正版网页游戏平台排行榜
  • 网站自助建设平台创建网址快捷方式
  • 坑梓网站建设包括哪些成都网站建设优创
  • 重庆网站seo公司哪家好超级优化大师
  • 成都网站建设推广详情邵阳市住房和城乡建设局网站
  • 淄博网站推广猎头公司有哪些
  • 局域网内建立网站90设计网怎么样
  • 域名备案和网站备案有什么不同工程项目建设网站
  • 做网站难吗?wordpress评论qq
  • 权威网站优化价格电子商务静态网站建设实验报告
  • 公司如何办网站北京网站建设公司内江
  • 六安建设网站企业营业执照查询系统入口