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

    文章

    10412

    浏览量

    206465

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

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

收藏 人收藏

    评论

    相关推荐

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

    在西门子S7-1200中的诊断缓冲区CPU系统存储器的一部分,诊断缓冲区中记录了由CPU或具有
    的头像 发表于 07-28 19:56 2453次阅读
    西门子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

    abview中VISA的读、写缓冲区是同缓冲区吗?

    labview中VISA的读、写缓冲区是同缓冲区吗?通过读缓冲区字节数,只能读出读数据的大小,而不能知道写进去数据的大小。
    发表于 10-27 13:08

    缓冲区的解释

    ,数据采集卡有自身的办法来解决硬件采集速度快过于软件读取速度的问题。这需要对数据采集过程中数据的传输作个介绍:外部的信号进入数据采集卡后,经过各种处理转换,先进入数据采集卡自身的缓冲区里面,缓冲区是先进先出
    发表于 04-07 15:56

    visa读取传输时发生帧错误,在网上查了试过配置串口后加延时和清空缓冲区还是报错

    新手,visa读取传输时发生帧错误,在网上查了试过配置串口后加延时和清空缓冲区还是报错,求助大神!
    发表于 04-13 11:48

    杰杰带你解读【机智云】环形缓冲区源码

    的数据从某段地(data)址写入环形缓冲区。如果数据地址非法或者是可写数据长度不够,那么就会返回错误代码。先看后面的 else {memcpy(rb->rbTail, data, count
    发表于 07-17 14:58

    C工程移植使用malloc建立缓冲区时出现错误

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

    如何纠正dcm缓冲区错误

    我正在使用3 dcm模块个dcm驾驶另外两个我正在使用核心生成器来生成dcm模块但在生成程序文件时,它显示出错误我尝试通过添加缓冲区但不起作用来纠正这个
    发表于 07-15 15:03

    并行缓冲区导致转换因串行缓​​冲而失败问题

    我得到了Ngdbuild:770错误,这是“同方向的缓冲区无法串联放置”。但是,我确信有问题的缓冲区是并行的...而不是系列。我在XST中也禁用了“添加I / O
    发表于 07-22 07:48

    环形缓冲区简介

    程序中,经常使用环形缓冲器作为数据结构来存放通信中发送和接收的数据。环形缓冲区个先进先出的循环缓冲区,可以向通信程序提供对缓冲区的互斥访
    发表于 08-17 06:56

    请问串口DMA+环形缓冲区如何实现不定长度的数据收发?

    请问串口DMA+环形缓冲区如何实现不定长度的数据收发?
    发表于 12-08 06:13

    请问串口的DMA接收缓冲区是不是环形缓冲区

    大家好!请问串口的DMA接收缓冲区是不是环形缓冲区?通过阅读串口部分的代码,我了解到这样几点:1、串口的DMA接收时循环接收,当缓冲区满了会重新从头开始覆盖掉之前的数据,和环形缓冲区
    发表于 08-30 14:27

    TouchGFX 4.17开发的应用程序使用双缓冲区无法工作咋办

    缓冲区中删除。在此特定示例中,可以通过保持文本区域大小固定并使整个文本区域无效来解决错误,但同样的问题可能会在以后的另
    发表于 12-22 07:23

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

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

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

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