VsCode设置ESP32工具链+刨根问底点灯(补篇)

2021-01-20 15:45:12 浏览数 (1)

这篇文章是我昨天文章的一些补充,两篇文章结合的看就完整了

首先,最后明确一次我们的小开发板的性能情况

简单来说就是4MB的外部SPI Flash,448KB的内部ROM,520KB的内部SRAM

地址映射图,这个图日后会多次用到,放到这里先睹为快

昨天的文章缺少对一个标准的例程目录的解读,加上

  • .vscode (VSCode 项目配置目录)
    • c_cpp_properties.json (C/C 项目配置)
    • settings.json (工程配置)
  • build (编译后的文件目录)
  • main (工程主代码目录)
    • CMakeLists.txt(main的CMake配置文件)
    • component.mk (main组件的配置文件)
    • hello_world_main.c(hello world代码)
  • CmakeLists.txt (CMake配置文件)
  • Makefile (make配置文件)
  • REAADME.md
  • sdkconfig (make menuconfig生成的配置文件)
  • sdkconfig.old(make menuconfig生成的备份配置文件)

因为我提了别的目录,就都截图了

一个工程名helo-world,并include了ESP_IDF下的project.mk

这个目录的东西就很多了,头麻的很

这个时Cmake编译时要的文件

内容同makefile一致,一个工程名helo-world,并include了ESP_IDF下的project.cmake.之里还定义了cmake的最小版本

这就是组件库,就好像现成的积木一样


一个 ESP-IDF 项目可以看作是许多不同组件的集合,例如对于一个展示当前湿度的网站服务器来说,它可能会包含如下一些组件: 1.ESP32 基础库(libc,rom bindings 等) 2.WiFi 驱动库 3.TCP/IP 协议栈 4.FreeRTOS 操作系统 5.网站服务器 6.湿度传感器的驱动 7.将上述组件组织在一起的主代码 ESP-IDF 可以显式地指定和配置每个组件。在构建项目的时候,编译系统会查找 ESP-IDF 目录、项目目录和用户自定义目录(可选)中所有的组件,然后使用基于文本的菜单系统让用户配置 ESP-IDF 项目中需要的每个组件。在配置结束后,编译系统开始编译整个项目 概念 项目: 特指一个目录,其中包含了构建可执行文件的所有源文件和配置,还有其他的支持型输出文件,比如分区表、数据/文件系统分区和引导程序。 项目配置: 保存在项目根目录下名为 sdkconfig 的文件中,它可以通过 make menuconfig 进行修改,且一个项目只能包含一个项目配置。 应用程序: 是由 ESP-IDF 构建得到的可执行文件。一个项目通常会构建两个应用程序:项目应用程序(主可执行文件,即用户自定义的固件)和引导程序(启动并初始化项目应用程序的引导程序)。 组件: 是模块化的、独立的代码,它们被编译成静态库(.a 文件)后再链接成应用程序,有些组件是 ESP-IDF 官方提供的,有些则可能来自其它项目。

所以这个main目录其实也是一个组件,就好像是把一切东西组织起来的

cmake这个写起来比较人性化

然后cmake会生成mk文件,本质上还是mk文件在指导编译器干活


Cmake编译main组件的配置,可以看到其中设置源码的位置,并注册了组件

代码语言:javascript复制
   • 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 –

这里放上一些常用到的make命令

我们昨天的自带串口没有输出这个打印的信息

今天用xshell连接,参数如图所示

打印成功

0 人点赞