0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

一文簡析CPU診斷緩沖區(qū)報錯區(qū)域長度錯誤

機器人及PLC自動化應用 ? 來源:機器人及PLC自動化應用 ? 作者:機器人及PLC自動化 ? 2022-12-09 09:13 ? 次閱讀

什么 CPU 診斷緩沖區(qū)報錯“區(qū)域長度錯誤”

如圖 1 所示,CPU 診斷緩沖區(qū)報錯報錯“區(qū)域長度錯誤”,發(fā)生此類錯誤的原因是,訪問地址所尋址的值超出或未完全包含在所允許的操作數(shù)范圍(CPU 特定變量或數(shù)據(jù)塊大小)。

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

圖 1. “區(qū)域長度錯誤”

可以點擊診斷緩沖區(qū)下方的“在編輯器中打開”按鈕,跳轉(zhuǎn)到發(fā)生錯誤的程序段,如圖 2 所示。

在程序段 2 中,通過對數(shù)組下標賦值的方式間接尋址數(shù)組中的元素,在程序段 1 中為數(shù)組下標賦值為 2。

在數(shù)據(jù)塊的聲明中,數(shù)組只聲明了 2 個數(shù)組元素,下標為 0-1,下標為 2 超出了數(shù)據(jù)塊中聲明變量的范圍,故報故障“區(qū)域長度錯誤”。

可以修改數(shù)組下標或者修改數(shù)據(jù)塊中數(shù)組元素的個數(shù),保證數(shù)據(jù)訪問的范圍在允許的范圍內(nèi)。

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

圖 2. 出錯的程序段位置

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

圖 3. 數(shù)組的聲明

此類錯誤在間接尋址訪問變量時易出現(xiàn),需要編程人員確保訪問地址所尋址的值不超出操作數(shù)范圍。

審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    10702

    瀏覽量

    209401

原文標題:為什么 CPU 診斷緩沖區(qū)報錯“區(qū)域長度錯誤”

