嵌入式开发环境的一些经验

整理一下这几年搭嵌入式开发环境积累的东西,都是踩坑换来的。

工具链不要追新

交叉编译工具链是那种”能用就别动”的东西。升级一次可能带来一堆莫名其妙的链接错误,而收益往往只是某个你根本用不到的优化。SDK 装好之后,把版本号记在项目的 README 里,锁死。

SDK 和工程要分离

Zephyr SDK 动辄十几个 G,绝对不该塞进 git 仓库。正确的做法是工程里只放源码和配置,SDK 路径通过环境变量或 ZEPHYR_SDK_INSTALL_DIR 指定。换机器时重新装 SDK,而不是拷。

串口调试要留后路

设备一旦刷了有问题的固件,可能连不上、起不来。所以:

  • 保留一个能进 bootloader 的物理方式
  • 关键日志写到 flash,重启后还能读
  • OTA 一定要做双分区,A 区刷坏了还能回滚到 B 区

这些不是”以后再说”的事,等真出事的时候现场是没法补救的。

日志比断点有用

嵌入式上单步调试经常不可行——时序会乱、外设会超时。与其花时间搭调试环境,不如把日志做扎实:分级、带时间戳、能重定向到串口或 flash。很多问题看日志比断点快。

发表评论

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

滚动至顶部