Секції .init в avr-gcc

Для програм, написаних мовою С чи С++, часто буває зручно, а іноді просто необхідно проініціалізувати якісь ресурси мікроконтролера до початку роботи фунцкії main() (для C++ — до початку роботи конструкторів статичних об’єктів). В багатьох системах програмування для цього використовується функція на зразок low_level_init(), яка викликається з С-шного «пускача» (start-up module, в більшості випадків пишеться на асембелрі) і має бути визначеною десь в проекті. Якщо такої функції нема, тобто програміст її не написав у даному проекті, то з бібліотеки береться коротка «затичка» (stub), яка просто нічого не робить.

У avr-gcc це зроблено дещо по-іншому. Використовуються можливості системи програмування по обробці секцій (сегментів, sections, segments) програми. Вашій увазі пропонується невеличкий приклад з детальним описом.
Continue reading ‘Секції .init в avr-gcc’ »

Attached Files:

Відмазка

Про свою «ліниву зайнятість» я вже писав.

Мені багато про що хочеться тут написати, але кожен раз як подумаю про переклади…
Тому я вирішив розділити роботу на менші шматки, за які не так страшно братися — писати і викладати для початку лише українською, а потім підтягувати інші варіанти.

При наявності в черзі кількох не перекладених публікацій першими перекладатимуться ті, на які є хоч якась реакція в коментарях. Думаю, що по фрагментам коду чи якихось інших ознаках ви зможете вирішити, чи варто «проголосувати» за переклад. Та й перекладач google ніхто не відміняв. Хай переклади не найкращі, але все ж по них якщо не зрозуміти текст до кінця, то вирішити, чи потрібен «авторський» переклад — можливо.

Розчистка завалів

В результаті невеликого наведення порядку (чи то наведення невеликого порядку) відгреблося в сторону і готове потрапити в добрі руки:

P80C31BH (DIP-40) 1
P80C51FA (DIP-40) 1
D87C51FA (CERDIP-40) 1
AT89C52-12PI (DIP-40) 1
AT89C55-24PI (DIP-40) 2
AT89C55-33PI (DIP-40) 1
AT89C51-24JC (PLCC-44) 1
AT89C51RC-24JI (PLCC-44) 1
AT90S8515-8JI (PLCC-44) 3
T89C51RD2-IM (PLCC-44)
1
Scenix SX28AC/DP 1
FM1608-P (DIP-28)
2 (зарезервовано)
HY6264ALP-10 (15мм DIP)
1 (зарезервовано)
2
27C64, 27C256, 27C1001 (CERDIP) Не рахував

Все це не паяне, але половина з цього побувала в панельках 🙂
Мікроконтролери та EPROM-ки перешивалося не багато разів (а деякі взагалі не зашивалися), так що ресурс ще не вичерпано.

Крім того є здуте з плат, які йшли на викидання. Має бути робочим:

MSP430F1101 5 (зарезервовано 3)
MSP430F1101A 11 (зарезервовано 5)

З ними якась кількість кварців 32768 Гц в корпусах TC-28.

Все роздається.

Писачки попрацювали

і стали закопченими.

Писачки різних видів.

Праворуч писачки, зроблені кілька днів тому, ліворуч — ті, що я робив кілька років тому зі звичайної жерсті. Той, що в центрі, заслужений — нам колись давно дали «для розгону».

Писачок — робимо самі

Ліцензія Creative Commons © Олександр Редчук aka ReAl, 2011
Цей твір ліцензовано за ліцензією Creative Commons Із зазначенням автора — Розповсюдження на тих самих умовах 3.0 Неадаптована.

На прохання в коментарях до відео на youtube:
Два варіанти виготовлення писачка без паяльника

Наближається Великдень, а разом з ним і традиційне виготовлення писанок. Ну а для розписування потрібен відповідний інструмент — писачок, що його, залежно від регіону, називають ще писальце або кистка.

Найпростіші, з конусом з жерсті, вставленим в отвір у дерев’яній паличці (як тут на лівому фото або тут в центрі), і воску тримають мало, і швидко вихолоняють. Їх дуже просто виготовити, але…

Гарний писачок має довго тримати тепло, щоб можна було воском вести по яйцю довгі лінії без розриву. Кажуть, такий гривень в тридцять обійдеться. У нього буде точений з латуні чи міді резервуар для воску та тонкий носик. Трошки гірший писачок можна купити і дешевше.

Доволі гарні писачки можна зробити своїми руками, просто скомбінувавши конус та акумулятор тепла з мідного дроту. Конструкція писачка проста:

Писачок

Навчитися робити писачки… » » »

Олімпіада з програмування мікроконтролерів.

Кілька годин тому закінчилася чергова олімпіада для студентів, засновником, організатором та спонсором якої є фірма «Open System». Вже три роки, як вона проводиться не в Хмельницькому, а в Києві, на базі Кафедри конструювання електронно-обчислювальної апаратури ФЕЛ КПІ.

Цього року олімпіада пройшла дещо спокійніше, ніж минулого та позаминулого.
З одного боку — завдань було менше і вони були простіші. Більшість задач були прийняті з першого разу, що зменшило об’єм роботи «командам» журі. Я навіть боявся, що виникнуть проблеми у верхній частині турнірної таблиців зв’язку з тим, що багато команд розв’яжуть всі задачі. Але тут спрацювали додаткові бали за мінімальний розмір коду, які у кожної з команд автоматично вийшли різними і переможці розсортувалися чітко і без питань.
З іншого боку — набагато менше учасників прийшло на апеляцію. Хоча, як і в минулі роки, апеляції були практично лише в стилі «ми старалися і нам було важко, тому…» та «чому сервер не прийняв наш останній розв’язок, який ми спробували послати вже після того, як сервер перестав приймати розв’язки», все пройшло значно спокійніше.

А родзинкою цьогорічної олімпіади було додаткове змагання «танків-роботів», на якому танки мали знайти за допомогою «міношукача» монети в одну гривню серед приклеєних до столів 10- та 25- копійчаних монет.
Сподіваюся, найближчим часом організатори викладуть відеозаписи.

На мій погляд, найкраще їздив танк команди, яка не потрапила в призові місця через випадковість, підсилену кубковою системою конкурсу. Вони «вилетіли» у чверть-фіналі. Журі оперативно порадилося і додало номінацію «приз глядацьких симпатій» (і це було підтримано бурхливими оплесками глядачів).

Я отримав танк одночасно з командами на початку березня. Але (тут викреслено купу відмазок на зразок «робота», «сім’я-діти», «інші проекти, та ж scmRTOS, свіжа версія якої на підході») я вже давно не студент, тому не вистачило мені не останньої ночі, а останніх тижнів так двох :-). Відповідно, мені нічого було показати — особливо на фоні найкращого танка.

Ще раз всіх вітаю і всім дякую.

Сережки

Думки зграями літають по світу і шукають собі прихисток в головах. Одна цікава зграйка нещодавно пролітала повз Київ.
Інакше як пояснити такий синхрон — близько двох тижнів тому син захотів зробити в подарунок «радіотехнічні сережки». Через пару днів, якраз коли він сів експериментувати з резисторами, я зазираю в блог BSVi і бачу там «ембед-сережки»
Тільки син збирався зробити щось з більш «олдскульних» детальок. Я вчасно зрозумів, що мова йде не про П416, МП39, Д7Ж та ВС-0.25 🙂

Комбінації з резисторів було забраковано. Принаймні, зі стандартних МЛТ. Може з тих, які з маркуванням кольоровми кільцями, щось і вийде, але то пізніше.
В минулі вихідні якось знайшлася інша робота, а на ці я йому відгріб різних стабілітронів та діодів в скляних корпусах.

Після недовгих коливань були відібрані кольори та вибрана форма.
Вийшло ось таке:

Я лише на першій пайці показав, як таке закріпити і як правильно робити акуратні пайки з мінімальною кількістю припою, та потім перше кілечко-закінцівочку вигнув круглогубцями.
Думаю, що для першого разу у нього вийшло дуже непогано.

А ще я знайшов у себе жменьку 2Т203Б та деякі мікросхеми…
Сподіваюся, син не охолоне і буде продовження 🙂

ManSound у Тайвані

Марічка з компанією побували на концерті ManSound, який проходив у них в університеті (NCTU).

Концерт ManSound в NCTU

Після концерту вони побалакали зі співаками, сфотографувалися та взяли автографи.
Подія сама по собі варта уваги, але цікаво також те, чому це повідомлення у мене проходить також і по тегу «Навчання». Кожен студент повинен протягом року відвідати кілька «культурних заходів» — виставок, концертів. Вище якраз сторіночка з каталогу рекомендованих.
Ціни на квитки, як вказано в каталозі, від NT$150 до NT$400. При цьому суттєву частину вартості квитка оплачує університет. Квиток концерт ManSound «за NT$250» по студентському обходився за NT$170, що приблизно рівне 43 гривням, найдорожчий квиток обійшовся б орієнтовно в сімдесят гривень.

Смажені трутовики

Прийшла пора їсти ті трутовики, про які писалося раніше.
Така пора приходила вже не раз, бо їх було знято з дерева багатенько, але все не співпадали в часі процес приготування та бажання сфотографувати та написати.
Continue reading ‘Смажені трутовики’ »

Як встановити дві версії libftd2xx

Як вже писалося, 64-бітні бібліотеки libftd2xx.so версії 1.0.0 та новіші не сумісні по розміру змінних зі старішими бібліотеками, останньою з яких була версія 0.4.16. З 32-бітними бібліотеками такої проблеми нема.
Для роботи 64-бітної версії avreal/Linux необхідно встановити стару версію libftd2xx, яку можна взяти на сторінці download.
Може виникнути необхідність на одному комп’ютері встановити обидві версії бібліотеки. Для цього avreal, починаючи з версії 1.28r6, завантажує бібліотеку по імені libftd2xx.so.0, а не libftd2xx.so.
Розглянемо рекомендований процес встановлення бібліотеки.

Continue reading ‘Як встановити дві версії libftd2xx’ »

[flagcounter image]