Перейти к содержанию
    

Несколько вопросов по lpc176x

1. Почему у него такая странная распиновка выводов?

На 100 ногах нашли место только для 70 gpio, причем ни одного целого 32х битного регистра, всего один целый 16 битный а разбросаны

и перемешаны они - мама не горюй! Наследие тяжелого прошлого?

Как красиво с этим у ST32 - 5 16 битных регистров и почти все ножки в ряд.

 

2. 12 тактов входа в прерывание и 12 тактов выхода из него ( обязательных ) преподносится как достижение.

Вроде достижением было у ADSP 218x - полтора такта до первой команды в прерывании и 1 такт на выход.

 

3. Меня интересует, в lpc176x ПДП такое же тормозное....

Правда, по слухам, до кортексов у АРМа с этим было еще хуже.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1. Почему у него такая странная распиновка выводов?

Вопрос риторический? Или как? Если или как, то видимо Вас забыли спросить, как и по каким критериям им проектировать чипы. Думаю, что Вам следует немедленно связаться и направить на путь истинный.

2. 12 тактов входа в прерывание и 12 тактов выхода из него ( обязательных ) преподносится как достижение.

Вроде достижением было у ADSP 218x - полтора такта до первой команды в прерывании и 1 такт на выход.

Отличный результат. А как ADSP за полтакта, например, в стек регистры запихивал? Нет? Тогда может стоит для начала банально зайти не на gaw.ru а на arm.com и так сказать приникнуть к первоисточнику. Там все по тактам расписано.

по слухам, до кортексов у АРМа с этим было еще хуже.

Реализация DMA контроллера и M3 ядро, равно и как ARM7 ядро вещи разные. Слухи в другом месте, пожалуйста, обсуждайте.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Зато NXP сохранил совместимость по ногам с ARM7. По этому надеюсь проблем перейти с LPC236x на LPC176x не будет.

Кроме того по цене-производительности эти процессоры лучшии и наверное в основном из за этого самые распространенные.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Можно под шумок спросить знатоков - сколько тактов уходит у LPC17xx на обращение к регистрам периферии?

К примеру, к регистрам таймеров?

 

Уважаемый Zltigo даже старается заменить такие обращения работой с простой ОЗУ...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Можно под шумок спросить знатоков - сколько тактов уходит у LPC17xx на обращение к регистрам периферии?

К примеру, к регистрам таймеров?

 

Уважаемый Zltigo даже старается заменить такие обращения работой с простой ОЗУ...

 

Встречал, что, если код написан на ассемблере, внешней ногой можно дрыгать с тактовой частотой.

 

 

Вопрос риторический? Или как? Если или как, то видимо Вас забыли спросить, как и по каким критериям им проектировать чипы. Думаю, что Вам следует немедленно связаться и направить на путь истинный.

 

Вы не поняли. Меня интересовало - зачем такая разводка сделана.

И еще одно - почему нет сигнала о том, что с ног значения прочитались или значения на ногах изменились?

Или gpio в данном проце просто так, для красоты?

 

 

Отличный результат. А как ADSP за полтакта, например, в стек регистры запихивал? Нет? Тогда может стоит для начала банально зайти не на gaw.ru а на arm.com и так сказать приникнуть к первоисточнику. Там все по тактам расписано.

 

Вот так и запихивал. Но не за полтакта, а за такт.

Правда я ошибся - от асинхронного сигнала первая команда прерывания начинает исполняться через 2.5 такта.

Метостабильность давить надо.

От внутреннего ( таймера ) через 1 такт.

 

Вы банально на arm.com заходили?

Ссылочку на файл, аналогичный приведенному мной, но про lpc176x не приведете?

Про общие описания ядра cortex-M3 ссылки приводить не надо.

Интересует конкретная реализация lpc176x у NXP и ее отличия ( в тактах ) от других компаний.

Странно конечно, что искать это Вы на АРМе предлагаете, но Вам виднее...

 

Реализация DMA контроллера и M3 ядро, равно и как ARM7 ядро вещи разные. Слухи в другом месте, пожалуйста, обсуждайте.

 

Я в курсе.

По заданному вопросу что либо ответить сможите?

Сколько тактов занимает передача по ПДП от gpio в ОЗУ?

Изменено пользователем vallav

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Встречал, что, если код написан на ассемблере, внешней ногой можно дрыгать с тактовой частотой.

