Информация
- В рейтинге
- 173-й
- Откуда
- Москва, Москва и Московская обл., Россия
- Зарегистрирован
- Активность
Специализация
Инженер встраиваемых систем, DevOps-инженер
Старший
Git
Bash
CI/CD
C
Встраиваемая система
Программирование микроконтроллеров
Разработка программного обеспечения
Алгоритмы и структуры данных
Системное программирование
Разработка драйверов
CSMA/CD - это вообще относится к Ethernet.
https://ru.wikipedia.org/wiki/CSMA/CD
механизм основан на случайной паузе при повторной отправке.
Арбитраж CAN - полная противоположность алгоритму CSMA/CD, где арбитраж происходит без пауз, на лету.
Да. Именно так.
Почему Сборка с Помощью GUI-IDE — это Тупиковый Путь
https://habr.com/ru/articles/794206/
Зато не надо пере собирать проект MBR компилятором.
Просто попатчил его бинарь и прошил в МК.
Нежные. Make-a испугались.
А что если сделать беспроводную передачу бинарных данных по лазерному лучу в реальном времени?
Данные передавать BPSK модуляцией (аппаратный PWM можно апаратно инвертировать). Сигнал принимать фотодиодом в связке с операционным усилителем (OPT101).
Все вычисления по приему и цифровой обработке данных выполнять на уровне прошивки микроконтроллера STM32F407VE. Надо принять при помощи ADC семплы с выхода фотодатчика. Декодировать BPSK модуляцию. Запрограммировать программный Costas Loop внутри прошивки.
Хватит ли у STM32 производительности?
Отличный вопрос. Остаток 15kByte можно отвести на конфигурационные данные, которые можно назначать утилитой TunerPro перед прошивкой загрузчика. Там как раз хранить значение адреса на которое следует прыгать.
Чем меньше загрузчик, тем больше поместится конфигурационных данных.
Обзор утилиты TunerPro (или const volatile)
https://habr.com/ru/articles/965828/
А если сделать стеклянную коробку наполненную белым дымом внутри которой один фотодиод? Луч будет рассеиваться внутри и однозначно попадет в окно фотодиода.
Тогда емкость будет только от фотодиода.
Есть такой текст
https://habr.com/ru/articles/975880/
Программатор из обломка платы Nucleo
Мне нравится, что startup написан на Си, а не на assembler. Поставил + тексту.
Это делает код переносимее между компиляторами, так как asm-gcc и asm-iar разные, как снежинки.
А может лучше собрать все указатели на функции init в массив указателей?
Архитектура Xорошего Кода Прошивки (Массив-Наше Всё)
https://habr.com/ru/articles/816589/
Зачем Вам этот аппаратный таймер?
Подключите внутриядерный DWT таймер.
Пуск DWT Таймера на ARM Cortex-M (или Ядерный Таймер)
https://habr.com/ru/articles/1005622/
А где же в Вашем проекте самое главное - файлы для системы сборки?
Ведь код сам собой не соберется в hex файл.
Есть даже чип с такой сборкой: OPT101P, Фотодиод с усилителем
https://www.chipdip.ru/product/opt101p-fotodiod-s-usilitelem-dip-8-texas-instruments-687648436
Можно ли сделать фотоприемник размером с лист A3?
А то попасть лазером в фотодиод на расстоянии 200 метров достаточно проблематично.
Согласен с автором, что программы надо отлаживать через уровни логирования.
Отладка программ уровнями логирования (или медицинская карта вашей программы)
https://habr.com/ru/articles/1016480/
(Глава 11, стр 322, Константы и строки)
Это в репозитории много чего лежит.
А к конкретной сборке подключается только то, что выбирается переменными окружения в GNU Make скриптах.
Полный состав реально задействованных исходников можно увидеть в логе сборки компилятора.
После сборки образуется файл-отчет build_log.txt , который и рассказывает, что из чего собиралось.
Вот, пожалуйста, проект загрузчика для платы JZ-F407VET6
https://github.com/aabzel/trunk/tree/main/source/projects/jz_f407vet6_mbr_gcc_m
Исходники вынесены "за скобки". То есть в папках на уровень выше.
Например, драйвер светодиода используется во всех проектах, поэтому он лежит в
https://github.com/aabzel/trunk/tree/main/source/control/led/led_mono
а не в папке с названием конкретного проекта
Репозиторий построен согласно вот этой методичке.
Что Должно Быть в Каждом FirmWare Pепозитории
https://habr.com/ru/articles/689542/
.cproject - это ж просто настройка текстового редактора eclipse.
Не более того.
Надо запустить скрипт build_from_make.bat. начнется построение.
В логе сборки будут фигурировать абсолютные пути к каждому си файлу.