misyachniy (04.01.2018 20:31, просмотров: 184) ответил michas на Посмотрел, по этому стандарту, указал регистры по нему, один фиг компилятор раскидал переменные как попало. Ладно, не стал прямо назначать регистры:
Интересно зачем тестировать побайтно, если процессор 32 разрядный? Кроме того такой тест не выловит обрыв/закоротку адресных линий.
if ((*(__IO uint8_t*)addres_ram) != 0x56) - явно нужно 0x55 а не 0x56
Комбинацию 55/АА применяют для проверки нагрузочной способности памяти, качества питания.
При такой смене данных токи по шинам данных и питанию максимальны.
Если нужно вылавливать сложные ошибки, то обычно применяю CRC-32.
В начале из конкретного числа генериться CRC-32.
Этим CRC заполняют первую ячейку, затем с первого CRC генерится второе и во вторую ячейку.
Таким образом память заполняется заведомо разными числами.
Для проверки при считывании не нужно держать проверочные числа, их генерят так же как и при записи.