Бывае, калі праграма на мове Сі пішацца для некалькіх платформаў, карыстаюцца макрасамі, каб адмежавацца ад асаблівасцяў кампілятара. Адным з такіх момантаў - пазначэнне структуры як упакованай. Як гэта робіцца агаворана ў стандарце на мову, таму кожны аўтар кампілятара сам вырашае, як гэта будзе рабіць праграміст.
Напрыклад, GCC мае спецыяльны атрыбут для структур: __attribute__((packed)). У іншых, гэта робіцца праз #pragma pack(push|pop), але іх нельга карыстаць у макрасах.
28 марта 2014 г.
1 марта 2014 г.
mspgcc і FRAM мікракантролеры MSP430
Калі вы вырашылі напісаць і адладжваць праграму для FRAM мікракантролераў MSP430, у мяне для вас не вельмі прыемная навіна: у mspgcc ёсць баг #349. Яго апісанне ёсць таксама і ў апісанні пакета gcc-msp430 (тое самае што і mspgcc) для Ubuntu:
BEWARE: due to a bug in the memory layout reference of FRAM-based chips, this package DOES NOT WORK with MSP430FR5xxx chips (eg. FraunchPad devkit). DO NOT use gcc-msp430 on that chip series, as you will lose access to JTAG and BSL, and permanently BRICK your chip!
Карацей: калі будзеце карыстацца гэтым кампілятарам ваш чып пераўтварыцца ў цагліну, з-за памылкі пры размеркаванні памяці.
Але надзея не згублена. Ёсць шляхі выкарыстання кампілятара.
Увага! Далей ідзе тэарэтычнае вырашэнне сапраўднай праблемы.
BEWARE: due to a bug in the memory layout reference of FRAM-based chips, this package DOES NOT WORK with MSP430FR5xxx chips (eg. FraunchPad devkit). DO NOT use gcc-msp430 on that chip series, as you will lose access to JTAG and BSL, and permanently BRICK your chip!
Карацей: калі будзеце карыстацца гэтым кампілятарам ваш чып пераўтварыцца ў цагліну, з-за памылкі пры размеркаванні памяці.
Але надзея не згублена. Ёсць шляхі выкарыстання кампілятара.
Увага! Далей ідзе тэарэтычнае вырашэнне сапраўднай праблемы.
1 февраля 2014 г.
Выкарыстанне Splint для праверки зыходнага коду ўбудаванага праграмнага забеспячэння
Кошт выпраўлення памылак залежыць ад этапу жыцця праграмы, на якім гэту памылку знайшлі. Чым раней знойдзена памылка - тым танней абыходзіцца яе выпраўленне. Такім чынам усе зацікаўлены не тварыць памылкі, пры тым, чым раней, тым лепш. У нашым неідэальным свеце праграмісты імкнуцца паменшыць верагоднасць памылак у праграмным забеспячэнні. Для гэтага існуе тэсціраванне ўжо канчатковага коду на адпаведнасць спецыфікацыі (так званае распрацоўка праз тэсціраванне, або TDD - Test Driven Development). Але на якасць праверкі уплывае дакладнасць праверак.
Дадаткова да тэстаў існуе статычны аналіз коду. Ён не правярае логіку працы, для гэтай мэты ёсць TDD, а дазваляе знайсці месцы, якія кампілятар і праграміст разумеюць па рознаму.
Існуе не шмат, але нейкая колькасць статычных аналізатараў, як камерцыйных, так і адкрытых. Спіс аналізатараў можна знайсці ў Вікіпедыі.
Зараз гаворка пойдзе пра Splint, а таксама пра яго выкарыстанне для праверкі ўбудаванага праграмнага забеспячэння.
Дадаткова да тэстаў існуе статычны аналіз коду. Ён не правярае логіку працы, для гэтай мэты ёсць TDD, а дазваляе знайсці месцы, якія кампілятар і праграміст разумеюць па рознаму.
Існуе не шмат, але нейкая колькасць статычных аналізатараў, як камерцыйных, так і адкрытых. Спіс аналізатараў можна знайсці ў Вікіпедыі.
Зараз гаворка пойдзе пра Splint, а таксама пра яго выкарыстанне для праверкі ўбудаванага праграмнага забеспячэння.
7 января 2014 г.
Набыццё электронных кампанентаў у Беларусі з-за мяжы праз Інтэрнэт
Падчас ёсць патрэба ў кампанентах, якія ў нашай краіне складана ці ўвогуле немагчыма набыць фізічнай асобе. На дапамогу прыходзяць інтэрнэт-крамы з-за мяжы. У іх ёсць выбар, прыемны кошт, але праблемы ўзнікаюць пры дастаўцы (час вандравання пасылкі да атрымальніка і родная мытня).
З найбольш вядомых пляцовак можна адзначыць:
З найбольш вядомых пляцовак можна адзначыць:
- AliExpress
- Alibaba
- Ebay
- RS-Components
- DigiKey
19 декабря 2013 г.
Нататкі аб RL78: Сапраўднае прывітанне праз УАПП
7 октября 2013 г.
Стварэнне выяў для чорна-белых графічных жыдка-крысталічных індыкатараў у GIMP
Пры працы з графічнымі ЖКІ найбольш складаным (маё меркаванне) з'яўляецца стварэнне малюнкаў (а таксама і шрыфтоў) у прыгодным для індыкатара фармаце.Існуе шмат спецыяльных праграм, каб пераўтварыць выяву ў зыходны код. Адна з іх LCD Image Converter, напрыклад.
Нашчасце, гэта праблема існуе доўгі час і была вырашана радыкальным спосабам. Навошта пераўтвараць малюнкі ў зыходны код? Лепей захоўваць малюнкі адразу ў форме зыходнага коду. Для гэтай мэты быў створаны фармат XBM (X BitMap), а таксама некаторыя іншыя, аднак XBM нас цікавіць зараз болей за іншыя.
27 сентября 2013 г.
Нататкі аб RL78: Прывітанне свет, альбо запальванне святлодыёда
Подписаться на:
Сообщения (Atom)

