Статьи

Создаем ELF-файл с отладочной информацией (DWARF) вручную (для микроконтроллеров ARM)

Опубликовано 02.01.2014 12:10 пользователем Admin. Оставить комментарий

Эта статья — копия моей статьи на Хабре.

Введение

С недавнего времени я увлекся микроконтроллерами. Сначала AVR, затем ARM. Для программирования микроконтроллеров существует два основных варианта: ассемблер и С. Однако, я фанат языка программирования Форт и занялся портированием его на эти микроконтроллеры. Конечно, существуют и готовые решения, но ни в одном из них не было того, что я хотел: отладки с помощью gdb. И я задался целью заполнить этот пробел (пока только для ARM). В моем распоряжении была плата stm32vldiscovery с 32-битным процессором ARM Cortex-M3, 128кБ flash и 8 кБ RAM, поэтому я и начал с нее.

Писал я кросс-транслятор Форта конечно на Форте, и кода в статье не будет, так как этот язык считается экзотическим. Ограничусь достаточно подробными рекомендациями. Документации и примеров в сети по предмету почти нет, некоторые параметры подбирались мной путем проб и ошибок, некоторые — путем анализа выходных файлов компилятора gcc. Кроме того, я использовал только необходимый минимум отладочной информации, не касаясь, например, relocation-ов и множества других вещей. Тема очень обширна и, признаюсь, разобрался я с ней только процентов на 30, что оказалось для меня достаточным.

Кого заинтересует этот проект, может скачать код здесь.

(далее…)

Страница просмотрена 895 раз(а)

Множество Мандельброта и Множества Жюлиа

Опубликовано 23.07.2013 17:51 пользователем Admin. Оставить комментарий
Фракталы — это математические объекты дробной размерности. Самые иозвестные фракталы — множество Мандельброта и родственные ему множества Жюлиа.

Множество Мандельброта носит имя Бенуа Мандельброта, ученого, работающего (или работавшего — не знаю) в Исследовательском центре Томаса Уотсона фирмы IBM в Йорктаун-Хайтсе (шт. Нью-Йорк).

Множество Мандельброта — обитатель комплексной плоскости, то есть обычной плоскости, каждая точка которой характеризуется двумя координатными значениями. Точнее говоря, каждая точка комплексной плоскости представляется числом вида a+bi. Числа a и b можно считать координатами точки: а — вещественная часть комплексного числа, а b — его мнимая часть.
(далее…)

Страница просмотрена 2093 раз(а)

Биоморфы

Опубликовано 23.07.2013 17:51 пользователем Admin. Оставить комментарий
Читатель! Взгляни на рисунок. Что ты видишь? Что-то похожее на бактерии, инфузории или какие-то микробы под микроскопом.

биоморфы

Это — биоморфы (то есть формы, напоминающие живые организмы), обитатели комплексной плоскости, порождения компьютерной программы. Их придумал К.Пикоувер, ученый из исследовательского центра фирмы IBM. (далее…)

Страница просмотрена 1906 раз(а)

Как я писал программу для тестирования флэшек

Опубликовано 19.07.2013 16:37 пользователем Admin. Оставить комментарий
Началось все с того, что приобрел я MP3-проигрыватель с 1GB флэш-памяти и интерфейсом USB2.0. Испробовав его на практике, я был несколько разочарован: теоретически скорость записи данных на него должна была быть 3-4 МБ в секунду, на самом деле она почему-то не превышала 0,5-1 МБ/сек. “Ничего страшного”, — подумал я. Файлы на плеер я заливал нечасто, поэтому решил оставить все так как было. Но однажды я натолкнулся в сети на программу Flash Memory Toolkit. Она показывает скорость чтения/записи на флэш-память в зависимости от размера файлов, на нее записываемых. Скачав ее и установив, проверил свой плеер и был поражен: скорость записи для больших файлов была на уровне 4МБ/секунду. Значит инструкция для плеера таки не обманывала: записывать файлы на такой скорости можно! (далее…)

Страница просмотрена 1600 раз(а)

Советы программистам

Опубликовано 18.07.2013 17:43 пользователем Admin. Оставить комментарий
Давать советы – неблагодарное занятие. Советы никогда никто не слушает. Возможно, некоторые посчитают их очевидными. Однако, рискну. Меня несколько удивляет, как много задач программисты решают “в лоб”, не заботясь ни о простоте решения, ни о скорости его выполнения, ни о стиле. Здесь я постараюсь дать несколько советов новичкам и не только.
Программирование компьютеров может свести с ума. Другие профессии дают Вам прекрасные возможности наблюдать осязаемые результаты Ваших усилий. Часовщик может смотреть на свои зубчики и колесики, швея — на швы, ровно ложащиеся после каждого взмаха иглы. Но программист проектирует, строит и ремонтирует нечто воображаемое, призрачные механизмы, ускользающие от восприятия органами чувств. Наша работа происходит не в ОЗУ, не в программе-редакторе, а внутри нашей головы. Л.Броуди. Способ мышления – Форт.

