|
Несколько вопросов по lpc176x |
|
|
|
Apr 12 2010, 16:29
|
Частый гость
 
Группа: Участник
Сообщений: 197
Регистрация: 8-04-05
Пользователь №: 3 977

|
1. Почему у него такая странная распиновка выводов? На 100 ногах нашли место только для 70 gpio, причем ни одного целого 32х битного регистра, всего один целый 16 битный а разбросаны и перемешаны они - мама не горюй! Наследие тяжелого прошлого? Как красиво с этим у ST32 - 5 16 битных регистров и почти все ножки в ряд. 2. 12 тактов входа в прерывание и 12 тактов выхода из него ( обязательных ) преподносится как достижение. Вроде достижением было у ADSP 218x - полтора такта до первой команды в прерывании и 1 такт на выход. 3. Меня интересует, в lpc176x ПДП такое же тормозное.... Правда, по слухам, до кортексов у АРМа с этим было еще хуже.
Причина редактирования: Дублирование вопроса в разных темах
|
|
|
|
|
Apr 12 2010, 17:10
|

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

|
Цитата(vallav @ Apr 12 2010, 18:44)  1. Почему у него такая странная распиновка выводов? Вопрос риторический? Или как? Если или как, то видимо Вас забыли спросить, как и по каким критериям им проектировать чипы. Думаю, что Вам следует немедленно связаться и направить на путь истинный. Цитата 2. 12 тактов входа в прерывание и 12 тактов выхода из него ( обязательных ) преподносится как достижение. Вроде достижением было у ADSP 218x - полтора такта до первой команды в прерывании и 1 такт на выход. Отличный результат. А как ADSP за полтакта, например, в стек регистры запихивал? Нет? Тогда может стоит для начала банально зайти не на gaw.ru а на arm.com и так сказать приникнуть к первоисточнику. Там все по тактам расписано. Цитата по слухам, до кортексов у АРМа с этим было еще хуже. Реализация DMA контроллера и M3 ядро, равно и как ARM7 ядро вещи разные. Слухи в другом месте, пожалуйста, обсуждайте.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Apr 13 2010, 05:06
|
Частый гость
 
Группа: Участник
Сообщений: 197
Регистрация: 8-04-05
Пользователь №: 3 977

|
Цитата(sonycman @ Apr 12 2010, 22:24)  Можно под шумок спросить знатоков - сколько тактов уходит у LPC17xx на обращение к регистрам периферии? К примеру, к регистрам таймеров?
Уважаемый Zltigo даже старается заменить такие обращения работой с простой ОЗУ... Встречал, что, если код написан на ассемблере, внешней ногой можно дрыгать с тактовой частотой. Цитата(zltigo @ Apr 12 2010, 21:25)  Вопрос риторический? Или как? Если или как, то видимо Вас забыли спросить, как и по каким критериям им проектировать чипы. Думаю, что Вам следует немедленно связаться и направить на путь истинный. Вы не поняли. Меня интересовало - зачем такая разводка сделана. И еще одно - почему нет сигнала о том, что с ног значения прочитались или значения на ногах изменились? Или gpio в данном проце просто так, для красоты? Цитата(zltigo @ Apr 12 2010, 21:25)  Отличный результат. А как ADSP за полтакта, например, в стек регистры запихивал? Нет? Тогда может стоит для начала банально зайти не на gaw.ru а на arm.com и так сказать приникнуть к первоисточнику. Там все по тактам расписано. Вот так и запихивал. Но не за полтакта, а за такт. Правда я ошибся - от асинхронного сигнала первая команда прерывания начинает исполняться через 2.5 такта. Метостабильность давить надо. От внутреннего ( таймера ) через 1 такт. Вы банально на arm.com заходили? Ссылочку на файл, аналогичный приведенному мной, но про lpc176x не приведете? Про общие описания ядра cortex-M3 ссылки приводить не надо. Интересует конкретная реализация lpc176x у NXP и ее отличия ( в тактах ) от других компаний. Странно конечно, что искать это Вы на АРМе предлагаете, но Вам виднее... Цитата(zltigo @ Apr 12 2010, 21:25)  Реализация DMA контроллера и M3 ядро, равно и как ARM7 ядро вещи разные. Слухи в другом месте, пожалуйста, обсуждайте. Я в курсе. По заданному вопросу что либо ответить сможите? Сколько тактов занимает передача по ПДП от gpio в ОЗУ?
Сообщение отредактировал vallav - Apr 13 2010, 05:08
|
|
|
|
|
Apr 13 2010, 08:16
|

