Search
Write a publication
Pull to refresh
4
0

User

Send message

Не стесняйтесь, прикладывайте сразу ссылку на наш официальный ответ: https://habr.com/en/companies/pvs-studio/articles/769634/comments/#comment_26096348

433 ресивер и трансмиттер там стоят самые сраные. Трансивер там на таблетке у которой плавает частота адски, а ресивер на регенеративном приемнике из сдвоенного опампа. Что мешало взять entry level любого норального производителя радио чипов - непонятно.

1) параллельно собирается и там и там

2) есть

3) так же тестовой джигой проверяются все пины на вход и на выход

4) есть

5) в зависимости от того как какой дефект

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

Rust нету, его дропнули давно. Всё ядро на С, а С++ можно найти во фрэймворке гуйовых приложений и приложениях RFID, IR, iButton.

Концептуально нету разницы между армом и x86 для того что мы написали. Есть общие проблемы дизайна lock-free алгоритмов и структур данных. Самый просто пример это когда модель не помещается в машинное слово и её частичное обновление приводит к крашу, в этом случае явно нужно ее гардить каким-либо примитивом синхронизации ОС.

Чтобы не заставлять разработчиков ломать голову над доступом к памяти у нас есть несколько типов моделей представления: без блокировок и с блокировками доступа.

В общем описанная ситуация не возможна: приложение включается в дерево отрисовки только когда оно сказало что готово.

Напишите как долно быть и сделайте пул реквест.

И получится микроядро.

Вы представляете себе какая потребуется сложность аллокатора и оверхед чтобы заставить это работать в реальности? Какой будет сложность взаимодействия между тасками?

Даже основной код прошивки не поместится после этого в память.

MPU используется для защиты 0x0 от записи.

Оверхед на трекинг ресурсов будет равен бесконечности. В больших ОС для этого есть интерфейс сисколов и MMU, у нас ничего.

256 это на самом деле 192 + 32 + 32.

Где 32 + 32 отдается второму ядру и IPC.

Из оставшихся 192 мы используем 70.

Остается 120к.

MPU не защищает от этого. Но у нас есть трекер кучи который по закрытию приложения дампает в консоль репорт. Подразумевается, что при написании приложения, разработчик туда смотрит и если баланс не сходится, то фиксит забытые деаллокации.

Надо сказать что мы пересмотрели все варианты слоя склеивающего newlib с низлежащей ОС и везде всё печально.

Лучший вариант исполнения у ChibiOS: они почти ничего не используют из стандартной библиотеки и всё строят на своих примитивах. Это одно из наиболее идеологически чистых и правильных решений, с абсолютным контролем над кодом и надежностью.

В долгосрочной перспективе мы стремимся к тому что в ChibiOS.

Даже велосипед будет лучше чем newlibc которая идет в штатной поставке с тулчейном.

Есть одна большая проблема с большинством десктопных libc: они не предназначены для эмбеда и в компактной поставке не threadsafe и не reentrable. Что приводит к багам из ада.

FuriRecordDataDict_set_at работает с POD типами и выполняет alloc + copy. Возращаем мы указатель на элемент контейнера и единственный метод получить его это запросить его после set_at.

А так да, в M-Lib есть немного черной магии.

Это была копипаста с другого блока, сейчас там strncpy

Если выезжаете за пределы Токио или Осаки то нужен. В худшем случае обойтись можно гугл переводчиком, симку с инетом или мобильный роутер можно арендовать чуть ли не в аэропорту.

Вся япония интересна и можно порекомендовать каждый её уголок, вопрос только в том что вам интересно самому.

И ещё: Япония сейчас закрыта для туристов.

Они немного про другое. Барьер гарантирует что операции работы с памятью доедут, но штук типа LOCK INC нету.

Для 50+ Вт есть стандартный техпроцесс когда вырезают полигон и запрессовывают туда теплоотвод и потом пекут всё это вместе. У некоторых усилителей видел это в даташите.

Всё ядро и библиотеки на С, а для приложений доступен выбор между С и С++.

Выбор ОС и всего остального очень быстро перестал быть выбором из-за наличия больших сторонних компонентов завязанных на ST-шный хал.

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

В общем поддержка других языков не бесплатна с точки зрения флеша и оперативы, при этом встроенный флеш достаточно скромных размеров, что ограничивает нас в количестве одновременно поддерживамых стэков.

При этом никаких ограничений на использование Rust/MicroPython/Lua/etc нету.

1

Information

Rating
Does not participate
Registered
Activity