关于ARM启动代码的简单问题

[复制链接]
查看11 | 回复3 | 2011-4-12 06:07:35 | 显示全部楼层 |阅读模式
我刚学的ARM7,用的是keil for arm编译软件,看里面自带的启动代码时,看到这个不太明白(其实里面还有很多不明白的),想请会的朋友帮我解释一下下面的这几句是什么意思,为什么是这样写的呢?谢谢

UND_Stack_SizeEQU
0x00000000
SVC_Stack_SizeEQU
0x00000008
ABT_Stack_SizeEQU
0x00000000
FIQ_Stack_SizeEQU
0x00000000
IRQ_Stack_SizeEQU
0x00000080
USR_Stack_SizeEQU
0x00000400

ISR_Stack_SizeEQU
(UND_Stack_Size SVC_Stack_Size ABT_Stack_Size \\

FIQ_Stack_Size IRQ_Stack_Size)


AREA
STACK, NOINIT, READWRITE, ALIGN=3

Stack_Mem
SPACE USR_Stack_Size
__initial_sp
SPACE ISR_Stack_Size

Stack_Top
或是给做个注释也可以,谢谢!
回复

使用道具 举报

千问 | 2011-4-12 06:07:35 | 显示全部楼层
<pre id=\"best-answer-content\" class=\"reply-text mb10\">;以下为六种中断堆栈大小定义
UND_Stack_SizeEQU
0x00000000
;EQU是汇编伪指令,可以将它代替为“=”
SVC_Stack_SizeEQU
0x00000008
ABT_Stack_SizeEQU
0x00000000
FIQ_Stack_SizeEQU
0x00000000
IRQ_Stack_SizeEQU
0x00000080
USR_Stack_SizeEQU
0x00000400

ISR_Stack_SizeEQU
(UND_Stack_Size SVC_Stack_Size ABT_Stack_Size \\

FIQ_Stack_Size IRQ_Stack_Size) ;同上解释
;定义段,名为STACK,未说明是代码段还是数据段,属性为读写,代码对齐方式为2的3次方字节
AREA
STACK, NOINIT, READWRITE, ALIGN=3

;SPACE分配一段连续的的存储区域并初始化为0,USR_Stack_Size为要分配的字节数
Stack_Mem
SPACE USR_Stack_Size
__initial_sp
SPACE ISR_Stack_Size

















<h4 class=\"ask\">追问





<pre class=\"replyask-text\" id=\"content-4124595\">那如果像这样UND_Stack_SizeEQU
0x00000000
是不是堆栈的大小为零呢,还是堆栈的起始地址是0呢?
回复

使用道具 举报

千问 | 2011-4-12 06:07:35 | 显示全部楼层
<pre class=\"replyask-text\" id=\"content-4124756\">UND_Stack_Size是指堆栈大小,不牵涉地址
回复

使用道具 举报

千问 | 2011-4-12 06:07:35 | 显示全部楼层
<pre class=\"replyask-text\" id=\"content-4205623\">也就是给每种模式分配堆栈,对吗
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行