色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

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

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

嵌入式系統(tǒng)存儲(chǔ)正確性和壓力測(cè)試方案

嵌入式USB開發(fā) ? 來源:嵌入式USB開發(fā) ? 作者:嵌入式USB開發(fā) ? 2023-06-08 10:45 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本文轉(zhuǎn)自公眾號(hào),歡迎關(guān)注

嵌入式系統(tǒng)存儲(chǔ)正確性和壓力測(cè)試方案 (qq.com)

前言

嵌入式系統(tǒng)開發(fā)測(cè)試階段通常需要對(duì)存儲(chǔ)進(jìn)行正確性和壓力測(cè)試,比如SRAM,DDR等,通常的做法是進(jìn)行遍歷讀寫,比如寫0x55,0xAA,0x00,0xFF,遞增值等這些特殊值然后再回讀判斷是否正確等,這些測(cè)試用例是根據(jù)存儲(chǔ)的原理和經(jīng)驗(yàn)等進(jìn)行總結(jié)的。實(shí)際上已經(jīng)有人整理了相應(yīng)的測(cè)試用例https://pyropus.ca./software/memtester/就是一個(gè)比較常用的測(cè)試代碼。

這個(gè)代碼最新版本是4.6.0,其為Unix類系統(tǒng)上使用設(shè)計(jì),這些系統(tǒng)上可以直接安裝或者源碼編譯使用。

圖片

為了方便在MCU等環(huán)境使用,我將其進(jìn)行了一些修改,方便移植使用。

https://github.com/qinyunti/memtester_mcu.git

memtester_mcu使用

clone以下倉(cāng)庫(kù)https://github.com/qinyunti/memtester_mcu.git,添加代碼到自己的目錄即可。

參考README.md

實(shí)現(xiàn)以下依賴即可:

l:memset

l:rand

l:ULONG_MAX

lmemtester_types.h中需要

l定義幾個(gè)數(shù)據(jù)類型,ull位使用,ul為無符號(hào)基本數(shù)據(jù)類型。

typedef unsigned long ul;

typedef unsigned long long ull;

typedef unsigned long volatile ulv;

typedef unsigned char volatile u8v;

typedef unsigned short volatile u16v;

l需實(shí)現(xiàn)memtester_printf

然后

#include "memtester.h"

按照如下調(diào)用即可

memtester_main((ulv *)0x20004000, 0, 0x2000, 10);

其中0x20004000為待測(cè)試存儲(chǔ)開始地址,要ul對(duì)齊;

第二個(gè)參數(shù)表示測(cè)試用例mask,0表示所有用例都測(cè)試;

0x2000為待測(cè)試存儲(chǔ)區(qū)域大小,要ul對(duì)齊;

最后10為測(cè)試10個(gè)循環(huán),壓力測(cè)試可以將該值寫的很大,一直反復(fù)測(cè)試。

測(cè)試用例介紹

memtester_tests.c中一共提供了17個(gè)測(cè)試用例,下面一一介紹。

有一些輔助函數(shù)

compare_regions: 比較兩個(gè)區(qū)域是否一致,按照ulv類型比較

test_stuck_address

測(cè)試前先調(diào)用該函數(shù)遍歷測(cè)試一下,該函數(shù)依次寫對(duì)應(yīng)地址的內(nèi)容為該地址,該地址的內(nèi)容為該地址的取反,然后下一遍時(shí)反過來先寫該地址的內(nèi)容為該地址的取反,然后寫對(duì)應(yīng)地址的內(nèi)容為該地址,然后再回讀。

測(cè)試第一遍時(shí)

比如開始地址為0x20000000基本類型為32位,則0x20000000處的值為0x20000000

0x20000004處的值為0xDFFFFFFB;

測(cè)試第二遍時(shí)

比如開始地址為0x20000000基本類型為32位,則0x20000000處的值為0xDFFFFFFF

0x20000004處的值為0x20000004;

依此類推共測(cè)試16遍。

test_random_value :隨機(jī)測(cè)試

先隨機(jī)寫待測(cè)試區(qū)域的前面一半和后面一半為同樣的值,然后再回讀前面一半和后面一半是否一樣。