文章出處:【微信號:gh_a8b121171b08,微信公眾號:機器人及PLC自動化應用】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    西門子plc1200診斷緩沖區(qū)的使用方法

    在西門子S7-1200中的診斷緩沖區(qū)CPU系統(tǒng)存儲器的部分,診斷緩沖區(qū)中記錄了由
    的頭像 發(fā)表于 07-28 19:56 ?3458次閱讀
    西門子plc1200<b class='flag-5'>診斷</b><b class='flag-5'>緩沖區(qū)</b>的使用方法

    使用UART FIFO緩沖區(qū)時,緩沖區(qū)中的數(shù)據(jù)有時會損壞的原因?

    1 TX FIFO 緩沖區(qū)中的個字節(jié)從 UART 0 TX FIFO 更改為個字節(jié)(見下圖)。 據(jù)我所見,問題發(fā)生在FIFO硬件的某個地方,因為軟件發(fā)送的數(shù)據(jù)是正確的。 UART 設置
    發(fā)表于 03-06 06:59

    使用malloc建立緩沖區(qū)時出現(xiàn)錯誤怎么解決?

    ,我不知道現(xiàn)在這個已知系統(tǒng)的中斷頻率,所以我做了個偷懶的想法,先把輸入數(shù)據(jù)3秒的數(shù)據(jù)放在自建的緩沖區(qū),再將這個數(shù)據(jù)處理后再輸出,延時大概3s數(shù)據(jù)的時間,現(xiàn)在但是使用malloc建立緩沖區(qū)時出現(xiàn)
    發(fā)表于 11-30 07:39

    基于狀態(tài)圖的緩沖區(qū)溢出攻擊分析

    結(jié)合緩沖區(qū)溢出攻擊產(chǎn)生的原理,分析緩沖區(qū)溢出攻擊代碼的結(jié)構(gòu),論述Snort規(guī)則對緩沖區(qū)溢出攻擊的檢測,在此基礎(chǔ)上構(gòu)建個基于狀態(tài)圖的緩沖區(qū)
    發(fā)表于 04-10 08:46 ?32次下載

    Windows緩沖區(qū)溢出攻擊的實例研究

    本文首先詳細分析了Windows 緩沖區(qū)溢出的基本原理和具體流程。在此基礎(chǔ)上,通過對個Windows 網(wǎng)絡緩沖區(qū)溢出攻擊實例的詳細調(diào)試分析,研究了Windows 緩沖區(qū)溢出攻擊的整個
    發(fā)表于 08-28 09:44 ?17次下載

    CPU與GPU維護數(shù)據(jù)結(jié)構(gòu)來保證環(huán)形緩沖區(qū)的正確工作

    CPU 和 GPU 將各自維護些數(shù)據(jù)結(jié)構(gòu)來保證環(huán)形緩沖區(qū)的正確工作。這些 數(shù)據(jù)結(jié)構(gòu)有緩沖區(qū)的基地址,緩沖區(qū)大小,寫指針和讀指針。其中寫指針
    的頭像 發(fā)表于 03-30 15:01 ?6339次閱讀
    <b class='flag-5'>CPU</b>與GPU維護數(shù)據(jù)結(jié)構(gòu)來保證環(huán)形<b class='flag-5'>緩沖區(qū)</b>的正確工作

    環(huán)形緩沖區(qū)的實現(xiàn)原理

    在通信程序中,經(jīng)常使用環(huán)形緩沖區(qū)作為數(shù)據(jù)結(jié)構(gòu)來存放通信中發(fā)送和接收的數(shù)據(jù)。環(huán)形緩沖區(qū)個先進先出的循環(huán)緩沖區(qū),可以向通信程序提供對緩沖區(qū)
    的頭像 發(fā)表于 03-22 10:03 ?7408次閱讀
    環(huán)形<b class='flag-5'>緩沖區(qū)</b>的實現(xiàn)原理

    緩沖區(qū)是啥意思 STM32串口數(shù)據(jù)接收之環(huán)形緩沖區(qū)

    完成。 缺點: ①緩沖數(shù)據(jù)組數(shù)定,且有多變量,代碼結(jié)構(gòu)不太清晰。 ②接收數(shù)據(jù)長度可能大于數(shù)組大小,也可能小于數(shù)組大小。不靈活,需要接收數(shù)據(jù)很長時容易出錯,且內(nèi)存利用率低。 解決這個問題的好辦法是:環(huán)形
    的頭像 發(fā)表于 07-22 15:33 ?1.1w次閱讀

    STM32串口數(shù)據(jù)接收 --環(huán)形緩沖區(qū)

    程序中,經(jīng)常使用環(huán)形緩沖器作為數(shù)據(jù)結(jié)構(gòu)來存放通信中發(fā)送和接收的數(shù)據(jù)。環(huán)形緩沖區(qū)個先進先出的循環(huán)緩沖區(qū),可以向通信程序提供對緩沖區(qū)的互斥訪
    發(fā)表于 12-28 19:24 ?30次下載
    STM32串口數(shù)據(jù)接收 --環(huán)形<b class='flag-5'>緩沖區(qū)</b>

    什么是緩沖區(qū)?有什么作用

    緩沖區(qū)其實就是個存儲區(qū)域,它是由專門的硬件寄存器所組成的。
    的頭像 發(fā)表于 02-02 09:57 ?2.5w次閱讀

    環(huán)形緩沖區(qū)的實現(xiàn)思路

    單片機程序開發(fā)般都會用到UART串口通信,通過通信來實現(xiàn)上位機和單片機程序的數(shù)據(jù)交互。通信中為了實現(xiàn)正常的收發(fā),般都會有對應的發(fā)送和接收緩存來暫存通信數(shù)據(jù)。這里使用環(huán)形緩沖區(qū)的方式來設計數(shù)據(jù)收發(fā)的緩存,即
    的頭像 發(fā)表于 01-17 15:07 ?1476次閱讀

    西門子博途如何聯(lián)機訪問CPU?

    工作區(qū)域-診斷 在這里,可以調(diào)用診斷狀態(tài)和診斷緩沖區(qū)的內(nèi)容。 工作區(qū)域-功能 在這里,可以
    發(fā)表于 11-08 10:19 ?578次閱讀
    西門子博途如何聯(lián)機訪問<b class='flag-5'>CPU</b>?

    C++環(huán)形緩沖區(qū)設計與實現(xiàn)

    、環(huán)形緩沖區(qū)基礎(chǔ)理論解析(Basic Theory of Circular Buffer) 1.1 環(huán)形緩沖區(qū)的定義與作用(Definition and Function of Circular
    的頭像 發(fā)表于 11-09 11:21 ?1283次閱讀
    C++環(huán)形<b class='flag-5'>緩沖區(qū)</b>設計與實現(xiàn)

    西門子博診斷緩沖區(qū)的使用方法

    可從在線和診斷視圖中“診斷”文件夾的“診斷緩沖區(qū)”組中讀出 CPU診斷
    的頭像 發(fā)表于 12-11 10:24 ?3091次閱讀
    西門子博<b class='flag-5'>診斷</b><b class='flag-5'>緩沖區(qū)</b>的使用方法

    交換芯片緩沖區(qū)大小是什么

    交換芯片緩沖區(qū)大小并不定是固定的。緩沖區(qū)的設計和實現(xiàn)會根據(jù)芯片的具體型號、規(guī)格以及應用場景的不同而有所差異。些交換芯片可能具有固定大小的緩沖區(qū)
    的頭像 發(fā)表于 03-18 14:42 ?343次閱讀