78 lines
1.4 KiB
C
78 lines
1.4 KiB
C
|
/*
|
||
|
* ram_test.c
|
||
|
*
|
||
|
* Created on: Apr 21, 2017
|
||
|
* Author: toporov
|
||
|
*/
|
||
|
|
||
|
#include "main.h"
|
||
|
#include <string.h>
|
||
|
|
||
|
volatile const uint16_t RAMDat[] = /*{0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004};*/ {0xAA55, 0x55AA, 0xEE77, 0x77EE, 0xCC33, 0x33CC};
|
||
|
volatile uint16_t RAMout[19] = {0xAA55, 0x55AA, 0xAA55, 0x55AA, 0xAA55, 0x55AA,0xAA55, 0x55AA, 0xAA55, 0x55AA,
|
||
|
0xAA55, 0x55AA, 0xAA55, 0x55AA, 0xAA55, 0x55AA, 0xAA55, 0x55AA, 0xAA55};
|
||
|
volatile uint16_t RAMin[19];
|
||
|
|
||
|
|
||
|
void RAMTest(void)
|
||
|
{
|
||
|
volatile uint32_t i, j, addr;
|
||
|
uint8_t *p;
|
||
|
|
||
|
memset((( uint8_t *) (((volatile uint32_t) 0x64000000))), 0, 0x000C0000);
|
||
|
|
||
|
for(p = (uint8_t *) SRAM_ADDR_OFFSET; p < (uint8_t *)0x640C0000; )
|
||
|
{
|
||
|
memcpy((void *)p, (void *)RAMDat, sizeof(RAMDat));
|
||
|
p += sizeof(RAMDat);
|
||
|
}
|
||
|
for(p = (uint8_t *) SRAM_ADDR_OFFSET; p < (uint8_t *)0x640C0000; )
|
||
|
{
|
||
|
if(memcmp((void *)p, (void *)RAMDat, sizeof(RAMDat)) != 0)
|
||
|
while(1);
|
||
|
p += sizeof(RAMDat);
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
for(j = 0; j < 10000; j++)
|
||
|
{
|
||
|
|
||
|
i = 0; addr = 0;
|
||
|
while(i < 19)
|
||
|
{
|
||
|
if(!(i & 1))
|
||
|
addr = (addr << 1) | 0x1;
|
||
|
else
|
||
|
addr = (addr << 1);
|
||
|
|
||
|
RAM_WR32(addr) = RAMout[i];
|
||
|
i++;
|
||
|
}
|
||
|
|
||
|
|
||
|
i = 0; addr = 0;
|
||
|
while(i < 19)
|
||
|
{
|
||
|
if(!(i & 1))
|
||
|
addr = (addr << 1) | 0x1;
|
||
|
else
|
||
|
addr = (addr << 1);
|
||
|
|
||
|
RAMin[i] = RAM_RD32(addr);
|
||
|
i++;
|
||
|
}
|
||
|
|
||
|
if(memcmp((void *)RAMout, (void *)RAMin, sizeof(RAMout)) != 0)
|
||
|
while(1);
|
||
|
}
|
||
|
i = 0;
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|