ESP32那些事儿(二):磨刀不误砍柴功-做好项目开发前的准备工作

       如果你是第一次接触FreeRTOS和ESPRESSIF的产品,例如我,那还是要先来个整体印象,然后再逐个深化。做项目的都知道,老板们是不允许我们四平八稳的研究完然后再开始项目。
       那也不妨碍咱们要有自己的节奏,既要平衡项目的进度,也要按照事情的规律来做事情 。这就需要快速的准备一些预备知识,磨刀不误砍柴功,仓促上阵,只会欲速则不达。

    一、了解ESP32芯片
    ESP32的基本参数如下:

     更深入一点的,我们可以看看ESP32的规格书:
    《esp32_datasheet_cn.pdf》
    《esp32_technical_reference_manual_cn.pdf》
    这些都可以从乐鑫的网站上下载。

    二、初步了解FreeRTOS
    ESP32使用FreeRTOS,并且做了基于双核的定制,如果你是第一次接触FreeRTOS,那也是要简单的了解一下FREERTOS。有一篇详细的文档,可以前期快速浏览一部分:
    《FreeRTOS_Reference_Manual_V9.0.0.pdf》
    
    三、阅读ESP-IDF文档
    了解完FreeRTOS,就要看看esp32提供了那些功能,在真正开始之前,我们需要快速的浏览一下esp32的sdk,具体的网址如下:
    https://esp-idf.readthedocs.io/en/latest/index.html,
    这份文档是esp32开发最权威、最完整的官方文档,所以要经常的查阅翻看这份官方文档。他的wifi功能

    四、安装ESP-IDF环境
    接下来就要真刀真枪的实验一番了,不过首先就要安装ESP-IDF的环境,可以看官方文档中的Get Started一章,
    https://esp-idf.readthedocs.io/en/latest/get-started/index.html
    这里有最新的最全的配置步骤,这些环境配置步骤包括:
    1、准备编译的PC(windows/mac/linux接口),准备开发板和USB连接线。
    2、配置交叉编译工具链。
    3、从github中下载esp-idf。
    4、安装和配置编辑开发环境,官网上推荐Eclipse,可以集成GDB调试。这一步是可选的,我自己没有用这种方式。

    只要按照文档的步骤,基本上都不会有问题。       

    五、ESP32的编译
    这时候就可以进行最有意思的工作,开发编译应用程序并且试验一下。这大概可以总结为四步:
    1、配置项目,编写代码。
    我们一把都会从一个例子开始,esp32代码中例子还是很丰富的。
    2、编译
    3、烧写
    4、Monitor和Debug程序的运行。
    我们通常使用串口的输出来进行Debug,就是使用最Low的打印来Debug。如果程序Bug不太好确定,也可用JTAG和GDB单步调试,开发板默认是支持JTAG的,通常自己项目的板子不一定支持这个。

    其中,编译和烧写有一些比较有用的命令,文档中并没有完全写出来:
    • make menuconfig – 运行配置菜单,做过kernel开发的会非常熟悉.
    • make defconfig - 为所有的配置项设置默认值
    • make all – 编译所有代码.
    • make flash – 把编译后的Bin文件烧写到ESP32中.
    • make clean – 清除编译产生的文件.
    • make monitor – 连接ESP32串口,并且输出ESP32的打印信息.
    • make erase_flash – 擦除ESP32上的整个Flash.
    • make size - 显示Bin文件中各个部分的大小
    • make size-components -, size-files - 每个模块所占内存的大小,这个在项目代码膨胀后还是比较有用的。
    • make app – 编译app.bin
    • make app-flash – 烧写app.bin
    其他的几个也可以顾名思义:
    • make app-clean –
    • make bootloader –
    • make bootloader-flash –
    • make bootloader-clean –
    • make partition-table –

    六、运行一个例子
    好了,到目前为止,你可以进入到esp-idf/examples,找一个 喜欢的例子,并且尝试编译和烧写了。
 

猜你喜欢

转载自blog.csdn.net/yd4330152763132/article/details/83584417