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

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

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

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

Есть GPIO interrupt на портах 0 и 2, можно конфигурировать срабатывание по edge (rising/falling/both) или level (high/low). Про "прочитались" не очень понял.

 

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

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

Есть и параллельный вывод. Можно одной инструкцией выставить значения 8/16/32 ножек любого порта, с маскировкой при необходимости (FIOxPIN/FIOxMASK).

 

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 тоже не работает?

Отладчик по JTAG и работает. А что ещё нужно?

 

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

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

Так одного слова или длинного блока? Конкретной информации не нашел, но думаю, что без учета расходов на начало/конец передачи скорость должна быть как раз 1 слово/такт.

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


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

Есть GPIO interrupt на портах 0 и 2, можно конфигурировать срабатывание по edge (rising/falling/both) или level (high/low). Про "прочитались" не очень понял.

 

Не понял, что Вы предлагаете.

Так конечно можно процессору просигналить, что новое слово на ножках установлено и он его может прочитать.

Но это требует затрат минимум 26 тактов.

Это слишком медленно.

Интересует другой вариант, когда внешнее устройство достаточно быстрое и по сигналу от контроллера - данные приняты достаточно быстро

выставляет следущие данные.

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

То есть. быстродействие ограничено только процессором.

Про "прочиталось" -это сигнал для внешнего устройства, что данные прочитаны и можно выставлять следующие.

 

 

Есть и параллельный вывод. Можно одной инструкцией выставить значения 8/16/32 ножек любого порта, с маскировкой при необходимости (FIOxPIN/FIOxMASK).

Можно. Но во первых нет ни одного сплошного 32х битного и есть всего один сплошной 16х битный в старших разрядах и разбросанный по кусочкам.

Ну Выставили Вы данные ( процессор вроде способен сделать это за 10 нсек ) и что дальше?

Как внешнему устройству узнать, что данные можно читать?

 

 

 

Отладчик по JTAG и работает. А что ещё нужно?

То, для чего JTAG изначально предназначался - проверка целостности платы.

Это называется - Boundary Scan.

Вот я и засомневался, может в нем JTAG просто для красоты...

 

 

Так одного слова или длинного блока? Конкретной информации не нашел, но думаю, что без учета расходов на начало/конец передачи скорость должна быть как раз 1 слово/такт.

 

Одного слова в блоке.

И запись в циклический буфер в ОЗУ.

Одно слово на такт - это было бы замечательно, а если и чтение и установка начала и длины следующего блока делается в фоне

( без перерыва в пересылке ) было бы просто великолепно.

Хотя при отсутствии сигнала - "прочитано" и достаточно бессмысленно.

 

Но описание ST32, в котором такты на ПДП расписаны ( там по описанию 6 тактов на слово а в приведенном примере пересылки 22 такта на

слово ) - вносит некие сомнения.

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


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

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

 

Что толку от этих тактов, если на сях прерывание съедало до сотни (не помню уже точно) тактов ?

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


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

Что толку от этих тактов, если на сях прерывание съедало до сотни (не помню уже точно) тактов ?

 

Дык кто же на сях пишет критичиские по времени реакции обработчики прерываний?

 

Да и основной код на этот проц писать на сях - это извращение - из конфетки делать г..но.

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


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

Да и основной код на этот проц писать на сях - это извращение - из конфетки делать г..но.

Да ну? :biggrin:

Понимаю, ещё какая нибудь тинька была с 256 байтами флеш и простейшая прошивка, но "дура" кортекс с кучей ресурсов и огромной скоростью, способная тянуть массивные и сложные программы и ОС.

 

Всё на асме? Не смешите мои тапки :laughing:

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


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

Да ну? :biggrin:

Понимаю, ещё какая нибудь тинька была с 256 байтами флеш и простейшая прошивка, но "дура" кортекс с кучей ресурсов и огромной скоростью, способная тянуть массивные и сложные программы и ОС.

 

Всё на асме? Не смешите мои тапки :laughing:

 

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

Даже критические по времени обработчики прерывания.

Так как получится практически то же самое, что на сях.

Если конечно на полную задействовать на сях все специальные опции для кортекса.

Какая разница, 15 тактов будет до первой реакции или 18...

 

Речь же шла про ADSP-21xx - чип от ADI.

Там есть разница, на четвертом или на 7 такте будет реакция.

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

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


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

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

Тогда прошу прощения :beer:

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


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

