|
Запись во внутренюю Flash lpc1768 |
|
|
|
Jan 13 2011, 12:08
|

Частый гость
 
Группа: Участник
Сообщений: 106
Регистрация: 4-04-06
Пользователь №: 15 783

|
Всем привет
Пишу во внутренюю флеш lpc1768 следующую последовательность: 0 0 0 0 FE 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
Там оказывается: Dump memory from 0x48000 to 0x4801F (HEX): 48000: 0 0 0 0 FE FD FF FF FF FF FF FF FF FF FF FF 48010: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
Если писать 0 0 0 0 FС 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
то там все хорошо (как и с многими другими комбинациями): Dump memory from 0x48000 to 0x4801F (HEX): 48000: 0 0 0 0 FС FF FF FF FF FF FF FF FF FF FF FF 48010: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
Процедура записи: #define ADR_COUNTS 0x00048000 U8 buffer[1024] = {..........}; tsk_lock(); InitIAP(ADR_COUNTS,100000,1); EraseSector(ADR_COUNTS); InitIAP(ADR_COUNTS,100000,1); InitIAP(ADR_COUNTS,100000,2); tmp = ProgramPage(ADR_COUNTS,1024,(U8*)&buffer); tsk_unlock();
Все функции работы с флешкой от Keil, операционка тоже кейловская ЧТО Я ДЕЛАЮ НЕ ПРАВИЛЬНО???????
|
|
|
|
|
 |
Ответов
|
Jan 19 2011, 10:32
|

Частый гость
 
Группа: Участник
Сообщений: 106
Регистрация: 4-04-06
Пользователь №: 15 783

|
Цитата(andrewlekar @ Jan 19 2011, 08:39)  Про минус NXP сильно задвинул!
И DF в FF без стирания превратиться в принципе не способен. А Вы проверьте. Цитата(bus16 @ Jan 18 2011, 21:37)  Не разобрались  А в чем еще может быть причина? Если стирать перед каждой записью, то все ОК. Цитата Если не сказано - значит и делать так, вероятно, нельзя. Весь мир живет наоборот - если нет нельзя, значит можно. Цитата(bus16 @ Jan 18 2011, 21:37)  Вам, уверен, он и не помог-бы... Тема неоднократно обсуждалась, ищите не форуме. Если лень лазить по форуму - ищите в UM в разделе "Flash programming" слово "ECC" Поискал - ничего не нашел, не для LPC23xx, не для LPC17xx. EEC - это, если я правильно понял, корекция ошибок? А причем здесь она? Я так понял что нельзя писать во флеш поверх старой записи, так как есть некая система коррекции данных, поверх данных которой уже не запишешь? Где почитать про это в применении к контроллерам LPC
|
|
|
|
|
Jan 19 2011, 11:15
|

Частый гость
 
Группа: Участник
Сообщений: 106
Регистрация: 4-04-06
Пользователь №: 15 783

|
Цитата(esaulenka @ Jan 19 2011, 13:36)  ... так как флеш. ЛЮБАЯ флеш так устроена. Не любая. Я говорю про конкретную ситуацию, когда пишем поверх 0хFF. Кстати, только что обнаружил, у lpc1768 если флешку побить на блоки по 16 байт, то можно писать в блоки повторно информацию без стирания, если внутри блока бсе байты OxFF, даже, если в соседних есть информация отличная от 0xFF. ПсевдоEEPROM, однако.
Сообщение отредактировал ruslannd - Jan 19 2011, 11:22
|
|
|
|
|
Jan 19 2011, 11:40
|

embarrassed systems engineer
    
Группа: Свой
Сообщений: 1 083
Регистрация: 24-10-05
Из: Осокорки
Пользователь №: 10 038

|
Цитата(ruslannd @ Jan 19 2011, 13:15)  Не любая. Я говорю про конкретную ситуацию, когда пишем поверх 0хFF. Кстати, только что обнаружил, у lpc1768 если флешку побить на блоки по 16 байт, то можно писать в блоки повторно информацию без стирания, если внутри блока бсе байты OxFF, даже, если в соседних есть информация отличная от 0xFF. ПсевдоEEPROM, однако. Про разбиение на блоки по 16 байт было то ли в каком-то раннем даташите или аппноте. Там же было сказано что каждый 16 байтный (128 битовый блок) защищается корректирующим кодом (ECC) и повышает выход годных изделий (с битыми отдельными битами флеша) и надежность хранения программы. Итого - пишете 16 байт, при этом вычисляется некоторый корректирующий код и пишется где-то в скрытую область памяти. И дописать в эти 16 байт произвольно поверх FF нельзя - корректирующий код будет другой и скорее всего он нормально не запишется, а результат считывания таких 16 байт с некорректным кодом будет непредсказуемым.
|
|
|
|
Сообщений в этой теме
ruslannd Запись во внутренюю Flash lpc1768 Jan 13 2011, 12:08 ruslannd Никто не может помочь? Jan 14 2011, 11:32 DpInRock ЦитатаВсе функции работы с флешкой от Keil, операц... Jan 14 2011, 12:52 ruslannd Цитата(DpInRock @ Jan 14 2011, 18:52) Оши... Jan 14 2011, 14:04 DpInRock Случаем не через UART работаете?
Кстати, там где-... Jan 14 2011, 14:08 ruslannd Цитата(DpInRock @ Jan 14 2011, 17:08) Слу... Jan 17 2011, 06:19  ar__systems Цитата(ruslannd @ Jan 17 2011, 01:19) ..
... Jan 17 2011, 15:20 ruslannd Всем спасибо. Я разобрался в проблеме. Оказывается... Jan 18 2011, 18:15 bus16 ЦитатаВсем спасибо. Я разобрался в проблеме. Оказы... Jan 18 2011, 18:37 DpInRock Рекомендую поискать ошибки в программе. Jan 19 2011, 11:38 ruslannd Цитата(DpInRock @ Jan 19 2011, 14:38) Рек... Jan 19 2011, 12:21 ruslannd Если кому интересно, то я нашел документ, описываю... Jan 20 2011, 06:06
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|