Совет первый (и главный). Все гениальное — просто.

(далее…)

Страница просмотрена 955 раз(а)

Генетические алгоритмы

Опубликовано 18.07.2013 17:10 пользователем Admin. 1 комментарий

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

Теория эволюции Чарльза Дарвина была представлена в работе «Происхождение Видов» в 1859 году. Основные положения теории — это наследственность, изменчивость и естественный отбор. Однако, долгое время было неизвестно, каким образом реализуется наследственность, пока не была открыта ДНК.
В 70-х годах прошлого века ученые, занимавшиеся компьютерными исследованиями, обратились к теории эволюции. Казалось привлекательным создать программы или механизмы, осуществляющие решение задач способами, почерпнутыми из природы.

Эволюционные исследования велись во многих направлениях, одним из которых являются генетические алгоритмы. «Отцом» генетических алгоритмов считается Дж.Холланд (Holland). Его книга «Адаптация в естественных и искусственных системах» («Adaptation in Natural and Artifical Systems», 1975) стала классикой.

(далее…)

Страница просмотрена 2721 раз(а)

Обзор электронной книги lBook eReader v3

Опубликовано 18.07.2013 13:39 пользователем Admin. Оставить комментарий

Будучи человеком, очень часто и много читающим, я давно мечтал об электронном устройстве для чтения. Но все что у меня было, меня не устраивало. На компьютере — устают глаза, не почитаешь лежа, да и электроэнергия не бесплатна, на мобильном телефоне — не чтение, а издевательство, КПК слепнет на солнце.
Однажды в поле моего зрения попал анонс экрана на «электронных чернилах» (e-Ink). Дисплей, изготовленный по этой технологии, состоит из слоя капсул, в которых находятся заряженные черные и белые частицы пигмента. Когда к этим капсулам прикладывают электрическое напряжение, черные и белые частицы распределяются по внутренней поверхности прозрачной капсулы. Таким образом, капсула может быть белого или черного цвета. То есть, экран работает в отраженном свете (без подсветки). И еще, когда напряжение с капсул снимается, изображение остается без изменений, то есть в статическом состоянии экран совсем не потребляет энергии!

(далее…)

Страница просмотрена 2596 раз(а)

Тьюрмиты — двумерные машины Тьюринга

Опубликовано 16.07.2013 12:43 пользователем Admin. 3 комментария
Всем наверняка доводилось видеть сложнейшие лабиринты муравейника или геометрически правильные пчелиные соты. Однако некоторые искусственные создания с очень простым «мозгом» способны создавать удивительно сложные и причудливые узоры. Здесь мы рассмотрим такие существа, которые назовем «тьюрмитами«. Название их происходит от скрещивания двух слов — Тьюринг и термит. (далее…)

Страница просмотрена 4960 раз(а)

Клеточные автоматы

Опубликовано 12.07.2013 16:26 пользователем Admin. 13 комментариев
В статье “Тьюрмиты — двумерные машины Тьюринга” (опубликована в журнале “Мой компьютер” №28(303) за 2004 год) я познакомил Вас с некоторыми существами, обитающими на клеточной плоскости. Они передвигались по ней, окрашивая эту плоскость в разные цвета по определенным правилам. Эти объекты представляли собой автоматы с несколькими состояниями. А теперь обратим свой взгляд на другой тип автоматов – на клеточные автоматы (КА). Если тьюрмитами заселялась плоскость, разбитая на клетки, то теперь автоматом у нас будет сама эта плоскость, состояние клеток которой будет изменятся по определенным правилам. (далее…)

Страница просмотрена 13194 раз(а)

Управление Linux с помощью LIRC

Опубликовано 12.07.2013 15:13 пользователем Admin. 2 комментария
Опубликовано: Журнал «Системный администратор» №1-2 2010 г.

Если вы хотите использовать ваш ПК в качестве медиацентра, хотите смотреть фильмы и слушать музыку не вставая с дивана, вам нужен LIRC!

Что такое LIRC?

LIRC (Linux Infrared Remote Control) — набор драйверов и программ для ОС Linux, предназначенный для приема сигналов от инфракрасных пультов дистанционного управления (ПДУ), передачи таких сигналов, а также для управления другими программами с этих пультов. LIRC поддерживает большое количество приемников/передатчиков сигнала и почти любой ПДУ.

(далее…)

Страница просмотрена 8961 раз(а)