您的位置 首页 报告

对stm32发动代码DCD sfe(CSTACK)的了解

复位序列:在离开复位状态后,CM3做的第一件事就是读取下列两个32位整数的值:1、从地址0x00000000处取出MSP的初始值。(也就是stm32启

复位序列:

在脱离复位状况后,CM3做的榜首件事便是读取下列两个32位整数的值:
1、从地址0x0000 0000 处取出MSP的初始值。(也便是stm32发动代码DCD sfe(CSTACK)设置的栈顶指针值)
PS:至于MSP的实在地址是多少我还不清楚,假如哪位大侠知道请告诉我。能够确认的是它是在0x2000 0000–0x2002 0000之间的一个值,貌似是在0x20020000。

2、从地址0x0000 0004 处取出PC的初始值 也便是复位向量的值。
相关常识:
IAR汇编指令SFB和SFE
SFB Segment begin 段开端
语法格局
SFB(segment [{+|-} offset])

参数
segment: 可重定位段的段名, 有必要在SFB运用前已界说
offset : 从开端地址的偏移, 是一个可选参数, 当偏移量省掉时, 能够不增加小括号

描绘
SFB 右边能够承受一个操作数, 并且这个操作数有必要是一个可重位段的段名.
这个操作符核算段的首字节地址. 这个操作产生在衔接时.
The operator evaluates to the absolute address of the first byte of that segment. This evaluation takes place at linking time.


NAME demo
RSEG CODE
start: DC16 SFB(CODE)
即便上面的代码和多个其他的模块进行衔接, start标号处仍被置为段的首字节地址. Even if the above code is linked with many other modules, start will still be set to the address of the first byte of the segment.

SFE Segment end

语法格局
SFE (segment [{+|-} offset])

参数
segment: 可重定位段的段名, 有必要在SFB运用前已界说
offset : 从开端地址的偏移, 是一个可选参数, 当偏移量省掉时, 能够不增加小括号

描绘
SFE在其右边接纳一个操作数. 操作数有必要是一个可重定位段的段名. SFE操作符将段开始地址和段巨细相加. 这个操作在衔接时产生.
SFE accepts a single operand to its right. The operand must be the name of a relocatable segment. The operator evaluates to the segment start address plus the segment size. This evaluation takes place at linking time.


NAME demo
RSEG CODE
end: DC16 SFE(CODE)
即便当上面的代码被和多个模块衔接时, end标号依然会被置为段最终一个字节的地址. Even if the above code is linked with many other modules, end will still be set to the address of thelastbyte of the segment.

段MY_SEGMENT的巨细能够经过以下方法核算而得:
SFE(MY_SEGMENT)-SFB(MY_SEGMENT)

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ceping/baogao/317808.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部