当前位置:首页 > 产品中心 > MCU芯片

欧宝ob官网:30个单片机常见题目及处分要领

 发布时间:2022-04-17 05:39:25 来源:OB欧宝体育 作者:ob欧宝体育pp下载

  正在大凡的项目开荒进程中,会碰到种种各样的题目。下面分享一篇作品,是常见题方针处置思绪和想法。

  太平复现题目才气精确的对题目举行定位、处置以及验证。日常来说,越容易复现的题目越容易处置。

  有的题目存正在于特定的条款下,只必要模仿显现题方针条款即可复现。看待依赖表部输入的条款,若是条款对比繁复难以模仿能够思量步调里预设直接进入对应形态。

  步调长工夫运转后显现格表,题目难以复现,能够搭修测试情况多套修造同时举行测试。

  依据题方针景色,正在抱有疑难的代码处弥补LOG输出,以此来追踪步调实践流程以及环节变量的值,查察是否与预期相符。

  正在线调试能够起到和打印LOG相仿的用意,其它此法子异常适合排查步调溃散类的BUG,当步调陷入格表中止(HardFault,看门狗中止等)的时期能够直接STOP查看call stack以及内核寄存器的值,急迅定位题目点。

  行使版本处理东西时能够通过延续回退版本并测试验证来定位初次引入该题方针版本,之后能够盘绕该版本增改的代码举行排查。

  二剖释说即 以相仿二分查找法的方法解说掉片面代码,以此占定题目是否由解说掉的这片面代码惹起。

  实在法子为将与题目不对连的片面代码解说掉一半,看题目是否处置,未处置则解说另一半,若是处置则接续将解说界限缩幼一半,以此类推慢慢缩幼题方针界限。

  Cortex M内核陷入格表中止时会将几个内核寄存器的值压入栈中,如下图:

  咱们能够正在陷入格表中止时将栈上的内核寄存器值写入RAM的一段复位后保存默认值的区域内,实践复位操作后再从RAM将该讯息读出并阐发,通过PC、LR确认当时实践的函数,通过R0-R3阐发当时统治的变量是否格表,通过SP阐发是否不妨显现栈溢出等。

  此类题目往往必要集合map文献举行阐发,通过map文献查察被篡转换量地方相近的数组,查看对该数组的写入操作是否存正在如上图所示担心全的代码,将其修正为和平的代码。

  如上图,此类题目也必要集合map文献举行阐发。假设栈从高地方往低地方增加,若是发作栈溢出,则g_val的值会被栈上的值遮盖。

  显现栈溢出时要阐发栈的最大行使状况,函数移用层数过多,中止办事函数内举行函数移用,函数内部说理会较大的且则变量等都有不妨导致栈溢出。

  将函数内较大的且则变量加”static”环节字转化为静态变量,或者行使malloc动态分拨,将其放到堆上;

  占定语句的条款容易把相当运算符“==”写成赋值运算符“=”导致被占定的变量值被更改,该类过失编译期不会报错且老是返回真。

  倡议将要占定的变量写到运算符的右边,如此错写为赋值运算符时会正在编译期报错。还能够行使少许静态代码查抄东西来发觉此类题目。

  比如操作部队时,出队操作实践的进程中发作中止(职责切换),而且正在中止(切换后的职责)中实践入队操作则不妨损坏部队布局,看待这类状况应当操作时合中止(行使互斥锁同步)。

  如上图步调,本意是等候irq中止之后不再实践foo函数,但被编译器优化之后,实践运转进程中flg不妨被装入寄存器而且每次都占定寄存器内的值而不从头从ram里读取flg的值,导致纵然irq中止发作foo也不绝运转,此处必要正在flg的说明前加“volatile”环节字,强造每次都从ram里获取flg的值。

  芯片自己存正在BUG,正在某些特定状况下给单片机返回一个过失的值,必要步调对读回的值举行占定,过滤格表值。

  比如电源处理芯片Isl78600,假设现正在两片级联,当同时读取两片的电压采样数据时,高端芯片会以固定周期通过菊花链将数据传送到低端芯片,而低端芯片上只要一个缓存区.

  若是单片机不正在轨则工夫内将低端芯片上的数据读走那么新的数据到来时将会遮盖此刻数据,导致数据损失。此类题目必要认真阐发芯片的数据手册,厉酷知足芯片通讯的时序哀求。

  代码的竣工与计划文档不相符必要弥补单位测试遮盖一齐条款分支,举行代码交叉review。

  比如记载形态机此刻形态的变量被窜改,阐发该类题方针法子同前文数值格表片面。

  与方针IC通讯过失,无法精确实践节造夂箢,必要行使示波器或逻辑阐发仪去查察通讯时序,互联网金融工具阐发是否发出的信号过错或者受到表部作梗。

  此时a.val1的地方为0x00000001,若是以uint16_t类型去解援用此地方则会由于对齐题目进入HardFaul。

上一篇:分歧型号的单片机芯片编程格式相似吗学了一个能够实用一概吗? 下一篇:芯片解密须要当心什么?

  快速链接

OB欧宝体育 新闻中心 支持与服务

  下载

开发工具 技术文档

  公司

招贤纳士 ob欧宝体育pp下载

  欧宝ob官网

简体中文 English
Copyright © by Vango 欧宝ob官网_OB欧宝体育pp下载 浙ICP备12042626号