С тактовой частотой - это, к примеру, с частотой 100 МГц?

Сильно в этом сомневаюсь :)

 

Аппаратно ещё может быть достигнута частота в районе 50 МГц, но программно реальная цифра - около 10 МГц.

Имхо.

 

Вот так и запихивал. Но не за полтакта, а за такт.

Cortex-M3 при входе в прерывание аппаратно сохраняет на стёке 8 32 битных регистров.

Соответственно, при выходе - их восстанавливает.

Отсюда такая задержка.

 

Опять же сомнительно, что указанный вами проц за такт успевает сделать что-то подобное.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Встречал, что, если код написан на ассемблере, внешней ногой можно дрыгать с тактовой частотой.

Ха!

Вот так и запихивал. Но не за полтакта, а за такт.

Даже смеяться не буду. Документация, однако:

Interrupt Latency
For the timer, IRQx, and SPORT interrupts, latency is at least three full 
cycles from the time when an interrupt occurs to the time when the first 
instruction of the service routine is executed. This latency is shown in 
Figure3-2. Two cycles are required to synchronize the interrupt inter-
nally, assuming that setup and hold times are met (for the IRQx input 
pins).

Итого не менее 3x, до 4x тактов, но там дальше и дополнение есть:

Since interrupts are only serviced on instruction boundaries, before execu-
tion continues, the instruction(s) executed during these two cycles must 
be fully completed, including any extra cycles inserted due to Bus 
Request/Bus Grant or memory wait states.

Посему и более 4x тактов. Финиш.

 

Вы банально на arm.com заходили?

И Вам советую. Контроллер прерывания у Cortex-M3, отличие от напимер ARM7, в ядре и про "12 тактов" можете смело читать.

Я в курсе.

Да? К чему тогда был опус с тем, что "до кортексов у АРМа с этим было еще хуже", если Вы были "в курсе", что от ядра и соответственно от компании ARM это не зависит?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Про общие описания ядра cortex-M3 ссылки приводить не надо.

Интересует конкретная реализация lpc176x у NXP и ее отличия ( в тактах ) от других компаний.

А что, у NXP есть чиста конкретная B) реализация ядра Cortex-M3? Я всегда думал, что NXP и другие компании просто купили и "вставили" в свои МК "готовое" IP-ядро - процессор Cortex-M3, в состав которого входит и NVIC... И поэтому тут пофиг чей микроконтроллер - NXP, ST, Luminary... "Миландр" :) . А временные характеристики относительно обработки прерываний и у них будут одинаковыми.

Или вы хотите сказать, что каждая компания, купившая у фирмы "ARM" IP-ядро процессора Cortex-M3, потом его напильником дорабатывает?

Вы банально на arm.com заходили?

Ссылочку на файл, аналогичный приведенному мной, но про lpc176x не приведете?

Странно конечно, что искать это Вы на АРМе предлагаете, но Вам виднее...

Вот... Все, что касается CPU Cortex-M3 - искать на arm.com, как на первоисточнике. Все остальное, что не относится к CPU Cortex-M3 - для каждого производителя микроконтроллеров это специфичные вещи.

Или я не прав? :)

 

P.S. Как-то слишком резво вы на NXP набросились. :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

С тактовой частотой - это, к примеру, с частотой 100 МГц?

Сильно в этом сомневаюсь :)

 

Аппаратно ещё может быть достигнута частота в районе 50 МГц, но программно реальная цифра - около 10 МГц.

Имхо.

 

Частота естественно не 100 а 50 мгц ( при 100 - тактовой ).

Сам я не пробовал, читал в конфе - на С++ не получается ( много мусора вставляется ) а на АСМ

импульсы длительностью 10 нсек на ноге - вполне.

 

 

Cortex-M3 при входе в прерывание аппаратно сохраняет на стёке 8 32 битных регистров.

Соответственно, при выходе - их восстанавливает.

Отсюда такая задержка.

 

Опять же сомнительно, что указанный вами проц за такт успевает сделать что-то подобное.

 

Дык он этого и не делает.

Далеко не во всех прерываниях нужно столько регистров.

Он сохраняет в стеке только самое необходимое - адрес возврата и состояние ядра на момент прерывания.

А какие именно регистры обработчик будет портить - те пусть сам и сохраняет/восстанавливает.

Вроде для контроллера откликнуться на воздействие через 3 такта важнее, чем несколько лишних комманд в сложном

