Оселі для чорногузів

Виявляється, «оселі для чорногузів» то є звичне діло, просто я вперше бачив цього літа. Енергетики вважають, що навіть на діючих лініях простіше і ефективніше влаштовувати безпечні платформи, ніж пробувати розганяти птахів, як це роблять в аеропортах.
Тому самі турбуються про це:

Закріплення платформи для лелечого гнізда

Таки ж молодці!

Розвернути біти

Так чи інакше, а ця задачка вилазить.

В моєму випадкові потреба виникла тому, що Altera FPGA при завантаженні по SPI вимагає потік молодшим бітом вперед, а порт SSP мікроконтролерів LPC17 працює лише старшим бітом вперед. Якраз нещодавно на форумі хтось обурювався, що у STM8 USART в режимі SPI працює лише молодшим бітом вперед: «і кому такий SPI потрібен?». Та от, мені…

Як я вже писав у публікації Двійкові дані та програма мікроконтролера (це що, я так довго не повертався до цієї роботи?), можна було б зробити власну програму обробки конфігураційного масиву FPGA, в якій врахувати також і порядок бітів. Але пристрій може отримувати прошивки програмованої логіки ззовні, тому хотілося б приймати файли в такому вигляді, в якому їх видає Quartus. Менше буде плутанини.

На щастя, Cortex-M3 має спеціальну команду розвороту бітів. Ця команда … » » »

Свічка на батарейках

Чистив флешку у мобілці і наштовхнувся на знімок, зроблений ще у відпустці у вересні.

Маленький сучасний ліхтарик, спрямований у стелю, дає доволі непогане м’яке освітлення. Особливо приємне в кімнаті без лампочки.
Але ж не тримати його в руці весь час. Треба б якось закріпити. Ну а що найкраще підходить для того, щоб тримати невелике довгасте кругле джерело світла?
Правильно, свічник:

Ліхтарик у свічнику

Братові, чий і ліхтарик, і вибір підставки для нього, було досить зручно працювати з ноутбуком 🙂
Згадується Аркадій Райкін — «при лучине телевизор смотрели!»

Ситі мухи

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

І знову Лем

Випадково потрапила на очі новина про одяг-спрей.

Одразу ж поліз на книжкову полицю.
Знайти необхідну книжку зайняло більше часу, ніж відшукати в ній відповідне місце:

Зате з одягом справи обернулися якнайгірше. Майже нічого з того, що я знав, не існувало. З’ясувалася кінець кінцем таємниця загадкової шафки в готелі. Тієї з пляшками і написом «Купальні плащі». Не тільки такі плащі, але й костюми, панчохи, светри, білизна — все з’являлося на білий світ з допомогою пульверизаторів. Я зрозумів, що це має подобатися жінкам, бо, оперуючи кількома чи навіть кільканадцятьма пляшками з рідиною, що моментально застигала, перетворюючись на тканини гладкої чи шорсткої фактури (типу оксамита, хутра чи пружного металу), можна було кожного разу створювати новий фасон одягу спеціально для того чи іншого випадку.

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

Я стояв, піднявши вгору руки, а він крутився навколо мене, оперуючи одразу чотирма пляшками. Біла, як піна, рідина в повітрі застигала майже моментально. Вийшли з цього светри різних кольорів. Один — зі смугою на грудях, червоною на чорному полі. Як я помітив, найважче викінчувати комір і рукави. Цього справді треба було вчитися.

«Повернення з зірок»
Станіслав Лем, 1961 р.
Видавництво «Каменяр», Львів, 1976 р.

Тепер глива. На яблуні.

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

Гливи на яблуні.

Знову знімок мобілкою, щось останнім часом фотоапарат з собою рідко (як я жалкував у вересні, у відпустці в Опішні, що не було з собою фотоапарата — такі красиві шіїтаке бачив, але для мобілки там ну вже зовсім темно було).
Та й на дачі збирався сухі дерева прибирати, а не фотографувати.

Перший кларнет

Виявляється, на концерті академічного духового оркестру на початку та в кінці виступу диригент ручкається з першим… кларнетом.
Ні, я розумію, що в духовому оркестрі першої скрипки немає, але якось не задумувався над тим, «хто за неї».

p.s. А колонний зал імені Лисенка — таки не найкраще місце для виступу духового оркестру. Звуку було надто тісно 🙁

extern “C”

Інформація, яку видає OpenOCD при звичайному завантаженні програми у flash-пам’ять мікроконтролера, деколи може допомогти так, як наче це був запущений зневаджувач.

Переписую на свій смак шматки, які вже працювали зі стандартною бібліотекою від NXP. При чергових змінах програми вона начисто перестає працювати. Знаходжу дрібну помилку (замість змінної часу повертається константа періоду), виправляю, перешиваю…

Знову висить.

»»» І тут помічаю, що OpenOCD сповістив мене…

Attached Files:

  • h lpc17xx_handlers

    lpc17xx handler prototypes for C/C++ programs (with extern "C" for C++)

Знову LPC17xx та Peripheral Driver Library

Продовжую набігами знайомитися з мікроконтролерами LPC17xx.
При цьому продовжую лізти на кактус: «щоби швидше», підключаю файли зі стандартної периферійної бібліотеки від NXP. І в черговий раз отримую помилку компіляції. На цей раз — з глибин <sys /reent.h>, який включається до <stdio .h>, якого, своєю чергою, потягнув debug_frmwrk.c з LPC1700 Peripheral Driver Library:

--- compiling ./src/NXP/LPC17xx/Drivers/source/debug_frmwrk.c...
In file included from /opt/klen/arm-kgp-eabi/201109/bin/../lib/gcc/arm-kgp-eabi/
                 4.7.0/../../../../arm-kgp-eabi/include/stdio.h:45:0,
        from ./src/NXP/LPC17xx/Drivers/source/debug_frmwrk.c:41:
/opt/klen/arm-kgp-eabi/201109/bin/../lib/gcc/arm-kgp-eabi/4.7.0/../../../
    ../arm-kgp-eabi/include/sys/reent.h:469:10: error: #if без виразу

Причому що в збірці arm-kgp-eabi від Klen, що в CodeSourcery — те саме (the same, як сказали б англомовні). Тільки номери рядків відрізняються та CodeSourcery, на відміну від Klen-ового пакету, зібрано без підтримки локалізацій і він каже #if with no expression а не #if без виразу.

Лізу дивитися sys/reent.h »»» І що ж я бачу? …

OpenOCD, LPC17xx та srec_cat

Boot-loader в мікроконтролерах LPC17xx очікує 32-бітну контрольну суму перших семи слів прошивки (вміст вказівника стеку, та перших шести векторів) на місці не використовуваного вектора по адресі 0x1C. В це слово записується мінус-сума перших семи слів. Схожим чином перевіряє наявність програми і бутлоадер LPC2000.
OpenOCD вміє «на льоту» генерувати таку контрольну суму при програмуванні мікроконтролера, потрібно лишень в команді flash вказати аргумент calc_checksum (ця команда є у файлі target/lpc17xx.cfg пакету).
Але чомусь він не генерує її для звірки вмісту (верифікації). Причому сам він знає, що мені буде незручно, раніше навіть писав щось таке:

Warn : Verification will fail since checksum in image (0x00000000) to be written
    to flash is different from calculated vector checksum (0xeffee33a).
Warn : To remove this warning modify build tools on developer PC to inject
    correct LPC vector checksum.

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

[flagcounter image]