Описание библиотеки микросхемы 5023ВС016 процессора "Спутник"
flash_test.c
См. документацию.
1 
29 #include <stdlib.h>
30 
31 #include "flash_test.h"
32 #include "mem_test.h"
33 #include "flash.h"
34 
35 
36 #define FLASHBUFFSIZE 256
37 
38 /* Функция для переключения флеш-памяти в режим чтения */
40 {
41  FLASH_PROG_REG0 = 0xAAAA;
42  FLASH_PROG_REG1 = 0x5555;
43  FLASH_PROG_REG0 = 0xF0F0;
44 }
45 
46 /* Функция очистки флеш-памяти. После стирания читается 0xFFFF */
47 void FLASH_EraseChip(void)
48 {
49  FLASH_PROG_REG0 = 0xAAAA;
50  FLASH_PROG_REG1 = 0x5555;
51  FLASH_PROG_REG0 = 0x8080;
52  FLASH_PROG_REG0 = 0xAAAA;
53  FLASH_PROG_REG1 = 0x5555;
54  FLASH_PROG_REG0 = 0x1010;
55 }
56 
57 /* Функция записи 16-битного слова во флеш-память флеш-памяти. */
58 void FLASH_Write16Bits(uint16_t addr, uint16_t data)
59 {
60  FLASH_PROG_REG0 = 0xAAAA;
61  FLASH_PROG_REG1 = 0x5555;
62  FLASH_PROG_REG0 = 0xA0A0;
63  *(volatile uint16_t *)(addr)= data;
64 }
65 
66 
67 /* Функция записи файла конфигурации памяти программ процессора(прошивки) */
68 void FLASH_WriteFirmware(uint8_t *firmware_data, uint16_t byte_size)
69 {
71  for(uint16_t i = 0; i <= byte_size; i+=2) {
72  FLASH_Write16Bits(i, *((uint16_t *)(firmware_data+i)));
73  }
74 }
75 
76 
77 uint8_t Flash_Test(void)
78 {
79  uint8_t result = 0;
80  uint32_t Man, Dev;
81  uint8_t* srcbuff;
82 
83  PRINTSTREAM("\n");
84  PRINT("Тестирование Flash");
85 
86  FLASH_AutoSelectMode(&Man, &Dev);
88 
89  if ((Man !=0x0) || (Dev != 0xD7D7))
90  {
91  result = 1;
92 
93  PRINT("Ошибка в работе теста Flash");
94  return result=1;
95  }
96 
98 
99  result=TestPage();
100 
101  PRINT("Постраничное тестирование завершено");
102 
104 
105  if (!result)
106  {
107  PRINT("Тест Flash авершен успешно!");
108  }
109  else
110  {
111  PRINT("Тест Flash авершен с ошибками!");
112  }
113  return result;
114 }
#define PRINT(...)
Макросы для использования отладочного выхода
Definition: debug_uart.h:48
int TestPage()
Тестирование модуля памяти
Definition: mem_test.c:76
void FLASH_ReadResetMode(void)
Definition: flash.c:56
#define PRINTSTREAM(...)
Печать в СОМ порт
Definition: debug_uart.h:49
void FLASH_WriteFirmware(uint8_t *firmware_data, uint16_t byte_size)
Функция записи файла конфигурации памяти программ процессора(прошивки)
Definition: flash_test.c:68
void FLASH_EraseChip(void)
Функция очистки флеш-памяти. После стирания читается 0xFFFF.
Definition: flash_test.c:47
#define FLASH_PROG_REG1
Definition: flash.h:36
Этот файл содержит тестовую программу для аппаратного модуля памяти.
void FLASH_SetReadMode(void)
Функция для переключения флеш-памяти в режим чтения
Definition: flash_test.c:39
uint8_t Flash_Test(void)
Definition: flash_test.c:77
void FLASH_Write16Bits(uint16_t addr, uint16_t data)
Функция записи массива данных во флеш память по указанному адресу
Definition: flash_test.c:58
void FLASH_AutoSelectMode(uint32_t *ManufacturerCode, uint32_t *DeviceCode)
Definition: flash.c:64
Этот файл содержит структуры, макросы и функции необходимые для взаимодействия с микросхемой параллел...
uint8_t FLASH_ChipErase(void)
Definition: flash.c:111
#define FLASH_PROG_REG0
Definition: flash.h:35
Этот файл содержит структуры, макросы и функции необходимые необходимые для взаимодействия с микросхе...