реклама на сайте
подробности

 
 
> IAP в LPC17x, запись без стирания - возможно-ли?
jcxz
сообщение Oct 4 2013, 14:55
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Пытаюсь дописывать в сектор программной flash LPC1758 без предварительного стирания сектора.
Исходное состояние области в которую пишу - все 0xFF.
Так вот: иногда запись проходит нормально, иногда - записанное не соответствует записываемому (как правило - в каком-либо одном байте).
Если предварительно стереть сектор - то всегда всё ок.
Перепробовал уже вроде всё, что можно: запрещал прерывания на всю процедуру записи, менял сектора, размеры записываемого сегмента, писал кодом из ОЗУ и flash и т.п. - всё без толку.
Вот такой блок (hex):
18,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,81,15,3A,18
,94
даёт сбой каждую 4-ю запись. После проверки получаю что записано:
18,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,20,00,81,15,3A,18
,94
И результат всегда такой. Каждая 4-я запись у меня идёт по адресу, кратному 0x20 (может это как-то влияет).
Повторная многократная запись поверх по этим-же адресам этого-же блока не помогает.

Согласно AN11008 с сайта NXP такая запись без стирания возможна. В еррате ничего нет.

Сталкивался-ли кто-нибудь с подобным?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Sanya_kv
сообщение Oct 7 2013, 04:36
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 185
Регистрация: 25-02-09
Из: Россия
Пользователь №: 45 369



Та же проблема (В один блок нельзя писать более 1 раза без стирания).
Ошибка происходит не всегда, а при некоторой комбинации данных (у меня происходила примерно 1/20). Зависимость не выявил.
При записи изменял байты, которые до этого были равны 0xFF. Например до записи блок == 12 34 FF FF FF FF ..., записываю 12 34 56 78 FF FF ..., по идее должно получиться 12 34 56 78 FF FF ..., но почему-то не всегда.
Пробовал писать блоки по 256, 512 и по 1к. Делал частоту в 2 раза медленней. Победить проблему так и не удалось. Обнаружил достаточно давно на LPC24xx, далее подтвердилась на LPC1778.
Ставит в тупик, это то что иногда ошибка появляется появляется в соседнем блоке, отличном от кого в который писал.
Данная тема уже подымалась на этом форуме в районе 1 - 2-х лет назад.
Цитата
На каждые строку (16 байт) флеш приходится один байт ECC, поэтому дозапись страницы можно вести исключительно целыми строками.

Спасибо за инфу. Как доберусь до железки обязательно проверю.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- jcxz   IAP в LPC17x, запись без стирания - возможно-ли?   Oct 4 2013, 14:55
- - aaarrr   Дозапись возможна, но только блоками, размер котор...   Oct 4 2013, 15:27
|- - jcxz   Ясен пень - пишу блоками по 256 (пробовал и по 512...   Oct 4 2013, 16:29
|- - aaarrr   Цитата(jcxz @ Oct 4 2013, 20:29) Ясен пен...   Oct 4 2013, 19:07
|- - jcxz   Цитата(aaarrr @ Oct 5 2013, 01:07) Не о т...   Oct 5 2013, 10:45
|- - Axel   Цитата(jcxz @ Oct 5 2013, 14:45) Что Вы и...   Oct 6 2013, 03:13
|- - jcxz   SYSCFG.FLASHCFG = (CCLK - 1) / 20000 << 12 |...   Oct 6 2013, 15:51
|- - Axel   Цитата(jcxz @ Oct 6 2013, 18:51) SYSCFG.F...   Oct 6 2013, 18:55
- - Axel   Вполне себе работает. У меня таким образом организ...   Oct 4 2013, 21:08
- - KRS   Вообще в описании IAP однозначно указано что адрес...   Oct 7 2013, 08:35
- - aaarrr   Цитата(KRS @ Oct 7 2013, 12:35) про 16 ба...   Oct 7 2013, 08:38
- - KRS   Цитата(aaarrr @ Oct 7 2013, 12:38) Для LP...   Oct 7 2013, 08:48
- - aaarrr   Цитата(KRS @ Oct 7 2013, 12:48) а вот в 1...   Oct 7 2013, 09:54
- - jcxz   Цитата(KRS @ Oct 7 2013, 14:48) причем и ...   Oct 7 2013, 10:03
- - KRS   Цитата(jcxz @ Oct 7 2013, 14:03) Так вот,...   Oct 7 2013, 10:38


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 04:31
Рейтинг@Mail.ru


Страница сгенерированна за 0.01373 секунд с 7
ELECTRONIX ©2004-2016