__attribute__(at)
时间: 2023-11-22 12:49:43 浏览: 99
__attribute__((at))是GCC编译器的一个扩展,用于将变量或函数放置在指定的地址。它可以用于将变量或函数放置在特定的内存区域,如RAM或Flash。在嵌入式系统中,它通常用于将变量或函数放置在特定的硬件地址上,以便与硬件进行交互。
以下是一个将变量放置在Flash中的例子:
```c
const uint8_t myVar __attribute__((at(0x0800F000))) = 0x55;
```
这将把myVar变量放置在Flash的0x0800F000地址处。同样,也可以将变量放置在RAM中:
```c
uint8_t myVar __attribute__((at(0x20001000))) = 0x55;
```
这将把myVar变量放置在RAM的0x20001000地址处。
需要注意的是,__attribute__((at))只能用于全局变量和静态变量,不能用于局部变量和函数。
相关问题
__attribute__ at
__attribute__ section是用于将特定变量或函数放置在指定代码段(section)的GCC编译器扩展语法。在编译时,可以使用__attribute__((section("section_name")))将函数或变量置于指定代码段中。这有助于对不同的代码片段进行优化,并控制可执行文件的大小和布局。
keil __attribute__ at出现警告
在Keil中,使用`__attribute__`会产生警告。根据引用中的描述,`__attribute__((deprecated))`用于声明一个废弃的变量,编译器会发出警告,但仍然会编译通过。警告会显示变量的使用位置和定义位置,以帮助确定为什么特定的定义被弃用。所以当使用`__attribute__`时,Keil编译器会生成警告。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [FFMPEG4.1源码分析之 过时代码管理 attribute_deprecated](https://blog.csdn.net/ice_ly000/article/details/90173153)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
阅读全文