banner
按时间整理的学习笔记。

文章归档

Scroll down
嵌入式开发

时间系统看起来简单,但在嵌入式设备里经常引发连锁问题:日志时间不准、TLS 证书校验失败、MQTT 连接失败、定时任务错乱、跨时区展示错误。要把时间做好,需要同时理解系统时间、RTC、NTP 和时区。

网络问题是嵌入式现场最常见的问题之一。设备能不能拿到 IP、能不能解析域名、能不能连上 MQTT、断网后能不能恢复,都会影响产品稳定性。

嵌入式设备经常被直接断电。配置文件、日志、数据库、升级状态如果没有设计好,异常断电后就可能损坏。存储设计不是文件能写进去就结束了,还要考虑写入频率、原子性和 Flash 寿命。

设备树和驱动是嵌入式 Linux 的核心内容之一。很多外设问题不是驱动代码错了,而是设备树、引脚复用、电源、时钟、复位脚或硬件连接出了问题。入门时要先理解“设备树描述硬件,驱动使用这些描述”。

嵌入式设备部署到现场后,不能依赖人工登录重启服务。网络异常、进程崩溃、死锁、内存泄漏、硬件偶发故障都可能发生。自恢复能力是产品稳定性的底线。

嵌入式开发真正拉开差距的地方,是定位问题的能力。一个问题发生后,能不能快速判断属于启动、文件系统、网络、应用、驱动还是硬件,直接决定修复效率。

设备能在实验室跑起来,只是第一步。真正部署到现场后,固件升级能力会变得非常关键。没有可靠 OTA,后续修 bug、加功能、修安全问题都会变成高风险操作。

很多嵌入式 Linux 产品的核心不是驱动,而是设备服务。它负责联网、接收云端或其他设备的控制协议、保存配置、上报状态、处理升级和自恢复。设备服务写得稳不稳,直接影响产品现场表现。

Buildroot 适合快速构建精简嵌入式 Linux 系统。它可以同时生成交叉工具链、内核、rootfs 和镜像。对入门和中小型产品来说,Buildroot 的学习成本比 Yocto 低很多。

RootFS 是嵌入式 Linux 用户态的地基。应用能不能启动、配置会不会丢、日志写到哪里、系统能不能长期运行,很多问题最后都会回到 rootfs 设计。

12345
请输入关键词进行搜索