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

 
 
> Проблемы с исполнением кода
AlexeyT
сообщение Jul 19 2015, 17:28
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 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


Есть идеи?
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Obam
сообщение Jul 20 2015, 12:03
Сообщение #2


Знающий
****

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



Любезный, AlexeyT, вам не здесь надо вопросы задавать, а напрямую в славный город НН.
Они должны с вас пылинки сдувать ( sm.gif вот сказанул, самому смешно), ведь представляете вы, подозреваю, не частную лавочку.
"Микросхемка"-то в специсполнении, стоит как самолёт.

Цитата(kolobok0 @ Jul 20 2015, 15:42) *
OFF/2:
И тут оказалось, что выпустить железку это даже не половина, а самая малюсенький шажочек на общий рынок...

Эти "игрушки" не для общего рынка, для него ST, Atmel, ну даже TI…


--------------------
Пролетарий умственного труда.
Go to the top of the page
 
+Quote Post
AlexeyT
сообщение Jul 20 2015, 13:43
Сообщение #3


Участник
*

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



Цитата(Obam @ Jul 20 2015, 15:03) *
Любезный, AlexeyT, вам не здесь надо вопросы задавать, а напрямую в славный город НН.
Они должны с вас пылинки сдувать ( sm.gif вот сказанул, самому смешно), ведь представляете вы, подозреваю, не частную лавочку.


Любезный Obam, что заставляет Вас думать, что в славном городе НН не пытались решить проблему? Микросхема ОКРовская (если Вам это о чем-то говорит), требовать техподдержки рано.

Хотелось бы таки предложений по решению
Go to the top of the page
 
+Quote Post
Obam
сообщение Jul 21 2015, 06:24
Сообщение #4


Знающий
****

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



Цитата(AlexeyT @ Jul 20 2015, 17:43) *
Любезный Obam, что заставляет Вас думать, что в славном городе…


Из моего поста совершенно не следует "что в славном городе НН…", а следует только то, что они должны (если солидная фирма) ухватиться за вас и помогать всем чем можно (и иногда чем нельзя). Форумное сообщество в данном случае, ну только, для психологической помощи.
Что такое "Микросхема ОКРовская", не сомневайтесь, знаю.

Кстати, ваша м/с код исполняет из ОЗУ (вы сами об этом писали), но cortex-m имеет регулярное адресное пространство (ни о каких страницах ни 32, ни сколько угодно речи быть не должно, или что, при 32-разрядном PC - ОЗУ с сегментной (по 32кБ) организацией?), частота ядра тоже не бог весть какая (тем более для работы с ОЗУ, тем более "…Клок сбрасывали до килогерц…"), так что выход один - "пинать" производителя и менять на другой экземпляр.


--------------------
Пролетарий умственного труда.
Go to the top of the page
 
+Quote Post
AlexeyT
сообщение Jul 21 2015, 07:42
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 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
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 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


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

 


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


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