色爱av综合网_色女人在线视频_男男gaygays亚洲_日本高清久久一区二区三区

購物車0種商品
IC郵購網-IC電子元件采購商城
關于__user_initial_stackheap( )
(2011/10/30 9:49:00)

1.作用:用于提供編譯器的初始化C庫函數設置用戶程序的堆棧所需要的堆棧信息。
2。__user_initial_stackheap() 返回:r0 中的堆基址r1 中的堆棧基址,即堆棧區中的最高地址r2 中的堆限制r3 中的堆棧限制,即堆棧區中的最低地址。
有單區模型和雙區模型。

單區模型:(r0,r1)是單個堆棧和堆區。r1 大于 r0,并忽略 r2 和 r3。

r0--r1這一塊內存區域被堆和棧共用,堆從r0向上生長,棧從r1向下生長。

雙區模型:(r0, r2)是初始堆,(r3, r1) 是初始堆棧。r2 大于或等于 r0。r3 小于 r1。
堆和棧分別指定了單獨的內存區域。

3.如果不使用分散加載文件,則__user_initial_stackheap()必須由用戶自己實現。

實現例子:
; User Initial Stack & Heap
AREA |.text|, CODE, READONLY

IMPORT__use_two_region_memory
EXPORT__user_initial_stackheap
__user_initial_stackheap

LDR R0, =Heap_Mem
LDR R1, =(Stack_Mem + USR_Stack_Size)
LDR R2, = (Heap_Mem + Heap_Size)
LDR R3, = Stack_Mem
BX LR

4.使用分散加載可以由用戶實現,也可以在分散加載描述文件中定義兩個特殊執行區(雙區模型,單區模型只定義ARM_LIB_STACKHEAP): ARM_LIB_HEAP 和 ARM_LIB_STACK(該區具有 EMPTY 屬性。),從而使用C庫的默認實現,此時,會導致庫選擇一個使用以下符號值的 __user_initial_stackheap() 實現:Image$$ARM_LIB_HEAP$$Base、Image$$ARM_LIB_HEAP$$ZI$$Limit、Image$$ARM_LIB_STACK$$Base 和 Image$$ARM_LIB_STACK$$ZI$$Limit。這種方式比較方便。

例子:
分散加載文件:
LR_IROM1 0x00000000 0x00008000 ;; Load region
{
ER_IROM1 0x00000000 0x00008000
{
vectors.o (VECT, +First)
init.o (INIT)
* (+RO)
}

RW_IRAM1 0x40000040 0x00001460
{
* (+RW,+ZI)
} ;; The following declarations select the "two region model" ;
;; A default __user_initial_stackheap() will be used ;
ARM_LIB_HEAP0x40001500 EMPTY0x00000100 {}
ARM_LIB_STACK 0x40002000 EMPTY -0x00000400 {}
}

在初始化文件中使用||Image$$ARM_LIB_STACK$$ZI$$Limit||作為棧底,

例子:
IMPORT __use_two_region_memory
IMPORT||Image$$ARM_LIB_STACK$$ZI$$Limit|| ; Import stack limit from scatter-loading file ;

ldr r1, =||Image$$ARM_LIB_STACK$$ZI$$Limit||

mrs r0,cpsr ; Original PSR value ;
bic r0,r0,#MODE_BITS ; Clear the mode bits ;
orr r0,r0,#IRQ_MODE ; Set IRQ mode bits ;
msr cpsr_c,r0 ; Change the mode ;
mov sp, r1
sub r1, r1, #IRQ_STK_SIZE

............................ ;

網友評論:不錯的貼

瀏覽:(1172)| 評論( 0 )
博文評論

  • 昵 稱:
  • 內 容:10~250個字符
  • 驗證碼: 驗證碼看不清楚?請點擊刷新驗證碼
  •                      
  • 博文分類

    熱點博文

    最新博文

    最新評論

    IC電子元件查詢
    IC郵購網電子元件品質保障

    主站蜘蛛池模板: 汤原县| 和田县| 平遥县| 资兴市| 景德镇市| 临夏县| 平舆县| 东兰县| 建阳市| 金阳县| 瑞安市| 兴仁县| 元阳县| 长治市| 赤峰市| 同仁县| 呼玛县| 萝北县| 彭山县| 中牟县| 苍梧县| 龙山县| 龙胜| 当雄县| 余庆县| 大厂| 南川市| 姚安县| 沙坪坝区| 津市市| 三原县| 兴化市| 色达县| 江孜县| 十堰市| 门头沟区| 吉木乃县| 二手房| 什邡市| 深水埗区| 镇康县|