zoukankan      html  css  js  c++  java
  • s3c2440栈分配情况(fl2440裸机 stack)

    //2440INIT.S

    ;The location of stacks
    UserStack    EQU    (_STACK_BASEADDRESS-0x3800)    ;0x33ff4800 ~
    SVCStack    EQU    (_STACK_BASEADDRESS-0x2800)    ;0x33ff5800 ~
    UndefStack    EQU    (_STACK_BASEADDRESS-0x2400)    ;0x33ff5c00 ~
    AbortStack    EQU    (_STACK_BASEADDRESS-0x2000)    ;0x33ff6000 ~
    IRQStack    EQU    (_STACK_BASEADDRESS-0x1000)    ;0x33ff7000 ~
    FIQStack    EQU    (_STACK_BASEADDRESS-0x0)    ;0x33ff8000 ~

    ;function initializing stacks
    InitStacks
        ;Do not use DRAM,such as stmfd,ldmfd......
        ;SVCstack is initialized before
        ;Under toolkit ver 2.5, 'msr cpsr,r1' can be used instead of 'msr cpsr_cxsf,r1'
        mrs    r0,cpsr
        bic    r0,r0,#MODEMASK
        orr    r1,r0,#UNDEFMODE|NOINT
        msr    cpsr_cxsf,r1        ;UndefMode
        ldr    sp,=UndefStack        ; UndefStack=0x33FF_5C00

        orr    r1,r0,#ABORTMODE|NOINT
        msr    cpsr_cxsf,r1        ;AbortMode
        ldr    sp,=AbortStack        ; AbortStack=0x33FF_6000

        orr    r1,r0,#IRQMODE|NOINT
        msr    cpsr_cxsf,r1        ;IRQMode
        ldr    sp,=IRQStack        ; IRQStack=0x33FF_7000

        orr    r1,r0,#FIQMODE|NOINT
        msr    cpsr_cxsf,r1        ;FIQMode
        ldr    sp,=FIQStack        ; FIQStack=0x33FF_8000

        bic    r0,r0,#MODEMASK|NOINT
        orr    r1,r0,#SVCMODE
        msr    cpsr_cxsf,r1        ;SVCMode
        ldr    sp,=SVCStack        ; SVCStack=0x33FF_5800

        ;USER mode has not be initialized.

        mov    pc,lr
        ;The LR register will not be valid if the current mode is not SVC mode.

    _ISR_STARTADDRESS EQU 0x33ffff00
    _ISR_STARTADDRESS到0x33ff8000这一段内存空间存储的是中断的入口.
    0x33ff8000
    0x33ff4800是各种异常的栈空间;
    0x33ff48000x30000000是留给usermode的栈空间,实际上用的是其中一部分,因为程序运行还有相当一部分空间(heap、从flash加载过来的代码也要内存空间等).

    例如MDK中用ARM的库函数_init_alloc(base,top)来设置地址_init_alloc(0x37000000,0x38000000-8) //heap
     

  • 相关阅读:
    vue-router基础使用
    Vue插槽
    Vue组件通信
    小程序自定义头部导航栏
    css日常积累
    移动端的无缝轮播图片
    vue的h5开发中,将页面保存为图片
    vue-webpack打包问题
    洛谷P1341 最受欢迎的奶牛
    Tarjan 算法详解
  • 原文地址:https://www.cnblogs.com/mylinux/p/5722809.html
Copyright © 2011-2022 走看看