没有SDK的ESP8266编程

时间:2019-07-02 21:10:00

标签: esp8266 arduino-esp8266

ESP SDK库中有一些限制(不是公开的),例如在混杂模式下数据包接收的长度(最大112字节)。

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

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

1 个答案:

答案 0 :(得分:3)

esp8266的处理器核心是'xtensa'。处理器核心,或者简称为处理器,就是我们使用C或C ++或汇编程序进行编程的东西。处理器的指令集由公司(Tensilica ..或Cadence ??)公开发布,一旦拥有了指令集,就可以直接进行编程或使编译器具有对处理器的完全自由。

处理器核心不是完整的产品,对我们最终用户而言,诸如Espressif的公司购买了处理器核心设计的知识产权,并通过放置SPI,I2C, UART,在esp8266的情况下,是在处理器核心周围的wifi收发器。

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

对于Wifi,espressif尚未发布外围设备的接口方式,因此我们必须依靠espressif发送给我们的已编译二进制文件。您可以在'lib / lib80211.a'上使用'objdump -t'来获取Wifi驱动程序提供的例程的名称。您可以从C或汇编代码中调用这些例程,并且比espressif的代码要低一些,但要降低到任何水平,则需要通过手动了解已编译驱动程序中的低级代码来进行“逆向工程”,而没人会冒险和浪费时间。耗尽。