|
|
  |
LPC23xx. Опубликован новый errata, с багами Flash и MAM |
|
|
|
Jul 6 2007, 10:36
|

Знающий
   
Группа: Свой
Сообщений: 877
Регистрация: 26-01-05
Из: Екатеринбург
Пользователь №: 2 206

|
Цитата(3.14 @ Jul 6 2007, 16:23)  Не понял, в еррате от 7 июня нет упоминания о B C D ревизиях ... Ревизии B C D относятся к LPC2138 (ну и все прочие 213x), Date:June 8 2007 Document Release:Version 1.7 Device Affected:LPC2138 плюс все прочие семейства LPC видимо имеют свою errata на этот счет. В этом то и заключается особая дерьмоватость ситуации. Если 2368 чип свеженький, и в новые проекты массово вряд ли у кого то не идет, то все остальные то трудятся уже давненько. И что теперь с теми проектами делать?
--------------------
Пасу котов...
|
|
|
|
|
Jul 6 2007, 10:50
|
Профессионал
    
Группа: Свой
Сообщений: 1 266
Регистрация: 22-04-05
Из: Киев
Пользователь №: 4 387

|
У меня 2378-е с ревизией Y - надпись не попадает в формат со стр.3 - ZSG0646-Y Как бы узнать какая эррата на них распространяется?  )
--------------------
aka Vit
|
|
|
|
|
Jul 6 2007, 10:56
|

Знающий
   
Группа: Свой
Сообщений: 877
Регистрация: 26-01-05
Из: Екатеринбург
Пользователь №: 2 206

|
Цитата(3.14 @ Jul 6 2007, 16:44)  Я поумал Вы про LPC23хх ... Зачем что-то делать со старывми проектами, которые давно трудятся? И правда зачем? Я бы и не притронулся. Я пытался объяснить выше суть проблемы. Короче, во всех ревизиях LPC с добавленной проблемой MAM.2 нельзя исключать ситуации, когда старая работающая программа в старых проектах на старых чипах перестанет работать. Кстати, почитал свой архив форума на lpc2000@yahoogroups.com Там эту проблему начали обсуждать в начале мая.
--------------------
Пасу котов...
|
|
|
|
|
Jul 7 2007, 07:55
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(Andy Mozzhevilov @ Jul 6 2007, 10:59)  что получили фичу MAM.2 в ревизиях C и D. Если для обхода MAM.1 рекомендовалось включить MAMCR = 2, то теперь для обхода MAM.2 рекомендуются включить MAMCR = 1, Да,уж.... Хотя по MAM.1 может MAMCR=2 как-то всуе помянуто  . А MAM.2 это нет слов Девайсы которые сейчас в отладке на 2138 практически все ревизии 'C' - проблем с падением не наблюдал. Пока в процесе работы буду так испытывать, ну а вообще придется разные bootloader-ы сделать и убрать переинициализацию из основной программы, но потеря производительности это тоскливо очень.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Jul 10 2007, 08:55
|

Знающий
   
Группа: Свой
Сообщений: 877
Регистрация: 26-01-05
Из: Екатеринбург
Пользователь №: 2 206

|
Цитата(Цырен @ Jul 10 2007, 14:49)  Недавно собрали плату на LPC2364 с ревизией Y. Дата выпуска микроконтроллера - 1-я неделя этого года. Сначала не мог всосать почему мой код виснет в стартапе... Потом подробно наблюдал ассемблерный код...виснет в бесконечном цикле в обработчике data abort! Так собственно вопрос: что же мне настройку MAMRC делать еще до инициализации стэков? Ведь проц входит в состояние DataAbort еще до того, как начнется функция настройки системной периферии.  Все критические настройки можно сделать в low_level_init Но по ресету MAM выключается. Вряд ли у вас ситуация, связанная с багом MAM. Посмотрите, откуда он падает в исключение, дальше дело техники найти причину.
--------------------
Пасу котов...
|
|
|
|
|
Jul 10 2007, 10:15
|

Знающий
   
Группа: Свой
Сообщений: 877
Регистрация: 26-01-05
Из: Екатеринбург
Пользователь №: 2 206