обработчике.

 

 

Ха!

 

Даже смеяться не буду.

 

И Вам советую. Контроллер прерывания у Cortex-M3, отличие от напимер ARM7, в ядре и про "12 тактов" можете смело читать.

 

Да? К чему тогда был опус с тем, что "до кортексов у АРМа с этим было еще хуже", если Вы были "в курсе", что от ядра и соответственно от компании ARM это не зависит?

 

Вы когда насмеетесь, попробуйте все же хоть что либо осмысленное написать.

Или Вы только острить и хихикать умеете?

 

 

А что, у NXP есть чиста конкретная B) реализация ядра Cortex-M3? Я всегда думал, что NXP и другие компании просто купили и "вставили" в свои МК "готовое" IP-ядро - процессор Cortex-M3, в состав которого входит и NVIC... И поэтому тут пофиг чей микроконтроллер - NXP, ST, Luminary... "Миландр" :) . А временные характеристики относительно обработки прерываний и у них будут одинаковыми.

Или вы хотите сказать, что каждая компания, купившая у фирмы "ARM" IP-ядро процессора Cortex-M3, потом его напильником дорабатывает?

 

Вот... Все, что касается CPU Cortex-M3 - искать на arm.com, как на первоисточнике. Все остальное, что не относится к CPU Cortex-M3 - для каждого производителя микроконтроллеров это специфичные вещи.

Или я не прав? :)

 

P.S. Как-то слишком резво вы на NXP набросились. :)

 

В том то и дело, что дорабатывают и довольно нехило.

Не само ядро, а то, что ядро окружает.

Такты на операцию при этом получаются другими.

Да и сами операции по другому проводятся.

Например, в каналах ПДП у lpc176x есть буфера FIFO, а у ST32 - их нет.

И при закрытии канала ПДП нужно следить за очисткой этих буферов.

Есть надежда, что ПДП у lpc176x из за их наличия пошустрее работает по сравнению

с ST32.

Все, что касается ядра Cortex-M3 - можно искать на arm.com, а вот про конкретные особенности реализации

конкретного контроллера на этом ядре - полагаю там искать бесполезно.

 

В чем именно Вы увидали резвость?

В том, что удивился их распиновке gpio?

Полагаете, она у lpc176x - вполне обычная?

Или в том, что поинтересовался тем, за сколько тактов операции в нем свершаются?

Полагаете, этим интересоваться не очень этично?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Дык он этого и не делает.

Далеко не во всех прерываниях нужно столько регистров.

Он сохраняет в стеке только самое необходимое - адрес возврата и состояние ядра на момент прерывания...

Вот что пишут в "ARMv7-M Architecture Reference Manual"

B1.5.6 Exception entry behavior

.

.

.

Eight 32-bit words are saved in descending order, with respect to their address in

memory, as listed:

xPSR, ReturnAddress(), LR (R14), R12, R3, R2, R1, and R0

То же самое на gaw.ru, только по-русски :) .

 

В том то и дело, что дорабатывают и довольно нехило.

Не само ядро, а то, что ядро окружает.

Такты на операцию при этом получаются другими.

Да и сами операции по другому проводятся.

Например, в каналах ПДП...

Да, именно про это я и говорил. ПДП, например, не относится к ЦПУ, также как и ускорители выборки из flash-памяти и т.д. Поэтому все эти вещи производитель описывает в совем даташите/референс-мануале

Все, что касается ядра Cortex-M3 - можно искать на arm.com, а вот про конкретные особенности реализации

конкретного контроллера на этом ядре - полагаю там искать бесполезно.

Описание конкретного МК искать ясен пень бесполезно. С другой стороны - какие-то периферийные узлы какие-то производители не делают сами, а также покупают в виде IP-модулей у той же ARM. Например, у LPC24xx - Vectored Interrupt Controller (VIC). Поэтому в общем случае и поиск на arm.com может помочь, если:

1- вы знаете, что конкретно этот кусок периферии разработала ARM (производитель в документации об этом сказал);

2 - информации по конкретному периферийному узлу, которую предоставил производитель, вам по тем или иным причинам недостаточно.

В чем именно Вы увидали резвость?

В том, что удивился их распиновке gpio?

Да :) . Разумного ответа дать никто не сможет. Но появится повод еще раз устроить батл NXPvsST или что-то в этом роде. Но я вообщем-то тут нет никто и звать никак. Так что спрашивайте, не стесняйтесь :) .

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вы когда насмеетесь, попробуйте все же хоть что либо осмысленное написать.