Любитель
    
Группа: Свой
Сообщений: 1 864
Регистрация: 20-08-06
Из: Тольятти
Пользователь №: 19 695

|
Цитата(vallav @ Apr 13 2010, 09:21)  Встречал, что, если код написан на ассемблере, внешней ногой можно дрыгать с тактовой частотой. С тактовой частотой - это, к примеру, с частотой 100 МГц? Сильно в этом сомневаюсь  Аппаратно ещё может быть достигнута частота в районе 50 МГц, но программно реальная цифра - около 10 МГц. Имхо. Цитата(vallav @ Apr 13 2010, 09:21)  Вот так и запихивал. Но не за полтакта, а за такт. Cortex-M3 при входе в прерывание аппаратно сохраняет на стёке 8 32 битных регистров. Соответственно, при выходе - их восстанавливает. Отсюда такая задержка. Опять же сомнительно, что указанный вами проц за такт успевает сделать что-то подобное.
|
|
|
|
|
Apr 13 2010, 09:10
|

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

|
Цитата(vallav @ Apr 13 2010, 07:21)  Встречал, что, если код написан на ассемблере, внешней ногой можно дрыгать с тактовой частотой. Ха! Цитата Вот так и запихивал. Но не за полтакта, а за такт. Даже смеяться не буду. Документация, однако: Код 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 это не зависит?
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Apr 13 2010, 10:31
|
Местный
  
Группа: Участник
Сообщений: 328
Регистрация: 23-05-08
Пользователь №: 37 760

|
Цитата(vallav @ Apr 13 2010, 09:21)  Про общие описания ядра cortex-M3 ссылки приводить не надо. Интересует конкретная реализация lpc176x у NXP и ее отличия ( в тактах ) от других компаний. А что, у NXP есть чиста конкретная  реализация ядра Cortex-M3? Я всегда думал, что NXP и другие компании просто купили и "вставили" в свои МК "готовое" IP-ядро - процессор Cortex-M3, в состав которого входит и NVIC... И поэтому тут пофиг чей микроконтроллер - NXP, ST, Luminary... "Миландр"  . А временные характеристики относительно обработки прерываний и у них будут одинаковыми. Или вы хотите сказать, что каждая компания, купившая у фирмы "ARM" IP-ядро процессора Cortex-M3, потом его напильником дорабатывает? Цитата(vallav @ Apr 13 2010, 09:21)  Вы банально на arm.com заходили? Ссылочку на файл, аналогичный приведенному мной, но про lpc176x не приведете? Странно конечно, что искать это Вы на АРМе предлагаете, но Вам виднее... Вот... Все, что касается CPU Cortex-M3 - искать на arm.com, как на первоисточнике. Все остальное, что не относится к CPU Cortex-M3 - для каждого производителя микроконтроллеров это специфичные вещи. Или я не прав?  P.S. Как-то слишком резво вы на NXP набросились.
|
|
|
|
|
Apr 13 2010, 10:51
|
Частый гость
 
Группа: Участник
Сообщений: 197
Регистрация: 8-04-05
Пользователь №: 3 977