|
Цитата(zltigo @ Jul 10 2007, 16:10)  Это уже для вызова стек должен быть. Да, стек есть, но это ничему не мешает. Потом стек юзается уже в самой low_level_init() если она так написана. Если ее написать на асме, то можно обойтись без использования стека, но это, имхо, не нужно, в контексте MAM.2
--------------------
Пасу котов...
|
|
|
|
|
Sep 11 2007, 17:48
|

читатель даташитов
   
Группа: Свой
Сообщений: 853
Регистрация: 5-11-06
Из: Днепропетровск
Пользователь №: 21 999

|
Пролистывал LPC23xx/24xx Example Software для Keil, и наткнулся на фразу: Цитата (1) Due to the MAM fix and User Manual Update, CCO divider with the odd number for CCLK is no longer allowed. Update PLL setting example accordingly. В errata для LPC2368 такое описание бага MAM.1: Цитата MAM.1: Under certain conditions in MAM Mode 2 code execution out of internal Flash can fail.Introduction: The MAM block maximizes the performance of the ARM processor when it is running code in Flash memory. It includes three 128-bit buffers called the Prefetch Buffer, the Branch Trail Buffer and the data buffer. It can operate in 3 modes; Mode 0 (MAM off), Mode 1 (MAM partially enabled) and Mode 2 (MAM fully enabled).Problem:Under certain conditions when the MAM is fully enabled (Mode 2) code execution from internal Flash can fail. The conditions under which the problem can occur is dependent on the code itself along with its positioning within the Flash memory. Workaround: If the above problem is encountered then Mode 2 should not be used. Instead, partially enable the MAM using Mode 1. Не значит ли это, что проблемы с MAM возникали при установке нечетного CCO divider, и про этот баг можно забыть? У кого-нибудь получалось достоверно воспроизвести этот глюк с выпадением в Data Abort? Может быть, стоит провести эксперимент с MAM=2 и нечетным CCOdiv...
|
|
|
|
|
Sep 11 2007, 19:28
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(HARMHARM @ Sep 11 2007, 20:48)  при установке нечетного CCO divider Не совсем однозначно можно понять, что кейловцы называют "CCO Divider", но у меня "делитель" записываемый в PLLCFG '1', что с другой строны соответствует делению на 2. Множитель соответственно '3' = 4. Проблем, как уже писал, не наблюдал и не наблюдаю. Действительно интересно, какие множитель/делитель у тех у кого они есть.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Sep 12 2007, 03:03
|

Знающий
   
Группа: Свой
Сообщений: 877
Регистрация: 26-01-05
Из: Екатеринбург
Пользователь №: 2 206

|
Цитата(zltigo @ Sep 12 2007, 01:28)  Не совсем однозначно можно понять, что кейловцы называют "CCO Divider", но у меня "делитель" записываемый в PLLCFG '1', что с другой строны соответствует делению на 2. Множитель соответственно '3' = 4. Проблем, как уже писал, не наблюдал и не наблюдаю. Действительно интересно, какие множитель/делитель у тех у кого они есть. у меня Код PLLCFG = (72-1) | ((5-1) << 16); /* FCCO = 288 MHz */ то есть в делитель записано значение 4, что соответствует делению на 5. сейчас нет под рукой плат тех устройств, скоро должны подойти, обязательно попробую. Есть более новая errata от 20 июля, там действительно говорится о том, что нельзя использовать четное значение для регистра CCLKSEL. У меня сделано Код CCLKCFG = (5-1); /* Set clock divider */ то есть как раз четное. но в erreta филипсовцы не связали этот баг с МАМ, а добавили его в баг Flash.1 Но проверить все же стоит
--------------------
Пасу котов...
|
|
|
|
|
Sep 12 2007, 09:01
|

читатель даташитов
   
Группа: Свой
Сообщений: 853
Регистрация: 5-11-06
Из: Днепропетровск
Пользователь №: 21 999

|
Цитата У меня сделано Код CCLKCFG = (5-1); /* Set clock divider */ А это то значение, при котором возникали проблемы, или новое - найденное путем проб и ошибок?
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|