189 похожих чатов

Товарищи-Программисты и инженеры, вопросец у меня есть. Тапками не кидайте,

но сам уже замучился.
Вводная: Есть библиотека LoRaWAN которую совместно пилили семтек, СТ и стакфорс (имена этих ужасных людей есть, порчу уже навел). Появилась необходимость портировать сей шедевр в ртос. Уже переделал бо́льшую часть проблемных мест и оно завелось и даже стабильно работает, но очень не хватает какого-нибудь руководства по тому, как сделать этот "шедевр" читаемым и переносимым. Может есть что-то, что можно почитать и как-то подготовить либу к потенциальному переносу на другие арм-платформы? Ну и в целом по оформлению кода и разбиению на уровни абстракции и отдельные файлы (пишу на сях). Боюсь что второго переноса на какой-нибудь GD32 я не переживу

16 ответов

18 просмотров

Так у них там платформ уже готовых немеряно. Там всё прозрачно и по названиям директорий понятно что где лежит.

Maxim-Khodnenko🌈 Автор вопроса
x893
Так у них там платформ уже готовых немеряно. Там в...

М, ну в этом же и проблема. Готовые платформы это не очень выгодно как по цене так и по потреблению, а сейчас у меня stm32l0 и отдельный дешёвый модуль радио. Готовые решения это обычно встроенный МК который работает только с трансивером, на семтековской недооперационке и управляемый АТ-командами. А сейчас я обхожусь одним чипом, который отвечает и за лора-стек и за свои основные задачи

Ты один над этим работаешь?

Maxim-Khodnenko🌈 Автор вопроса
Sergey
Ты один над этим работаешь?

Пока да, но маячит перспектива появления коллеги. Так что задача совместной работы над кодом тоже стоит где-то рядом

Maxim Khodnenko🌈
М, ну в этом же и проблема. Готовые платформы это ...

Я так и использую. Модули разные RAK4270, RAK4200, RAK3172, LORA-E5, RAK811, WRL089, и прочие.

Maxim-Khodnenko🌈 Автор вопроса
Maxim-Khodnenko🌈 Автор вопроса
x893
Я так и использую. Модули разные RAK4270, RAK4200,...

У нас крайне ограничен размер платы и цена устройства, поэтому есть как есть. Да и сейчас уже рад что удалось перетащить всё в cmsis-rtos так что не вижу смысла отказываться от неинтегрированного модуля

Насколько я понял тебе нужно рефакторить твой проект и подвести его под определенные рамки для дальнейшего использования другими людьми (проектирование, конструирование, документирование, дальнейшее сопровождение).

Maxim-Khodnenko🌈 Автор вопроса
Sergey
Насколько я понял тебе нужно рефакторить твой прое...

Бинго. Вот хотелось бы какую-то литературу если есть с рекомендациями по разделению всего этого добра. У ст доминирует идея про Board support package но я не знаю есть ли ещё варианты

Maxim-Khodnenko🌈 Автор вопроса

Спасибо, ознакомлюсь

отдельные главы чистая архитектура Роберт Мартин. Там они embedded посвящены. А можно целиком. Книга прекрасна. Но в си нет интерфейсов, хоть и можно сделать по-другому

Maxim-Khodnenko🌈 Автор вопроса
Евгений
отдельные главы чистая архитектура Роберт Мартин. ...

Я стараюсь использовать "Интерфейсы и реализации в Си" в целом, но хорошо:) возможно у меня даже эта книжка где-то есть бумажная, накупил добра как хомяк а руки не доходят. Спасибо!

Maxim Khodnenko🌈
Я стараюсь использовать "Интерфейсы и реализации в...

Книга отлично описывает, как строить архитектуру. Есть главы посвящённые железу. Указатели на функции в принципе могут заменить интерфейсы. По сути такой же контракт, но не такой сахар

Maxim-Khodnenko🌈 Автор вопроса
Евгений
Книга отлично описывает, как строить архитектуру....

Мне абстрактные типы понравились, ну и в целом статиков побольше, статиков, по самые уши, чтоб наружу только пара функций интерфейса торчало

попробуйте Haskell =)

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта