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

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

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

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

RA系列MCU自檢代碼使用介紹

RA生態(tài)工作室 ? 2024-11-16 01:02 ? 次閱讀
wKgaomc6sIKACSq7AAETaiBuPXY834.png

本文以RA6 MCU為例,介紹如何使用自診斷軟件對MCU進(jìn)行自檢。

1 使用的環(huán)境

wKgZomc6sbqAA60mAABneYOCJSw495.png

2 自檢軟件介紹

瑞薩提供了針對RA系列MCU的診斷軟件,涵蓋了對MCU的CPU core,ROMRAM的永久性故障診斷,CPU的斬斷覆蓋率達(dá)90%,RAM的診斷覆蓋率達(dá)90%,ROM的診斷覆蓋率達(dá)99%,滿足SIL3的認(rèn)證要求。本文檔使用的自檢軟件包RTK0EF0090F60001SJ_Ver.1.01適用于cortex M4架構(gòu)的RA6系列MCU。

2.1CPU診斷軟件

CPU診斷軟件通過采用主要基于指令的診斷方法來驗證 CPU的正確功能,從而檢測CPU內(nèi)核的永久性硬件故障。針對處理器內(nèi)核,有20項的測試內(nèi)容。

wKgaomc6sbqAd2QnAATl-x7fIrg107.png

2.2CPU診斷軟件API

void coreTest(uint8_t steps, const uint8_t forceFail, uint32_t *result),通過設(shè)置參數(shù)forceFail,可以實現(xiàn)故障注入從而返回錯誤。

wKgZomc6sbqAA8GqAAKMsAu3xho785.png

2.3RAM診斷軟件

RAM診斷軟件是檢測MCU RAM內(nèi)存,將要檢測的內(nèi)存大小MUTSize分成numberOfBUT塊,那么每塊內(nèi)存大小就是MUTSize/numberOfBUT.調(diào)用RAM診斷API對每塊內(nèi)存進(jìn)行檢測,返回兩個結(jié)果resultTestRam1和resultTestRam2,如果都為1,則表示檢測通過,否則檢測失敗。

wKgaomc6sbqAUWvvAAD3VWRFrYs299.png

2.4RAM診斷軟件API

void testRAM(unsigned int index, unsigned int selectAlgorithm, unsigned int destructive),參數(shù) selectAlgorithm是設(shè)置RAM自檢算法,支持Extended March C-和WALPAT兩種算法,參數(shù)destructive是設(shè)置RAM自檢模式,0表示非破壞性模式,需要使用新buffer保存被檢RAM區(qū)的數(shù)據(jù)做備份,1表示po破壞性檢測,該模式會模式會清楚RAM區(qū)數(shù)據(jù)初始化為0。

wKgZomc6sbuATNbZAAHuM_-Bzpg742.png

2.5ROM診斷軟件

RAM診斷軟件是檢測MCU ROM,通過選定ROM起始地址和終止地址來確認(rèn)檢測的內(nèi)存塊范圍,調(diào)用ROM診斷軟件API對ROM內(nèi)存塊進(jìn)行相應(yīng)CRC計算,返回值與參考checksum(由IAR鏈接器預(yù)先計算產(chǎn)生)進(jìn)行比較,如果不一致,則表示有錯誤。

2.5ROM診斷軟件

RAM診斷軟件是檢測MCU ROM,通過選定ROM起始地址和終止地址來確認(rèn)檢測的內(nèi)存塊范圍,調(diào)用ROM診斷軟件API對ROM內(nèi)存塊進(jìn)行相應(yīng)CRC計算,返回值與參考checksum(由IAR鏈接器預(yù)先計算產(chǎn)生)進(jìn)行比較,如果不一致,則表示有錯誤。

2.6ROM診斷軟件API

void crcHwSetup(unsigned int crc)

uint16_t crcComputation(unsigned int checksumBegin,unsigned int checksumEnd,unsigned int incrMode)

wKgaomc6sbuAcaDJAAI4fniIFRE710.png

以上是診斷軟件的介紹,詳細(xì)的細(xì)節(jié)可以查閱診斷軟件的用戶手冊。

3 RA6開發(fā)板測試

3.1 使用RASC創(chuàng)建基于IAR的FSP工程,點擊Generate Project Content生成代碼。

wKgZomc6scWABwuBAAColECAOHo758.pngwKgaomc6scaAYoRPAAElTsjRx-w894.png

3.2 打開新創(chuàng)建的IAR工程,從RTK0EF0090F60001SJ_Ver.1.01代碼包中,拷貝自檢代碼添加到工程中src目錄下。

wKgZomc6scWADaioAAC_GoPGJGU119.png

3.3工程設(shè)置

C/C++ Compiler->Preprocessor添加對應(yīng)文件路徑

wKgaomc6scaAXLGtAAF9CqSMYo0720.png

Assembler->Preprocessor添加對應(yīng)文件路徑

wKgaomc6scaABAluAAF-FGJy-3g853.png

3.4應(yīng)用功能實現(xiàn)

編輯hal_entry.c文件,實現(xiàn)對CPU,RAM,ROM每隔0.5秒的循環(huán)檢測,同時EK-RA6M4按下S1按鈕,故障輸入,從而實現(xiàn)CPU錯誤檢測,紅色led燈閃爍,參考ek_ra6m4_selftest樣例程序。

wKgZomc6scaAVPTwAABkpYkohuE491.png

1.主函數(shù)入口代碼: void hal_entry(void) { /* TODO: add your own code here */ uint32_t ver; uint8_t cnt = 0;

ver = R_CPU_Diag_GetVersion(); // printf("CPU diag software version = %d.%02d\n",ver >>16u,ver & 0xFFFF);

ver = R_RAM_Diag_GetVersion(); // printf("RAM diag software version = %d.%02d\n",ver >>16u,ver & 0xFFFF);

ver = R_ROM_Diag_GetVersion(); // printf("ROM diag software version = %d.%02d\n",ver >>16u,ver & 0xFFFF); /* Setup Registers */ setup_diag(); /* Holds level to set for pins */ bsp_io_level_t pin_level = BSP_IO_LEVEL_LOW;

while(1) { int32_t result = 0; cnt = cnt % 3; /* Blue LED blinks */ led_change(0, pin_level);

/* Diagnostic */ switch (cnt) { case 0: result = cpu_test_sample(); break; case 1: result = ram_test_sample(); break; case 2: result = rom_test_sample(); break; } cnt++;

if (0 == result)

{ /* Red LED lights off */ led_change(2, BSP_IO_LEVEL_LOW); }else{ /* Red LED lights up */ led_change(2, BSP_IO_LEVEL_HIGH); } /* Toggle level for next write */ if (BSP_IO_LEVEL_LOW == pin_level)

{ pin_level = BSP_IO_LEVEL_HIGH; } else { pin_level = BSP_IO_LEVEL_LOW; } /* Delay (500ms) */ R_BSP_SoftwareDelay(500, BSP_DELAY_UNITS_MILLISECONDS); } #if BSP_TZ_SECURE_BUILD /* Enter non-secure code */ R_BSP_NonSecureEnter(); #endif }

2. cpu_test_sample()函數(shù)實現(xiàn)了CPU TEST代碼:

/*********************************************************************************************************************** * CPU TEST **********************************************************************************************************************

/ int32_t cpu_test_sample(void) { uint32_t forceFail = 1; /* Force fail:Disable */ int32_t result; uint32_t index; /* Check SW 'S1' */ if (R_PFS->PORT[0].PIN[5].PmnPFS_b.PIDR == 0) { forceFail = 0; asm("NOP"); } else{ asm("NOP"); } for (index = 0; index <= CPU_DIAG_MAX_INDEX; index++) { result = 0; R_CPU_Diag(index, forceFail, &result); if (result != 1) { return -1; } } return 0; }?

3. ram_test_sample()函數(shù)實現(xiàn)了RAM TEST代碼: /*********************************************************************************************************************** * RAM TEST **********************************************************************************************************************/ #include "r_ram_diag.h" int32_t ram_test_sample(void) { uint32_t area = 0; uint32_t index; uint32_t algorithm = RAM_ALG_MARCHC; uint32_t destructive; for (index = 0; index < numberOfBUT0; index++) { if (index == 0) { /* Buffer block */ destructive = RAM_MEM_DT; } else { destructive = RAM_MEM_NDT; } /* Call API */ R_RAM_Diag(area, index, algorithm, destructive); /* Check API result */ if ( (RramResult1 != 1) || (RramResult2 != 1) ) { return -1; } } return 0; }?

4.rom_test_sample()函數(shù)實現(xiàn)了ROM TEST代碼: /*********************************************************************************************************************** * ROM TEST **********************************************************************************************************************/ #define NUM_OB_ROM_BLOCK (2) #define CHECKSUM_BLOCK_ADDRESS (0x00003000) /* Area where the expected CRC checksum values of each ROM block are aggregated. */ __root const uint16_t expChecksum[NUM_OB_ROM_BLOCK] @ CHECKSUM_BLOCK_ADDRESS; int32_t rom_test_sample(void) { uint32_t start;

uint32_t end; uint32_t mode; uint16_t calChecksum; /* ROM Test: Block0 (4KB) */ start = 0x00001000; end = 0x00001FFF; mode = 0; calChecksum = R_ROM_Diag(start, end, mode); if (calChecksum != expChecksum[0])

{ return -1; } /* ROM Test: Block1 (4KB, 4time-wise split) */ /* Block1, Group1 (1KB) */ start = 0x00002000; end = 0x000023FF;

mode = 0; calChecksum = R_ROM_Diag(start, end, mode); /* Block1, Group2 (1KB) */ start = 0x00002400; end = 0x000027FF; mode = 1;

calChecksum = R_ROM_Diag(start, end, mode); /* Block1, Group3 (1KB) */ start = 0x00002800; end = 0x00002BFF;

calChecksum = R_ROM_Diag(start, end, mode); /* Block1, Group4 (1KB) */ start = 0x00002C00; end = 0x00002FFF; calChecksum = R_ROM_Diag(start, end, mode); if (calChecksum != expChecksum[1]) { return -1; } return 0; }

如您在使用瑞薩MCU/MPU產(chǎn)品中有任何問題,可識別下方二維碼或復(fù)制網(wǎng)址到瀏覽器中打開,進(jìn)入瑞薩技術(shù)論壇尋找答案或獲取在線技術(shù)支持。

https://community-ja.renesas.com/zh/forums-groups/mcu-mpu/

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

    關(guān)注

    146

    文章

    17123

    瀏覽量

    350976
  • RAM
    RAM
    +關(guān)注

    關(guān)注

    8

    文章

    1368

    瀏覽量

    114640
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4779

    瀏覽量

    68521