|
Цитата(sonycman @ Apr 13 2010, 12:31)  С тактовой частотой - это, к примеру, с частотой 100 МГц? Сильно в этом сомневаюсь  Аппаратно ещё может быть достигнута частота в районе 50 МГц, но программно реальная цифра - около 10 МГц. Имхо. Частота естественно не 100 а 50 мгц ( при 100 - тактовой ). Сам я не пробовал, читал в конфе - на С++ не получается ( много мусора вставляется ) а на АСМ импульсы длительностью 10 нсек на ноге - вполне. Цитата(sonycman @ Apr 13 2010, 12:31)  Cortex-M3 при входе в прерывание аппаратно сохраняет на стёке 8 32 битных регистров. Соответственно, при выходе - их восстанавливает. Отсюда такая задержка.
Опять же сомнительно, что указанный вами проц за такт успевает сделать что-то подобное. Дык он этого и не делает. Далеко не во всех прерываниях нужно столько регистров. Он сохраняет в стеке только самое необходимое - адрес возврата и состояние ядра на момент прерывания. А какие именно регистры обработчик будет портить - те пусть сам и сохраняет/восстанавливает. Вроде для контроллера откликнуться на воздействие через 3 такта важнее, чем несколько лишних комманд в сложном обработчике. Цитата(zltigo @ Apr 13 2010, 13:25)  Ха!
Даже смеяться не буду.
И Вам советую. Контроллер прерывания у Cortex-M3, отличие от напимер ARM7, в ядре и про "12 тактов" можете смело читать.
Да? К чему тогда был опус с тем, что "до кортексов у АРМа с этим было еще хуже", если Вы были "в курсе", что от ядра и соответственно от компании ARM это не зависит? Вы когда насмеетесь, попробуйте все же хоть что либо осмысленное написать. Или Вы только острить и хихикать умеете? Цитата(Student Pupkin @ Apr 13 2010, 14:46)  А что, у NXP есть чиста конкретная  реализация ядра 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 - вполне обычная? Или в том, что поинтересовался тем, за сколько тактов операции в нем свершаются? Полагаете, этим интересоваться не очень этично?
|
|
|
|
|
Apr 13 2010, 11:16
|
Местный
  
Группа: Участник
Сообщений: 328
Регистрация: 23-05-08
Пользователь №: 37 760

|
Цитата(vallav @ Apr 13 2010, 14:55)  Дык он этого и не делает. Далеко не во всех прерываниях нужно столько регистров. Он сохраняет в стеке только самое необходимое - адрес возврата и состояние ядра на момент прерывания... Вот что пишут в "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, только по-русски  . Цитата(vallav @ Apr 13 2010, 15:06)  В том то и дело, что дорабатывают и довольно нехило. Не само ядро, а то, что ядро окружает. Такты на операцию при этом получаются другими. Да и сами операции по другому проводятся. Например, в каналах ПДП... Да, именно про это я и говорил. ПДП, например, не относится к ЦПУ, также как и ускорители выборки из flash-памяти и т.д. Поэтому все эти вещи производитель описывает в совем даташите/референс-мануале Цитата(vallav @ Apr 13 2010, 15:06)  Все, что касается ядра Cortex-M3 - можно искать на arm.com, а вот про конкретные особенности реализации конкретного контроллера на этом ядре - полагаю там искать бесполезно. Описание конкретного МК искать ясен пень бесполезно. С другой стороны - какие-то периферийные узлы какие-то производители не делают сами, а также покупают в виде IP-модулей у той же ARM. Например, у LPC24xx - Vectored Interrupt Controller (VIC). Поэтому в общем случае и поиск на arm.com может помочь, если: 1- вы знаете, что конкретно этот кусок периферии разработала ARM (производитель в документации об этом сказал); 2 - информации по конкретному периферийному узлу, которую предоставил производитель, вам по тем или иным причинам недостаточно. Цитата(vallav @ Apr 13 2010, 15:06)  В чем именно Вы увидали резвость? В том, что удивился их распиновке gpio? Да  . Разумного ответа дать никто не сможет. Но появится повод еще раз устроить батл NXPvsST или что-то в этом роде. Но я вообщем-то тут нет никто и звать никак. Так что спрашивайте, не стесняйтесь  .
|
|
|
|
|
Apr 13 2010, 11:18
|

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

