Эндрю Таненбаум “Операционные системы. Разработка и реализация”

Автор DI HALT
Опубликовано 07 Фев 2010 
Рубрики: Книги

Автор:Эндрю Таненбаум
Название:Операционные системы. Разработка и реализация
Издательство:Питер
Описание: 
 Давненько я не выкладывал полезных книжек. Надо исправляться.
Итак, раз уж начал задвигать на тему программирования, то нельзя забыть такого автора как Эндрю Таненбаум.
Программисты про него и так знают — как никак это один из классических авторов, а его труды детально расписывают принципы построения операционных систем. Причем описывается это все буквально на пальцах, на упрощенных аналогиях. Впрочем, примеров на Си тоже хватает. Местами занудновато и многое к нашей области не применимо, но для общего развития совершенно не помешает. Книжка из серии обязательных к прочтению. Скачать!

Комментариев (8)

Монтаж плат с SMD компонентами с помощью паяльной пасты и фена.

Автор vvzvlad
Опубликовано 03 Фев 2010 
Рубрики: Радиолюбительские Технологии
Метки: , ,

Когда в единственный нормальный магазин в городе, чуть ли не на заказ, привезли паяльную пасту, я был за ней первый в очереди :)
Давно уже хотел полностью перейти на SMD, как наиболее ленивую технологию — дырки сверлить лень и была паяльная станция LINKO 850, китайский клон незнаю чего (Ну, судя по стилю написания логотипа, косят они все под HAKKO =) Своего рода Adibas =) прим. DI HALT), пока использовавшаяся только для демонтажа. Мосфеты ей с материнок выковыривать — милое дело. Паста у меня была BAKU BK-30G (У меня такая же грязюка есть. Мерзкая вещь, но паять ей прикольно. прим. DI HALT) Читать полностью

Комментариев (56)

AVR. Учебный курс. Архитектура Программ. Часть 3.

Автор DI HALT
Опубликовано 31 Янв 2010 
Рубрики: AVR. Учебный курс
Метки: , ,

Приоритетный диспетчер.
Одной из проблем простого диспетчера является то, что все задачи имеют равный приоритет. С одной стороны, это просто и удобно. С другой — какое-либо важное событие можно прошляпить, пока там конвейер перещёлкает все задачи…

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

Если нужна высокоуровневая система приоритетов, то можно очередь задач превратить в двумерный массив, где вторым этажом будет идти приоритет задачи. Правда при этом увеличиться время обработки конвейера — ведь надо будет сперва прочесать всю очередь в поисках наибольшего элемента. Но тут можно напридумывать кучу оптимизаций. Например, сортировать очередь при постановке задачи на конвейер, либо завести TOP list приоритетов, занося туда значения приоритетов. Тогда диспетчер, обрабатывая очередь, сразу будет искать нужный элемент, ориентируясь по TOP листу. Но вот так, на вскидку, я не берусь сказать какой из приемов будет эффективней/компактней/быстрей.
Читать полностью

Комментариев (45)

Паяльная станция Aoyue 950+

Автор Ved_kh
Опубликовано 30 Янв 2010 
Рубрики: Инструмент

DI HALT:
Накопилось у меня тут прорва чужих статей, присланных мне на сайт. Вот буду их потихоньку верстать и выкладывать.

Понадобилось достаточно плотно работать с SMD, да и чем дальше, тем больше попадается всякого мелкого. Вот и захотелось как-то упростить себе жизнь.

Фен как-то пока что без надобности, а вот паяльная станция, еще и чтобы с SMD было удобно работать - самое оно. Выбирать как-то долго и нудно не хотелось, выбирал из того, что можно было купить или заказать где-то поблизости.

Решил взять Aoyue 950+: термопинцет, да еще и с паяльником в комплекте.

Заказал, пару дней подождал, забрал.
Полностью черный корпус, тумблер питания, ручка регулировки температуры, да разъем под термопинцет и паяльник.
Сама конструкция очень сильно напомнила описанную ранее паяльную станцию Pro’sKit SS-217: такой же с виду паяльник, разъем под него и под термопинцет, такая же подставка от “фанатов бронепоездов”.

Итак, комплектация:

Читать полностью

Комментариев (38)

Sprint Layout 5. Подробное руководство.

Автор Sailanser
Опубликовано 29 Янв 2010 
Рубрики: Софт

DI HALT

