Этого треда уже нет.
Это копия, сохраненная 25 мая 2021 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
fc8d719a5012080c9d0b25a754965ce9.jpg321 Кб, 632x596
Сап /ra/дач, переписиваем ебаный SPL 385465 В конец треда | Веб
Ни для кого не секрет что либы SPL полное гавно. Про тех кто юзает HAL я вообще молчу.
Стала задача переписать SPL OLEDa SSD1306 под регистры stm32f103c8t6
Либа из этой статьи
https://habr.com/ru/post/313490/
Ток вот я запоролась когда пробовала переписать интерфейс I2C на регистры.
Хелп кто шарит
2 385467
>>465 (OP)
Че помочь? За тебя переписать?

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

А мимохую нет смысла ебланиться.
3 385469
Это как? Там и так все на регистрах, кроме инициализации и небольшой функции I2C_CheckEvent в одном месте.
Речь точно об этом коде? https://github.com/SL-RU/stm32libs/blob/master/stm32f10x/ssd1306/ssd1306_i2c.c
4 385471
>>467
Та думала может кто сталкивался, у кого переписаная есть.
А так не могу роздуплиться с регистрами i2c, постоянно танцы с бубном. Может у кого есть своя, заведомо рабочая, либа для работы с i2c?
А под этот олед я б уже сама допилила
5 385473
>>471
Есть открытый проект по переписыванию SPL, я не смотрел че они там сделали.

