Category: литература

Category was added automatically. Read all entries about "литература".

redcat

Что тут есть

А тут есть нафигация. Это, если кто нипонял, чтобы сразу свалить и не мучить моск. Каждая ссылка отсюда ведет на какую-то тему. Если в теме больше одной записи, то в конце каждой записи, кроме последней, есть ссылка “дальше”, для тех, кому интересно и чей моск еще не сломан. Caveat emptor.

gEDA, KiCAD, Xcircuit - системы проектирования электроники и печатных плат
LibreCAD - 2D черчение. Простая замена AutoCAD для плоских чертежей. 3D - OpenSCAD, Meshlab.
UNIX way


Офис в Linux
redcat

C. Глава 4. Стандартная библиотека libc

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

(Б. Керниган, Д. Ритчи "Язык программирования C")


1. Библиотека как набор функций

Если заглянуть в наш каталог c/bin, то там настоящее нагромождение файлов. Еще немного и недолго запутаться или потерять что-нибудь важное. Пришло время навести порядок. Мы можем собрать все объектные модули отдельных функций в один архивный файл, откуда компоновщик будет извлекать их по мере необходимости.

Если посмотреть на размер наших последних программ, то он окажется относительно большим (последняя версия strings весит 3272 байта, а это страшно много по нашим масштабам). Это происходит оттого, что мы до сих пор связываем все подряд объектные модули, и в нашей программе получается, так называемый, мертвый код. Использование правильно созданной библиотеки исключит его.
Collapse )
redcat

C. Вместо предисловия

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

Язык программирования C (произностися Си) был создан в начале 1970-х годов. Он оказался настолько удачным, что хотя его авторы и обещали дальнейшее развитие языка, он сохранился почти в неизменном виде. C используют как язык системного программирования. На нем была полностью написана операционная система UNIX, а впоследствии и другие, включая Windows. При работе с ним очень редко приходится иметь дело с ассемблером, хотя иногда и приходится. Язык C – компилируемый, что как раз и подходит для операционных систем и встраиваемых систем. В то же время, ничто не мешает писать на C и превосходные прикладные программы.
Collapse )
  • Tags
redcat

C

Здесь будет моя книжка о языке C. Не собираюсь, как принято, распинаться в извинениях по поводу появления новой книжки, тем более, что ее вовсе и нет в бумажном варианте. Просто читайте или не читайте.


С языком C здесь могут пересекаются другие, относящиеся к делу темы, рассказано о них просто, без формализмов, без показной учОности, и даже, по возможности, без специальных терминов. Я старался написать так, чтобы книжка показалась бы максимально интересной мне самому, в то время, когда я учил язык C. Если бы можно было вернуться в прошлое, то я думаю, что она показалась бы мне интересной. И может быть, не только мне, а любому, кто любит покопаться в деталях.
Collapse )
  • Tags
redcat

gEDA - подготовка схемы к разводке платы

Для изготовления печатной платы крайне важна информация о посадочных местах компонентов (footprint). Это проекция на плоскость монтажа контуров элементов и их выводов, а также сведения о типе выводов: сквозное отверстие (via) или контактная площадка поверхностного монтажа (pad). Редактор pcb имеет более или менее обширные библиотеки распространенных посадочных мест, но часто приходится создавать пользовательские.

Редактор печатных плат, работающий с утилитами gEDA называется pcb. От других, значительно более известных, приложений, таких как как P-CAD (теперь Altium), его отличает очень большая простота использования. При этом он позволяет делать вполне профессиональные печатные платы. В pcb можно сразу импортировать файл схемы, если у каждого компонента имеется установленный атрибут footprint. Вот ими для начала и займемся.

Откроем схему ltimer.sch, которая была получена у нас в конце прошлого поста и добавим атрибуты всем элементам. Какие? Это увидите из дальнейшего.
Collapse )
redcat

gEDA - добиваем несчастный таймер 555

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

Начнем с того, что можно сделать весь проект в большой степени, если вообще не полностью, независимым от системных библиотек. Это очень полезно, если у нас большие расхождения, например, в графических обозначениях, пинах или мы используем что-то нестандартное. Немалая выгода есть и в переносимости с места на место. Весь проект можно перенести на другой компьютер, где есть программы gEDA, и работать там с правами обычного пользователя, как на собственном.
Collapse )
redcat

gEDA - цифровое моделирование и снова таймер 555

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

Сначала разберемся с проблемой gnetlist. Почему он не хочет генерить нетлист? Ведь мы используем вполне законные префиксы для компонентов. Ответ можно усмотреть в диагностике, которую он выводит. Мы сделали наши символы доступными редактору gschem, но с gnetlist все обстоит по другому, он не может найти файлов. Вот что нам нужно, в принципе, сделать для решения проблем:

1. Поместить каталог с символами в каталог с системными библиотеками символов.
2. Подправить один из конфигурационных файлов.
3. Удалить ставший ненужным файл gschemrc из нашего рабочего каталога.
Collapse )
redcat

gEDA - моделирование таймера 555 и свои библиотеки символов

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

Все дело в различной структуре данных для выполнения аналоговой и цифровой симуляции. Для аналоговой симуляции используются вещественные переменные типа double из 8 байт. Для цифровой симуляции это было бы чудовищным расточительством. Здесь вообще хватит одного бита, ведь каждая переменная имеет только два логических состояния. Но ngspice обещает справиться с этим. Посмотрим.
Collapse )
redcat

gEDA - как улучшить работу с проектом

Займемся лучшей организацией. Если в теперешнем состоянии понадобится изменить схему, то сделать это будет также сложно, как и в первый раз. В редакторе gschem есть все, чтобы поместить в файл sch все необходимое для последующего преобразования, не только в нетлист, но и файл схемы для передачи ngspice. Кроме того, мы можем написать shell-скрипты, использовать perl, python и тому подобное для обработки данных. Все это поможет автоматизировать рутинные действия до пары нажатий на клавиши. И меняй схему как хочешь.

Во-первых, в нашем распоряжении есть великая вещь: возможность включения файлов. И сделать это можно прямо из редактора схем. Во-вторых, простой скрипт для оболочки сделает сначала файл cir, а затем вызовет для него ngspice. И, таким образом, исправление схемы никоим образом не будет тормозить нашу работу. А при разработке схем, не только исследование уже созданной, но и постоянное внесение изменений в существующую, обычное дело. Технические прибамбасы и лишние манипуляции, будут, конечно, отнимать время и раздражать.
Collapse )
redcat

gEDA - простая модель симистора

В этой части мы создадим еще одну схему в отдельном файле. Поскольку встроенной в SPICE модели тиристора или симистора не существует, то нам придется заменить его схемой из других имеющихся. Наша простая схема не учитывает всей динамики и особенностей поведения симисторов, мы симулируем только ток удержания. Мы не собираемся делать старинный электровоз или подводную лодку восьмидесятых годов. Нам нужен симистор для управления лампочкой, ток через которую не превысит 1А. Имея две схемы, мы получим их списки узлов и будем объединять результаты, готовя общую схему к симуляции.

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

Найдем в библиотеке модели диода, резистора, конденсатора и источника напряжения. Нажмем клавишу I и пишем в фильтре: ca - выбираем символ capacitor-1.sym, re - выбираем символ resistor-2.sym (привычный нам европейский символ резистора), dio - выбираем диод, и vd - выбираем источник напряжения vdc-1.sym.
Collapse )