ESP8266 01S SDK编程

学习记录

ESP8266 01S

内核回调

ESP8266的SDK编程是基于“内核回调”的方式

初始化

在user main. c文件中:
vold user_init(void)
{
初始化…
}
ESP8266内核为用户提用的初始化接口:用户的[应用功能初始化]入口
可初始化IO口、定时器、设置中断等

内核

内核是用户看不见,不能饰改
内核首先进行内核初始化
接着进行用户初始化
在while循环中
首先执行内核功能
接着执行用户功能

回调函数

当满足某条件时,内核调用回调函数

任务函数

系统空闲时,内核会调用任务函数

中断

触发中断时,执行中断函数

在这里插入图片描述
对于 ESP8266_NONOS_SDK_v1.5.2 至 ESP8266_NONOS_SDK_v2.2.1 之间的版
本,请在 user_main.c 增加函数 void user_rf_pre_init(void) 和 uint32 user_rf_cal_sector_set(void)。
在这里插入图片描述

编程注意事项

请勿频繁调⽤定时器,建议频率不高于每 5 ms 一次(微秒计时器则为 100 μs)。有关定时器使⽤的详细信息,请参阅 os_timer_arm() 和相关的 API 说明。

微秒定时器不是很精确,请在回调中考虑 500 μs 的抖动。如需实现⾼精度的定时,可以参考驱动程序 (driver_lib) 使⽤硬件定时器。请注意,PWM API 不能与硬件定时器同时使用。

ESP8266 通常的运⾏速率为 80 MHz,在⾼性能应⽤中也可以配置为160 MHz。请注意,外设不受 CPU 频率设置的影响,因为它们使用了不同的时钟源。

添加了 ICACHE_FLASH_ATTR 的代码通常比使⽤ IRAM_ATTR 标记的代码执行得慢。然⽽,像大多数嵌⼊式平台一样,ESP8266 的 iRAM 空间有限,因此建议一般代码添加ICACHE_FLASH_ATTR,仅对执⾏效率要求高的代码添加 IRAM_ATTR 宏。

RAM 和 flash 访问必须是 4 字对齐的,请勿直接进⾏指针转换。请使用 os_memcpy 或其他 API 进行内存操作。


看到这儿了,点个赞吧!

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值