Найдите объяснение или пример
Поиск по урокам
Названия, вводные, текст и код опубликованных материалов. Можно искать по-русски, по-английски и по-сербски.
Результаты для «uint8_t»
Найдено: 22Embedded C: ESP32, STM32 и надёжная прошивка
… CMD_OTA_START, CMD_SYSTEM_REBOOT, } command_type_t; typedef struct { uint8_t protocol_version; uint32_t issuer_id; uint32_t key_id; uint32_t target_device_id; uint64_t command_id; uint64_t sequence; uint64_t issued_utc_s; uint64_t expires_…
Embedded C: ESP32, STM32 и надёжная прошивка
…го источника. 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 и надёжная прошивка
…ные данные. Не передавай 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 и надёжная прошивка
…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 и надёжная прошивка
…_GREEN, PHASE_CONFLICT, } phase_t; typedef struct { bool initialized; uint8_t stable_mask; uint8_t candidate_mask; uint64_t candidate_since_us; uint32_t debounce_us; uint32_t sequence; } phase_detector_t; typedef struct { bool emitted; phas…
Embedded C: ESP32, STM32 и надёжная прошивка
…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 и надёжная прошивка
…{ 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 и надёжная прошивка
… 1.719 мс t3.5 ≈ 4.010 мс Helper: typedef struct { uint32_t baudrate; uint8_t data_bits; bool parity_enabled; uint8_t stop_bits; } serial_format_t; static uint32_t serial_char_time_us(const serial_format_t *fmt) { uint32_t bits = 1U + fmt->…
Embedded C: ESP32, STM32 и надёжная прошивка
…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 и надёжная прошивка
…се места. Сделай интерфейс: 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 и надёжная прошивка
…_kind_t; typedef struct { int64_t timestamp_us; uint32_t sequence_id; uint8_t event_type; uint8_t payload[64]; uint16_t payload_len; } transport_event_t; void transport_service_init(void); bool transport_service_send_event(const transport_e…
Embedded C: ESP32, STM32 и надёжная прошивка
…E_QUEUE_LENGTH 16U static StaticQueue_t s_phase_queue_control; static uint8_t s_phase_queue_storage[ PHASE_QUEUE_LENGTH * sizeof(phase_event_t) ]; static QueueHandle_t s_phase_queue; static void phase_queue_create(void) { s_phase_queue = xQ…
Embedded C: ESP32, STM32 и надёжная прошивка
… + 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 и надёжная прошивка
…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 и надёжная прошивка
…_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 и надёжная прошивка
…ь в phase_event_t: typedef struct { uint32_t sequence; phase_t phase; uint8_t mask; event_timestamp_t observed; event_timestamp_t confirmed; } phase_event_t; CLI-команда: time status Пример вывода: time: quality=SYNCED boot_id=42 sync_gener…
Embedded C: ESP32, STM32 и надёжная прошивка
…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 и надёжная прошивка
…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 и надёжная прошивка
…ificate_state_t state; int64_t not_before_utc; int64_t not_after_utc; uint8_t fingerprint_sha256[32]; uint32_t connect_success_count; uint32_t connect_fail_count; } certificate_status_t; 7.3.9 3.9. Ротация CA Безопасно: CA_OLD → firmware до…
Embedded C: ESP32, STM32 и надёжная прошивка
…ектор 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…
Embedded C: ESP32, STM32 и надёжная прошивка
…ает другую. UART RX DMA position: #define UART_RX_DMA_SIZE 256 static uint8_t uart_rx_dma_buf[UART_RX_DMA_SIZE]; static volatile size_t uart_rx_old_pos = 0; static void uart_rx_check_new_data(void) { size_t new_pos = UART_RX_DMA_SIZE - __HA…
Embedded C: ESP32, STM32 и надёжная прошивка
…us: DMA circular RX + IDLE/timer -> parser Interrupt per byte: static uint8_t s_rx_byte; void uart_rx_start(void) { HAL_UART_Receive_IT(&huart1, &s_rx_byte, 1); } void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) { if (huart->Instance…