test_xor_comparison :異或隨機(jī)值測(cè)試

將待測(cè)試區(qū)域前面一半和后面一半的內(nèi)容(上一個(gè)測(cè)試的遺留值)都和同一個(gè)隨機(jī)值異或,然后再回讀比較。

test_sub_comparison :減隨機(jī)值測(cè)試

將待測(cè)試區(qū)域前面一半和后面一半的內(nèi)容(上一個(gè)測(cè)試的遺留值)都減同一個(gè)隨機(jī)值,然后再回讀比較。

test_mul_comparison :乘以隨機(jī)值測(cè)試

將待測(cè)試區(qū)域前面一半和后面一半的內(nèi)容(上一個(gè)測(cè)試的遺留值)都乘以同一個(gè)隨機(jī)值,然后再回讀比較。

test_div_comparison:除以隨機(jī)值測(cè)試

將待測(cè)試區(qū)域前面一半和后面一半的內(nèi)容(上一個(gè)測(cè)試的遺留值)都除以同一個(gè)隨機(jī)值,然后再回讀比較。

test_or_comparison :或隨機(jī)值測(cè)試

將待測(cè)試區(qū)域前面一半和后面一半的內(nèi)容(上一個(gè)測(cè)試的遺留值)都或上同一個(gè)隨機(jī)值,然后再回讀比較。

test_and_comparison :與隨機(jī)值測(cè)試

將待測(cè)試區(qū)域前面一半和后面一半的內(nèi)容(上一個(gè)測(cè)試的遺留值)都與上同一個(gè)隨機(jī)值,然后再回讀比較。

test_seqinc_comparison:遞增測(cè)試

將待測(cè)試區(qū)域前面一半和后面一半的內(nèi)容(上一個(gè)測(cè)試的遺留值)都從同一個(gè)隨機(jī)值開始遞增,遞增到待測(cè)試基本數(shù)據(jù)的個(gè)數(shù),然后再回讀比較。

test_solidbits_comparison :固定位測(cè)試

將待測(cè)試區(qū)域前面一半和后面一半的內(nèi)容依次寫0xFFFFFFFF和0x00000000然后再回讀比較。

Cesium64輪。

test_checkerboard_comparison :交錯(cuò)位測(cè)試

將待測(cè)試區(qū)域前面一半和后面一半的內(nèi)容依次寫0x55555555和0xAAAAAAAA然后回讀測(cè)試。

測(cè)試64輪。

test_blockseq_comparison :字節(jié)遞增測(cè)試

將待測(cè)試區(qū)域前面一半和后面一半的內(nèi)容依次寫0x00000000-0x01010101~0x02020202...0xFFFFFFFF這中字節(jié)遞增,然后回讀測(cè)試。

test_walkbits0_comparison :1滑動(dòng)測(cè)試

將待測(cè)試區(qū)域前面一半和后面一半的內(nèi)容依次寫如下值然后回讀測(cè)試:

共64輪

前面32輪的值

第一輪寫0x00000001

第二輪寫0x00000002

1往左滑動(dòng)

后面32輪反向滑動(dòng)

第32輪寫0x80000000

第33輪寫0x40000000

test_walkbits1_comparison :0滑動(dòng)測(cè)試

將待測(cè)試區(qū)域前面一半和后面一半的內(nèi)容依次寫如下值然后回讀測(cè)試:

共64輪

前面32輪的值

第一輪寫0xFFFFFFFE

第二輪寫0xFFFFFFFD

0往左滑動(dòng)

后面32輪反向滑動(dòng)

第32輪寫0x7FFFFFFF

第33輪寫0xBFFFFFFF

test_bitspread_comparison :間隔1,0滑動(dòng)測(cè)試

與1滑動(dòng)類似,只是使用間隔1位的兩個(gè)1進(jìn)行滑動(dòng)

將待測(cè)試區(qū)域前面一半和后面一半的內(nèi)容依次寫如下值然后回讀測(cè)試:

共64輪

前面32輪的值

第一輪寫

