- 本篇文章使用说明:
该部分内容操作,适合二年级以上的小朋友(或者已经会打键盘,有良好识字量的小朋友),鼻鼻现在刚刚6岁整,很多字不认识,还不会敲键盘,所以渡渡代劳了,以口述的方式讲解给鼻鼻。- 本篇文章使用小结:
sss
1. 系统环境说明
- [ ]待补充
2. 系统环境搭建&HelloWorld
由于渡渡也是个嵌入式小白,需要和鼻鼻一起从0开始探索,
哈哈((^∀^*)),尽管鼻鼻刚刚过了6岁生日🎂,在独立学习人工智能🤖方面,目前还不能理解视频的全部内容,还处于需要妈妈喂的宝宝阶段👼
因此我为自己找了一个非常好的入门教学视频,对0基础小白非常合适,对三年级的小朋友也非常友好呢!
需要的同学可以参考: 2024最新版 ESP32教程(基于ESP-IDF)
在这里特别感谢哔哩哔哩Up主: 宸芯IOT
【小插曲】:因为工作电脑和家里电脑不是一台,且为mac电脑,因此我优先选择了阿里云的ECS服务器,但是到烧录的时候才发现,无法实现远程烧录。因此如下操作,请各位小伙伴按上面视频老师的建议进行操作。当然,Windows也很合适,请各位自行寻找方案;我后续会直接使用的mac系统。
升级Ubuntu工具包,仅限Ubuntu 20.04系统使用
1
sudo apt update`
安装各种必要的工具,仅限Ubuntu 20.04系统使用
1
sudo apt-get install git wget flex bison gperf python3-pip python3-venv cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0 net-tools
以下所有系统均可使用:
新建棉花糖目录,并拉取gitee工具
1
2
3mkdir mht
cd mht
git clone https://gitee.com/EspressifSystems/esp-gitee-tools.git执行gitee工具切换镜像脚本
1
2cd esp-gitee-tools
./jihu-mirror.sh set拉取esp-idf源码
1
2cd ..
git clone --recursive https://github.com/espressif/esp-idf.git切换esp-idf版本分支到v5.2
1
2
3
4
5cd esp-idf
git checkout v5.2
git submodule update --init --recursive
# 如果提示失败或有错误试下这句:
# ../esp-gitee-tools/submodule-update.sh更换pip源,安装编辑工具
1
2
3pip config set global.index-url http://mirrors.aliyun.com/pypi/simple
pip config set global.trusted-host mirrors.aliyun.com
../esp-gitee-tools/install.sh配置esp-idf环境变量
1
2
3# 设置环境变量并将环境变量放到.bashrc中
source export.sh
echo "source ~/mht/esp-idf/export.sh" >> ~/.bashrc测试一下环境是否OK
1
2
3# 下载课程配套源码
cd ~/mht
git clone --recursive https://gitee.com/vi-iot/esp32-board.git1
2
3# 编译
cd esp32-board/helloworld
idf.py build1
2# 烧写(建议切换为本地烧录,远程烧录会更复杂,初学者不建议远程烧录)
idf.py flash1
2# 观测(我买的板子是ESP32-WROOM-32版本,因为不支持PRSAM,修改请参考第8步)
idf.py monitor因为ESP32-WROOM-32不支持PRSAM,烧录有监控会发现错误:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0030,len:7172
load:0x40078000,len:15532
load:0x40080400,len:4
.--- 0x40080400: _init at ??:?
load:0x40080404,len:3904
entry 0x40080640
I (29) boot: ESP-IDF v5.2 2nd stage bootloader
I (29) boot: compile time Dec 4 2024 13:23:34
I (29) boot: Multicore bootloader
I (33) boot: chip revision: v3.1
I (37) boot.esp32: SPI Speed : 40MHz
I (42) boot.esp32: SPI Mode : DIO
I (46) boot.esp32: SPI Flash Size : 2MB
I (51) boot: Enabling RNG early entropy source...
I (56) boot: Partition Table:
I (60) boot: ## Label Usage Type ST Offset Length
I (67) boot: 0 nvs WiFi data 01 02 00009000 00006000
I (75) boot: 1 phy_init RF data 01 01 0000f000 00001000
I (82) boot: 2 factory factory app 00 00 00010000 00100000
I (90) boot: End of partition table
I (94) esp_image: segment 0: paddr=00010020 vaddr=3f400020 size=0d9f4h ( 55796) map
I (121) esp_image: segment 1: paddr=0001da1c vaddr=3ffb0000 size=02280h ( 8832) load
I (125) esp_image: segment 2: paddr=0001fca4 vaddr=40080000 size=00374h ( 884) load
I (128) esp_image: segment 3: paddr=00020020 vaddr=400d0020 size=17130h ( 94512) map
I (168) esp_image: segment 4: paddr=00037158 vaddr=40080374 size=0ffech ( 65516) load
I (202) boot: Loaded app from partition at offset 0x10000
I (202) boot: Disabling RNG early entropy source...
I (213) cpu_start: Multicore app
I (214) quad_psram: This chip is ESP32-D0WD
E (216) quad_psram: PSRAM ID read error: 0xffffffff, PSRAM chip not found or not supported
E (220) cpu_start: Failed to init external RAM!我也是一个硬件小白,这个时候AI是最好的老师,那就问AI吧:
答案已经有了,那就开干(因为AI给的答案是参考答案,结合参考答案,需要自己根据实际情况进行调整):
保温后,重新验证,就可以看到hello world!打印啦🎉🎉🎉为了调试过程中,可以随时看ESP32的源码,我们可以加载进来。Windows小朋友,请看考视频,Mac小朋友,请参考下图:
点一下Add .vscode ....
的信息,再看main.c中的.h文件,按住“Ctrl+要看的内容”,就可以跳转到对应的.h文件了。