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

Время выполнения команд в Cortex-M3.

Подскажите, пожалуйста, нет ли таблицы команд процессора Cortex-M3,

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

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


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

По ядру arm.com а вообще сколько ws Flash? Сколько ws RAM? Какая ширина данных Flash... и понеслось. Это уже НЕ AVR и иже с ним.

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


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

http://infocenter.arm.com/help/index.jsp?t...403c/index.html

Типа, в человеком можешь ты не быть, но в гугле понимать обязан.

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


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

А зачем это Вам?

 

Одной систмы команд мало, как уже сказано. Режим флеша, сочетание команд, работа шин...

На stm32f103

   str куда-то в APB2
   inc r2
   str куда-то в APB2

выполняются за то же время, что и

   str куда-то в APB2
   str куда-то в APB2

Просто во втором случае вторая команда str ждёт готовности шины, а в первом -- нет, за такт команды инкремента шина освободилась (на запись, это ещё никаких чтений не замешалось :) ).

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


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

http://infocenter.arm.com/help/index.jsp?t...403c/index.html

Типа, в человеком можешь ты не быть, но в гугле понимать обязан.

 

В этом времянки нет, она есть в

http://infocenter.arm.com/help/topic/com.a...m3_r2p0_trm.pdf

 

Почему то в последующих ревизиях этого документа времянку убрали.

 

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


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

А вот интересно, если 1Wire делать, то как посчитать? Или надо для конкретного сочетания кучи параметров делать?

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


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

Я считал по таймеру. Там задержки от 5 мкс и выше (если память не изменяет). По таймеру без прерываний. Просто считывая текущее состояние счётчика таймера в цикле.

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


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

А вот интересно, если 1Wire делать, то как посчитать? Или надо для конкретного сочетания кучи параметров делать?
1-ware можно сделать на штатном USART или использовать мост i2C<->1-Ware

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


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

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

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


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

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

 

Да не, делаете цикл из трех команд и имеете задержку от 5 наносекунд до нескольких часов с шагом в n наносекунд.

Чему равно n для данного проца - измеряете.

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

 

 

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


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

 

Deka, весь вопрос в точности соблюдения времянок протокола. Если надо совсем-совсем точно - то запрещаете все ( прерывания) и по тактам выстраиваете протокол. Время исполнения протокола - любая ИДЕ покажет. Но если что-то нужно поменять - такая "пирамидка" рассыпается, и приходится ее строить заново. Если контроллер работает только с одним протоколом (устройством) - то такой подход понять можно, но если снаружи происходит еще несколько событий, на которые нужно реагировать - то в итоге вы их пропустите :)

Обычно жертвуют одним аппаратным таймером. Он в прерывании отмеряет время кратное всем процессам.

В алгоритме протокола - сравнивают текущее число сработок таймера и предыдущее, если настало время что-то делать - делаем, нет - дальше ожидаем. При этом процессор в состоянии реагировать на остальные внешние и внутренние раздражители. Небольшое "дрожание" времени в протоколе наблюдаться будет (например из-за заходы в прерывания), но это плата за то, что такая "пирамидка" не распадется при изменении кода.

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


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

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

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

Гость
Ответить в этой теме...

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

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

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

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

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

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