Использование флэш-памяти микроконтроллера PIC18F K40 в качестве хранилища - PullRequest
1 голос
/ 05 июня 2019

Я использую микроконтроллер PIC18F67K40 в своем проекте.Он имеет 1 КБ памяти EEPROM и 128 КБ памяти программ (флэш-память).

Сейчас я использую EEPROM для хранения своих настроек.

Приложение «растет», и я понял, что в какой-то момент 1 кБ будет недостаточно.Некоторые настройки представляют собой массивы довольно больших структур.Я понимаю, что флэш-память имеет 100k 10k циклов записи и что я могу купить внешнюю EEPROM, но я не хочу ничего менять в аппаратном обеспечении, и память в этом продукте никогда не достигнет 2k операций записи наверняка.

Мой вопрос:

Как перейти с хранилища EEPROM на флэш-память?

  1. Нужно ли пересчитывать CRC после программы?изменения памяти?
  2. Нужно ли где-то указывать в настройках проекта, что я использую флэш-память для хранения?
  3. Что мне нужно сделать, чтобы использовать флэш-память?как это?

Ответы [ 2 ]

2 голосов
/ 06 июня 2019

100 тыс. Записей - это только выносливость данных EEPROM, а не флэш-памяти (только 10 тыс. Записей).Вы могли бы увеличить выносливость с эмуляцией EEPROM.Существует очень хорошая библиотека от Microchip для эмуляции EEPROM во флэш-памяти.
Посмотрите здесь: Эмуляция EEPROM

0 голосов
/ 18 июня 2019

Я сделал это для клиента пару лет назад.Я не могу опубликовать код по причинам NDA и авторских прав, но основной трюк заключался в том, чтобы использовать что-то под названием RTSP (Run Time Self Programming).RTSP может устареть, но все, что заменяет его, может работать аналогичным образом.

По сути, флэш-память выглядит как серия страниц, на которых можно записать слово за раз, но стереть страницу за раз.Что вам нужно сделать, это написать код, который может разблокировать и стереть страницу, а затем написать на нее.После того, как вы сделали это, страницу можно прочитать как обычную память.

Вам не нужно менять настройки.Однако убедитесь, что на используемой странице нет кода программы.

Если вы хотите получить CRC (обычно хороший ход), вам придется рассчитать его самостоятельно.

...