Search
Write a publication
Pull to refresh
161
27.8

Embedded SW/Firmware Engineer

Send message

Достаточно просто портировать LittleFS и wear-out leveling + fault-tolerant write появятся сами собой.
https://habr.com/ru/articles/925372/

Можно просто портировать LittleFs и ни о чем больше не думать.
https://habr.com/ru/articles/925372/

До чего же FC7300x безопасный микроконтроллер. Даже по нулевому указателю разрешает читать.

 Стремление сделать универсальные файловые менее ресурсоемкими привели к созданию littleFS

--Увидит ли ПК файлы, если запрограммировать LittleFs на SD карте?

--Есть ли в LittleFs Lazy Write?

Микроконтроллер без запущенного UpTime таймера, heart beat-LED, UART-CLI, NVRAM и модульных тестов это просто бесполезная электрическая цепочка.

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

Сделайте катодную трубку и покажите, пожалуйста, настоящие катодные лучи.

Просить текстовые комментарии к Си-коду - это как после просмотра кино просить ещё показать фильм о фильме.

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

Откуда в ядре берется гамма излучение?

За интеллектуальную часть устройства отвечает микроконтроллер ESP8266.Итак, ниже размещена принципиальная схема разработанного устройства.

Раз у Вас есть плата с ESP8266 и пьезокерамическим излучателем, то сделайте лучше детектор бесплатного WiFi.

Как я понял из YouTube масс-спектрометры, как раз электроны отсеивают в сторону, а анализируют ионизированные ядра (ионные лучи). И нужны масс-спектрометры для определения химического состава жидкостей. Выявления наличия изотопов.

Это никак не объясняет почему возникает это betta излучение. Масс-спектрометр даже не работает с электронами.

Видимо речь идет про какую-то частную реализацию, что является краеугольным камнем любого open-source изделия.

Так было в K1948BK018  (он же MIK32). Внутри процессор SCR1.

SCR1 это, в сущности, бильт ядра RISC-V с конфигом RV32IMC.

32-битный микропроцессор, 32 регистра общего назначения, с 3х стадийным конвейером исполнения команд, со встроенным целочисленным однотактным умножителем (буква М), с возможностью исполнять сжатые 16-битные инструкции (буква С).

https://habr.com/ru/articles/854050/

Вот тоже свежий баг с SPI.

Произошел сбой чтения по SPI1 в режиме DMA. В режиме SPI DMA RX не происходит прерывания по каналу DMA. Прерываний по Spi1DmaRx не происходит. Функция SPI1_Rx_DmaDoneCallback не вызывается. Мультиплексор DMA канала настроен на Spi1Rx. NVIC прерывания по всем 64-её DMA каналам включены. Пины GPIO настроен верно. Так как в режиме прерываний SPI принимает данные.  SPI cобытия Receive Word Flag; Receive FIFO Flag происходят.  Тест DMA MemCPY показывает, что работают только каналы DMA0_CH0, DMA1_CH0, DMA0_CH16 и DMA1_CH16. Остальные каналы DMA просто не работают. При этом отправка SPI1 по DMA работает, правда только для DMA0_CH1. Если поменять каналы местами, то  передача перестаёт работать. Всё это выглядит как какие-то случайные бессистемные явления.

Три дня колупался с этим. Проверял тактирование DMA, перебирал остальные 64 канала, пробовал выключить и снова включить, пробовал другой SPI трансивер (SPI2), читал Errata sheet на предмет SPI DMA ошибок.

В таких случаях я привык расширять диагностику до тех пор, пока что-то не станет понятно. Я стал в суперцикле опрашивать статусный регистр DMA и после SPI-чтения увидел статус ошибки. При разборе каждого бита появилась ясность.

Оказывается в этом микроконтроллере FC7300F8MDT запрещены настройки DMA с одинаковым приоритетом. Такие каналы просто игнорируются. Стоило в поле приоритет DMA канала прописать номер самого канала, как модульные тесты заработали.

Интересно как физики пришли к такому выводу? Микроскопом увидели? Или это лишь не опровергнута я гипотеза?

Откуда берется Бетта излучение? В ядре же якобы только положительные заряды-протоны.

Проблема в том, что мне надо гонять фреймворк, драйвера к устройствам по CI в облаке. Т.е там может быть даже не ARM. Надо виртуально создать те же SPI/Serial интерфейсы и виртуальные устройства к ним. И как то оттестировать все.

Так никто не делает. Вам надо собирать HIL стенд с целевой платформой.

Все, что выше тестируется легко. А вот уровень железных интерфейсов - боль. Не поделитесь?

Тест SPI приёма может быть таким:
--Отключить всё от пинов SPI.
--Установить на пине MISO Pull Up. Прочитать байт по SPI. В приёмном регистре должно быть 0xFF.
--Установить на пине MISO Pull Down. Прочитать байт по SPI. В приёмном регистре должно быть 0x00.

Если так, то тест пройден. Если нет, то приём по SPI не работает.

1
23 ...

Information

Rating
512-th
Location
Москва, Москва и Московская обл., Россия
Registered
Activity

Specialization

Embedded Software Engineer, DevOps
Senior
Git
Bash
CI/CD
C
Embedded system
Programming microcontrollers
Software development
Algorithms and data structures
System Programming
Development of drivers