VsCode设置ESP32工具链+刨根问底点灯(补篇)
这篇文章是我昨天文章的一些补充,两篇文章结合的看就完整了
首先,最后明确一次我们的小开发板的性能情况
简单来说就是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组件的配置,可以看到其中设置源码的位置,并注册了组件
· 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连接,参数如图所示
打印成功