MiklPolikov 0 5 июня, 2016 Опубликовано 5 июня, 2016 · Жалоба Ни как не могу понять, что подразумевается под страницей памяти ? Например вот эта функция у меня работает, только если считать что размер страницы 0x100 В других местах документации, где показана организация памяти, имеются в виду какие-то другие страницы, разные для разных областей. Вопрос: что на самом деле считается страницей, и где про это в явном виде написано ? Program memory page erase This operation is used to erase a page in program memory (64 words). To do so: • Unlock the FLASH_PECR register • Unlock the Program memory • Set the ERASE bit in the FLASH_PECR register • Set the PROG bit in the FLASH_PECR register to choose program page • Wait for the BSY bit to be cleared • Write 0x0000 0000 to the first word of the program page to erase Note: This function can be executed from both banks, RAM or external memory. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 5 июня, 2016 Опубликовано 5 июня, 2016 · Жалоба Например вот эта функция у меня работает, только если считать что размер страницы 0x100 Ну так вроде все сходится, нет? ...page in program memory (64 words) ...Write 0x0000 0000 to the first word of the program page to erase 64 * 4 = 256 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MiklPolikov 0 5 июня, 2016 Опубликовано 5 июня, 2016 · Жалоба Ну так вроде все сходится, нет? 64 * 4 = 256 Не сходится, потому что на каждом шаге удаляется 0x100 байт. Пишу 0x00000000 по адресу 0x08015000 , и тут же всё до 0x080150FF становится нулями. Вижу своими глазами под отладкой. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 5 июня, 2016 Опубликовано 5 июня, 2016 · Жалоба Не сходится, потому что на каждом шаге удаляется 0x100 байт. А сколько должно? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Zeal0t 0 6 июня, 2016 Опубликовано 6 июня, 2016 (изменено) · Жалоба Ни как не могу понять, что подразумевается под страницей памяти ? Например вот эта функция у меня работает, только если считать что размер страницы 0x100 В других местах документации, где показана организация памяти, имеются в виду какие-то другие страницы, разные для разных областей. Вопрос: что на самом деле считается страницей, и где про это в явном виде написано ? Насколько помню при стирании происходит стирание всего сектора в зависимости от его размера. Размеры секторов указаны в DS. p.s. Таблица "NVM module organization" в файле RM0038 Reference manual Изменено 6 июня, 2016 пользователем Zeal0t Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MiklPolikov 0 6 июня, 2016 Опубликовано 6 июня, 2016 · Жалоба А сколько должно? Спасибо. 64 слова это 0x100 байт . Я идиот. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться