Embedded SW/Firmware Engineer
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
Достаточно просто портировать LittleFS и wear-out leveling + fault-tolerant write появятся сами собой.
https://habr.com/ru/articles/925372/
Можно просто портировать LittleFs и ни о чем больше не думать.
https://habr.com/ru/articles/925372/
До чего же FC7300x безопасный микроконтроллер. Даже по нулевому указателю разрешает читать.
Боже мой ,что это за ерунда?
--Увидит ли ПК файлы, если запрограммировать LittleFs на SD карте?
--Есть ли в LittleFs Lazy Write?
Микроконтроллер без запущенного UpTime таймера, heart beat-LED, UART-CLI, NVRAM и модульных тестов это просто бесполезная электрическая цепочка.
Визуальное программирование безусловно плохо так как рисунок не покрыть модульными тестами.
Сделайте катодную трубку и покажите, пожалуйста, настоящие катодные лучи.
Есть ли в LittleFs Lazy Write?
Увидит ли ПК файлы, если запрограммировать LittleFs на SD карте?
Просить текстовые комментарии к Си-коду - это как после просмотра кино просить ещё показать фильм о фильме.
Откуда в ядре берется гамма излучение?
Раз у Вас есть плата с ESP8266 и пьезокерамическим излучателем, то сделайте лучше детектор бесплатного WiFi.
Как я понял из YouTube масс-спектрометры, как раз электроны отсеивают в сторону, а анализируют ионизированные ядра (ионные лучи). И нужны масс-спектрометры для определения химического состава жидкостей. Выявления наличия изотопов.
Это никак не объясняет почему возникает это betta излучение. Масс-спектрометр даже не работает с электронами.
Так было в 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 канала прописать номер самого канала, как модульные тесты заработали.
Интересно как физики пришли к такому выводу? Микроскопом увидели? Или это лишь не опровергнута я гипотеза?
Откуда берется Бетта излучение? В ядре же якобы только положительные заряды-протоны.
Так никто не делает. Вам надо собирать HIL стенд с целевой платформой.
Тест SPI приёма может быть таким:
--Отключить всё от пинов SPI.
--Установить на пине MISO Pull Up. Прочитать байт по SPI. В приёмном регистре должно быть 0xFF.
--Установить на пине MISO Pull Down. Прочитать байт по SPI. В приёмном регистре должно быть 0x00.
Если так, то тест пройден. Если нет, то приём по SPI не работает.