Или Вы только острить и хихикать умеете?

Простите, но в отличие от Вас, транслирующего сюда, байки, я хоть немного, но осмысленного уже написал. Теперь могу и похихикать в ответ на очередную байку.

Ответа мой вопрос, естественно нет, но судя по всему Вы стремительно прогрессируете в изучении архитектуры. Это радует!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вот что пишут в "ARMv7-M Architecture Reference Manual"

 

То же самое на gaw.ru, только по-русски :) .

 

Извините, Вы о чем?

Разве я отрицал то, что lpc176x сохраняет и восстанавливает кучу регистров?

Я вроде интересовался - а зачем?

Чтобы сэкономить несколько комманд в сложных обработчиках ценой задержки реакции на

прерывание в простых?

 

Да, именно про это я и говорил. ПДП, например, не относится к ЦПУ, также как и ускорители выборки из flash-памяти и т.д. Поэтому все эти вещи производитель описывает в совем даташите/референс-мануале

 

Описание конкретного МК искать ясен пень бесполезно. С другой стороны - какие-то периферийные узлы какие-то производители не делают сами, а также покупают в виде IP-модулей у той же ARM. Например, у LPC24xx - Vectored Interrupt Controller (VIC). Поэтому в общем случае и поиск на arm.com может помочь, если:

1- вы знаете, что конкретно этот кусок периферии разработала ARM (производитель в документации об этом сказал);

2 - информации по конкретному периферийному узлу, которую предоставил производитель, вам по тем или иным причинам недостаточно.

 

Да :) . Разумного ответа дать никто не сможет. Но появится повод еще раз устроить батл NXPvsST или что-то в этом роде. Но я вообщем-то тут нет никто и звать никак. Так что спрашивайте, не стесняйтесь :) .

 

То есть, Вы предлагаете странности реализации не обсуждать?

А просто ждать и надеятся - а вдруг...

 

 

Простите, но в отличие от Вас, транслирующего сюда, байки, я хоть немного, но осмысленного уже написал. Теперь могу и похихикать в ответ на очередную байку.

Ответа мой вопрос, естественно нет, но судя по всему Вы стремительно прогрессируете в изучении архитектуры. Это радует!

 

А понял!

У Вас эта штука ( ну которыми крутые меряются ) уже отросла настолько длинной,

что Вы способны только острить и хихикать...

Тады продолжайте, не буду Вам мешать. ( я же не знал, что Вы такой крутой ... )

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Извините, Вы о чем?

Разве я отрицал то, что lpc176x сохраняет и восстанавливает кучу регистров?

Виноват :) .

Я вроде интересовался - а зачем?

Чтобы сэкономить несколько комманд в сложных обработчиках ценой задержки реакции на

прерывание в простых?

Чего-нибудь приплести в оправдание необходимости сохранения 6-ти регистров (xPSR и PC - это не обсуждается :) ) наверное можно.

То есть, Вы предлагаете странности реализации не обсуждать?

А просто ждать и надеятся - а вдруг...

Нет :) . Обсуждать надо. С целью :) .

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

По gpio ответ вроде такой - оно в lpc176x не предназначено для паралельного ввода/вывода, поэтому не важно, сколько битов регистра

выведено и как они расположены.

Хотя задел для чипа, в котором ввод/вывод будет - неплохой. Проц может выводить за такт и похоже читать за такт.

Вот сколько тактов идет обмен словом gpio - ОЗУ не понятно. Но вряд ли за один.

 

Еще вопрос -

Из:

http://ics.nxp.com/support/faq/microcontrollers/lpc17xx/

 

Q Which debug and trace functions are integrated within the LPC17xx?

A The LPC17xx supports standard JTAG (5 pin), ARM Serial Wire Debug and Trace functions (Serial Wire Output), and parallel trace functions (ETM trace data—4 bits).

 

Q Is Boundary Scan available on the LPC1700 series?

A No. Boundary Scan is not currently available on the LPC1700 series.

 

То есть, по JTAG есть только дебагер и больше ничего?

Или дебагер по JTAG тоже не работает?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Может кто либо все же в курсе - сколько тактов занимает пересылка слова из gpio в ОЗУ по ПДП

в lpc176x ( если пересылается длинный блок )?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...