📄 kram_sized_access.c
字号:
// +FHDR------------------------------------------------------------------------// Copyright (c) 2005, Freescale.// Freescale Confidential Proprietary// -----------------------------------------------------------------------------// FILE NAME : kram_sized_access// DEPARTMENT : TECD IC Creation, MCU Division, TSPG, Freescale// AUTHOR : Alan Carlin// AUTHOR'S EMAIL : alan.carlin@motorola.com// -----------------------------------------------------------------------------// REVIEW(S) : // -----------------------------------------------------------------------------// RELEASE HISTORY// VERSION DATE AUTHOR DESCRIPTION// 1.0 1 MAR 2005 Alan Carlin added/completed header// -----------------------------------------------------------------------------// KEYWORDS: KRAM Frontdoor// -----------------------------------------------------------------------------// PURPOSE: write/read kram to make sure it is there and working// -----------------------------------------------------------------------------// PARAMETERS:// PARAM NAME : RANGE : DESCRIPTION : DEFAULT : UNITS// -----------------------------------------------------------------------------// REUSE ISSUES:// External Pins Required :// Monitors Required :// Drivers Required :// Local Functions :// Include Files :// Other :// -----------------------------------------------------------------------------// FEATURES TESTED:// KRAM works, and byte strobes / byte lanes are correct with Frontdoor enabled// -----------------------------------------------------------------------------// DETAILED TEST DESCRIPTION:// Perform a bunch of 8/16/32/128-bit accesses to the first, middle, and last// words of KRAM// -FHDR------------------------------------------------------------------------//using tWord - uint32#include "util.h"#include "mem_map.h"#include "burst.h"#include "dma.h"#include "jamaica_tests.h"void sized_access(uint32 addr){ WR32(addr+0, 0x89abcdef); RE16(addr+0, 0x89ab); RE16(addr+2, 0xcdef); RE8 (addr+0, 0x89); RE8 (addr+1, 0xab); RE8 (addr+2, 0xcd); RE8 (addr+3, 0xef); WR16(addr+0, 0x0123); WR16(addr+2, 0x4567); RE32(addr+0, 0x01234567); RE8 (addr+0, 0x01); RE8 (addr+1, 0x23); RE8 (addr+2, 0x45); RE8 (addr+3, 0x67); WR8 (addr+0, 0xf0); WR8 (addr+1, 0xe1); WR8 (addr+2, 0xd2); WR8 (addr+3, 0xc3); RE16(addr+0, 0xf0e1); RE16(addr+2, 0xd2c3); RE32(addr+0, 0xf0e1d2c3); WR32(addr+0, 0x89abcdef); RE16(addr+0, 0x89ab); RE16(addr+2, 0xcdef); RE8 (addr+0, 0x89); RE8 (addr+1, 0xab); RE8 (addr+2, 0xcd); RE8 (addr+3, 0xef); WR16(addr+2, 0x4567); WR16(addr+0, 0x0123); RE32(addr+0, 0x01234567); RE8 (addr+0, 0x01); RE8 (addr+1, 0x23); RE8 (addr+2, 0x45); RE8 (addr+3, 0x67); WR8 (addr+3, 0xc3); WR8 (addr+2, 0xd2); WR8 (addr+1, 0xe1); WR8 (addr+0, 0xf0); RE16(addr+0, 0xf0e1); RE16(addr+2, 0xd2c3); RE32(addr+0, 0xf0e1d2c3); BURST_WR32(addr, 0x00112233, 0x44556677, 0x8899aabb, 0xccddeeff); RE32(addr+0x0, 0x00112233); RE32(addr+0x4, 0x44556677); RE32(addr+0x8, 0x8899aabb); RE32(addr+0xc, 0xccddeeff); RE16(addr+0x0, 0x0011); RE16(addr+0x2, 0x2233); RE16(addr+0x4, 0x4455); RE16(addr+0x6, 0x6677); RE16(addr+0x8, 0x8899); RE16(addr+0xa, 0xaabb); RE16(addr+0xc, 0xccdd); RE16(addr+0xe, 0xeeff); RE8 (addr+0x0, 0x00); RE8 (addr+0x1, 0x11); RE8 (addr+0x2, 0x22); RE8 (addr+0x3, 0x33); RE8 (addr+0x4, 0x44); RE8 (addr+0x5, 0x55); RE8 (addr+0x6, 0x66); RE8 (addr+0x7, 0x77); RE8 (addr+0x8, 0x88); RE8 (addr+0x9, 0x99); RE8 (addr+0xa, 0xaa); RE8 (addr+0xb, 0xbb); RE8 (addr+0xc, 0xcc); RE8 (addr+0xd, 0xdd); RE8 (addr+0xe, 0xee); RE8 (addr+0xf, 0xff);}int kram_sized_access(void){ char *stimname = "kram_sized_access"; printf("kram_sized_accesss Sized Access KRAM base\n");//INFO(stimname, "Sized Access KRAM base"); sized_access(KRAM_BASE); printf("kram_sized_accesss Sized Access KRAM +16k-16\n");//INFO(stimname, "Sized Access KRAM +16k-16"); sized_access(KRAM_BASE + (KRAM_SIZE >> 1) - 16); printf("kram_sized_accesss Sized Access KRAM base+16k\n");//INFO(stimname, "Sized Access KRAM +16k"); sized_access(KRAM_BASE + (KRAM_SIZE >> 1)); printf("kram_sized_accesss Sized Access KRAM base+32k-16\n");//INFO(stimname, "Sized Access KRAM +32k-16"); sized_access(KRAM_BASE + KRAM_SIZE - 16); printf("kram_sized_accesss test complete\n");//INFO(stimname, "test complete"); return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -