|
Проблемы с исполнением кода |
|
|
|
Jul 19 2015, 17:28
|
Участник

Группа: Участник
Сообщений: 45
Регистрация: 5-06-07
Пользователь №: 28 207

|
Есть проблема с исполнением кода на сделанном на отечественном предприятии процессоре ARM Corteх-M4F. Кристалл флэш-памяти не имеет, прошивка загружается извне во встроенное ОЗУ объемом 128 кБ, которое используется как память программ. Есть ОЗУ объемом 68 кБ, которое используется как память данных. Запустили успешно, но на объемах прошивки, превышающих 32 кБ, процессор зависал. Путем последовательных упрощений нашли причину: процессор виснет при вызове функций, расположенных в разных 32 кБ сегментах (см.рисунок). Т.е. если программа вызывает функцию f2(), расположенную в том же 32-кБ участке, что и остальная программа - все ОК. Причем все нормально работает независимо от того, в каком именно 32-кБ сегменте размещена программа. Стоит вызвать функцию (типа printf), размещенную в соседнем 32-кБ сегменте памяти - сваливаемся в HardFault. Память тестировали - записывали данные, считывали - все ОК, память работоспособна, но при переходе границы 32-кБ блоков происходит HardFault: PC = 0x0800016A, LR = 0xFFFFFFE9, XPSR = 0x21000003 Дебаггер показал, что падаем в районе вызова команды LDR 0800_01DC: 7047 BX LR 0800_BE46: 4E21 MOV R1, #78 //где-то здесь падаем0800_BE48: 6D48 LDR R0, [PC, #+0x1B4] //где-то здесь падаем0800_BE4A: F4F7B6F9 BL #-0xBC94 0800_01BA: 0246 MOV R2, R0 Есть идеи?
Эскизы прикрепленных изображений
|
|
|
|
|
 |
Ответов
|
Jul 20 2015, 12:03
|

Знающий
   
Группа: Участник
Сообщений: 756
Регистрация: 14-11-14
Пользователь №: 83 663

|
Любезный, AlexeyT, вам не здесь надо вопросы задавать, а напрямую в славный город НН. Они должны с вас пылинки сдувать (  вот сказанул, самому смешно), ведь представляете вы, подозреваю, не частную лавочку. "Микросхемка"-то в специсполнении, стоит как самолёт. Цитата(kolobok0 @ Jul 20 2015, 15:42)  OFF/2: И тут оказалось, что выпустить железку это даже не половина, а самая малюсенький шажочек на общий рынок... Эти "игрушки" не для общего рынка, для него ST, Atmel, ну даже TI…
--------------------
Пролетарий умственного труда.
|
|
|
|
|
Jul 20 2015, 13:43
|
Участник

Группа: Участник
Сообщений: 45
Регистрация: 5-06-07
Пользователь №: 28 207

|
Цитата(Obam @ Jul 20 2015, 15:03)  Любезный, AlexeyT, вам не здесь надо вопросы задавать, а напрямую в славный город НН. Они должны с вас пылинки сдувать (  вот сказанул, самому смешно), ведь представляете вы, подозреваю, не частную лавочку. Любезный Obam, что заставляет Вас думать, что в славном городе НН не пытались решить проблему? Микросхема ОКРовская (если Вам это о чем-то говорит), требовать техподдержки рано. Хотелось бы таки предложений по решению
|
|
|
|
|
Jul 21 2015, 06:24
|

Знающий
   
Группа: Участник
Сообщений: 756
Регистрация: 14-11-14
Пользователь №: 83 663

|
Цитата(AlexeyT @ Jul 20 2015, 17:43)  Любезный Obam, что заставляет Вас думать, что в славном городе… Из моего поста совершенно не следует "что в славном городе НН…", а следует только то, что они должны (если солидная фирма) ухватиться за вас и помогать всем чем можно (и иногда чем нельзя). Форумное сообщество в данном случае, ну только, для психологической помощи. Что такое "Микросхема ОКРовская", не сомневайтесь, знаю. Кстати, ваша м/с код исполняет из ОЗУ (вы сами об этом писали), но cortex-m имеет регулярное адресное пространство (ни о каких страницах ни 32, ни сколько угодно речи быть не должно, или что, при 32-разрядном PC - ОЗУ с сегментной (по 32кБ) организацией?), частота ядра тоже не бог весть какая (тем более для работы с ОЗУ, тем более "…Клок сбрасывали до килогерц…"), так что выход один - "пинать" производителя и менять на другой экземпляр.
--------------------
Пролетарий умственного труда.
|
|
|
|
|
Jul 21 2015, 07:42
|
Участник

Группа: Участник
Сообщений: 45
Регистрация: 5-06-07
Пользователь №: 28 207

|
Цитата(Obam @ Jul 21 2015, 09:24)  Кстати, ваша м/с код исполняет из ОЗУ (вы сами об этом писали), но cortex-m имеет регулярное адресное пространство (ни о каких страницах ни 32, ни сколько угодно речи быть не должно, или что, при 32-разрядном PC - ОЗУ с сегментной (по 32кБ) организацией?), частота ядра тоже не бог весть какая (тем более для работы с ОЗУ, тем более "…Клок сбрасывали до килогерц…"), так что выход один - "пинать" производителя и менять на другой экземпляр. У нас 2 экземпляра, результаты одинаковые. Разработчики микросхемы гоняли на модели - у них все ок. Если есть проблема в реализации кристалла, то наша задача - помочь её им определить. Высказанные выше конструктивные идеи: 1) прерывания и 2) увеличенная задержка при обращении через границу блоков проверяем. Нет ли еще идей?
Сообщение отредактировал AlexeyT - Jul 21 2015, 07:44
|
|
|
|
Сообщений в этой теме
AlexeyT Проблемы с исполнением кода Jul 19 2015, 17:28 scifi ЕМНИП, Cortex-M4 позволяет получить довольно много... Jul 19 2015, 18:30 редактор ЦитатаЕсть проблема с исполнением кода на сделанно... Jul 20 2015, 05:10 AlexeyT Цитата(редактор @ Jul 20 2015, 08:10) Есл... Jul 20 2015, 11:01  kolobok0 Цитата(AlexeyT @ Jul 20 2015, 14:01) ...П... Jul 20 2015, 11:42  scifi Цитата(AlexeyT @ Jul 20 2015, 16:43) Хоте... Jul 20 2015, 13:53    Ruslan1 Цитата(AlexeyT @ Jul 21 2015, 10:42) Нет ... Jul 21 2015, 09:23     AlexeyT Цитата(Ruslan1 @ Jul 21 2015, 12:23) Изви... Jul 21 2015, 09:42    jcxz Цитата(AlexeyT @ Jul 21 2015, 13:42) Нет ... Jul 22 2015, 03:23    -=Sergei=- Цитата(AlexeyT @ Jul 21 2015, 10:42) У на... Jul 22 2015, 11:20 AlexeyT ЦитатаЕМНИП, Cortex-M4 позволяет получить довольно... Jul 20 2015, 12:16 Alex11 Разговоры про отладчик наводят на грустные мысли п... Jul 21 2015, 00:14 Golikov A. скорее на время выполнения иснтрукций, в отладчике... Jul 21 2015, 04:28 AlexeyT Цитата(Golikov A. @ Jul 21 2015, 07:28) с... Jul 21 2015, 05:25 редактор ЦитатаНа какие именно подробности стоит обратить в... Jul 21 2015, 05:35 AlexeyT ЦитатаПриведите карту памяти МК.
Секция CODE (дост... Jul 23 2015, 05:30 jcxz Цитата(AlexeyT @ Jul 23 2015, 11:30) Это ... Jul 23 2015, 10:19 Golikov A. А там никаких конвейеров нигде не рушиться? если б... Jul 23 2015, 05:36 AlexeyT Цитата(Golikov A. @ Jul 23 2015, 08:36) А... Jul 23 2015, 05:56 scifi . Jul 23 2015, 06:09 AlexeyT ЦитатаПокрутить тактирование, питание и посмотреть... Jul 23 2015, 11:46 jcxz Цитата(AlexeyT @ Jul 23 2015, 17:46) R0 =... Jul 24 2015, 03:12 AlexeyT Цитатаили попробовать выровнять целевую точку возв... Jul 24 2015, 06:19 jcxz Цитата(AlexeyT @ Jul 24 2015, 12:19) Как ... Jul 24 2015, 12:20 AlexeyT ЦитатаДаташита нет под рукой, но насколько помню, ... Jul 25 2015, 15:52 AlexeyT Тестовая программа стала работать при вот таких из... Jul 28 2015, 15:44 Golikov A. А кешей никаких нет? Выглядит как буд-то кеши не с... Jul 28 2015, 15:49
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|