Несмотря на простоту этой программы, меня часто просят написать по ней статью. Но мне все было некогда. Поэтому роль Капитана Очевидность взял на себя Sailanser. Выполнив этот титанический труд. Я лишь подкорректировал, да добавил кое где подробностей.

Всем наверно давно известна программа для изготовления печатных плат под названием Sprint-Layout, на данный момент последняя версия гордо именуется, 5.0

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

Как я и говорил, сама программа довольно проста, но имеет множество кнопочек и менюшек, помогающих нам в работе. Поэтому наш урок в рисовании платы разделим на насколько частей.
В первой части познакомимся с программой и узнаем, где и что в ней прячется. Во второй части нарисуем простенькую плату, которая будет содержать, к примеру, пару микросхем в DIP корпусах (причем эти микросхемы сделаем с полного нуля), несколько резисторов и конденсаторов, также посмотрим такую интересную фишку программы как Создатель макроса и сделаем с его помощью корпус микросхемы, например TQFP-32.
Также я покажу как обрисовать плату с картинки или фотографии. Читать полностью

Комментариев (55)

Форум. Второе пришествие

Автор DI HALT
Опубликовано 26 Янв 2010 
Рубрики: Новости
Метки:

Самые нетерпеливые уже заметили что форум таки поднялся и даже не вешает сайт. Впрочем, старый форум один фиг не жилец. Дело в том, что последние два три месяца он начал адски глючить (да и раньше красотой кода не отличался, честно говоря) и грузить хостинг. В общем, Simple:Press Forum изначально был мертворожденным уродцем подходящим разве что для красоты. Не способен он работать на больших нагрузках (кто ж знал, что форум так резко разрастется, я то его вообще для галочки ставил :) )

Поэтому на отдельном ресурсе был поднят новый форум со своим специализированным движком и прочими радостями современного форумостроения. Посему желающие общацо не только в комментах могут переходить туда. Правда там своя регистрация - интегрировать с движком блога так и не удалось (хотя не очень то и хотелось, все эти перекрестные системы превращают движки в жуткую конструкцию которая может загнуться в любой момент. Чем проще тем лучше).

По поводу переноса инфы со старого форума тут вопрос сложный. Дело в том, что найти конвертер к симпл прессу нам так и не удалось, а свой мы если и напишем, то далеко не скоро. Т.к. больших спецов по SQL у нас нету. Поэтому новый форум стартует с нуля. А старый через недельку и вовсе будет закрыт для редактирования, превратившись в статичный архив. Если у кого в старом форуме есть активная тема, то проще всего будет поднять такую же тему в новом форуме и связать их перекрестными ссылками. Мол “начало тут” & “конец там”.

Кроме того, есть 100МБ статичный архив сайта (и неслабого куска форума). С картинками и файлами, практически до последней записи. За эту радость спасибо Андрею Кузнецову.

Комментариев (65)

Паяльник GOOT PX-201

Автор DI HALT
Опубликовано 24 Янв 2010 
Рубрики: Инструмент
Метки: ,

Долго гонялся я за этим агрегатом. С лета прошлого года. Наконец, под заказ, из Masteram мне его притащили. Почему именно он? Да люблю я этот паяльник, однажды на работе в руки попался с тех пор вот хочется иметь домой на всякий случай. Кстати, именно с него был слизан CT-96 и остальные клоны.

Итак, что из себя представляет GOOT PX-201.

Это отличный японский паяльник с регулировкой температуры и мощным (80Вт!!!) керамическим нагревателем. Читать полностью

Комментариев (84)

Its Work?

Автор DI HALT
Опубликовано 23 Янв 2010 
Рубрики: Новости
Метки:

Запустились. Если что будет зеркало на гугле.

Пока все тихо :)

Комментариев (64)

AVR. Учебный Курс. Архитектура Программ Часть 2

Автор DI HALT
Опубликовано 20 Янв 2010 
Рубрики: AVR. Учебный курс
Метки: , ,

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

Во первых тут очередь выполнения задач не жестко заданная, а динамическая, конвеерного типа. То есть у нас есть в памяти массив из указателей на задачи-функции. Диспетчер берет указатель и, если он не указывает на Idle, осуществлет переход по этому адресу. Предварительно удалив его из очереди и подкинув очередь.

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

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

А теперь подробно распишу тот диспетчер который стоит в 90% моих проектов на Си.
Читать полностью

Комментариев (14)

