Описание библиотеки микросхемы 5023ВС016 процессора "Спутник"
mem_test.c
См. документацию.
1 
30 #include "mem_test.h"
31 #include "flash_test.h"
32 uint8_t* reg = (uint8_t*)0x20004; // егистр для переключения страниц
33 uint32_t err_numbers[31];
34 uint32_t a;
35 uint32_t val=0;
36 void Memtest_Addr( unsigned int mask)
37 {
38  unsigned int addr;
39  unsigned int errors = 0;
40  volatile uint32_t i=0;
41  *reg = mask; // Переключили страницу
42  for (addr =0x10000; addr < 0x20000; addr += 4)
43  {
44 
45  val=0xffffffff-i+mask*0x11111111;
46  FLASH_Write(addr, (uint8_t*)&val, 4);
47  //for(int l =0;l<10000;l++);
48  //FLASH_BypassWrite(addr+2,&(((uint8_t*)&val)[2]), 2);
49  i+=1;
50 
51  } // Записали Pagei
52 
53  uint32_t j=0;
54  for (addr = 0x10000; addr < 0x20000; addr += 4) // Считываем страницу
55  {
56  a = *(uint32_t*)addr;
57  val=0xffffffff-j+mask*0x11111111;
58 
59  if (a!=val)
60  {
61  PRINT("Address (0x%x) read: 0x%x wr:0x%x",addr,*(unsigned int*)addr,val);
62  errors++;
63  }
64  j+=1;
65 
66  }
67  if (errors>0)
68  {
69  err_numbers[mask] = errors;
70  }
71  else
72  {
73  err_numbers[mask] = 0;
74  }
75 }
76 int TestPage()
77 {
78  PRINT("Тестирование counter");
79  DBG_TX_Flush(); // Отправка всех данных по UART
80  uint32_t cnt_error=0;
81  for (int i=0;i<=15;i++)
82  {
83  PRINT("Тестирование страницы %d",i);
84 
85  Memtest_Addr(i); // Запись счетчиком
86  }
87 
88 
89  for (int i=0;i<=15;i++)
90  {
91  cnt_error+=err_numbers[i];
92  }
93 
94  return cnt_error;
95 }
96 
97 
98 
#define PRINT(...)
Макросы для использования отладочного выхода
Definition: debug_uart.h:48
int TestPage()
Тестирование модуля памяти
Definition: mem_test.c:76
void FLASH_Write(uint32_t base_addr, uint8_t *data_ptr, uint16_t data_count)
Функция записи файла конфигурации памяти программ процессора(прошивки)
Definition: flash.c:153
uint32_t err_numbers[31]
Definition: mem_test.c:33
uint8_t * reg
Definition: mem_test.c:32
Этот файл содержит тестовую программу для аппаратного модуля памяти.
uint32_t val
Definition: mem_test.c:35
uint32_t a
Definition: mem_test.c:34
void Memtest_Addr(unsigned int mask)
Definition: mem_test.c:36
void DBG_TX_Flush(void)
Вывод всех данных, накопленных в кольцевом буфере, в отладочный UART.
Definition: debug_uart.c:80
Этот файл содержит структуры, макросы и функции необходимые необходимые для взаимодействия с микросхе...