Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Простые вопросы по кортексам
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > ARM, 32bit
vladimir_orl
Здравствуйте. Насколько я понимаю, вопросы по кортексам тоже сюда писать?

Так как к кортексам только подступаю, а отладочную плату привезти обещают в обозримом будущем, то изучаю их по даташитам и кейлу (до 32 кБ он условно-бесплатный).
Имеются совсем дилетантскае вопросы. Смотрю на примере LPC1102 и LPC1311.

1. Почему в кейле нет симуляции периферии кортексов? Или это я плохо смотрел? Можно ли как её подключить? Есть ли там понятие Fast GPIO?

2. Каковы наклюдные расходы (примерно в тактах) входа в обработчик внешних прерываний? Есть ли смысл программу писать а ассемблере?

3. Насколько я понял, блоки MAM отсутствует и FIQ отсутствуют? Или у кортексов с выборкой команд всё хорошо? Программа может выполняться только из флеша?

5. Можно ли настроить выход из спящего режима по SPI? По завершению приёма байта или по приёму первого бита? Или просыпание лучше завести от внешнего прерывания?

6. Сколько примерно тактов (если не сложно ответить) будет занимать каждая команда в таком вот простом коде:

Код
int i = 0;
int datas[1000];

for (i = 0; i < 1000; ++i){
    datas[i] = IOPIN;
}
SII
Цитата(vladimir_orl @ Dec 19 2013, 13:57) *
1. Почему в кейле нет симуляции периферии кортексов? Или это я плохо смотрел? Можно ли как её подключить? Есть ли там понятие Fast GPIO?


Ответом на этот и большую часть других вопросов является то, что Cortex, а точней, Cortex-M -- это семейство процессорных ядер, а не конкретный микроконтроллер. Наличие той или иной периферии, ускорителя памяти, возможность использования периферии для пробуждения процессора -- всё это зависит от конкретной модели микроконтроллера, а не от того, какое именно у него ядро. Дело ядра -- лишь выполнять программы.

Скорость выполнения кода сама по себе -- одна машинная команда за такт, но достигается она за счёт работы конвейера. Поэтому переходы и прерывания уменьшают скорость (возникают "лишние" такты из-за необходимости выборки и декодирования команд при пустом конвейере). Скорость выборки кода из флэш-памяти зависит опять-таки от модели микроконтроллера, напряжения питания и тактовой частоты.
ViKo
Найдите книжки Josef Yiu по Cortex-M0 -M3, и там прочтете ответы на все вопросы. Где искать, знаете.
vladimir_orl
Цитата
Cortex-M -- это семейство процессорных ядер

Я, скорее всего буду применять либо продукцию LPC либо ST.

Цитата
Найдите книжки Josef Yiu по Cortex


Спасибо. Скачал.
toweroff
Цитата(vladimir_orl @ Dec 19 2013, 13:57) *
1. Почему в кейле нет симуляции периферии кортексов? Или это я плохо смотрел? Можно ли как её подключить? Есть ли там понятие Fast GPIO?

плохо смотрели. Все там есть
vladimir_orl
Цитата
плохо смотрели. Все там есть


У меня keil4. Контроллер - LPC1102. Создал проект, откомпилил.
Запустил дебаггер.
Смотрю перифералс. А там только Cjre Peripherals. Или так и должно быть?
Хотелось бы и порты ввода-вывода и таймеры и etc.
SII
Далеко не для всех микроконтроллеров имеются возможности отображать состояние периферии. В некоторых случаях может помочь формальное использование в разработке похожего контроллера -- но надо самому чётко понимать различия между ними, чтобы и программа собиралась правильно, и с отображением периферии проблем не возникало. Ну а в некоторых, увы, никак...
toweroff
Цитата(vladimir_orl @ Dec 19 2013, 17:08) *
У меня keil4. Контроллер - LPC1102

я смотрел в 5-ке, в 4-ке смогу посмотреть завтра
Falkon_99
есть 5 keil ?
как он, много поменяли? совместимость версий проэктов 4го и 5го соблюдается?
vladimir_orl
keil 5 есть? Где скачать можно?
toweroff
Цитата(Falkon_99 @ Dec 20 2013, 01:40) *
есть 5 keil ?
как он, много поменяли? совместимость версий проэктов 4го и 5го соблюдается?

соблюдается, обратная совместимость есть. Лучше поставить и посмотреть sm.gif
http://www.keil.com/update/whatsnew.asp?p=RVMDK&v=5.00
http://www.keil.com/update/relnotes/MDK500.htm

