亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? sysalib.s

?? 關于s3c上的操作系統移植中bsp的編寫
?? S
字號:
/* sysALib.s - Samsung SBC ARM7 system-dependent routines *//* Copyright 2004-2005 Amine@263.net *//* Copyright 1984-2001 Wind River Systems, Inc. *//*modification history--------------------01o,28jul04,a_m  BSP定制 for 思創S3C44B0X黃金開發板01d,18oct01,jb  Removing pre-pended underscores for new compilers (Diab/Gnu                 elf)01c,26apr01,m_h  fix thumb mode01b,26apr01,m_h  convert tabs to spaces for readability01a,12apr01,m_h  created from snds100 template.*//*DESCRIPTIONThis module contains system-dependent routines written in assemblylanguage.  It contains the entry code, sysInit(), for VxWorks imagesthat start running from RAM, such as 'vxWorks'.  These images areloaded into memory by some external program (e.g., a boot ROM) and thenstarted.  The routine sysInit() must come first in the text segment.Its job is to perform the minimal setup needed to call the generic Croutine usrInit().sysInit() masks interrupts in the processor and the interruptcontroller and sets the initial stack pointer.  Other hardware anddevice initialisation is performed later in the sysHwInit routine insysLib.c.NOTEThe routines in this module don't use the "C" frame pointer %r11@ ! orestablish a stack frame.SEE ALSO:.I "ARM Architecture Reference Manual,".I "Samsung KS32C50100 Microcontroller User's Manual,".I "Samsung KS32C5000(A)/50100 Microcontroller Application Notes."*/#define _ASMLANGUAGE#include "vxWorks.h"#include "arch/arm/arm.h"#include "regs.h"#include "sysLib.h"#include "config.h"#include "wrSbcArm7.h"    .data    .globl  FUNC(copyright_wind_river)    .long   FUNC(copyright_wind_river)/* internals */    .globl    FUNC(sysInit)        /* start of system code */    .globl    FUNC(sysIntStackSplit)    /* routine to split interrupt stack *//* externals */    .extern    FUNC(usrInit)        /* system initialization routine */    .extern    FUNC(vxSvcIntStackBase)    /* base of SVC-mode interrupt stack */    .extern    FUNC(vxSvcIntStackEnd)    /* end of SVC-mode interrupt stack */    .extern    FUNC(vxIrqIntStackBase)    /* base of IRQ-mode interrupt stack */    .extern    FUNC(vxIrqIntStackEnd)    /* end of IRQ-mode interrupt stack */    .text    .balign 4/********************************************************************************* sysInit - start after boot** This routine is the system start-up entry point for VxWorks in RAM, the* first code executed after booting.  It disables interrupts, sets up* the stack, and jumps to the C routine usrInit() in usrConfig.c.** The initial stack is set to grow down from the address of sysInit().  This* stack is used only by usrInit() and is never used again.  Memory for the* stack must be accounted for when determining the system load address.** NOTE: This routine should not be called by the user.** RETURNS: N/A* sysInit ()              /@ THIS IS NOT A CALLABLE ROUTINE @/*/_ARM_FUNCTION(sysInit)#ifdef  INCLUDE_VWARE_LAUNCH    LDR    r2, =sysPrivateVwareParams    STR    r1, [r2]    LDR    r2, =sysPrivateVwareParams + 0x04    STR    r0, [r2]#endif /* INCLUDE_VWARE_LAUNCH */    /* Amine: added */    LDR    r2, L$_SbcArm7Intmsk		/*all interrupt disable*/    MOV    r1, #0x07ffffff    STR    r1, [r2]#if 0 /* Amine: deleted */    /* disable interrupts and force SVC32 mode, just like reset */    MRS    r1, cpsr    BIC    r1, r1, #MASK_MODE    ORR    r1, r1, #MODE_SVC32 | I_BIT | F_BIT    MSR    cpsr, r1    /*     * CPU INTERRUPTS DISABLED     *     * disable individual interrupts in the interrupt controller     */    LDR    r2, L$_SbcArm7Intmsk            /* R2->interrupt controller */    MVN    r1, #0                /* &FFFFFFFF */    STR    r1, [r2]            /* disable all interrupt soucres */#endif    /* set initial stack pointer so stack grows down from start of code */    LDR    sp, L$_STACK_ADDR    MOV    fp, #0            /* zero frame pointer */   /* Call C_Entry application routine with a pointer to the first */   /* available memory address after ther compiler's global data */   /* This memory may be used by the application. */    /* now call usrInit */    MOV    fp, #0            /* initialize frame pointer */    MOV    r0, #BOOT_WARM_AUTOBOOT    /* pass startType */#if    (CPU == ARMARCH4_T)    LDR    r12, L$_usrInit    BX     r12#else    B     FUNC(usrInit)#endif    /* (CPU == ARMARCH4_T) *//********************************************************************************* sysIntStackSplit - split interrupt stack and set interrupt stack pointers** This routine is called, via a function pointer, during kernel* initialisation.  It splits the allocated interrupt stack into IRQ and* SVC-mode stacks and sets the processor's IRQ stack pointer. Note that* the pointer passed points to the bottom of the stack allocated i.e.* highest address+1.** IRQ stack needs 6 words per nested interrupt;* SVC-mode will need a good deal more for the C interrupt handlers.* For now, use ratio 1:7 with any excess allocated to the SVC-mode stack* at the lowest address.** Note that FIQ is not handled by VxWorks so no stack is allocated for it.** The stacks and the variables that describe them look like this.* .CS**         - HIGH MEMORY -*     ------------------------ <--- vxIrqIntStackBase (r0 on entry)*     |                      |*     |       IRQ-mode       |*     |    interrupt stack   |*     |                      |*     ------------------------ <--{ vxIrqIntStackEnd*     |                      |    { vxSvcIntStackBase*     |       SVC-mode       |*     |    interrupt stack   |*     |                      |*     ------------------------ <--- vxSvcIntStackEnd*         - LOW  MEMORY -* .CE** NOTE: This routine should not be called by the user.* void sysIntStackSplit*     (*     char *pBotStack   /@ pointer to bottom of interrupt stack @/*     long size        /@ size of stack @/*     )*/_ARM_FUNCTION_CALLED_FROM_C(sysIntStackSplit)    /*     * r0 = base of space allocated for stacks (i.e. highest address)     * r1 = size of space     */    SUB    r2, r0, r1            /* r2->lowest usable address */    LDR    r3, L$_vxSvcIntStackEnd    STR    r2, [r3]            /*  == end of SVC-mode stack */    SUB    r2, r0, r1, ASR #3        /* leave 1/8 for IRQ */    LDR    r3, L$_vxSvcIntStackBase    STR    r2, [r3]    /* now allocate IRQ stack, setting irq_sp */    LDR    r3, L$_vxIrqIntStackEnd    STR    r2, [r3]    LDR    r3, L$_vxIrqIntStackBase    STR    r0, [r3]    MRS    r2, cpsr    BIC    r3, r2, #MASK_MODE    ORR    r3, r3, #MODE_IRQ32 | I_BIT    /* set irq_sp */    MSR    cpsr, r3    MOV    sp, r0    /* switch back to original mode and return */    MSR    cpsr, r2#if    (CPU == ARMARCH4_T)    BX     lr#else    MOV    pc, lr#endif    /* (CPU == ARMARCH4_T) */#ifdef INCLUDE_VWARE_LAUNCH#include "sysAVware.s"#endif /* INCLUDE_VWARE_LAUNCH *//******************************************************************************//* * PC-relative-addressable pointers - LDR Rn,=sym is broken * note "_" after "$" to stop preprocessor preforming substitution */    .balign    4L$_vxSvcIntStackBase:    .long    FUNC(vxSvcIntStackBase)L$_vxSvcIntStackEnd:    .long    FUNC(vxSvcIntStackEnd)L$_vxIrqIntStackBase:    .long    FUNC(vxIrqIntStackBase)L$_vxIrqIntStackEnd:    .long    FUNC(vxIrqIntStackEnd)#if    (CPU == ARMARCH4_T)L$_usrInit:    .long    FUNC(usrInit)#endif    /* (CPU == ARMARCH4_T) */L$_STACK_ADDR:    .long    FUNC(sysInit)L$_SbcArm7Intmsk:    .long    S3C44B0X_INTMASK/* Amine: deleted *//*L$_IopModReg:    .long    SNGKS32C_IOPMODL$_IopDat:    .long    SNGKS32C_IOPDATA*/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久人人97超碰com| 久久精品网站免费观看| 国产精品一区二区黑丝| 亚洲婷婷综合久久一本伊一区| 欧美日本一区二区| 国产传媒欧美日韩成人| 午夜精品一区二区三区免费视频| 中文字幕av不卡| 欧美一区二区女人| 91福利在线播放| 国产91在线观看| 日本aⅴ亚洲精品中文乱码| 亚洲你懂的在线视频| 日本一二三不卡| 欧美大胆人体bbbb| 欧美军同video69gay| 91首页免费视频| 高清视频一区二区| 激情成人综合网| 奇米影视7777精品一区二区| 亚洲自拍偷拍图区| 亚洲欧美日韩国产综合在线 | 成人丝袜高跟foot| 久久99久久99小草精品免视看| 亚洲午夜三级在线| 一区二区理论电影在线观看| 国产精品久久久久久久久免费樱桃 | 亚洲视频综合在线| 中文字幕第一区第二区| 国产视频视频一区| 2020国产精品久久精品美国| 日韩一级成人av| 欧美一级高清片| 欧美一区二区网站| 欧美一级理论片| 欧美一区二区三区免费在线看 | 丝袜美腿亚洲综合| 亚洲精品国产高清久久伦理二区| 国产精品理论片在线观看| 久久九九久久九九| 国产午夜精品一区二区三区视频 | 欧美一区二区三区视频免费播放| 欧美视频完全免费看| 欧美日韩一区二区三区四区五区| 色视频欧美一区二区三区| 色网站国产精品| 欧美综合一区二区| 欧美日韩成人综合| 欧美一区二区三区免费| 精品久久国产老人久久综合| 久久先锋影音av鲁色资源网| 久久久久久久久久看片| 国产精品你懂的在线| 18涩涩午夜精品.www| 亚洲精品网站在线观看| 亚洲成av人影院| 捆绑紧缚一区二区三区视频| 久久国产精品一区二区| 国产成人精品影视| 91免费视频网址| 欧美网站一区二区| 日韩三级视频中文字幕| 国产色婷婷亚洲99精品小说| 国产精品美女视频| 亚洲制服丝袜av| 免费成人你懂的| 国产成人av在线影院| 色先锋aa成人| 精品久久久久久久久久久久包黑料| 国产亚洲综合在线| 一区二区在线电影| 卡一卡二国产精品| 成人免费毛片嘿嘿连载视频| 色综合激情久久| 日韩精品一区二区三区老鸭窝 | 久久免费电影网| 自拍偷拍亚洲欧美日韩| 首页国产丝袜综合| 国产成人午夜视频| 欧美在线一区二区| 久久久亚洲国产美女国产盗摄| 日韩理论片中文av| 麻豆国产一区二区| 色婷婷亚洲精品| 欧美sm极限捆绑bd| 亚洲美女精品一区| 欧美日韩在线播放一区| 欧美成人免费网站| 亚洲综合图片区| 国产乱码精品一区二区三区av| 91蜜桃网址入口| 久久这里只有精品视频网| 亚洲一区二区欧美日韩| 国产精品一区二区免费不卡| 欧美日韩一区二区三区在线 | 亚洲美女免费视频| 国产一区美女在线| 欧美日韩欧美一区二区| 国产精品视频线看| 看片的网站亚洲| 欧美日韩电影在线播放| 国产精品理论片| 国产一区二区三区在线观看精品| 在线观看免费视频综合| 国产无人区一区二区三区| 日韩不卡手机在线v区| 色偷偷88欧美精品久久久| 国产亚洲欧美一级| 欧美a级一区二区| 欧美熟乱第一页| 17c精品麻豆一区二区免费| 国产精品一品视频| 日韩精品一区二区三区在线观看| 亚洲综合色区另类av| jiyouzz国产精品久久| 久久久久久久久97黄色工厂| 美腿丝袜亚洲综合| 91精品国产麻豆国产自产在线| 一卡二卡三卡日韩欧美| 成人av资源在线| 国产偷国产偷亚洲高清人白洁 | 成人亚洲精品久久久久软件| 精品99一区二区| 免费美女久久99| 欧美一二三区在线| 视频精品一区二区| 欧美三级三级三级爽爽爽| 亚洲精品五月天| 在线亚洲高清视频| 一区二区三区日韩| 在线免费精品视频| 伊人夜夜躁av伊人久久| 免费成人在线播放| 五月天一区二区三区| 国产精品视频第一区| 国产福利视频一区二区三区| 日韩免费在线观看| 久久99精品一区二区三区三区| 欧美高清www午色夜在线视频| 亚洲大型综合色站| 欧美高清精品3d| 久久精品免费观看| 久久综合久久鬼色| 国产成人精品亚洲午夜麻豆| 国产三级精品三级在线专区| 国产超碰在线一区| 国产精品成人一区二区三区夜夜夜 | 99久久国产综合精品女不卡| 国产精品久久久久四虎| 成人app软件下载大全免费| 日韩一区中文字幕| 91国产成人在线| 三级一区在线视频先锋| 日韩精品资源二区在线| 午夜精品久久久久久久| 亚洲第一成年网| 亚洲综合久久久久| 最近日韩中文字幕| 中文字幕在线一区二区三区| 精品国产乱子伦一区| 色天天综合久久久久综合片| 精油按摩中文字幕久久| 日本aⅴ亚洲精品中文乱码| 亚洲人吸女人奶水| 亚洲自拍偷拍综合| 欧美mv和日韩mv的网站| 国产传媒日韩欧美成人| 日韩av一级片| 国产高清精品久久久久| 精品美女被调教视频大全网站| 免费成人结看片| 中文字幕巨乱亚洲| 欧美四级电影网| 国产一区二区免费视频| 亚洲欧美另类小说| 日韩一区二区在线观看视频| 国产成人av福利| 亚洲mv在线观看| 国产午夜亚洲精品羞羞网站| 91黄视频在线观看| 国产一区二区三区高清播放| 亚洲另类一区二区| 欧美不卡一区二区三区| 97国产一区二区| 麻豆高清免费国产一区| 中文字幕在线观看不卡视频| 欧美精品123区| 成人短视频下载| 奇米精品一区二区三区在线观看一| 亚洲国产高清aⅴ视频| 在线播放国产精品二区一二区四区 | 国产精品综合在线视频| 亚洲综合一区二区| 欧美激情一区二区三区全黄| 欧美日韩精品免费观看视频 | 色婷婷综合久久久久中文| 国产在线精品一区二区不卡了| 亚洲综合一区二区三区| 国产精品日产欧美久久久久| 色屁屁一区二区|