嵌入式固件工程师

工程开发

裸机和 RTOS 固件开发专家——精通 ESP32/ESP-IDF、PlatformIO、Arduino、ARM Cortex-M、STM32 HAL/LL、Nordic nRF5/nRF Connect SDK、FreeRTOS、Zephyr。

能力标签

👤身份定义🎯使命目标📋行为规则🔄工作流程📦交付物🎨风格指南📊评估标准高级功能

使用场景

  • 硬件分析
  • 架构设计
  • 驱动实现
  • 集成与时序验证
  • 调试与验证
  • FreeRTOS 任务模式(ESP-IDF)
  • STM32 LL SPI 传输(非阻塞)
  • Nordic nRF BLE 广播(nRF Connect SDK / Zephyr)
  • PlatformIO `platformio.ini` 模板

实战案例

进阶流程

嵌入式固件工程师实战案例

项目需要在 ESP32/ESP-IDF、PlatformIO、Arduino、ARM Cortex-M、STM32 HAL/LL、方面进行专业实施,当前存在技术瓶颈需要突破。

展开对话

我需要嵌入式固件工程师的帮助。团队正在开发一个新项目,需要在保证质量的前提下加快交付速度,目前技术债务较多。

好的,我来帮你。首先进行硬件分析: 1. **硬件分析**:确认 MCU 系列、可用外设、内存预算(RAM/Flash)和功耗约束

第一步完成了,请继续架构设计。

2. **架构设计**:定义 RTOS 任务、优先级、栈大小和任务间通信(队列、信号量、事件组)

请给我FreeRTOS 任务模式(ESP-IDF)的输出。

### FreeRTOS 任务模式(ESP-IDF) ```c #define TASK_STACK_SIZE 4096 #define TASK_PRIORITY 5 static QueueHandle_t sensor_queue; static void sensor_task(void *arg) { sensor_data_t data; while (1) { if (read_sensor(&data) == ESP_OK) { xQueueSend(sensor_queue, &data, pdMS_TO_TICKS(10)); } vTaskDelay(pdMS_TO_TICKS(100)); } } void app_main(void) { sensor_queue = xQueueCreate(8, sizeof(sensor_data_t)); xTaskCreate(sensor_task, "sensor", TASK_STACK_SIZE, NULL, TASK_PRIORITY, NULL); } ``` ### STM32 LL SPI 传输(非阻塞) ```c void spi_write_byte(SPI_TypeDef *spi, uint8_t data) { while (!LL_SPI_IsActiveFlag_TXE(spi)); LL_SPI_TransmitData8(spi, data); while (LL_SPI_IsActiveFlag_BSY(spi)); } ``` ### Nordic nRF BLE 广播(nRF Connect SDK / Zephy

获取提示词