Байтоёбства псто

Jun 20, 2021 12:49

Меня тут жизнь заставила потрогать компилятор XC8 от майкрочипа для мелких контроллеров. Это, я вам скажу, целый отдельный мир в себе. Зато я теперь понимаю, откуда на форумах тонны говнокода с двоичными или шестнадцатиричными константами, а разбуженный внезапно ночью пикоман будет бормотать что-то типа "0xA8 в регистр 0xBB включает режим ( Read more... )

rant, программизм, терминальное

Leave a comment

nicka_startcev June 21 2021, 09:33:55 UTC
>Но это нормальные люди. Пикоманы же пытаются сделать "удобно" и делают промежуточные структуры с битовыми полями. Тот же код будет выглядеть как "CTRL_A.option1=1; CTRL_A.option2=1;", но при этом, как всегда, есть нюанс - каждый бит будет ставиться отдельной инструкцией. Семь бит - семь команд.

а под arm те же самые пикоманы плодят дикие структуры, которые заполняют перед каждым вызовом любой функции (cmsys и рядом). и это при том, что на opencm3 код будет и короче и читаемее, и даже бинарник будет мельче.

Reply

ex0_planet June 21 2021, 09:34:48 UTC
Но там же не заставляют двоичные константы выяснять?

Reply

nicka_startcev June 21 2021, 09:45:47 UTC
не заставляют, но по факту похожий трэш бывает.
в смысле, по факту многие афтыри ставят.
весело бывает разбирать какой-нибудь "reg_foobar = 0x12345678ULL;" на важные в текущем контексте биты и случайно (или неслучайно) поднятые/опущеные по иным причинам биты.

Reply

ex0_planet June 21 2021, 09:48:48 UTC
Дык, там ты всегда можешь выкинуть хоть калокуб, хоть cmsys и написать всё на чистых регистрах, поскольку дефиниции никуда не деваются.

Тут же НЕТ других вариантов кроме как парсить трешатину FOOBAR=0x1234 или пилить сразу свои правильные хедеры.

А, и да. В родных примерах от mcrch попадается вообще всё что угодно, начиная от CTRL.bit = 1; и заканчивая asm("bsf CTRL, 7")

А еще там прямая битовая адресация есть, это когда CTRLbit объявлен непосредственно по адресу 0x88f (и в скобочках пояснение что это 0x111*8+7).

И всё это вперемешку.

Reply

nicka_startcev June 21 2021, 09:53:48 UTC
так и в арме такая "педерастия вперемешку" попадается.
но микрочип в этом плане имя нарицательное.

>Тут же НЕТ других вариантов кроме как парсить трешатину FOOBAR=0x1234

это в фирменных хедерах такой трэш?

Reply

ex0_planet June 21 2021, 09:56:15 UTC
Скажем так, в фирменных хедерах такой треш, что все пишут вот так.

Reply

nicka_startcev June 21 2021, 10:01:48 UTC
что-то мне это напоминает windows.h от микрософтовского компилятора, который с мс-аналогом -Wall нельзя было собирать

Reply


Leave a comment

Up