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

 
 
10 страниц V  « < 7 8 9 10 >  
Reply to this topicStart new topic
> Вопрос по С++
Прохожий
сообщение Dec 25 2011, 18:04
Сообщение #121


Cундук
*****

Группа: Участник
Сообщений: 1 478
Регистрация: 13-11-06
Из: Ростов-на-Дону
Пользователь №: 22 269



Цитата(dxp @ Dec 25 2011, 21:47) *
Вы про шаблон Nops? Очень простое, эффективное, красивое и безопасное решение. Не понимаю, что вы там смогли усмотреть плохого. Компилятор на этапе компиляции рекурсивно разворачивает цикл, генерируя столько нопов подряд, сколько указано.

И тратит при этом процессорное время на пресловутые nop-ы.
Go to the top of the page
 
+Quote Post
neiver
сообщение Dec 25 2011, 18:08
Сообщение #122


Местный
***

Группа: Участник
Сообщений: 214
Регистрация: 22-03-10
Из: Саратов
Пользователь №: 56 123



Цитата(Прохожий @ Dec 25 2011, 22:04) *
И тратит при этом процессорное время на пресловутые nop-ы.

Сделайте, пожалуйста, задержку на 1-15 драгоценных тактов используя их на что-то полезное.
Go to the top of the page
 
+Quote Post
Прохожий
сообщение Dec 25 2011, 18:23
Сообщение #123


Cундук
*****

Группа: Участник
Сообщений: 1 478
Регистрация: 13-11-06
Из: Ростов-на-Дону
Пользователь №: 22 269



Цитата(neiver @ Dec 25 2011, 22:08) *
Сделайте, пожалуйста, задержку на 1-15 драгоценных тактов используя их на что-то полезное.

А зачем?
Если такая потребность возникает, то что-то не так с Вашей схемотехникой.
Go to the top of the page
 
+Quote Post
neiver
сообщение Dec 25 2011, 18:44
Сообщение #124


Местный
***

Группа: Участник
Сообщений: 214
Регистрация: 22-03-10
Из: Саратов
Пользователь №: 56 123



Ну возьмём, скажем, дисплей какой-нибудь на HD44780 или на KS0108 и подключим к какому-нибудь Cortex-у, работающему на 30 МГц. Контроллер ногами махает несколько быстрее, чем дисплею нужно.
Go to the top of the page
 
+Quote Post
Прохожий
сообщение Dec 25 2011, 19:01
Сообщение #125


Cундук
*****

Группа: Участник
Сообщений: 1 478
Регистрация: 13-11-06
Из: Ростов-на-Дону
Пользователь №: 22 269



Цитата(neiver @ Dec 25 2011, 22:44) *
Ну возьмём, скажем, дисплей какой-нибудь на HD44780 или на KS0108 и подключим к какому-нибудь Cortex-у, работающему на 30 МГц. Контроллер ногами махает несколько быстрее, чем дисплею нужно.

А что? I2C индикаторы запрещены к применению?
Или отменили MK с аппаратным параллельным портом?
Go to the top of the page
 
+Quote Post
Iptash
сообщение Dec 25 2011, 19:05
Сообщение #126


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

Группа: Свой
Сообщений: 1 613
Регистрация: 2-09-08
Из: г.Набережные Челны
Пользователь №: 39 936



Цитата(neiver @ Dec 25 2011, 22:44) *
Ну возьмём, скажем, дисплей какой-нибудь на HD44780 или на KS0108 и подключим к какому-нибудь Cortex-у, работающему на 30 МГц. Контроллер ногами махает несколько быстрее, чем дисплею нужно.

Да хоть на 700мГц, это не означает, что нужно ждать пока дисплей отработает, нужно в реальном времени работать и ценить каждый такт процессора.
Go to the top of the page
 
+Quote Post
dxp
сообщение Dec 26 2011, 04:01
Сообщение #127


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



QUOTE (Прохожий @ Dec 26 2011, 01:23) *
А зачем?
Если такая потребность возникает, то что-то не так с Вашей схемотехникой.

Причём тут схемотехника? Ситуации разные бывают. Применён дешёвый МК без контроллера внешней шины, скорости хватает за глаза, зато дешёвый и с задачей справляется.

QUOTE (Iptash @ Dec 26 2011, 02:05) *
Да хоть на 700мГц, это не означает, что нужно ждать пока дисплей отработает, нужно в реальном времени работать и ценить каждый такт процессора.