AVR. Учебный Курс. Архитектура Программ

Автор DI HALT
Опубликовано 14 Янв 2010 
Рубрики: AVR. Учебный курс
Метки: , ,

Все учебные курсы по микроконтроллерам которые я встречал (в том числе, к сожалению, и мой ассемблерный, но я надеюсь это постепенно поправить) страдают одной и той же проблемой.
В курсе бросаются строить дом не заложив фундамент. Только показав на примере как мигнуть светодиодом, сразу же кидаются в периферию. Начинают осваивать ШИМ-ы, таймеры, подключать дисплеи и всякие термодатчики.
С одной стороны это понятно — хочется действа и результата мгновенно. С другой — рано или поздно такой подход упрется в тот факт, что программа, надстраиваемая без четкой идеологии, просто обрушится под своей сложностью. Сделав невозможным дальнейшее развитие.
Итогом становится либо рождение жутких программных уродцев, либо миллионы вопросов на форуме вида “а как бы мне все сделать одновременно, а то частоты контроллера уже на все не хватает”.

Самое интересное, что правильной организации программы учат программистов в ВУЗах, но вот только к микроконтроллеру народ обычно идет не от программирования, а от железа. А, как показала практика обучения в ВУЗе, электронщиков толковому программингу практически не обучают :( Приходится все додумывать самостоятельно.

Итак, что такое структура программы. Это, прежде всего, ее скелет. То какими путями движется код. Как организованы переходы между задачами прошивки. То как распределяется процессорное время. Без краткого ликбеза по общим принципам построения прошивки дальше двигаться нет смысла.

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

Итак, я для себя выделяю следующие структуры, по порядку возростания сложности конструкции и количеству управляющего кода:

А теперь подробно по каждому пункту: Читать полностью

Комментариев (102)

AVR toolchain своими руками

Автор Nikita Nazarenko
Опубликовано 13 Янв 2010 
Рубрики: AVR. Учебный курс
Метки: ,

DI HALT:
В догонку к прошлому посту про AVR Studio в Linux досылаю и про сборку avr-libc там же. Вынесено из комментов к предыдущему посту. Спасибо Dark SavanT

Если есть возможность поставить готовый тулчейн из пакета, лучше воспользоваться ей.
преимущество самосборного в том, что все что надо, лежит там где сказано и не засоряет /usr/*. Но тут мы теряем автоматические обновления из пакетов. Короче, думайте сами, решайте сами.

Поехали!
В минимальной комплектации нам понадобятся:

для того, чтобы это все безобразие собралось, нужен установленный в системе gcc, bash, awk, binutils, libc, может что-то еще забыл.
Читать полностью

Комментариев (20)

AVR Studio в Linux.

Автор http://devmind.livejournal.com/
Опубликовано 11 Янв 2010 
Рубрики: AVR. Учебный курс
Метки: , , ,

Печально, но факт, что Atmel штампует свое замечательное IDE только для семейства OS Windows. Поэтому пользователям Linux приходится по-всякому извращаться, чтобы заполучить себе на машину этот удобнейший инструмент разработчика. Существует два очевидных решения этой задачи. Первый - запускать студию в Windows, которая крутится на виртуальной машине (отдельную машину с Win не рассматриваем). Второй - запускать программу посредством Wine.

Первый способ хорош 100%-й совместимостью и полным отсутствием софтверных граблей. Железные же практически полностью висят на разработчиках виртуальных машин и обычно стремятся к нулю. Однако, виртуальная машина отжирает у хост-машины ценные системные ресурсы. Кроме того, стоит учесть, что налог на Windows не зависит от того насколько виртуальна машина, на которой бегает эта операционная система. Ну и окно-в-окне, особенно при неудачно реализованном механизме переключения между системами, удовольствия не доставляет. Если вас эти ограничения не смущают, это вполне себе вариант. В Википедии есть прекрасная сводная таблица виртуальных машин, которая может вам пригодиться.

Способ запуска программ (любых) посредством Wine - вполне себе самодостаточен. Стоит помнить, что проект постоянно развивается. Сегодняшний Wine не чета тому, который мне довелось пощупать при первом знакомстве. Сайт проекта: http://www.winehq.org/. Этот вариант распишу подробно.
Читать полностью

Комментариев (60)

Ключ от всех дверей. Эмулятор ключей от домофона.

Автор Dlinyj
Опубликовано 10 Янв 2010 
Рубрики: Начинающим
Метки: , ,

Ты потерял ключи от домофона и не можешь сделать дубликат. Хочешь ходить в гости к подруге, но у тебя нет ключей от её подъезда. Либо просто тебе нужно подосрать твоему недругу, но ты не можешь попасть к нему в дом, тогда эта статья для тебя.

Пара слов о принципе работы…
Бытует мнение, что в таблетках от домофона находится магнит, и он открывает дверь. Нет, это не так. Таблетка представляет собой ПЗУ, с жёстко зашитым в ней ключом. Называется это ПЗУ - Touch Memory, марки DS1990A. DS1990A - это и есть марка домофонных ключей. Общается с домофоном по шине one-wire (однопроводной интерфейс). Эта шина разработана фирмой Dallas и позволяет общаться двум устройствам всего по одному проводу. Если устройство пассивное (как в нашем случае), то оно ещё и передаёт ему питание по этому проводу. Надо ещё заметить, что необходим ещё общий провод (чтобы цепь замыкалась), но, как правило, все земли устройств подключённых к этой шине соединены воедино. В ключе находится конденсатор на 60 пикофарад, который обеспечивает кратковременное питание ключа на момент ответа. Но ведущее устройство должно постоянно (не реже чем в раз 120 микросекунд) генерировать сигнал единицы, для зарядки этого конденсатора, чтобы ПЗУ в таблетке продолжало питаться.

Потроха таблетки. Как видно, никаких магнитов там нет!
Читать полностью

Комментариев (128)

AVR. Учебный Курс. Программирование на Си. Работа с памятью, адреса и указатели

Автор DI HALT
Опубликовано 09 Янв 2010 
Рубрики: AVR. Учебный курс
Метки: , , ,

Указатель. Один из самых мутных для понимания и в то же время совершенно необходимый инструмент любого языка программирования. Вызывает массу вопросов и непонимания на начальном этапе обучения.

Итак, начну по порядку.
Инфа, любая инфа (команды, данные) лежит в памяти по ячейкам. У каждой ячейки есть порядковый номер — адрес.

Мы можем напрямую сказать процессору — возьми данные из ячейки с адресом 0xA0 и положи его в ячейку с адресом 0×11. Это будет прямая адресация. Здесь адреса 0xA0 и 0×11 содержатся напрямую в машинном коде. Это очень быстро, просто и не требует никаких дополнительных телодвижений. Один минус — адреса 0xA0 и 0×11 нельзя изменить, как мы их впишем в код, так они там и останутся.

Но может быть и другой способ. Когда у нас есть еще две ячейки памяти. Например, А и Б в которые мы предварительно положим числа 0xA0 и 0×11 соответственно. И тогда предыдущая операция будет выглядеть так.

Возьми число из ячейки адрес который лежит в А и положи в ячейку адрес которой узнаешь из Б.

Результат тот же, но возникло множество дополнительных телодвижений. Во первых положить первоначальные адреса 0xA0 и 0×11 в ячейки А и Б. Потом, при совершеннии операции, используая данные ячеек А и Б как адреса, взять уже оттуда нужные нам данные и совершить обмен.

Но прелесть вся в том, что при этом мы можем как угодно менять А и Б (ведь это такие же переменные как и любые другие) и они будут указывать на разные данные.

А один и тот же кусок кода становится универсальным. Он может работать с любыми данными адреса которых нам укажут переменные А и Б.

А сами эти переменные и будут указателями.
Читать полностью

Комментариев (103)

Отладочная плата PinBoard v1.1

Автор DI HALT
Опубликовано 08 Янв 2010 
Рубрики: AVR. Учебный курс, Готовые устройства
Метки: , ,

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

Итак, что мы имеем нового по сравнению с первой версией: Читать полностью

Комментариев (127)

3D LED глобус

Автор _riko_
Опубликовано 24 Дек 2009 
Рубрики: Готовые устройства
Метки: ,

12 years ago….
Давным давно… в далёкой галактике….. ))) Ну… в общем не так уж и давно, всего-то лет 12 назад, жил был мальчик, в небольшом БАМовском посёлке :) Все нормальные мальчишки в его возрасте, интересовались девченками и сигаретами :) но он напротив - целыми днями просиживал дома, за куренем журнала ЮТ или “Техника Молодежи”…. Рос не особым батаном, но и разгильдяем уж таким тоже не был.. в общем так… нормальный, поселковый сорванец :)

И его всегда интересовали всякие там игрушки (механические, с электроприводом естественно ), руки так и чесались у него что-нить раскурочить - авось что-нить вкусненького найду? Так вот…. Попалось ему на глаза, в одной передаче (по моему “спокойной ночи малыши”) одна интересная весч…Там был показан концепт типа - “планета с бегущей строкой вокруг неё”

Мальчик был потрясён до глубины души! Ещё бы! Это же почти голограмма!!! Живое воплощение любимых фантастических фильмов в стиле Звёздных войн!

Итак, была поставлена цель — сотворить такую же штуку любыми, доступными уму и телу, способами :) И вот что в итоге вышло Читать полностью

Комментариев (194)

AVR. Учебный Курс. Программирование на Си. Атомарные операции.

Автор DI HALT
Опубликовано 20 Дек 2009 
Рубрики: AVR. Учебный курс
Метки: , , ,

Не раз и не два сталкивался с утверждением, что изучать ассемблер микроконтроллера это всего лишь пустая трата времени, дескать все можно сделать на Си, а если сильно надо то комманды можно и в даташите поглядеть.

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

Итак, есть у нас такой код (не ищите в нем практического смысла, я его просто как пример работы с разными операндами написал):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
volatile char flag_byte; 	
/*Просто флаговая переменная, на разные случаи жизни. Разные события там 
выставляют флажки, опираясь на которые потом работает логика программы. 
Один из способов организации псевдомногозадачности. Когда у нас главный цикл 
анализирует флажки и делает переходы на подпрограммы, а вызов подпрограмм 
осуществляется не напрямую, а установкой соответствющих флажков. Своего 
рода диспетчер переходов. О такой архитектуре я скоро расскажу)*/
 
ISR (USART_RXC_vect)	// Обработчик прерывания, самый обычный.
{
flag_byte|=1<<rcv_buff;
...
...
}
 
int main (void)		// Главная программа
{
INIT_ALL();
SEI();
...
...
...
TCCR0A  	|=1<<WGM01;
...
flag_byte 	|=1<<options;
...
PORTB 	&=~(2<<1);
...
}

Читать полностью

Комментариев (70)

Прошивка PinboardProg для превращения демоплаты PinBoard в ISP программатор

Автор DI HALT
Опубликовано 13 Дек 2009 
Рубрики: AVR. Учебный курс, Готовые устройства
Метки: , ,

Хай PinBoard сообщество! Нас теперь уже почти сто человек :) Помнится я обещал, что будет прошивка позволяющая превратить демоплату в программатор для прошивки других МК. Пацан сказал — пацан сделал :)

