ESP8266—“ICACHE_FLASH_ATTR”宏——解释含义
const uint8 MyArr[1024] ICACHE_RODATA_ATTR = {0}; void MyFun() ICACHE_FLASH_ATTR { }
这种 ICACHE 开头的宏作的用就是因为esp8266的ram有限,所以在启动的时候就不可能把所有的数据都载入ram,只能是先载入必要的数据,其他数据保留在Flash中,在需要的时候读取。esp8266的固件有5个有效段,分别是:.data,.rodata,.bss,.text,.irom0.text,(这些都是从编译好的elf文件中提取的)其中 .data,.rodata,.bss,.text 这四个段在启动的时候被载入内存,.irom0.text 则通过内存映射的方式访问,不会占用宝贵的ram。所以不是必要的数据都可以装入 .irom0.text 这个段中以节省ram占用。另外需要注意的是,任何中断函数都不可以存放在 .irom0.text 中,会crash!!!
#define ICACHE_FLASH_ATTR __attribute__((section(".irom0.text")))
#define ICACHE_RODATA_ATTR __attribute__((section(".irom.text")))
这两个宏就是告诉编译器数据的保存位置。变量用 ICACHE_RODATA_ATTR ,(切记变量必须是 const 类型的),函数用 ICACHE_FLASH_ATTR 。
转载于:https://www.cnblogs.com/CodeWorkerLiMing/p/11256391.html
ESP8266—“ICACHE_FLASH_ATTR”宏——解释含义相关推荐
- ESP8266—“ICACHE_FLASH_ATTR”宏
问: ESP8266_NONOS_SDK中ICACHE_FLASH_ATTR宏的用途是什么?我看到它取决于ICACHE_FLASH,但我不知道何时应该定义该符号. 什么时候需要包括它? 答: 对于ES ...
- VC/MFC中常用宏的含义
VC/MFC中常用宏的含义 Visual C++ MFC 中常用宏的含义(转载) AND_CATCHAND_CATCH AND_CATCH(exception_class,exception ...
- 由AFX_IDW_PANE_FIRST宏的含义分析界面库XTP的一个bug
Codejock的界面库Xtreme Toolkit Pro(XTP)是当前MFC开发中发展得比较成熟,应用也颇为广泛的几个界面库之一,其强大的界面美化功能以及简便的使用步骤深受不少MFC程序员的青睐 ...
- VxWorks启动过程描述及主要宏开关含义
1 三种不同的VxWorks映象比较 VxWorks是一种灵活的.可裁剪的嵌入式实时操作系统.用户可以根据需要创建自己的VxWorks映象,由它来引导目标系统,而后下载并运行应用程序. 根据应用场合的 ...
- AHK取色宏解释(不断更新内容)
AHK取色宏的原理是获取屏幕固定点的坐标(包含横坐标.纵坐标,颜色值) 如果横坐标 + 纵坐标 获取的颜色值=之前的颜色值则可以输出相应的功能~ 具体看下面的解释和例子: #IfWinActive a ...
- Linux下EAGAIN宏的含义
在Linux环境下开发经常会碰到很多错误(设置errno),其中EAGAIN是其中比较常见的一个错误(比如用在非阻塞操作中).在man手册关于read的解释如下: RETURN VALUE O ...
- __iLINE__和__FILE__等内置宏的含义
编译器内置宏: 先介绍几个编译器内置的宏定义,这些宏定义不仅可以帮助我们完成跨平台的源码编写,灵活使用也可以巧妙地帮我们输出非常有用的调试信息. ANSI C标准中有几个标准预定义宏(也是常用的): ...
- VC中Windows中一些宏的含义
https://www.cnblogs.com/zhcncn/archive/2013/05/21/3091052.html 1. _WIN32_WINDOWS,_WIN32_WINNT,WINVER ...
- WINVER和_WIN32_IE等宏的含义
它们是用于定义windows和Internet Explorer版本号的,用于区分不用版本的函数和参数. 在你编译程序时会根据不同的版本系统号,链接不同的函数和参数. Minimum System R ...
- 关于select中fd_set变量的一些通俗宏解释
FD_ZERO(fd_set*fdset) 将fd_set变量的所有位初始化为0: FD_SET(int fd,fd_set*fdset) 在参数fdset指向的变量中注册文件描 ...
最新文章
- Android开发中libs包下面的mips、armeabi、armeabi-v7a和x86
- 【约束布局】ConstraintLayout 13 种相对定位属性组合 ( 属性组合 | 用法说明 )
- QT教程2:QT5的体系构架
- 系统服务及shell编程
- 《leetcode》search-insert-position
- bp神经网络预测python代码_机器学习之多层神经网络(附Python代码和数据)
- 2021 最新 IDEA集成Gitee、Gitee迁移GitHub【图文讲解】
- 三维坐标转经纬度_Three.js 地理坐标和三维空间坐标的转换
- 读取设置config.ini配置
- 8266不通过usb供电_HomePod mini?电源线同样不可拆卸:但或能用USB-C移动电源供电...
- 荣耀V40屏幕素质得到“认证”:120Hz高刷屏没跑了
- android 底部去除list渐变,layer-list渐变色的处理
- linux文档采集前五行,Linux 学习-Shell筛选top前五行信息
- Java 中判断char 是否为空格 和空
- 皮尔森相关系数与方差膨胀因子介绍及关系 附python代码
- C# WinForm中NotifyICon控件的用法
- dev、test和prod是什么意思?
- 计算机初学者学习编程语言C#和Java哪个更有前途?
- 邮箱服务器满了foxmail,foxmail邮箱的容量满了,应该怎样删除-上海腾讯企业邮箱[foxmail]...
- MATLAB学习笔记(五)——MATLAB绘图