ESP8266 无SDK编程

ESP8266 programming without SDK

ESP SDK 库(不是 public)存在限制,例如在 promisc 模式下数据包接收的长度(最大 112 字节)。

我试图联系他们以获得一些意见和指导 - 但他们似乎在胡说八道。

是否可以在没有 SDK 的情况下对芯片进行编程 - 从而制作我自己的 SDK 并忘记它们的局限性?

esp8266上的processor-core是一个'xtensa'。 processor-core,或者我们就称它为处理器,是我们用 C 或 C++ 或汇编程序编写的程序。处理器的指令集由public公司(是Tensilica ..还是Cadence??)制作,一旦你有了指令集,你就可以直接编程或制作编译器,并完全自由地使用处理器。

processor-core 不是完整的产品,对我们来说 end-consumers,乐鑫等公司购买了 processor-core 设计的知识产权 属性并通过在 processor-core.

周围放置 SPI、I2C、UART 等外围设备来构建 end-product,在 esp8266 的情况下,wifi-tranceiver

这些外围设备是数字控制的,并以数字方式输出到处理器,因此处理器可以与它们交互——但它们的动作可以是数字的,也可以是模拟的。对于 UART、SPI、I2C 等,espressif 为我们提供了数据表,告知可用于控制该外设的所有寄存器。这有点像将您要传输的内容写入此 X 内存地址,然后在 Z 内存地址上设置位 Y 以开始传输。例如,对于 SPI,有一些寄存器可以控制传输的速度、极性、相位等。一旦你知道如何在较低级别控制外设,你就可以编写高级驱动程序,espressif 也提供,但你可以编写自己的驱动程序。

对于 Wifi,espressif 尚未发布外设的接口方式,因此我们必须依赖 espressif 发送给我们的编译二进制文件。您可以在 'lib/lib80211.a' 上使用 'objdump -t' 来至少获取 Wifi 驱动程序提供的例程的名称。您可以从 C 或汇编程序代码中调用这些例程,并且比 espressif 预期的要低一点,但要走得更低需要 'Reverse Engineering' 通过手动理解已编译驱动程序中的低级代码,没有人会冒这个风险 time-drain.