C和C++嵌入式系统编程(MicbaelBarr(巴耳作者),于志宏(译者))

书: https://pan.baidu.com/s/1jDVnfhmGRwu5jeEuV63Kcg?pwd=bmyj
笔记如下:

  1. 嵌入式开发基础:C/C++在资源受限环境(如MCU)中的核心地位,强调效率与实时性。
  2. 硬件直接操作:通过指针访问内存映射寄存器(如volatile uint32_t* reg = (uint32_t*)0xFFFF0000)。
  3. 无操作系统编程:裸机(Bare-metal)开发模式,手动管理中断和时钟。
  4. 实时操作系统(RTOS):任务调度(如FreeRTOS的xTaskCreate)、信号量/队列的C实现。
  5. 内存管理约束:避免动态分配(malloc),使用静态数组或内存池(Memory Pool)替代。
  6. 低功耗优化:休眠模式(Sleep Mode)配置,外设时钟门控(Clock Gating)降低能耗。
  7. 中断服务例程(ISR):简短高效、避免阻塞,通过全局变量与主循环通信。
  8. 位操作技巧:置位(|=)、清零(&=)、翻转(^=)寄存器特定位。
  9. 外设驱动开发:UART、SPI、I2C的轮询与中断驱动实现。
  10. C++特性取舍:谨慎使用虚函数/异常(增加开销),模板(Template)适合编译时多态。
  11. 混合编程:C调用汇编(内联asm)优化关键代码(如CRC计算)。
  12. 跨平台兼容:处理字节序(Big/Little Endian)、对齐问题(__attribute__((aligned(4))))。
  13. 看门狗定时器:硬件看门狗(WDT)配置,防止系统死锁。
  14. 调试技术:JTAG/SWD调试,利用printf重定向到串口(Semihosting)。
  15. 固件更新:Bootloader设计,通过UART/USB实现OTA(空中升级)。
  16. 时序敏感代码:禁用中断(__disable_irq())、使用硬件定时器(如PWM生成)。
  17. 静态分析工具:PC-Lint检测未初始化变量、数组越界等隐患。
  18. 代码体积优化:编译器选项(-Os),移除未引用代码(-ffunction-sections)。
  19. EMC/EMI设计:软件层面的抗干扰措施(如信号去抖、冗余校验)。
  20. 行业标准实践:遵循MISRA C/C++规范,确保代码安全性与可靠性。

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注