Пока парился, появилось еще несколько вопросов.

1. Во многих местах написано - после сброса процессор начинает выполнять программу с адреса 0x00000000.

Но встретил и такое - после сброса процессор загружает sp значением по адресу 0x00000000, ip значением по адресу 0x00000004.

И - после сброса процессор начинает выполнято программу из ROM...

И при выполнении неких условий переходит к выполнению программы из флеши.

Одно из условий - во флеш загружена пользовательская программа.

Это что за условие? Встречал такое - битовый XOR по первым семи словам флеши равен нулю.

И в каком именно виде проц вываливается во флешь?

 

Я не ошибаюсь, для кортекса инлайн ассемблер в принципе недоступен или это всего навсего заморочки Кейла?

И остается только интринсик...

 

Это только у меня инлайн хелп в Кейле недоделанный?

И приходится лезть в соответствующее описание, делать в нем поиск по данному слову и искать среди кучи найденного.

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


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

У вас все перемешано - ARM, Cortex-M и особенности процессоров NXP.

Выполнение с адреса 0 начинается в "больших" армах - ARM7/9/11 и Cortex-A/R. В Cortex-M используется таблица векторов. Первый указатель в ней - значение SP, второй - вектор Reset_Handler.

У процессоров NXP действительно имеется бутлоадер, который выполняется при сбросе, и только после проверки передаёт управление пользовательской программе. Подробности - LPC17xx User Manual, глава 32, раздел 3.1.1 - Criterion for Valid User Code.

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


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

У вас все перемешано - ARM, Cortex-M и особенности процессоров NXP.

Выполнение с адреса 0 начинается в "больших" армах - ARM7/9/11 и Cortex-A/R. В Cortex-M используется таблица векторов. Первый указатель в ней - значение SP, второй - вектор Reset_Handler.

У процессоров NXP действительно имеется бутлоадер, который выполняется при сбросе, и только после проверки передаёт управление пользовательской программе. Подробности - LPC17xx User Manual, глава 32, раздел 3.1.1 - Criterion for Valid User Code.

 

Вы прочли?

И что - это побитовое исключающее или первых 8 слов флешки?

Или - check-sum of table entries 0 through 6 - это что то другое? Тогда что?

 

И Вы уверены, что в ARM7/9/11 и Cortex-A/R после сброса выполняется команда - B 0x00000000?

 

Вы уверены, что после сброса в кортексе выполняется - в sp - значение слова по адресу 0x00000000 и переход по адресу во втором

слове, или это иммитирует бутлоадер?

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


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

Вы прочли?

И что - это побитовое исключающее или первых 8 слов флешки?

Или - check-sum of table entries 0 through 6 - это что то другое? Тогда что?

 

И Вы уверены, что в ARM7/9/11 и Cortex-A/R после сброса выполняется команда - B 0x00000000?

 

Вы уверены, что после сброса в кортексе выполняется - в sp - значение слова по адресу 0x00000000 и переход по адресу во втором

слове, или это иммитирует бутлоадер?

 

А вы кто - следователь прокуратуры?

RTFM!

А то вишь-ли ноги ему не нДравятся...

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


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

А вы кто - следователь прокуратуры?

RTFM!

А то вишь-ли ноги ему не нДравятся...

 

Ну да. Жуй, что дают и не задавай вопросов...

Правильно?

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


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

И что - это побитовое исключающее или первых 8 слов флешки?

Или - check-sum of table entries 0 through 6 - это что то другое? Тогда что?

А Вы проверьте - скомпилируйте прошивку для кортекса от NXP и сравните контрольное слово - простая это сумма или ксорка?

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


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

А Вы проверьте - скомпилируйте прошивку для кортекса от NXP и сравните контрольное слово - простая это сумма или ксорка?

 

Другой вариант - прежде чем задать вопрос - найди сам на него ответ...

Чуть лучше предыдущего...

Я в курсе, что можно залезть во флеш и посмотреть - что именно записано в ее начале.

В фале на заливку в начале слова такие:

10008000

00000211

00000219

0000021b

0000021d

0000021f

00000221

00000000

Жду Вашей версии.

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

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


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

Вы прочли?

И что - это побитовое исключающее или первых 8 слов флешки?

Или - check-sum of table entries 0 through 6 - это что то другое? Тогда что?

Обычное сложение.

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


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

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

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

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

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

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

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

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

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

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