Это в теории. А на практике никуда не денетесь при работе с медленной периферией. Даже есть есть аппаратный контроллер внешней шины, то придётся ему wait state'ы настроить, чтобы времянки соблюсти, и при обращении к медленному устройству проц будет все равно ждать, если только обращение не через DMA организовано. DMA тоже есть далеко не везде.

Т.ч. вставка пары-тройки пустых операций иногда бывает нужна. И предложено очень красивое и эффективное решение.


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
sasamy
сообщение Dec 26 2011, 06:11
Сообщение #128


Знающий
****

Группа: Участник
Сообщений: 783
Регистрация: 22-11-08
Пользователь №: 41 858



Цитата(dxp @ Dec 26 2011, 08:01) *
Т.ч. вставка пары-тройки пустых операций иногда бывает нужна. И предложено очень красивое и эффективное решение.


Вот же заносит вас - речь вообще не о препроцессоре С, никакого определяющего значения в выборе языка для меня лично он не имеет, меня попросили привести пример где С++ уступает С. В ассемблерах препроцессор зарулит в этом плане С и С++. В повседневных задачах макросы используются в основном для именованых констант, условной компиляции и отладочных сообщений. Если говорить про UNIX то тут традиционно с препроцессингом нет проблем, достаточно вспомнить про lex, yacc, sed, awk, m4, по сравнению с которыми все темплейты С++ просто детский лепет, но использовать их в повседневных задачах - как из пушки по воробьям.

Сообщение отредактировал sasamy - Dec 26 2011, 06:22
Go to the top of the page
 
+Quote Post
Flexz
сообщение Dec 26 2011, 08:00
Сообщение #129


Местный
***

Группа: Свой
Сообщений: 252
Регистрация: 9-10-08
Из: Московская обл.
Пользователь №: 40 797



Вот же заносит вас sm.gif
Пример-то когда будете приводить? Или опять стрелки на макросы кинете, которые в обоих языках идентичны.
Go to the top of the page
 
+Quote Post
dxp
сообщение Dec 26 2011, 08:13
Сообщение #130


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



QUOTE (sasamy @ Dec 26 2011, 13:11) *
Вот же заносит вас - речь вообще не о препроцессоре С, никакого определяющего значения в выборе языка для меня лично он не имеет, меня попросили привести пример где С++ уступает С. В ассемблерах препроцессор зарулит в этом плане С и С++. В повседневных задачах макросы используются в основном для именованых констант, условной компиляции и отладочных сообщений. Если говорить про UNIX то тут традиционно с препроцессингом нет проблем, достаточно вспомнить про lex, yacc, sed, awk, m4, по сравнению с которыми все темплейты С++ просто детский лепет, но использовать их в повседневных задачах - как из пушки по воробьям.

Закончил уже с вами дискутировать на тему С++ по понятным причинам, которые внятно изложил XVR, но напоследок отвечу. sed и awk - чтоб вам ими всю жизнь пользоваться. biggrin.gif А по мне так - фтопку их. Для этого у меня есть Python. И уж для какой-то незаурядной кодогенерации я поюзаю COG, который в отличие от ваших недоделанных препроцессоров генерирует явный код прямо в сорце, т.е. видно, что скармливается компилятору. При этом и кодогенерирующие конструкции написаны на нормальном ЯП высокого уровня (куда выше, нежели тот же С++), а не на долбанных подстановках. Излишне говорить, что Python по юзабилити и эффективности использования ни в какое сравнение не идёт с вашим списком утилит. Но даже он не заменяет С++ шаблоны.

P.S. Помнится, как-то работая с IAR'овским пакетом (то ли для MSP430, то ли для AVR), завёл внутри функции локальный объект N (или С), после чего конкретно попрыгал вокруг этой простейшей функции, получая маловразумительные сообщения компилятора, которые никак не коррелировали с выражениями, на которые он ссылался. Нашёл, в чём дело. Оказалось, что именитая фирма в заголовках не стесняется лепить макросы:

CODE
#define C                   (0x0001)
#define Z                   (0x0002)
#define N                   (0x0004)
#define V                   (0x0100)


Что сказать? Пять баллов! Кстати, оно и до сих пор у них так. Вот оно могущество препроцессора. В создании геморроя на пустом месте.


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
sasamy
сообщение Dec 26 2011, 09:15
Сообщение #131


Знающий
****

Группа: Участник
Сообщений: 783
Регистрация: 22-11-08
Пользователь №: 41 858



Цитата(dxp @ Dec 26 2011, 12:13) *
А по мне так - фтопку их. Для этого у меня есть Python.


То что не умеете пользоваться sed и awk понятно, а Python и у меня есть.
Go to the top of the page
 
+Quote Post
dxp
сообщение Dec 26 2011, 10:24
Сообщение #132


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



QUOTE (sasamy @ Dec 26 2011, 16:15) *
То что не умеете пользоваться sed и awk понятно, а Python и у меня есть.

Если кому нравится выворачивать мозги, сочиняя код на птичьем языке потоковых редакторов, я не возражаю, а сам предпочитаю нормальный язык программирования. А вам если по существу сказать нечего, так промолчите, а хамить не надо, а то это обоюдоострая вещь.


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
sasamy
сообщение Dec 27 2011, 12:20
Сообщение #133


Знающий
****

Группа: Участник
Сообщений: 783
Регистрация: 22-11-08
Пользователь №: 41 858



Цитата(dxp @ Dec 26 2011, 14:24) *
Если кому нравится выворачивать мозги, сочиняя код на птичьем языке потоковых редакторов, я не возражаю, а сам предпочитаю нормальный язык программирования.


Смотря что вы называете "птичьим языком" - принцип регулярных выражений един для всех языков, включая sed, awk и Pythonb, у awk С-подобный синтиаксис. Никто для "сочинения кода" sed и awk не использует - когда то им на замену был придуман Perl, сегодня наверно целесообразней применять Python - тут на любителя, но sed и awk в повседневном использовании в UNIX-подобных системах они никогда не заменят, факт - find, sed, awk пожалуй самые использумые команды в юниксах.

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


Хамить вам я и не собирался - ткните пальцем если найдете, я извинюсь если был не прав, если вы о том что не умеете пользоваться sed и awk - извините конечно, вы наверно пользователь Windows и лишены таких инструментов sm.gif По поводу препроцессинга и шаблонов - шаблоны в С++ мощней препроцессора С хотя бы потому что оптимизируются компилятором (и вообще о том что нужны ли шаблоны в С++ - нужны и вряд ли их там что-то может заменить), в С мне шаблоны не нужны - достаточно препроцессора, и некоторые вещи из того что он умеет на шаблонах не сделать или это будет очень затруднительно. Еще по поводу препроцессинга и метапрограммирования - из того чем последнее время интересовался :
Qt - moc + препроцессор С
L4 - препроцессинг на Perl
так что механизма шаблонов С++ для _крупных_ проектов многим явно недостаточно.
По поводу UI и удобства ООП - посмотрите совремненные тенденции, в том же Qt активно развивается QML - описание интерфейса в декларативном стиле, логика на JavaScript подобном языке - знания С++ для написания GUI вообще не требуется, хотя сама Qt написана на С++.
По поводу системного программирования и С++ - ядро Windows до сих пор пишут на С (это по вашему крупный или мелкий проект)

Все можно выдыхать sm.gif

Сообщение отредактировал sasamy - Dec 27 2011, 12:57
Go to the top of the page
 
+Quote Post
XVR
сообщение Dec 27 2011, 13:13
Сообщение #134


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Кстати. То, что sed,awk и perl очень полезные и могучие языки, ни коим образом не прибавляет им понятности sm.gif
Злые языки утверждают, что название awk произошло от awkward (неуклюжий), а perl расшифровывается как Pathologically Eclectic Rubbish Lister (это кстати определение от Larry Wall - автора Perl'а)
Цитата
так что механизма шаблонов С++ для _крупных_ проектов многим явно недостаточно.
Разумеется. В С++ из шаблонов уже выжали столько, сколько Bjarne Stroustrup'у и в кошмарном сне не виделось sm.gif
Go to the top of the page
 
+Quote Post
dxp
сообщение Dec 27 2011, 15:24
Сообщение #135


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



sed'ом и awk успел попользоваться изрядно, хоть и под вендой. Хорошие штуки, когда надо обрабатывать единичные строки. Как только нужно многострочный текст обработать, начинаются пляски. Как познакомился с Python'ом, так не нарадуюсь до сих пор. Те же регулярные выражения в полный рост, но использование не в пример проще и прозрачнее Для кодогенерации есть хороший инструмент COG (ссылку приводил).

Что касается С/С++, то стою на прежнем: где уместен С, там уместен и С++. Применять или не применять - это вопрос в значительной мере субъективный, зависит от применяющего. Но объективных противопоказаний у С++ по сравнению с С в контексте МК нет.

Ладно, давно не топик уже.


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post

10 страниц V  « < 7 8 9 10 >
Reply to this topicStart new topic
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 20:56
Рейтинг@Mail.ru


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