Итак, вот две прошивки. Для плат на базе Atmega16 и Atmega32. Тактовая 8 МГц (дефолтная настройка).
16_PinboardPROG.hex
32_PinboardPROG.hex

Далее как обычно в картинках. Читать полностью

Комментариев (55)

Использование осциллографа. Видео урок.

Автор DI HALT
Опубликовано 11 Дек 2009 
Рубрики: Начинающим
Метки: ,

В нагрузку к статье про использование осциллографа снял видео урок.


И часть вторая, про использование Читать полностью

Комментариев (116)

Мистер ремонт

Автор DI HALT
Опубликовано 06 Дек 2009 
Рубрики: Новости
Метки: ,

Сдохла тут у меня стиральная машина. Вятка Автомат 16, если кто еще помнит этот гроб. Лет 16 проработала отлично, а тут ее переклинило. Судя по симптомам накрылся командоаппарат.

Если кто не в курсе, то командоаппарат это пра-пра-дедушка микроконтроллеров. Маленький моторчик через редуктор крутит вал с выступами, а он замыкает или размыкает контакты. Электромеханическая шарманка.

Система надежная, дубовая, но не вечная — сдохли контактные группы в шарманке, мелодия стирки прервалась. Погуглил и нарыл циклограмму программы стирки для Вятки-16 где буквально посекундно было расписано когда и какой контакт замыкается. Чтож, где наша не пропадала!

Все просто, мега8, несколько буфферов ULN2003 и десяток релюшек, а также пультик с индикатором и парой кнопок. За вечер, под пиво, была собрана вот такая конструкция:

Читать полностью

Комментариев (137)

Раньше →


Материалы сайта являются авторскими. Копирование и публикация материалов без активной ссылки на первоисточник запрещено.

Реклама: лаки