|
Выбор микроконтроллера |
|
|
|
 |
Ответов
|
Jan 20 2009, 11:46
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Цитата(Visor @ Jan 19 2009, 23:57)  Что-то я не понял как это. В описании написано: копирование из RAM во flash блоками по 256 | 512 | 1024 | 4096 байт. Ткните носом пожалуйста.  Честно скажу, сам не проверял, но в User Manual на LPC213x (стр 222 из 270) написано Цитата When a sector of user’s Flash memory is erased, corresponding ECC bytes are also erased. Once an ECC byte is written, it can not be updated unless it is erased first. Therefore, for the implemented ECC mechanism to perform properly, data must be written into the Flash memory in groups of 4 bytes (or multiples of 4), aligned as described above. Щас проверю. Может и мне потом пригодится. Принцип простой. В раме держится минимальный буфер (окно) 256 байт. В нём непрограммирующиеся байты запоняются 0xff, а нужные как надо. Это похоже на маску. Потом вызывается IAP для программирования. Эта маска во флэше объединяется с уже прошитыми данными. Так друг за другом можно "прошивать" группы по 16 байт.
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
Jan 20 2009, 19:31
|
дятел
    
Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065

|
Цитата(zltigo @ Jan 20 2009, 15:19)  Все именно так, только "непрограмирующиеся" можно и считать из Flash. то есть пишем только изменения ? если можем записать... иначе сттираем страницу и перезаписываем... так ? Цитата(Visor @ Jan 19 2009, 20:57)  Что-то я не понял как это. В описании написано: копирование из RAM во flash блоками по 256 | 512 | 1024 | 4096 байт. Ткните носом пожалуйста.  Насколько я ничего не понимаю, NXP просто не дал других вариантов нам юзерам... флеш точно можно писать по 16байт минимум, но описания как это делать, нет... можно конечно дизасемблировать их процедуру записи/стирания, но никто не гарантирует что процедура не изменится в будующем... тч минимум для записи это 256 байт
|
|
|
|
|
Jan 21 2009, 05:34
|

Местный
  
Группа: Свой
Сообщений: 240
Регистрация: 23-03-07
Пользователь №: 26 428

|
Цитата(singlskv @ Jan 21 2009, 02:31)  флеш точно можно писать по 16байт минимум, но описания как это делать, нет... можно конечно дизасемблировать их процедуру записи/стирания, но никто не гарантирует что процедура не изменится в будующем... тч минимум для записи это 256 байт Ясно. Но если мы можем писать блок 256 байт, в котором все "0xff" (не изменяется ничего) и нет проблем с ECC, то записывая блок 256 байт, в котором первый "0x00" и далее все "0xff" (пишем первый байт только) будут проблемы?
|
|
|
|
|
Jan 21 2009, 08:48
|

Местный
  
Группа: Свой
Сообщений: 240
Регистрация: 23-03-07
Пользователь №: 26 428

|
Цитата(GetSmart @ Jan 21 2009, 13:47)  Какие проблемы? ... Я не корректно выразил свою мысль, имелось ввиду следующее: во флеш имеем группу из 16-ти байт: 00,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff пишем поверх: ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff , без проблем с ECC но если пишем поверх: ff,00,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff , то получаем ошибку, почему? Если ECC формируется по результату записи, то проблем не должно быть, а если по записываемым данным, то проблемы должны быть и со всеми ff.
|
|
|
|
|
Jan 21 2009, 09:24
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Цитата(Visor @ Jan 21 2009, 14:48)  но если пишем поверх: ff,00,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff , то получаем ошибку, почему? Если ECC формируется по результату записи, то проблем не должно быть, а если по записываемым данным, то проблемы должны быть и со всеми ff. Дело в том, что после первой записи ECC сбросит некоторые из своих бит в 0. Даже если во второй раз записать в следующий байт группы не затронув предыдущий первый байт, то ECC изменится и с большой вероятностью некоторые биты ECC изменятся с "0" на "1", а так как флэш это не допускает делать без стирания байта (в LPC только сектор целиком), то ECC приобретёт совершенно некорректное значение. После этого читая эти 16 байт в них будут случайные биты (немного, возможно 1, 2 или 3) искажены алгоритмом ECC. Хотя большая часть бит в 16-ти байтах будет похожа на записанные значения.
Сообщение отредактировал GetSmart - Jan 21 2009, 09:36
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
Сообщений в этой теме
Visor Выбор микроконтроллера Jan 18 2009, 13:47 vvvv А USB FullSpeed устраивает, или нужен HighSpeed. Jan 18 2009, 14:17 Visor Цитата(vvvv @ Jan 18 2009, 21:17) А USB F... Jan 18 2009, 14:49 sonycman А много-ли сейчас дешёвых армов с таким кол-вом ee... Jan 18 2009, 18:03 zltigo Цитата(sonycman @ Jan 18 2009, 20:03) Поч... Jan 18 2009, 21:16 Visor Цитата(sonycman @ Jan 19 2009, 01:03) А м... Jan 19 2009, 05:00  Qwertty Цитата(Visor @ Jan 19 2009, 08:00) Но сам... Jan 19 2009, 06:16   Visor Цитата(Qwertty @ Jan 19 2009, 13:16) Внеш... Jan 19 2009, 06:30 GetSmart У LPC много обычной флэш со 100К перезаписями. Стр... Jan 19 2009, 05:28 Visor Цитата(GetSmart @ Jan 19 2009, 12:28) У L... Jan 19 2009, 06:01 Diman_ У LPC программная flash имеет ресурс 100000, поэто... Jan 19 2009, 05:31    GetSmart Цитата(zltigo @ Jan 20 2009, 18:19) Все и... Jan 20 2009, 12:42     zltigo Цитата(GetSmart @ Jan 20 2009, 14:42) У м... Jan 20 2009, 12:59    Visor Как я понял, наличие "0xff" (GetSmart) и... Jan 20 2009, 13:01     GetSmart Цитата(Visor @ Jan 20 2009, 19:01) Как я ... Jan 20 2009, 13:18      Visor Цитата(GetSmart @ Jan 20 2009, 20:18) А п... Jan 20 2009, 13:34       GetSmart Цитата(Visor @ Jan 20 2009, 19:34) Т.е. з... Jan 20 2009, 13:50          Visor А что будет, если во время записи страницы отключи... Jan 30 2009, 05:50           scifi Цитата(Visor @ Jan 30 2009, 08:50) А что ... Jan 30 2009, 06:54            Visor Цитата(scifi @ Jan 30 2009, 13:54) Вероят... Jan 30 2009, 11:38 Visor Цитата(GetSmart @ Jan 19 2009, 13:13) Есл... Jan 20 2009, 14:21 Rst7 ЦитатаВсе именно так, только "непрограмирующи... Jan 20 2009, 12:53 GetSmart Проверил программирование по 16 байт 0xFF. Работае... Jan 20 2009, 14:27
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|