通过在乐鑫的插件下面,按F1就会有案列工程,然后创建了一个hello_world工程。
这里面第一个为devcontainer好像是docker容器,.vscode为esp-idf的插件的配置,都没用,还有example_test.py
从工程里面的readme.md可知,这是一个脚本文件。脚本脚本也就是方便运行使用,所以也可以忽略。所以从目录上面来讲,真正有用的也就是:
*main文件
CmakeList.TXT
这里面main也就是源代码
CmakeList.TXT也就是编译构建工具,把所有的头文件和源文件都链接在一起。
上面
上面就是main.c里面的源代码。
这是一个结构体
打开model这个结构体声明的东西
可以看出model为选择ESP的类型,至于esp_chip_info_t结构体中后面的三个是什么,先大致上粗略的用翻译分析一下。
mode : 选择芯片型号
feature: CHIP_FEATURE_x的标志位
cores: 芯片有几个核
revision:芯片版本号
实际的含义还需要后面认真分析一下。
接下来分析一下这上面的函数是干嘛的。
;里面是什么,需要跳到里面看看。
很容易从上面的注释知道,我们是想要获取存储在efuse里面芯片的版本。
esp_efuse_read_field_blob(ESP_EFUSE_WAFER_VERSION, &chip_ver, ESP_EFUSE_WAFER_VERSION[0]->bit_count);
ESP_EFUSE_WAFER_VERSION :
指向描述efuse字段的结构的指针。
chip_ver:
返回版本信息
ESP_EFUSE_WAFER_VERSION[0]->bit_count
· 读取efuse字节个数
跳到 ESP_EFUSE_WAFER_VERSION可知,
再看看WAFER_VERSION里面是什么
由上面的可知,读取的为 EFUSE_BLK1第114个字节后面的三个字节。
上面就是他的版本信息。
接下来看看spi_flash_get_chip_size()里面是什么
可以就是说知道为2m内部flash。
、这里面得esp_get_minimum_free_heap_size(),就是获取目前esp32-C3设定得堆栈大小。
这个文件里存放得是交叉编译工具得配置,以及文件目录的包含。
接下来就是要说明一下CMAKE是如何链接文件得。首先看主目录下面得一个CMakeLists.txt文件
下面这个是从他们官方里面找的资料
然后看看main里面的CMakeLists文件,
所以很容易了解到,将hello_world_main.c构建到hello_world中,同时因为没有头文件,所以就啥也没有。自此hello——world分析结束。
我最近又遇到一个很奇怪的现象,就是我进行调试的时候,有的时候无法调试。然后我用串口进行下载之后,再进行调试又可以了。沃日,很怪。不知道乐鑫有没有出集成的IDE开发环境,卧槽,整体配环境配死人。