This repository has been archived on 2023-07-17. You can view files and clone it, but cannot push or open issues or pull requests.
bl_mcu_sdk/examples/peripherals/psram/main.c
2022-12-21 20:25:59 +08:00

85 lines
1.9 KiB
C

#include "bflb_core.h"
#include "board.h"
void test32(void)
{
uint32_t i, val;
printf("============= check uint32_t ==============\r\n");
for (i = 0; i < 256; i += 4) {
*((volatile uint32_t *)(BFLB_PSRAM_BASE + i)) = i / 4;
}
for (i = 0; i < 256; i += 4) {
val = *((volatile uint32_t *)(BFLB_PSRAM_BASE + i));
printf("addr = 0x%08X, val = 0x%08X\r\n", (BFLB_PSRAM_BASE + i), *((volatile uint32_t *)(BFLB_PSRAM_BASE + i)));
if (i / 4 != val) {
printf("psram check fail\r\n");
while (1) {
}
}
}
}
void test16(void)
{
uint32_t i, val;
printf("============= check uint16_t ==============\r\n");
for (i = 0; i < 256; i += 2) {
*((volatile uint16_t *)(BFLB_PSRAM_BASE + i)) = i / 2;
}
for (i = 0; i < 256; i += 2) {
val = *((volatile uint16_t *)(BFLB_PSRAM_BASE + i));
printf("addr = 0x%08X, val = 0x%08X\r\n", (BFLB_PSRAM_BASE + i), *((volatile uint16_t *)(BFLB_PSRAM_BASE + i)));
if (i / 2 != val) {
printf("psram check fail\r\n");
while (1) {
}
}
}
}
void test8(void)
{
uint32_t i;
uint8_t val;
printf("============= check uint8_t ==============\r\n");
for (i = 0; i < 256; i++) {
*((volatile uint8_t *)(BFLB_PSRAM_BASE + i)) = i;
}
for (i = 0; i < 256; i++) {
val = *((volatile uint8_t *)(BFLB_PSRAM_BASE + i));
printf("addr = 0x%08X, val = 0x%08X\r\n", (BFLB_PSRAM_BASE + i), *((volatile uint8_t *)(BFLB_PSRAM_BASE + i)));
if ((uint8_t)i != val) {
printf("psram check fail\r\n");
while (1) {
}
}
}
}
int main(void)
{
board_init();
printf(" psram read write test \r\n");
test8();
test16();
test32();
printf(" test success\r\n");
while (1) {
}
}