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

阿里巴巴有几个网站是做外贸的建设网站哪个公司好

阿里巴巴有几个网站是做外贸的,建设网站哪个公司好,弄个小程序要多少钱,3d人物建模软件STM32 产生hard-fault 调试方法 需求 当STM32 产生Hard Fault的时候我们希望可以打印出一些重要的寄存器信息#xff0c;然后定位代码出错的地方。 参考 https://github.com/ferenc-nemeth/arm-hard-fault-handler 原理 STM32代码运行的时候一般在是main函数while(1)中循…STM32 产生hard-fault 调试方法 需求 当STM32 产生Hard Fault的时候我们希望可以打印出一些重要的寄存器信息然后定位代码出错的地方。 参考 https://github.com/ferenc-nemeth/arm-hard-fault-handler 原理 STM32代码运行的时候一般在是main函数while(1)中循环的运行代码在运行代码的过程中突然发生了Hard Fault错误则会产生一个中断。中断产生的时候CPU会将一些重要的寄存器压入栈中这个动作是CPU自动运行的无需代码控制。那么我们就可以在中断的服务函数里面获取栈的地址然后将重要的寄存器信息打印出来即可。 备注STM32有两个栈指针分别是MSP和PSP所以在HardFault_Handler中需要判断产生中断之前使用的是MSP还是PSP。 下面是核心代码。 void HardFault_Handler(void) {__asm volatile(TST LR, #0b0100; ITE EQ; //判断堆栈指针使用的是MSP还是PSP。MRSEQ R0, MSP; // 如果是MSP则将MSP的值放在R0作为ReportHardFault函数的第一个参数。MRSNE R0, PSP; // 如果是MSP则将MSP的值放在R0作为ReportHardFault函数的第一个参数。MOV R1, LR; // 将LR的值放在R1寄存器作为ReportHardFault函数的第二个参数。B ReportHardFault; //跳转到ReportHardFault函数在这个函数可以打印出产生hard fault时候的堆栈信息。); }备注 1、LR保存的是产生中断的时候CPU下一步要执行的指令可以通过使用 BX LR 指令返回这会触发硬件恢复之前保存的上下文。 2、在STM32中产生中断的时候CPU会将一些重要的寄存器数据压入堆栈中这些寄存器是r0、r1、r2、r3、r12、lr、pc、psr。 所以我们HardFault_Handler中断函数中第一时间就获取SP的值从而找到产生中断的时候堆栈的指针的值是多少 从而打印出产生Hard Fault时候代码运行到那里。void ReportHardFault(uint32_t *stack_frame, uint32_t exc) {uint32_t r0 stack_frame[0]; //备注stack_frame是产生中断的时候将重要的寄存器压栈后的地址。uint32_t r1 stack_frame[1];uint32_t r2 stack_frame[2];uint32_t r3 stack_frame[3];uint32_t r12 stack_frame[4];uint32_t lr stack_frame[5];uint32_t pc stack_frame[6];uint32_t psr stack_frame[7];uint32_t hfsr SCB-HFSR; //这是重要的错误寄存器信息可以查找数据手册知道产生什么错误。uint32_t cfsr SCB-CFSR;uint32_t mmar SCB-MMFAR;uint32_t bfar SCB-BFAR;uint32_t afsr SCB-AFSR;//下面的代码将堆栈的信息打印出来。 }背景知识补充 MSP 和 PSP 在 STM32 微控制器中MSPMain Stack Pointer和 PSPProcess Stack Pointer是两个用于管理堆栈的指针。它们是 ARM Cortex-M 处理器架构的一部分用于在不同模式下进行堆栈操作管理。 MSPMain Stack Pointer MSPMain Stack Pointer 是主堆栈指针。 通常用于系统模式或特权模式下的堆栈操作。 在复位后处理器默认使用 MSP 作为堆栈指针。 一般情况下操作系统或裸机程序中的中断服务程序和异常处理程序使用 MSP。 PSPProcess Stack Pointer PSPProcess Stack Pointer 是进程堆栈指针。 通常用于用户模式或线程模式下的堆栈操作。 在使用操作系统例如 FreeRTOS时每个任务或线程可以使用 PSP 进行独立的堆栈管理从而实现任务的隔离。 PSP 允许应用程序在不同的模式下使用不同的堆栈提供更好的灵活性和安全性。
http://www.hkea.cn/news/14587999/

相关文章:

  • 海淀区玉泉小学网站 建设方自治区建设厅官方网站
  • app开发模板网站wordpress怎么防爬虫
  • 网站首页site不到 a5o2o网站运维建设方案
  • 沈阳建设电商网站吉林建设集团网站
  • 郑州网站建设修改深圳市建设工程交易服务网中心
  • 百度seo排名优化公司海口网站优化
  • 丹阳网站建设公司hulu网站在中国做内容吗
  • 如何把网站加入白名单设计类型的网站
  • 制作网站如何赚钱小程序源码下载网
  • 四川招标采购信息网官网小学生班级优化大师
  • 招聘网站系统怎么做出名的网站有哪些
  • 佛山外贸网站建设流程一个网站建设初期的成本
  • dede免费手机网站模板c 网站开发 视频
  • 假淘宝网站怎么做百度关键词竞价价格
  • 一般网站空间要多大网站的建设服务器
  • 工商工事上哪个网站做程序员接私活平台
  • vs2013如何做网站域名查询阿里云
  • 老网站怎么优化揭阳手机网站建设
  • 慈溪网站开发我做网站如何分流客户
  • 网站开发公司 上海百度一下打开
  • 司法局网站建设自己免费制作app
  • 动态电子商务网站 制作机械类 网站源码
  • 建立网站用英语怎么说中国央企100强排名
  • 网站建设相关的吴忠网站设计公司
  • 自己做的网站 jen苏州市市政建设集团公司网站
  • 国外高清视频素材网站推荐虚拟主机代理商的网站打不开了怎么办
  • 怎么接网站开发外包百度做推广一般要多少钱
  • 湖南网站建设找拉米拉wordpress 捐赠
  • 网站备案信息查询接口宜昌便宜做网站
  • 中国城乡建设经济研究所 网站北京模板建站设计