|
|
  |
Счетчик машинных циклов |
|
|
|
Jun 14 2007, 22:00
|

山伏
    
Группа: Свой
Сообщений: 1 827
Регистрация: 3-08-06
Из: Kyyiv
Пользователь №: 19 294

|
Цитата(NewMaestro @ Jun 15 2007, 00:57)  Если я правильно понял, то EWB не предоставляет возможности посчитать сколько прошло машинных циклов от одной точки программы до другой. Люди, посоветуйте, как тайминги рассчитывать, когда такого счетчика нет. Я привык, что в MPLAB IDE он был. Это довольно удобно!
В EWB для AVR есть функция для организации задержек __delay_cycles(); А в компиляторе для NEC этой функции нет. Как сделать задержку с точностью +-1 маш.цикл без таймера, если нет функции __delay_cycles(); и если нет нет счетчика, чтобы цикл измерить? Зная тактовую - NOPами  ... Шучу конечно, если модератор захочет пусть удалит  .
--------------------
Нас помнят пока мы мешаем другим... //-------------------------------------------------------- Хороший блатной - мертвый... //-------------------------------------------------------- Нет старик, это те дроиды которых я ищу...
|
|
|
|
|
Jun 15 2007, 06:45
|

Частый гость
 
Группа: Свой
Сообщений: 76
Регистрация: 17-03-07
Из: Минск
Пользователь №: 26 243

|
Цитата Во, блин, проблема - нет функции __delay_cycles() - нету так напишите сами! А Вы мне блоксхемку подскажите. Так, чтоб с точностью до цикла. А то я, в отличие от Вас, новичок в этом деле. Цитата Кстати, шутка DRUID3 лишь отчасти. Если нужны задержки с точностью до такта, то действительно NOP-ами иногда подбирать приходится. Насчет отсутствия счетчика циклов не совсем понял. В какой версии для какого камня отсутствует? В отладчике (debugger) такого вроде и не было, но в симуляторе ИАР счетчик циклов должен быть. Камень NEC 78K0. Подскажите где искать в симуляторе.
|
|
|
|
|
Jun 15 2007, 18:55
|

Частый гость
 
Группа: Свой
Сообщений: 76
Регистрация: 17-03-07
Из: Минск
Пользователь №: 26 243

|
Цитата Функция задержки с точностью до цикла зависит от архитектуры и сисемы команд целевого кристалла. AVR-вариант компилятора функцию __delay_cycles() при аргументе 1, 2 (до нескольких) представляет в виде nop-ов, а при больших значениях уже цикл генерит и память юзает. Написали ж программеры... предусмотрели все... Цитата К сожалению с МК фирмы NEC я не знаком даже отдаленно. А че? Народ базарит, кто работал, что японские микроконтроллеры рулят  Ну типа NEC, Renesas - вещи что надо и что на нашем рынке они не завоевали популярность исключительно по историко-экономическим причинам. Не считали японцы нас достойыми потребителями долгое время и не целились на наш рынок. Тем не менее на мировом рынке, говорят, NEC в несколько раз рвет ATMEL. A Renesas рвет вообще всех.
|
|
|
|
|
Jun 15 2007, 20:55
|

Частый гость
 
Группа: Свой
Сообщений: 76
Регистрация: 17-03-07
Из: Минск
Пользователь №: 26 243

|
Цитата(KRS @ Jun 15 2007, 22:51)  Так то 51 от NEC, а 32 разрядные появились относительно недавно и намного позже ARM. А по выпуску 51 филипс (теперь NXP) всегда делал NEC, а вообще по количесву еще Texas безусловный лидер ( они собственно говоря и изобрели микросхемы ) А я с NEC недавно познакомился и про 51 у них ничего не слышал. Может вы имели ввиду просто 8-разрядные МК? У NEC это 78K0. Цитата И еще от области применения зависит. Если считать не количество экземпляров, а количество разных разработок, лидеры будут совсем другими. Вообще согласен. А вот это как думаете, правда или нет??
Я смотрю Atmel там не сильно заметен вообще.  А популярен же среди российских разработчиков, что просто трындец. Ну да ладно... отклонились от темы. Админы накажут... Цитата(IgorKossak @ Jun 15 2007, 11:50)  Возможно View->Register->CPU Registers->CYCLES (по крайней мере для AVR). Спасибо. Нашел. Сейчас буду разбираться.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|