Открытое чтение без регистрации · демонстрационные уроки помечены отдельно

Найдите объяснение или пример

Поиск по урокам

Названия, вводные, текст и код опубликованных материалов. Можно искать по-русски, по-английски и по-сербски.

Результаты для «uint8_t»

Найдено: 22

Embedded C: ESP32, STM32 и надёжная прошивка

Урок 7. UART parser для AT-команд

…го источника. static bool uart_data_event_drain(size_t event_bytes) { uint8_t buf[256]; size_t remaining = event_bytes; while (remaining != 0U) { size_t request = remaining < sizeof(buf) ? remaining : sizeof(buf); int received = uart_read_b…

Embedded C: ESP32, STM32 и надёжная прошивка

Урок 42. Собственный бинарный протокол

…ные данные. Не передавай C-структуры напрямую Плохо: typedef struct { uint8_t version; uint32_t sequence; uint16_t value; } packet_t; uart_write_bytes(UART_NUM_1, &packet, sizeof(packet)); Проблемы: padding, endianness, размер enum, ABI, un…

Embedded C: ESP32, STM32 и надёжная прошивка

Урок 4. FreeRTOS queues, event groups и task notifications

…64_t timestamp_us; } input_snapshot_t; typedef struct { uint32_t seq; uint8_t old_phase; uint8_t new_phase; uint32_t raw_mask; int64_t timestamp_us; } phase_event_t; Очередь отвечает на вопрос: “какие именно данные произошли?” 5. Выбор длин…

Embedded C: ESP32, STM32 и надёжная прошивка

Урок 1. Прошивка - это не while(1), а система

…truct { app_event_type_t type; int64_t timestamp_us; union { struct { uint8_t channel; uint8_t old_phase; uint8_t new_phase; } phase; struct { int error_code; } fault; } data; } app_event_t; 6. Быстрый и медленный путь Для задач со светофор…

Embedded C: ESP32, STM32 и надёжная прошивка

Урок 6. State machine для Quectel EC25

…{ modem_state_t state; int64_t state_entered_us; int64_t deadline_us; uint8_t client_idx; bool at_ready; bool sim_ready; bool registered_network; bool pdp_active; bool mqtt_open; bool mqtt_connected; uint32_t at_timeout_count; uint32_t mqtt…

Embedded C: ESP32, STM32 и надёжная прошивка

Урок 35. TrustZone, Secure Boot и изоляция секретов: как отделить ключи и критичные функции от обычной прошивки

…NAL_ERROR, } secure_status_t; secure_status_t secure_sign_event(const uint8_t *message, size_t message_size, uint8_t *signature, size_t signature_capacity, size_t *signature_size); Private key никогда не возвращается наружу. 6.3.5 3.5. Secu…

Embedded C: ESP32, STM32 и надёжная прошивка

Урок 44. Fault injection и chaos testing

…се места. Сделай интерфейс: typedef struct { esp_err_t (*write)(const uint8_t *data, size_t length, size_t *written); esp_err_t (*read)(uint8_t *data, size_t capacity, size_t *received, uint32_t timeout_ms); esp_err_t (*flush_rx)(void); } m…

Embedded C: ESP32, STM32 и надёжная прошивка

Урок 51. DMA, cache coherency и zero-copy

… + ownership token -> application Пример descriptor: typedef struct { uint8_t *data; size_t length; uint32_t buffer_id; uint32_t generation; uint64_t timestamp_us; } buffer_view_t; Состояния RX-буфера FREE -> DMA_OWNED -> CPU_READY -> CPU_O…

Embedded C: ESP32, STM32 и надёжная прошивка

Урок 55. Property-based testing и state-machine fuzzing

…rator: static uint32_t fuzz_transaction_id(const modem_core_t *modem, uint8_t selector) { switch (selector % 5U) { case 0: return modem->transaction_id; case 1: return modem->transaction_id - 1U; case 2: return modem->transaction_id + 1U; c…

Embedded C: ESP32, STM32 и надёжная прошивка

Урок 45. Наблюдаемость и postmortem-анализ

…_t boot_id; uint32_t correlation_id; uint16_t module; uint16_t event; uint8_t severity; int32_t arg0; int32_t arg1; int32_t arg2; } obs_event_t; Boot ID, sequence, correlation boot_id отделяет разные запуски; sequence показывает порядок соб…

Embedded C: ESP32, STM32 и надёжная прошивка

Урок 30. Аппаратные таймеры, Input Capture и Output Compare

…ncy ≈ 1000 Hz ISR передаёт только: typedef struct { uint32_t capture; uint8_t edge; } timer_capture_event_t; Task считает period/duty/frequency. Добавь CLI capture: capture: resolution=1000000 Hz edges=120340 measurements=60170 period=999..…

Embedded C: ESP32, STM32 и надёжная прошивка

Урок 53. RCU, immutable snapshots и double-buffered configuration

…egistration_timeout_ms; uint32_t backoff_ms; uint32_t max_backoff_ms; uint8_t retry_limit; } modem_runtime_config_t; typedef struct { uint32_t schema; uint32_t generation; phase_runtime_config_t phase; modem_runtime_config_t modem; } runtim…

Embedded C: ESP32, STM32 и надёжная прошивка

Урок 9. Входы через оптопары

…ектор DC-входа Для DC можно использовать integrator: typedef struct { uint8_t acc; bool stable; } dc_input_filter_t; #define FILTER_MAX 10 #define FILTER_ON_THRESHOLD 8 #define FILTER_OFF_THRESHOLD 2 static void dc_input_update(dc_input_fil…