Программирование

Создаем 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 раз(а)

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

Опубликовано 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 раз(а)