收藏 人收藏

    評論

    相關(guān)推薦

    瑞薩RA8系列高性能MCU開發(fā)上手體驗

    大家好,我是痞子衡,是正經(jīng)搞技術(shù)的痞子。今天痞子衡給大家介紹的是瑞薩RA8系列高性能MCU開發(fā)上手體驗。
    的頭像 發(fā)表于 08-08 15:21 ?1430次閱讀
    瑞薩<b class='flag-5'>RA</b>8<b class='flag-5'>系列</b>高性能<b class='flag-5'>MCU</b>開發(fā)上手體驗

    構(gòu)建RA MCU生態(tài)圈!RA MCU 生態(tài)1.0發(fā)布

    瑞薩電子聯(lián)合深圳欣瑞利科技發(fā)起的RA生態(tài)工作室共同舉辦了RA MCU 生態(tài)1.0發(fā)布會。在發(fā)布會上,RA生態(tài)工作室正式發(fā)布了基于采用 Arm Cortex-M 內(nèi)核的
    的頭像 發(fā)表于 10-21 10:17 ?3256次閱讀

    關(guān)于Renesas 32位RA系列MCU簡介資料!

    瑞薩電子RA系列是基于Arm?Cortex?-M核心架構(gòu)構(gòu)建的新的32位MCU系列,瑞薩電子RA系列
    發(fā)表于 09-02 10:59

    康柏BIOS的自檢報警音代碼含義

    康柏BIOS的自檢報警音代碼含義
    發(fā)表于 08-30 09:35 ?21次下載

    RA MCU快速設(shè)計指南

    RA MCU快速設(shè)計指南
    發(fā)表于 11-07 19:50 ?0次下載
    <b class='flag-5'>RA</b> <b class='flag-5'>MCU</b>快速設(shè)計指南

    瑞薩RA系列MCU選型指南

    RA系列MCU產(chǎn)品基于Arm Cortex-M內(nèi)核,與瑞薩自有內(nèi)核RL78和RX系列一起,成為瑞薩MCU產(chǎn)品線齊頭并進(jìn)的三駕馬車。
    發(fā)表于 11-08 13:51 ?2298次閱讀

    RA2系列MCU IIC通信速率分析

    一、RA系列MCU簡介 RA(Renesas Advanced)系列MCU是瑞薩于2019年10
    的頭像 發(fā)表于 11-11 12:15 ?3124次閱讀

    RA CLASS B認(rèn)證函數(shù)庫使用簡介

    介紹 RA系列單片機(jī)是瑞薩推出的32位ARM單片機(jī),在某些產(chǎn)品中需要通過安規(guī)認(rèn)證,如IEC60730(CLASS B),芯片硬件本身已經(jīng)通過IEC60730認(rèn)證了,今天主要說RA芯片軟
    的頭像 發(fā)表于 01-18 12:25 ?1695次閱讀

    RA MCU CAN和CANFD IP介紹

    瑞薩RA MCU(Renesas RA Microcontroller Unit)是一種高性能且多功能的微控制器單元,由瑞薩電子公司推出。它是基于ARM Cortex-M內(nèi)核的先進(jìn)微控制器系列
    的頭像 發(fā)表于 07-28 12:15 ?1420次閱讀
    <b class='flag-5'>RA</b> <b class='flag-5'>MCU</b> CAN和CANFD IP<b class='flag-5'>介紹</b>

    RA MCU CANFD在FSP中的配置詳解

    在瑞薩RA系列MCU產(chǎn)品中,目前RA4E2、RA4T1、RA6E2、
    的頭像 發(fā)表于 10-20 14:46 ?1332次閱讀
    <b class='flag-5'>RA</b> <b class='flag-5'>MCU</b> CANFD在FSP中的配置詳解

    RA MCU CAN和CANFD IP介紹

    瑞薩RA MCU(Renesas RA Microcontroller Unit)是一種高性能且多功能的微控制器單元,由瑞薩電子公司推出。它是基于ARM Cortex-M內(nèi)核的先進(jìn)微控制器系列
    的頭像 發(fā)表于 12-26 08:06 ?651次閱讀
    <b class='flag-5'>RA</b> <b class='flag-5'>MCU</b> CAN和CANFD IP<b class='flag-5'>介紹</b>

    32位MCU系列RA6E2入口線微控制器介紹

    電子發(fā)燒友網(wǎng)站提供《32位MCU系列RA6E2入口線微控制器介紹.pdf》資料免費下載
    發(fā)表于 02-21 10:25 ?0次下載
    32位<b class='flag-5'>MCU</b><b class='flag-5'>系列</b><b class='flag-5'>RA</b>6E2入口線微控制器<b class='flag-5'>介紹</b>

    瑞薩電子RA家族推出RA8系列高算力通用MCU

    瑞薩電子RA家族推出RA8系列高算力通用MCU,是業(yè)界首款基于Arm? Cortex?-M85(CM85)內(nèi)核的32位MCU,主頻高達(dá)480
    的頭像 發(fā)表于 04-02 14:14 ?1424次閱讀
    瑞薩電子<b class='flag-5'>RA</b>家族推出<b class='flag-5'>RA</b>8<b class='flag-5'>系列</b>高算力通用<b class='flag-5'>MCU</b>

    瑞薩RA MCU家族推出集成Arm? Cortex?-M23內(nèi)核的全新RA0系列

    瑞薩RA MCU家族推出全新的RA0系列RA0E1產(chǎn)品組是入門級簡易MCU,具有出色的成本效益
    的頭像 發(fā)表于 04-10 14:32 ?1276次閱讀
    瑞薩<b class='flag-5'>RA</b> <b class='flag-5'>MCU</b>家族推出集成Arm? Cortex?-M23內(nèi)核的全新<b class='flag-5'>RA</b>0<b class='flag-5'>系列</b>

    RA系列MCU Self-Test軟件包介紹

    下面介紹一下瑞薩自檢軟件套件。該軟件包包括RA系列MCU診斷軟件、安全手冊、用戶指南和功能安全證書。RA
    的頭像 發(fā)表于 07-15 09:38 ?581次閱讀
    <b class='flag-5'>RA</b><b class='flag-5'>系列</b><b class='flag-5'>MCU</b> Self-Test軟件包<b class='flag-5'>介紹</b>
    主站蜘蛛池模板: 在线免费中文字幕| 亚洲高清无在码在线无弹窗| 欧美亚洲国产免费高清视频| 男人吃奶摸下挵进去啪啪| 男男高h浪荡受h| 青青草色青伊人| 色狗综合网| 亚洲精品97福利在线| 国产精品一区二区AV97| jk制服喷水| 制服丝袜第一页| 99国产亚洲精品无码成人| ewp系列虐杀在线视频| 国产1广场舞丰满老女偷| 国模玲玲自拍337p| 久久精品日本免费线| 欧美高清vivoesosexo10| 秋霞鲁丝片Av无码| 亚洲 欧美 国产在线视频| 亚洲区 bt下载| 99在线免费视频| 中文字幕午夜福利片| 99re在线播放| 国产成人在线视频播放| 狠狠鲁快播| 免费夜里18款禁用软粉色| 色青青草原桃花久久综合| 亚洲AV久久无码高潮喷水| 51xx午夜影视福利| 刮伦人妇A极一片| 久久精品手机观看| 日韩亚洲欧美中文在线| 夜夜澡人人爽人人喊_欧美| 野花香在线观看免费观看大全动漫| 97视频国产| 国产嫩草影院精品免费网址| 啦啦啦WWW在线观看免费高清版 | 色网址在线观看| 亚洲性无码av在线| 中文字幕国产视频| 国产成人精品自拍|