Category: C и C++

Июн 15 2015

Цитата

Цитата из книги Б. Страуструп «Язык программирования С++» (гл.23.3) (текст выделен мной):
«Обычный подход… заключается в том, чтобы свести разработку к задачам относительно низкого уровня, подгоняемых под общую грубую схему. То есть идея заключается в том, что создаётся класс быстро обучаемых (дешевых) взаимозаменяемых программистов низкого уровня («кодировщиков») и класс не таких дешевых, но столь же взаимозаменяемых (и, стало быть, столь же малоценных) проектировщиков. Предполагается, что кодировщики не принимают проектных решений, в то время как проектировщики не утруждают себя грубой работой по вниканию в детали кодирования. Такой подход часто приводит к неудаче. Там, где он работает, в результате получаются чрезмерно громоздкие системы с низкой производительностью.

По сути дела, такой системе не хватает механизма обратной связи, чтобы люди учились на чужом опыте. Это растрата человеческого таланта. Создание среды разработки, в рамках которой человек может проявлять разнообразные таланты, развивать новые способности, вносить идеи и радоваться своей работе — это не просто цель, достойная сама по себе, но вещь, приносящая практическую экономическую выгоду.«

Май 06 2015

Книга Б. Страуструп «Дизайн и эволюция C++»

Дочитал книгу «Дизайн и эволюция С++».

1231405218_dizajjn-i-jevoljucija

Книга не является учебником по С++, это очень интересный рассказ автора языка о причинах, по которым в язык были введены или не были введены те или иные конструкции.
Рекомендуется тем, кто интересуется языком С++ в его глубоких аспектах (несмотря на кажущуюся простоту, это очень глубокий язык с множеством подводных камней).

Апр 22 2015

Книга «Как программировать на C++»

Дочитал книгу «Как программировать на C++», авторы Х. Дейтел, П. Дейтел (C++ How To Program. H.M.Deitel, P.J.Deitel).

IMG_20150422_091531

Не могу сказать, что узнал что-то новое, но хотя бы повторил некоторые нюансы библиотеки STL. Книга большая, 1152 с.

Мар 21 2015

Книга Шилдт Г. «С++ Базовый курс»

Прочитал эту книгу, понравилось. Рассмотрен очень подробно весь синтаксис языка С++, и в конце дан обзор библиотеки STL с подробным рассмотрением нескольких шаблонов.

50226533
Read more »

Фев 17 2015

FPU. Часть 1

Не задумывались ли вы о том, как работает FPU процессора? Казалось бы, там всё довольно просто. Есть стандарт представления чисел с плавающей точкой, IEEE754, а сама реализация арифметических операций очевидна.
Но на самом деле, за кажущейся простотой скрыто множество нюансов.

Read more »

Дек 02 2014

Книга Bruno Cardoso Lopes «Getting Started with LLVM Core Libraries»

Весьма хорошая книга, прояснила некоторые моменты. Конечно, инфраструктура LLVM слишком велика, чтобы ее можно было описать в одной книге, но она дает понимание и направление для дальнейших экспериментов.

812KZWXZ8VL._AA1500_812KZWXZ8VL._AA1500_

 

Ноя 11 2014

Всё, что вы хотели знать про Binutils, но стеснялись спросить

http://atgreen.github.io/ggx/

Дек 31 2013

Об отладке Arduino и VisualMicro

Решил поиграться с Arduino. Для того, чтобы писать и отлаживать код, решил поставить что-либо более приспособленное для этой цели, чем Arduino IDE. Первое, что пришло в голову, это Eclipse + avr-gcc. Увы, настроить эту связку очень непросто.

В итоге без проблем установился только Arduino Eclipse Plugin отсюда: http://www.baeyens.it/eclipse/. Но, к сожалению, он не имеет возможности установки breakpoint-ов и просмотра переменных в программе.

Второй попыткой стала связка Microsoft Visual Studio 2012 и плагина Visual Micro. Всё поставилось без проблем (подсказка: на VS2013 плагин не ставится). Для наиболее простой установки плагина на VS2012 нужно сделать следующее: Установить Visual Micro, в VS вызвать add-in manager (меню Tools), в нем поставить чекбокс на Visual Micro Arduino. Потом идём в папку установки Visual Micro (например, C:\Program Files (x86)\Visual Micro\Visual Micro for Arduino) и запускаем MicroManager.exe. Нажимаем на кнопку Reset напротив надписи Visual Studio 2012. Установка готова.

Открываем новый скетч (File->New->Scetch Project), копируем что-нибудь из примеров, подключаем Arduino и нажимаем F5. Скетч компилируется и загружается в ардуино. Теперь о точках останова.

Для того, чтобы все возможности отладки работали, выбираем проект в SolutionExplorer, в окне Properties ставим Misc->(MicroDebug) = Full. Также можно настроить раздел Micro Debug Reporting, если вы хотите видеть состояние дискретных и аналоговых портов.

Ставим брейкпоинт, как обычно, и снова загружаем код в плату по F5. Код загружается и останавливается на брейкпоинте. Для того, чтобы продолжить выполнение кода, нужно снова нажать на F5. Теперь самое интересное. При запуске появляется окно Test | Expressions, в котором можно просматривать значения переменных и выражений, но оно пустое. Для того, чтобы в нем отображались значения переменных в точке останова, нажимаем правой кнопкой мыши на красный кружочек, нажимаем When Hit…, ставим галочку на «Print a message», и вписываем, например, следующее: i={i=?}, n={n=?}, где i и n — имена переменных, которые нам нужно просматривать. Снова загружаем код в плату, всё работает, значения переменных отображаются.

Разумеется, можно указывать и условия для точки останова, и сообщения, которые будут выводиться при попадании в точку останова.

Нажмите на картинку для увеличения.

Сен 11 2012

Книга В.А. Галатенко «Программирование в стандарте POSIX»

Курс лекций интернет-университета «Интуит» по программированию в стандарте POSIX (лекции можно прочесть на сайте intuit.ru бесплатно).

Книга охватывает только самые базовые понятия стандарта POSIX, и может служить отправной точкой для дальнейшего изучения стандарта.

Мар 24 2012

Подключение цветного LCD с сенсорным экраном к микроконтроллеру

Перепост с Хабрахабра:

Добрый день, хабр. Сегодня я хотел бы поделиться некоторым опытом, касающимся подключения цветных LCD-индикаторов к микроконтроллеру. Эта тема уже поднималась на хабре (http://habrahabr.ru/post/139384/), поэтому данный пост может рассматриваться как дополнение к уже написанному моими уважаемыми коллегами.

Читать далее:   http://habrahabr.ru/post/140415/