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

文章归档

Scroll down
IT

嵌入式设备最终要和硬件交互。UART、I2C、SPI、GPIO 是最常见的外设入口。入门时不必先写驱动,可以先从用户态工具和 sysfs/dev 节点理解通信方式。

嵌入式设备上的业务并不一定要写成一个大进程。网络、配置、外设、升级、日志、看门狗可以拆分,也可以合并。关键是理解进程、线程和 IPC 的取舍。

嵌入式设备一旦联网,就必须考虑安全。基础安全加固不一定复杂,但默认空密码、开放调试端口、证书随意存放、升级包不校验,都会给产品留下明显风险。

现场问题最怕“设备有问题,但没有日志”。嵌入式设备的观测能力不需要一开始就复杂,但至少要能回答:设备是什么版本、发生过什么、当前状态如何、配置是什么、网络是否正常。

嵌入式产品最终要进入生产和现场。开发阶段能跑,不代表适合量产。生产测试、出厂配置、版本追踪和日志导出,是从开发样机走向产品必须补齐的环节。

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

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

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

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

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

1234516
请输入关键词进行搜索