作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在将 ARM 芯片的程序从 IAR 编译器移植到 gcc。
在原始代码中,IAR 特定的运算符(例如__segment_begin
和__segment_size
)用于分别获取某些内存段的开头和大小。
有没有办法用 GCC 做同样的事情?我搜索了 GCC 手册,但找不到任何相关内容。
<小时/>更多详情:
所讨论的内存段必须位于固定位置,以便程序可以与芯片上的某些外设正确连接。原始代码使用__segment_begin
运算符来获取该内存的地址,并使用__segment_size
来确保不会溢出该内存。
我可以通过添加变量来指示这些内存段的开始和结束来实现相同的功能,但如果 GCC 有类似的运算符,这将有助于最大限度地减少我最终必须编写和维护的编译器相关代码的数量。
最佳答案
链接器的标志--section-start
怎么样?我读到的支持here .
有关如何使用它的示例可以在 AVR Freaks Forum 上找到。 :
const char __attribute__((section (".honk"))) ProjString[16] = "MY PROJECT V1.1";
然后,您必须添加到链接器的选项:-Wl,--section-start=.honk=address
。
关于gcc - 如何从 C 代码引用段开头和大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5217087/
我是一名优秀的程序员,十分优秀!