0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

一文简析CPU诊断缓冲区报错区域长度错误

机器人及PLC自动化应用 来源:机器人及PLC自动化应用 作者:机器人及PLC自动化 2022-12-09 09:13 次阅读

什么 CPU 诊断缓冲区报错“区域长度错误”

如图 1 所示,CPU 诊断缓冲区报错报错“区域长度错误”,发生此类错误的原因是,访问地址所寻址的值超出或未完全包含在所允许的操作数范围(CPU 特定变量或数据块大小)。

0bef9536-770a-11ed-8abf-dac502259ad0.png

图 1. “区域长度错误”

可以点击诊断缓冲区下方的“在编辑器中打开”按钮,跳转到发生错误的程序段,如图 2 所示。

在程序段 2 中,通过对数组下标赋值的方式间接寻址数组中的元素,在程序段 1 中为数组下标赋值为 2。

在数据块的声明中,数组只声明了 2 个数组元素,下标为 0-1,下标为 2 超出了数据块中声明变量的范围,故报故障“区域长度错误”。

可以修改数组下标或者修改数据块中数组元素的个数,保证数据访问的范围在允许的范围内。

0c233698-770a-11ed-8abf-dac502259ad0.png

图 2. 出错的程序段位置

0c41e408-770a-11ed-8abf-dac502259ad0.png

图 3. 数组的声明

此类错误在间接寻址访问变量时易出现,需要编程人员确保访问地址所寻址的值不超出操作数范围。

审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • cpu
    cpu
    +关注

    关注

    68

    文章

    10802

    浏览量

    210772

原文标题:为什么 CPU 诊断缓冲区报错“区域长度错误”

文章出处:【微信号:gh_a8b121171b08,微信公众号:机器人及PLC自动化应用】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    西门子plc1200诊断缓冲区的使用方法

    在西门子S7-1200中的诊断缓冲区CPU系统存储器的部分,诊断缓冲区中记录了由
    的头像 发表于 07-28 19:56 3713次阅读
    西门子plc1200<b class='flag-5'>诊断</b><b class='flag-5'>缓冲区</b>的使用方法

    使用UART FIFO缓冲区时,缓冲区中的数据有时会损坏的原因?

    1 TX FIFO 缓冲区中的个字节从 UART 0 TX FIFO 更改为个字节(见下图)。 据我所见,问题发生在FIFO硬件的某个地方,因为软件发送的数据是正确的。 UART 设置
    发表于 03-06 06:59

    使用malloc建立缓冲区时出现错误怎么解决?

    ,我不知道现在这个已知系统的中断频率,所以我做了个偷懒的想法,先把输入数据3秒的数据放在自建的缓冲区,再将这个数据处理后再输出,延时大概3s数据的时间,现在但是使用malloc建立缓冲区时出现
    发表于 11-30 07:39

    基于状态图的缓冲区溢出攻击分析

    结合缓冲区溢出攻击产生的原理,分析缓冲区溢出攻击代码的结构,论述Snort规则对缓冲区溢出攻击的检测,在此基础上构建个基于状态图的缓冲区
    发表于 04-10 08:46 32次下载

    Windows缓冲区溢出攻击的实例研究

    本文首先详细分析了Windows 缓冲区溢出的基本原理和具体流程。在此基础上,通过对个Windows 网络缓冲区溢出攻击实例的详细调试分析,研究了Windows 缓冲区溢出攻击的整个
    发表于 08-28 09:44 17次下载

    CPU与GPU维护数据结构来保证环形缓冲区的正确工作

    CPU 和 GPU 将各自维护些数据结构来保证环形缓冲区的正确工作。这些 数据结构有缓冲区的基地址,缓冲区大小,写指针和读指针。其中写指针
    的头像 发表于 03-30 15:01 6412次阅读
    <b class='flag-5'>CPU</b>与GPU维护数据结构来保证环形<b class='flag-5'>缓冲区</b>的正确工作

    环形缓冲区的实现原理

    在通信程序中,经常使用环形缓冲区作为数据结构来存放通信中发送和接收的数据。环形缓冲区个先进先出的循环缓冲区,可以向通信程序提供对缓冲区
    的头像 发表于 03-22 10:03 7479次阅读
    环形<b class='flag-5'>缓冲区</b>的实现原理

    缓冲区是啥意思 STM32串口数据接收之环形缓冲区

    完成。 缺点: ①缓冲数据组数定,且有多变量,代码结构不太清晰。 ②接收数据长度可能大于数组大小,也可能小于数组大小。不灵活,需要接收数据很长时容易出错,且内存利用率低。 解决这个问题的好办法是:环形
    的头像 发表于 07-22 15:33 1.1w次阅读

    STM32串口数据接收 --环形缓冲区

    程序中,经常使用环形缓冲器作为数据结构来存放通信中发送和接收的数据。环形缓冲区个先进先出的循环缓冲区,可以向通信程序提供对缓冲区的互斥访
    发表于 12-28 19:24 30次下载
    STM32串口数据接收 --环形<b class='flag-5'>缓冲区</b>

    什么是缓冲区?有什么作用

    缓冲区其实就是个存储区域,它是由专门的硬件寄存器所组成的。
    的头像 发表于 02-02 09:57 2.5w次阅读

    环形缓冲区的实现思路

    单片机程序开发般都会用到UART串口通信,通过通信来实现上位机和单片机程序的数据交互。通信中为了实现正常的收发,般都会有对应的发送和接收缓存来暂存通信数据。这里使用环形缓冲区的方式来设计数据收发的缓存,即
    的头像 发表于 01-17 15:07 1564次阅读

    西门子博途如何联机访问CPU

    工作区域-诊断 在这里,可以调用诊断状态和诊断缓冲区的内容。 工作区域-功能 在这里,可以
    发表于 11-08 10:19 690次阅读
    西门子博途如何联机访问<b class='flag-5'>CPU</b>?

    C++环形缓冲区设计与实现

    、环形缓冲区基础理论解析(Basic Theory of Circular Buffer) 1.1 环形缓冲区的定义与作用(Definition and Function of Circular
    的头像 发表于 11-09 11:21 1771次阅读
    C++环形<b class='flag-5'>缓冲区</b>设计与实现

    西门子博诊断缓冲区的使用方法

    可从在线和诊断视图中“诊断”文件夹的“诊断缓冲区”组中读出 CPU诊断
    的头像 发表于 12-11 10:24 3677次阅读
    西门子博<b class='flag-5'>诊断</b><b class='flag-5'>缓冲区</b>的使用方法

    交换芯片缓冲区大小是什么

    交换芯片缓冲区大小并不定是固定的。缓冲区的设计和实现会根据芯片的具体型号、规格以及应用场景的不同而有所差异。些交换芯片可能具有固定大小的缓冲区
    的头像 发表于 03-18 14:42 506次阅读