(1<<0) | (1<<2) ~

0xFFFFFFFF ^ (1<<0) | (1<<2)~ 取反

(1<<0) | (1<<2)~ 后面重復(fù)

0xFFFFFFFF ^ (1<<0) | (1<<2)

第二輪寫 在第一輪基礎(chǔ)上滑動(dòng)

(1<<1) | (1<<3) ~

0xFFFFFFFF ^ (1<<1) | (1<<3)~ 取反

(1<<1) | (1<<3) ~ 后面重復(fù)

0xFFFFFFFF ^ (1<<1) | (1<<3)

后面32輪反向滑動(dòng)

第32輪寫

(1<<31) | (1<<33) ~

0xFFFFFFFF ^ (1<<31) | (1<<33)~ 取反

(1<<31) | (1<<33)~ 后面重復(fù)

0xFFFFFFFF ^ (1<<31) | (1<<33)

第33輪寫 在第一輪基礎(chǔ)上滑動(dòng)

(1<<30) | (1<<32) ~ 取反

0xFFFFFFFF ^ (1<<30) | (1<<32)~ 后面重復(fù)

(1<<30) | (1<<32) ~

0xFFFFFFFF ^ (1<<30) | (1<<32)

test_bitflip_comparison :位翻轉(zhuǎn)

32輪

第一輪

重復(fù)8次

1<<0,0xFFFFFFFF^(1<<0) 重復(fù)到寫完緩沖區(qū)

第2輪

重復(fù)8次

1<<1,0xFFFFFFFF^(1<<1) 重復(fù)到寫完緩沖區(qū)

...

第32輪

重復(fù)8次

1<<31,0xFFFFFFFF^(1<<31) 重復(fù)到寫完緩沖區(qū)

test_8bit_wide_random :字節(jié)寫

將待測(cè)試區(qū)域前面一半和后面一半的內(nèi)容分別按照基本類型操作和字節(jié)操作方式寫入隨機(jī)值然后回讀對(duì)比

test_16bit_wide_random :16位寫

將待測(cè)試區(qū)域前面一半和后面一半的內(nèi)容分別按照基本類型操作和16位操作方式寫入隨機(jī)值然后回讀對(duì)比

實(shí)測(cè)

移植比較簡(jiǎn)單,參考README.md即可,在某個(gè)CORTEX-M3的MCU上測(cè)試如下

圖片

總結(jié)

以上測(cè)試可以看出

1.盡可能的隨機(jī),以避免每次測(cè)試都一樣,rand還可以先srand一下使得每次測(cè)試都不一樣。

2.測(cè)試相鄰位的影響,0x55,0xAA, 全0全0等,比如1和0的滑動(dòng),間隔1,0的滑動(dòng),位翻轉(zhuǎn)等。

3.遍歷到所有的值,比如遞增,隨機(jī)值等。

我們還可以添加總結(jié)自己的用例進(jìn)行完善,實(shí)際測(cè)試時(shí)也可減少一些循環(huán)次數(shù)加快測(cè)試。

審核編輯:湯梓紅

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

    關(guān)注

    5154

    文章

    19713

    瀏覽量

    318223
  • 嵌入式系統(tǒng)
    +關(guān)注

    關(guān)注

    41

    文章

    3683

    瀏覽量

    131524
  • 存儲(chǔ)
    +關(guān)注

    關(guān)注

    13

    文章

    4540

    瀏覽量

    87548
  • sram
    +關(guān)注

    關(guān)注

    6

    文章

    787

    瀏覽量

    116123
  • 移植
    +關(guān)注

    關(guān)注

    1

    文章

    401

    瀏覽量

    28729
