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

 
 
> 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
Ответов
aaarrr
сообщение Oct 4 2013, 15:27
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Дозапись возможна, но только блоками, размер которых кратен 16 байтам. По крайней мере, для LPC13xx так. В мануале на 17xx вопрос обошли стороной почему-то...
Go to the top of the page
 
+Quote Post
jcxz
сообщение Oct 4 2013, 16:29
Сообщение #3


Гуру
******

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



Ясен пень - пишу блоками по 256 (пробовал и по 512). Иначе бы IAP вообще вылетал-бы с ошибкой.
И в UM на 17x не обошли это стороной - чётко указаны возможные размеры блоков для записи:
------------------------------------------------------------------------------------------
Param0(DST): Destination flash address where data bytes are to be written. This
address should be a 256 byte boundary.
Param1(SRC): Source RAM address from which data bytes are to be read. This
address should be a word boundary.
Param2: Number of bytes to be written. Should be 256 | 512 | 1024 | 4096.
------------------------------------------------------------------------------------------

Ясно что перед записью своей записи, я определяю границы блока выбранного размера, в который она входит, считываю данные блока в буфер в ОЗУ,
копирую туда свою запись, и потом пишу весь блок.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Oct 4 2013, 19:07
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(jcxz @ Oct 4 2013, 20:29) *
Ясен пень - пишу блоками по 256 (пробовал и по 512). Иначе бы IAP вообще вылетал-бы с ошибкой.

Не о тех блоках речь. На каждые строку (16 байт) флеш приходится один байт ECC, поэтому дозапись страницы можно вести исключительно целыми строками.

Цитата(jcxz @ Oct 4 2013, 20:29) *
Ясно что перед записью своей записи, я определяю границы блока выбранного размера, в который она входит, считываю данные блока в буфер в ОЗУ,
копирую туда свою запись, и потом пишу весь блок.

Так вот "своя запись" выровнена по границе 16?
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- jcxz   IAP в LPC17x, запись без стирания - возможно-ли?   Oct 4 2013, 14:55
|- - 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
- - Sanya_kv   Та же проблема (В один блок нельзя писать более 1 ...   Oct 7 2013, 04:36
- - 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 Текстовая версия Сейчас: 21st July 2025 - 10:28
Рейтинг@Mail.ru


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