前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >VsCode设置ESP32工具链+刨根问底点灯(补篇)

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

作者头像
云深无际
发布2021-01-20 15:45:12
1.6K0
发布2021-01-20 15:45:12
举报
文章被收录于专栏:云深之无迹云深之无迹

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

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

简单来说就是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连接,参数如图所示

打印成功

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-01-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 云深之无迹 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档