реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Счетчик машинных циклов
NewMaestro
сообщение Jun 14 2007, 21:57
Сообщение #1


Частый гость
**

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



Если я правильно понял, то EWB не предоставляет возможности посчитать сколько прошло машинных циклов от одной точки программы до другой. Люди, посоветуйте, как тайминги рассчитывать, когда такого счетчика нет. Я привык, что в MPLAB IDE он был. Это довольно удобно!

В EWB для AVR есть функция для организации задержек __delay_cycles(); А в компиляторе для NEC этой функции нет. Как сделать задержку с точностью +-1 маш.цикл без таймера, если нет функции __delay_cycles(); и если нет нет счетчика, чтобы цикл измерить?
Go to the top of the page
 
+Quote Post
DRUID3
сообщение Jun 14 2007, 22:00
Сообщение #2


山伏
*****

Группа: Свой
Сообщений: 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ами biggrin.gif ...

Шучу конечно, если модератор захочет пусть удалит smile.gif .


--------------------
Нас помнят пока мы мешаем другим...
//--------------------------------------------------------
Хороший блатной - мертвый...
//--------------------------------------------------------
Нет старик, это те дроиды которых я ищу...
Go to the top of the page
 
+Quote Post
rezident
сообщение Jun 14 2007, 22:46
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Во, блин, проблема - нет функции __delay_cycles() - нету так напишите сами! Кстати, шутка DRUID3 лишь отчасти. Если нужны задержки с точностью до такта, то действительно NOP-ами иногда подбирать приходится.
Насчет отсутствия счетчика циклов не совсем понял. В какой версии для какого камня отсутствует? В отладчике (debugger) такого вроде и не было, но в симуляторе ИАР счетчик циклов должен быть.
Go to the top of the page
 
+Quote Post
NewMaestro
сообщение Jun 15 2007, 06:45
Сообщение #4


Частый гость
**

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



Цитата
Во, блин, проблема - нет функции __delay_cycles() - нету так напишите сами!


А Вы мне блоксхемку подскажите. Так, чтоб с точностью до цикла. А то я, в отличие от Вас, новичок в этом деле.

Цитата
Кстати, шутка DRUID3 лишь отчасти. Если нужны задержки с точностью до такта, то действительно NOP-ами иногда подбирать приходится.
Насчет отсутствия счетчика циклов не совсем понял. В какой версии для какого камня отсутствует? В отладчике (debugger) такого вроде и не было, но в симуляторе ИАР счетчик циклов должен быть.


Камень NEC 78K0. Подскажите где искать в симуляторе.
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Jun 15 2007, 08:50
Сообщение #5


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Цитата(NewMaestro @ Jun 15 2007, 09:45) *
Подскажите где искать в симуляторе.

Возможно View->Register->CPU Registers->CYCLES (по крайней мере для AVR).
Go to the top of the page
 
+Quote Post
rezident
сообщение Jun 15 2007, 09:48
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(NewMaestro @ Jun 15 2007, 12:45) *
А Вы мне блоксхемку подскажите. Так, чтоб с точностью до цикла. А то я, в отличие от Вас, новичок в этом деле.
Камень NEC 78K0. Подскажите где искать в симуляторе.

Функция задержки с точностью до цикла зависит от архитектуры и сисемы команд целевого кристалла. К сожалению с МК фирмы NEC я не знаком даже отдаленно.
Go to the top of the page
 
+Quote Post
NewMaestro
сообщение Jun 15 2007, 18:55
Сообщение #7


Частый гость
**

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



Цитата
Функция задержки с точностью до цикла зависит от архитектуры и сисемы команд целевого кристалла.


AVR-вариант компилятора функцию __delay_cycles() при аргументе 1, 2 (до нескольких) представляет в виде nop-ов, а при больших значениях уже цикл генерит и память юзает. Написали ж программеры... предусмотрели все...

Цитата
К сожалению с МК фирмы NEC я не знаком даже отдаленно.


А че? Народ базарит, кто работал, что японские микроконтроллеры рулят smile.gif Ну типа NEC, Renesas - вещи что надо и что на нашем рынке они не завоевали популярность исключительно по историко-экономическим причинам. Не считали японцы нас достойыми потребителями долгое время и не целились на наш рынок. Тем не менее на мировом рынке, говорят, NEC в несколько раз рвет ATMEL. A Renesas рвет вообще всех. smile.gif
Go to the top of the page
 
+Quote Post
KRS
сообщение Jun 15 2007, 19:51
Сообщение #8


Профессионал
*****

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



Цитата(NewMaestro @ Jun 15 2007, 22:55) *
Тем не менее на мировом рынке, говорят, NEC в несколько раз рвет ATMEL. A Renesas рвет вообще всех. smile.gif


Так то 51 от NEC, а 32 разрядные появились относительно недавно и намного позже ARM.
А по выпуску 51 филипс (теперь NXP) всегда делал NEC, а вообще по количесву еще Texas безусловный лидер ( они собственно говоря и изобрели микросхемы )

И еще от области применения зависит. Если считать не количество экземпляров, а количество разных разработок, лидеры будут совсем другими.
Go to the top of the page
 
+Quote Post
NewMaestro
сообщение Jun 15 2007, 20:55
Сообщение #9


Частый гость
**

Группа: Свой
Сообщений: 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 там не сильно заметен вообще. smile.gif А популярен же среди российских разработчиков, что просто трындец.

Ну да ладно... отклонились от темы. Админы накажут...




Цитата(IgorKossak @ Jun 15 2007, 11:50) *
Возможно View->Register->CPU Registers->CYCLES (по крайней мере для AVR).



Спасибо. Нашел. Сейчас буду разбираться.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 16:32
Рейтинг@Mail.ru


Страница сгенерированна за 0.01413 секунд с 7
ELECTRONIX ©2004-2016