微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

组件中的.size运算符stm32

如何解决组件中的.size运算符stm32

我的问题是关于在startup script这样的ARM CORTEX M启动文件中使用.size运算符。

我已经阅读了有关.size运算符的其他问题,我的理解是,以下几行:

.size X,.-X

允许通过当前位置(。)与符号X的定义之间的距离来定义X的大小。

在X定义的末尾使用此行时可以。没问题。 但是,如果在符号前使用它,它将如何工作?

在启动脚本的第94行,您可以阅读:

    .section    .isr_vector,"a",%progbits
    .type   g_pfnVectors,%object
    .size   g_pfnVectors,.-g_pfnVectors

g_pfnVectors:
    .word   _estack
    .word   Reset_Handler
    [...] 

不是应该定义-1的大小吗?它如何运作?我想这不是一个错误,因为您可以在所有STM32启动代码中找到它^^

谢谢

解决方法

答案很简单。 .(点)表示当前地址。因此,表达式(来自github)

.size   Reset_Handler,.-Reset_Handler

将部分Reset_Handler的大小设置为当前地址减去该部分的开头。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。