Цитата(vladimir_orl @ Dec 20 2013, 08:04) *
keil 5 есть? Где скачать можно?

в местных закромах вроде было, также тут можно
ViKo
Вчера появился Keil 5.01
toweroff
Цитата(ViKo @ Dec 20 2013, 13:54) *
Вчера появился Keil 5.01

ага, они поменяли формат пакетов. Старый PackInstaller их не кушает
esaulenka
Цитата(vladimir_orl @ Dec 19 2013, 17:08) *
У меня keil4. Контроллер - LPC1102. Создал проект, откомпилил.
Запустил дебаггер.
Смотрю перифералс. А там только Cjre Peripherals. Или так и должно быть?
Хотелось бы и порты ввода-вывода и таймеры и etc.


Большую часть периферии в кейле перенесли в новый механизм: View -> System Viewer, потыкайте по меню (этот пункт появляется только в активной дебаг-сессии).


PS сильно заморачиваться подсчётом тактов на кортексах не стоит. Куча шин, хитро связанных друг с другом, каждая со своей частотой и таймаутами, ведомыми только разработчику чипа. Меряйте окончательную производительность, это интересней.
Особенно заметна эта проблема на low-end чипах, когда производитель сосредотачивается на энерго- и деньго-сберегающих технологиях, а не на скорости.
Я как-то экспериментировал с SSP (продвинутый SPI) на LPC1111.
Тупой код
Код
while (len--)
{
   while (STATUS_REG == BUSY);
   DATA_REG = *data++;
}

Работал на порядок, наверное, медленнее, чем должно было быть по результатам подсчёта тактов. Переделал в критичных местах на использование аппаратного FIFO, убрав часть запросов к регистру статуса - стало заметно быстрее.
toweroff
Цитата(esaulenka @ Dec 20 2013, 21:26) *
PS сильно заморачиваться подсчётом тактов на кортексах не стоит.

+
хотя все такты и расписаны (конвеер отключим sm.gif ), никто не будет, на мой взгляд, заниматься настолько глубоко симуляцией. Расчет времени возможно. Кейл даже может что-т показать в плане времени. Да вот все никак не было возможности проверить, потому как отдельный камень со всей своей периферией - это сферический конь. Как там с ним и кто будет общаться - вот тут уже и все симуляторы сломались
Что касаемо времени критических обработок - грамотное распределение приоритетов прерываний, короткие обработчики и сохранение критических данных (по скорости) где-то в TCM

Цитата(esaulenka @ Dec 20 2013, 21:26) *
Куча шин, хитро связанных друг с другом, каждая со своей частотой и таймаутами, ведомыми только разработчику чипа.

Почему чипа? AHB и APB разве не стандартизированы ARM?

Цитата(esaulenka @ Dec 20 2013, 21:26) *
стало заметно быстрее.

у меня тоже софтварный UART на 8051 больше 9600 не мог, ему там еще кучу дел нужно было делать sm.gif
vladimir_orl
Здравствуйте. Продолжаю тему. Если можно теперь вопрос по keil5. Скачал его. Установил. Скачал и установил дополнения совместимости с предыдущими версиями. Заработало. И тут обнаружил что не генерится elf файл. Подскажите что это и чем можно исправить. Хочется всё-таки в протеусе нормально симулировать. Заранее благодарен.
Allregia
Товарищи, что-то поиском не могу найти, поэтому может тут кто подкажет или направит куда.

Сейчес у меня Keil 4.23 и клон J-Link.
Когда я пробовал 4.70, он перепрошил мой JLink после чего заявил что это клон и отказался работать. И JLink умер.
Хорошо народ подсказал как его оживить, с тех пор я сижу на 4.22, что меня в принципе устраивало до поры до времени.
Теперь хочется попробовать 5-й Кейл, и потому вопрос - вроде где-то было фирмваре к клонам JLink, с которыми новые Кейлы работают?
vladimir_orl
Да. Какая-я то мешанина получилась по этим кортексам.

Седьмой протеус отлично работает с файлами .axf. А вот восьмой их почему-то не видит. Вот и приходится elf-файлы исать.
Или протеус такой.
Подскажите, можно ли устройства из 8-го протеуса перенести в 7-й. Иначе говоря, добавлять устройства кроме тех которые есть изначально.
Хотя это уже совсем далеко от названия темы.
vladimir_orl
Точнее в восьмом протеусе к примеру модель LPC2101 принимает axf файлы а модель LPC1311 этого не делает. Разбираюсь дальше.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.