这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » 启动代码的一个问题

共2条 1/1 1 跳转至

启动代码的一个问题

院士
2006-09-17 18:14:16     打赏
启动代码的一个问题



关键词: 启动     代码     一个     问题    

院士
2006-12-22 22:43:00     打赏
2楼
问 在startup.s文件中定义有;
        SVC_STACK_LEGTH   EQU  0
        FIQ_STACK_LEGTH   EQU  0      问题1:为0??
        ........



  ;分配内存空间
      AREA   MYSTACK ,DATA,NOINIT,ALIGN=2
SvcStackSpace    SPACE    SVC_STACK_LEGTH *4
FiqStackSpace    SPACE    FIQ_STACK_LEGTH *4    
问题2:分配的空间大小为0么?是多大?    问题3:为什么“*4”?
.....................



初始化堆栈
StackSvc      DCD    SvcStackSpace+(SVC_STACK_LEGTH-1)*4
........................
问题4: 这样写有何目的?是不是多此一举阿?直接分配一个空间不就完了么?

问题5: 在2131的启动代码中,分配内存空间 在 初始化堆栈 之后。 请问汇编里不讲究定义的先后么?

文体6:SPACE 和 DCD 命令区别在哪?

谢谢!!!



     1: re:1. 不使用FIQ,当然就可以设置堆栈为0
2. FIQ的就是0
3. SPACE是以字节为单位,但堆栈是以字(32位)为单位
4. 定位栈底
5. 堆栈是数据段,AREA    MyStacks, DATA, NOINIT, ALIGN=2
6. 看看ARM汇编伪代码的资料

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]