|
Цитата(vallav @ Apr 13 2010, 13:06)  Вы когда насмеетесь, попробуйте все же хоть что либо осмысленное написать. Или Вы только острить и хихикать умеете? Простите, но в отличие от Вас, транслирующего сюда, байки, я хоть немного, но осмысленного уже написал. Теперь могу и похихикать в ответ на очередную байку. Ответа мой вопрос, естественно нет, но судя по всему Вы стремительно прогрессируете в изучении архитектуры. Это радует!
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Apr 13 2010, 11:41
|
Частый гость
 
Группа: Участник
Сообщений: 197
Регистрация: 8-04-05
Пользователь №: 3 977

|
Цитата(Student Pupkin @ Apr 13 2010, 15:31)  Вот что пишут в "ARMv7-M Architecture Reference Manual" То же самое на gaw.ru, только по-русски  . Извините, Вы о чем? Разве я отрицал то, что lpc176x сохраняет и восстанавливает кучу регистров? Я вроде интересовался - а зачем? Чтобы сэкономить несколько комманд в сложных обработчиках ценой задержки реакции на прерывание в простых? Цитата(Student Pupkin @ Apr 13 2010, 15:31)  Да, именно про это я и говорил. ПДП, например, не относится к ЦПУ, также как и ускорители выборки из flash-памяти и т.д. Поэтому все эти вещи производитель описывает в совем даташите/референс-мануале Описание конкретного МК искать ясен пень бесполезно. С другой стороны - какие-то периферийные узлы какие-то производители не делают сами, а также покупают в виде IP-модулей у той же ARM. Например, у LPC24xx - Vectored Interrupt Controller (VIC). Поэтому в общем случае и поиск на arm.com может помочь, если: 1- вы знаете, что конкретно этот кусок периферии разработала ARM (производитель в документации об этом сказал); 2 - информации по конкретному периферийному узлу, которую предоставил производитель, вам по тем или иным причинам недостаточно. Да  . Разумного ответа дать никто не сможет. Но появится повод еще раз устроить батл NXPvsST или что-то в этом роде. Но я вообщем-то тут нет никто и звать никак. Так что спрашивайте, не стесняйтесь  . То есть, Вы предлагаете странности реализации не обсуждать? А просто ждать и надеятся - а вдруг... Цитата(zltigo @ Apr 13 2010, 15:33)  Простите, но в отличие от Вас, транслирующего сюда, байки, я хоть немного, но осмысленного уже написал. Теперь могу и похихикать в ответ на очередную байку. Ответа мой вопрос, естественно нет, но судя по всему Вы стремительно прогрессируете в изучении архитектуры. Это радует! А понял! У Вас эта штука ( ну которыми крутые меряются ) уже отросла настолько длинной, что Вы способны только острить и хихикать... Тады продолжайте, не буду Вам мешать. ( я же не знал, что Вы такой крутой ... )
|
|
|
|
|
Apr 13 2010, 12:13
|
Местный
  
Группа: Участник
Сообщений: 328
Регистрация: 23-05-08
Пользователь №: 37 760

|
Цитата(vallav @ Apr 13 2010, 15:56)  Извините, Вы о чем? Разве я отрицал то, что lpc176x сохраняет и восстанавливает кучу регистров? Виноват  . Цитата(vallav @ Apr 13 2010, 15:56)  Я вроде интересовался - а зачем? Чтобы сэкономить несколько комманд в сложных обработчиках ценой задержки реакции на прерывание в простых? Чего-нибудь приплести в оправдание необходимости сохранения 6-ти регистров (xPSR и PC - это не обсуждается  ) наверное можно. Цитата(vallav @ Apr 13 2010, 15:56)  То есть, Вы предлагаете странности реализации не обсуждать? А просто ждать и надеятся - а вдруг... Нет  . Обсуждать надо. С целью  .
|
|
|
|
|
Apr 15 2010, 05:25
|
Частый гость
 
Группа: Участник
Сообщений: 197
Регистрация: 8-04-05
Пользователь №: 3 977

|
По 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 тоже не работает?
|
|
|
|
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|