搞过嵌入式的同学们都知道,当我们开始一个新的平台后,我们首先想到的是系统层面的东西,这就体现了嵌入式开发中系统工程师的作用了,BTW,Android平台除外,Google已经伺候的太好了。
ESP32实际上相对简单,一些例如Bringup的流程就省了。下面我就把我的思考过程写下来。
一、Build系统
ESP32的Build系统比较简单,留给开发者需要修改的也比较少。
一个项目典型的目录结构是:
project
--------main
--------components
Build大概的原理是,将esp-idf的components和本项目的components拷贝到一起,代码模块收集完成后,和main下面的代码一起编译成Bin文件,其实就是静态链接到一起了。
二、分区设计
分区设计需要在项目初始阶段考虑好,否则量产或者试产后更改代价比较大,甚至可能很难升级。因为只升级APP分区可以通过OTA等方式在线升级,整个的烧写至少需要串口连接。
ESP32文档中有对分区的类型的详细描述:
分区类型及子类型:
类型
|
子类型 |
app
|
factory
|