收藏 0人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    嵌入式系統(tǒng)測(cè)試相關(guān)資料分享

    嵌入式系統(tǒng)測(cè)試21.導(dǎo)彈控制屬于嵌入式系統(tǒng)在()方面的應(yīng)用。正確答案:D. 軍用2.下列()不是
    發(fā)表于 10-27 06:38

    實(shí)時(shí)系統(tǒng)嵌入式操作系統(tǒng)的相關(guān)資料下載

    實(shí)時(shí)系統(tǒng)嵌入式操作系統(tǒng)實(shí)時(shí)系統(tǒng)可以看成對(duì)外部事件能夠及時(shí)響應(yīng)的系統(tǒng)。這種系統(tǒng)最重要的特征是時(shí)間
    發(fā)表于 12-14 08:33

    使用memtester工具對(duì)嵌入式Linux內(nèi)存壓力進(jìn)行測(cè)試

    使用memtester工具對(duì)嵌入式Linux內(nèi)存壓力測(cè)試新的改變Memtest工具工具編譯與使用使用命令使用格式測(cè)試新的改變內(nèi)存是電子計(jì)算機(jī)的最重要組成要素之一。 與內(nèi)存對(duì)應(yīng)的就是外存
    發(fā)表于 12-15 06:29

    嵌入式硬件系統(tǒng)存儲(chǔ)體系

    慕課電子科技大學(xué).嵌入式系統(tǒng).第二章.嵌入式硬件系統(tǒng)(第一部分.嵌入式系統(tǒng)
    發(fā)表于 12-17 08:08

    嵌入式系統(tǒng)系統(tǒng)測(cè)試和可靠評(píng)估

    引入多種嵌入式系統(tǒng)系統(tǒng)測(cè)試方法;根據(jù)ISO 9000 國(guó)際質(zhì)量標(biāo)準(zhǔn),提出一種切實(shí)可行的可靠評(píng)估方案
    發(fā)表于 04-16 09:29 ?16次下載

    嵌入式系統(tǒng)系統(tǒng)測(cè)試和可靠評(píng)估

    引入多種嵌入式系統(tǒng)系統(tǒng)測(cè)試方法;根據(jù)ISO 9000 國(guó)際質(zhì)量標(biāo)準(zhǔn),提出一種切實(shí)可行的可靠評(píng)估方案
    發(fā)表于 05-15 14:41 ?14次下載

    基于CodeTest工具的DCS系統(tǒng)嵌入式測(cè)試設(shè)計(jì)與實(shí)現(xiàn)

    介紹了CodeTest嵌入式測(cè)試工具及其在大型DCS系統(tǒng)嵌入式測(cè)試中一種獨(dú)特測(cè)試
    發(fā)表于 07-06 16:24 ?28次下載

    最新嵌入式系統(tǒng)數(shù)字邏輯測(cè)試解決方案

    最新嵌入式系統(tǒng)數(shù)字邏輯測(cè)試解決方案:TLA6000系列邏輯分析儀。 嵌入式系統(tǒng)技術(shù)、市場(chǎng)發(fā)展趨
    發(fā)表于 12-17 11:50 ?40次下載
    最新<b class='flag-5'>嵌入式</b><b class='flag-5'>系統(tǒng)</b>數(shù)字邏輯<b class='flag-5'>測(cè)試</b>解決<b class='flag-5'>方案</b>

    基于虛擬存儲(chǔ)嵌入式存儲(chǔ)系統(tǒng)的設(shè)計(jì)方法

    基于虛擬存儲(chǔ)嵌入式存儲(chǔ)系統(tǒng)的設(shè)計(jì)方法   1、引言   嵌入式系統(tǒng)嵌入式硬件
    發(fā)表于 11-05 16:10 ?828次閱讀
    基于虛擬<b class='flag-5'>存儲(chǔ)</b>的<b class='flag-5'>嵌入式</b><b class='flag-5'>存儲(chǔ)系統(tǒng)</b>的設(shè)計(jì)方法

    淺析嵌入式存儲(chǔ)系統(tǒng)設(shè)計(jì)方法

    淺析嵌入式存儲(chǔ)系統(tǒng)設(shè)計(jì)方法  嵌入式存儲(chǔ)系統(tǒng)嵌入式硬件和固化在硬件平臺(tái)中的嵌入式
    發(fā)表于 01-26 16:32 ?1220次閱讀
    淺析<b class='flag-5'>嵌入式</b><b class='flag-5'>存儲(chǔ)系統(tǒng)</b>設(shè)計(jì)方法

    淺論嵌入式系統(tǒng)離線測(cè)試

    隨著嵌入式系統(tǒng)的發(fā)展,迫切需要在嵌入式系統(tǒng)開發(fā)階段對(duì)嵌入式系統(tǒng)進(jìn)行離線
    發(fā)表于 09-26 14:59 ?993次閱讀

    嵌入式中如何給內(nèi)存做壓力測(cè)試?

    大家好,我是痞子衡,是正經(jīng)搞技術(shù)的痞子。今天痞子衡給大家介紹的是內(nèi)存讀寫正確性壓力測(cè)試程序memtester。 在嵌入式系統(tǒng)中,內(nèi)存(RAM
    的頭像 發(fā)表于 04-04 18:20 ?3550次閱讀
    <b class='flag-5'>嵌入式</b>中如何給內(nèi)存做<b class='flag-5'>壓力</b><b class='flag-5'>測(cè)試</b>?

    嵌入式測(cè)試

    一、嵌入式軟件測(cè)試的方法  嵌入式軟件測(cè)試分為4個(gè)階段,即模塊測(cè)試、集成測(cè)試、
    發(fā)表于 10-19 18:32 ?18次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>測(cè)試</b>

    嵌入式系統(tǒng)測(cè)試2

    嵌入式系統(tǒng)測(cè)試21.導(dǎo)彈控制屬于嵌入式系統(tǒng)在()方面的應(yīng)用。正確答案: D. 軍用2.下列()
    發(fā)表于 10-19 18:33 ?10次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>系統(tǒng)</b><b class='flag-5'>測(cè)試</b>2

    嵌入式軟件接口怎么測(cè)試,嵌入式系統(tǒng)接口測(cè)試策略.doc

    嵌入式系統(tǒng)接口測(cè)試策略嵌入式系統(tǒng)接口測(cè)試策略摘要:在日益廣泛應(yīng)用的
    發(fā)表于 10-20 19:06 ?16次下載
    <b class='flag-5'>嵌入式</b>軟件接口怎么<b class='flag-5'>測(cè)試</b>,<b class='flag-5'>嵌入式</b><b class='flag-5'>系統(tǒng)</b>接口<b class='flag-5'>測(cè)試</b>策略.doc
    主站蜘蛛池模板: 毛片手机在线 | 精品国产手机视频在在线 | 久久午夜夜伦鲁鲁片无码免费 | 91交换论坛 | 视频网站入口在线看 | 日本亚洲精品色婷婷在线影院 | 国产69精品久久久久乱码韩国 | 久久久精品国产免费A片胖妇女 | 久久久擼擼擼麻豆 | 欧美日韩视频一区二区三区 | 伊人国产视频 | 荡乳乱公小说 | 啊好大好厉害好爽真骚 | 亚洲精品国产品国语在线试看 | 999久久国产精品免费人妻 | 中文字幕人成人乱码亚洲AV | 欧美日韩看看2015永久免费 | 久久综合给会久久狠狠狠 | 十分钟免费视频大全在线 | 亚洲AV无码一区二区三区牛牛 | 妻子的妹妹在线 | 年轻的搜子8中字在线观看 年轻的朋友4在线看中文字幕 | 一进一出抽搐gif免费60秒 | 亚洲成人欧美 | 国产高清在线a视频大全 | 麻豆E奶女教师国产精品 | 亚洲午夜一区二区电影院 | 色吧最新网址 | 亚洲第一成年网站视频 | 中文字幕在线视频在线看 | 色拍拍噜噜噜久久蜜桃 | 国产精品久久高潮呻吟无码 | 亚洲欧美日韩精品自拍 | 亚洲毛片网 | 777久久人妻少妇嫩草AV | 国产-第1页-浮力影院 | 好男人视频免费高清在线观看www | 国产精品欧美一区二区在线看 | 日韩精品无码免费专区 | 国产精品美女久久久网站动漫 | 玖玖热视频一区二区人妻 |

    電子發(fā)燒友

    中國(guó)電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會(huì)員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動(dòng)獲取豐厚的禮品