直接回答:ESP32 这类芯片上跑的不是裸机程序,而是带着一个实时操作系统(常见的是 FreeRTOS),Arduino 能开发 ESP32 也是因为它下面包了一层 RTOS 和 SDK;烧录时是把系统和代码一起写进芯片。
实时操作系统(RTOS)
- freertos esp32自带的
- Zephyr
- NuttX
esp32可以用Arduino开发是因为Arduino面向esp32开发有RTOS,各种库,SDK,也就是ESP-IDF里所包含的各种东西,也可以理解为安装了Arduino提供的驱动,这是我的个人理解,需要验证
程序烧录进去其实是把操作系统和代码一起烧录进去的
RTOS和NON-OS
可以理解为在NON-OS中编写的函数实际上是回调函数,由硬件决定何时调用。这些回调函数是在特定的系统事件发生时由NON-OS内核自动调用的。这样,开发者可以编写代码来响应这些事件,而无需直接控制硬件或轮询事件。通过注册回调函数,当特定事件发生时,相应的函数将被执行,从而实现了与硬件的交互和事件处理
这篇笔记整理自我自己的实践记录,如果做法有出入,或者你踩过别的坑,欢迎到留言板一起聊聊。