Там 1.5 регистра контроля и 1.5 статуса, где там разбираться?
Советую написать полностью софтварный простейший I2C и поговорить с еепромом каким.
После чего прочитать даташит на модуль и даташит на дисплей.
6 385474
>>473
Оп, а можно ссылку? Мож там чего найду.
Я пока что тупая, для меня эти 1.5 регистра контроля и 1.5 статуса - оверфлоу(
7 385475
>>473

>Есть открытый проект по переписыванию SPL


Это ты сейчас о чем? Про LL?
Но все равно "Либа из этой статьи" и так на регистрах почти полностью.
8 385476
>>465 (OP)
Еще раз повторю. Там из всего SPL только инициализация. Еще в одном месте используется I2C_CheckEvent но это еще проще заменить. Там и так почти все на регистрах.
Что там переписывать то? И зачем? Можно только на LL переделать, т.к. ST рекомендует не использовать SPL.
С55нимок.PNG28 Кб, 539x433
9 385477
>>475
"Либа из этой статьи" работает с "stm32f10x_i2c.h" который и имелось ввиду переделать
10 385479
>>476
Походу речь идет как раз о переделке на LL
12 385481
>>477
Было бы что переписывать. Эта функция в основном только высчитывает значения каких-то делителей и записывает результат в регистры.
Конечно можно выкинуть расчеты из кода, посчитать руками и вбить в код константы. Но зачем?
Просто скопипасть в свой код содержимое этих функций. А еще можно пройтись отладчиком и скопировать значения, записываемые в регистры.

>>479
Так оно от SPL незначительно отличается. Вроде даже программка от ST имеется, по автоматическому переносу кода.
13 385483
>>465 (OP)

> Ни для кого не секрет что либы SPL полное гавно.


Кто сказал?

> Про тех кто юзает HAL я вообще молчу.


Почему?

> Стала задача переписать SPL OLEDa SSD1306 под регистры


Нахера? Работает не трогай.

> Ток вот я запоролась когда пробовала переписать интерфейс I2C на регистры.


Ебать ты тупой. Как ты вообще тогда можешь говорить о качестве spl и hal?
14 385492
>>483

>Кто сказал?


Я говорю.
Потому, что

SetFatherCuckMode(ULTRACUCK_TRIUMVIRATE, CUCKFATHER_GPIO_STATE_LOW_PIZDEC, DONT_FUCKMOTHER_BEFORE_NIGGA, &nigga, STAY_WHILE_CUM)

Это пиздец рак и просто уебище.
Я понимаю, когда подобная хуйня это разовый кастомный код, но блядь делать так переиспользуемую либу?

Я один хуй жру это говно, но заворачиваю его в свои функции, что бы не видеть нахуй.
15 385496
>>492
И как же по твоему должна выглядеть правильная библиотека? Одна функция "сделать все заебись"?
Вот конкретно, что не так с функцией I2C_Init? Может быть убрать возможность изменять разрядность адреса? Ведь совершенно лишняя настройка, у всех всегда адрес 7 бит.
16 385497
>>492
void FuckYouMom(u8 count){
for(u8 i=0; i==count; i++){
while(she_finished == TRUE){
Sent_My_Dick();
she_finished = Read_Moher_Vagina_Stat();
}
}
}

int main(){
while(1){
FuckYouMom(100500);
}
}
17 385499
>>496
Согласен с аноном №385492.
Функции "сделать все заебись" нету, и будет не скоро. Однако когда ты пишешь все дрова с нуля на регистрах ты точно знаешь сколько это займет инструкций и сколько сожрет памяти. Когда имеешь дело с спл такой розкоши нету. HAL - это портянки неистового пиздеца который заливается в МК словно в помойную яму, а плавающий сверху бумажный кораблик - это твой рабочий код.
Когда ты кварцевый эмбедед у тебя все библиотеки должны быть свои и кастомизированые сугубо под твои задачи.
18 385500
>>483
Спорить о качестве spl и hal смысла нету - они дерьмо.
ЗЫ
19 385503
>>483
Спорить о качестве spl и hal, смысла нету - они дерьмо.
ЗЫ
"Ебать ты тупой" в любом случае здесь не подошло бы, т.к. это "она", а не "он", лол
Аноним 20 385504
>>496
1. По функции на настройку.
2. Не нужно по 10 ебаных тайпдефов, на функцию.

В итоге инит будет

SetCuckMode(ULTRACUCK_TRIUMVIRATE);
SetCuckfatherState(LOW);
SetFuckmotherMode(WAIT_NIGGA);
SetNiggaCallbackStr(&nigga);
SetCuckAction(STAY_WHILE_CUM);

Cuckold(RESET);

Хуяк и все красивенько уже, да вертикально длинее, но это уже оборачиваешь в свою СДЕЛАТЬ ЗАЕБИСЬ функцию и сохраняешь и читаемость и размер в коде самого приложения.
Аноним 21 385505
>>504
Есть еще вариант с инит структурами, но там тоже все засрали тайпдефы.
22 385510
>>503
Тупой "он" пытается прикинуться бабой, в надежде что хоть так за него кто-то напишет ему код.
23 385522
>>510
Может это просто такой уровень траллирования?

>>499
Аргументы ни о чем. Взять этот же I2C_Init, в нем тупо переписываются из структуры в регистры поля I2C_Mode, I2C_OwnAddress1, I2C_AcknowledgedAddress, I2C_Ack. Из остального рассчитываются предделители. Переписать это дело 5-10 минут. Но даже если перепишешь ты на CMSIS, что поменяется? Освободиться немного места в памяти, только и всего.

>все библиотеки должны быть свои и кастомизированые сугубо под твои задачи.


В обсуждаемом коде и так все на регистрах, кроме инициализации. Прямо такая принципиальная разница на чем писать инициализацию периферии?

>а плавающий сверху бумажный кораблик - это твой рабочий код.


А ты похоже сторонник равномерно размешивать по своему коду взаимодействие с периферией?

>>504
Глупые аргументы. Ни в SPL ни в LL, подобного кода просто нет.

>1. По функции на настройку.


В какой момент будет происходить запись в регистры? В каждой функции, да еще и чтение из регистра добавится?

>2. Не нужно по 10 ебаных тайпдефов, на функцию.


Так у тебя будет по одному тайпдефу на 10 функций. Тем более в I2C_Init вариант именно с одной структурой.

>но это уже оборачиваешь


Какие еще варианты есть? Хуярить всю настройку периферии в main? Так если у тебя что-то отличное от мигалки, настройка периферии займет больше сотни строк, вне зависимости от используемых библиотек. Может ты рассматривал вариант не писать свои функции вообще и обходиться одним main-ом?
24 385523
>>503

>spl и hal


Похоже, что все противники spl и hal не слышали про LL. Как же так?
15613923171940.png274 Кб, 900x880
25 385524
>>510
Глянул на размер треда и охуел от того что это все еще работает в 2к19. Инцелы такие инцелы.
26 385525
>>524
Из всего треда это сработало только с тобой и максимум еще одним аноном. Если бы сработало - в треде был готовый код. С остальными сработало SPL полное гавно.
Аноним 27 385526
>>522

> Ни в SPL ни в LL, подобного кода просто нет.


Ну так поэтому ее и не любят в том числе.
А нету, потому что это из OpenCM3

>Так если у тебя что-то отличное от мигалки, настройка периферии займет больше


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

>настройка периферии займет больше сотни строк


Есть и занимает.
Потому, что промотать до нужного места или перейти через функцию ИДЕ - несколько секунд, а вспоминать что там делает и означает тонна текста минуты, минимум.

>Так у тебя будет по одному тайпдефу на 10 функций.


Т.е. в 10 раз меньше хуйни это мало?

>В каждой функции, да еще и чтение из регистра добавится?


Функции требующие атомарности не требуют кучи параметров на вход, так что мимо и притянуто за уши.

>В какой момент будет происходить запись в регистры?


Это в какой инициализации важно последовательность записи?
В GPIO? Ну так у тебя 2 функции, одна на инит, другая на переключение.
Как и в SPL.

>>523
Не легче сразу в регистры писать?
28 385694
Перекат в STM32 тред: https://2ch.hk/ra/res/339005.html (М)
Тред утонул или удален.
Это копия, сохраненная 25 мая 2021 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /ra/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски