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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? startlib.s

?? ATMEL at91系列arm處理器的angle調(diào)試駐留源碼
?? S
字號:
        TTL     Generic ARM start-of-day (initialisation) code  > startlib.s        ; ---------------------------------------------------------------------        ; This file provides the Angel initialisation and startup code        ; for library based systems. It is also the entry point for        ; the C-Library. After the initialisation, the start-up        ; routine "_main" is called.        ;        ; The source file "startrom.s" provides the Angel startup code        ; for ROM based versions of Angel, which eventually calls this        ; code to start Angel and the application.        ;        ; $Revision: 1.9.6.1 $        ;   $Author: rivimey $        ;     $Date: 1997/12/10 18:50:22 $        ;        ; Copyright Advanced RISC Machines Limited, 1995.        ; All Rights Reserved        ; ---------------------------------------------------------------------        GET     listopts.s           ; standard listing control        GET     lolevel.s            ; automatically built manifest definitions        GET     macros.s             ; standard assembler support        GET     target.s             ; target specific manifests        ; ---------------------------------------------------------------------        EXPORT  |__main|             ; Angel startup entry point (non-APCS)        IMPORT  |__rt_asm_fatalerror| ; error reporting via suppasm.s        IMPORT  |angel_ExceptionInit|,WEAK  ; exception handler initialisation        IMPORT  |angel_InitialiseDevices|,WEAK  ; device driver initialisation        IMPORT  |angel_InitialiseChannels|,WEAK ; channel initialisation        IMPORT  |Angel_ProfileTimerInitialise|,WEAK ; profile & yield timer        IMPORT  |angel_BootInit|,WEAK       ; bootstrap agent initialisation        IMPORT  |angel_DebugInit|,WEAK      ; debugging support initialisation        IMPORT  |angelOS_Initialise|,WEAK   ; OS debug support initialisation        IMPORT  |angel_SysLibraryInit|,WEAK ; CLib support initialisation  IF :DEF: MINIMAL_ANGEL :LAND: MINIMAL_ANGEL<>0        IMPORT  |Angel_RawDeviceControl|,WEAK ; ---"---        IMPORT  |__entry|                     ; Application entry point  ELSE        IMPORT  |angel_DeviceControl|,WEAK  ;  Used to set the LED on the card        IMPORT  |__entry|,WEAK                ; Application entry point  ENDIF        IMPORT  |Angel_Yield|        IMPORT  |Angel_EnterSVC|        IMPORT  |Angel_ExitToUSR|        IMPORT  |Angel_InitialiseTaskFinished|        IMPORT  |Angel_BlockApplication|        IMPORT  |Angel_StackBase|                ; ---------------------------------------------------------------------        AREA    |C$$Code$$Startup|,CODE,READONLY|__main|        ; in:   SVC mode; IRQs and FIQs disabled.        ;       r13 = FD stack        ; out:  Exits via the |_main| routine.        ;        ; Setup an APCS register state before calling any of the initialisation        ; routines.  We also want to be in USR mode, with the Angel stack        ; in use.  However we want to keep interrupts disabled too, which is        ; unusual (normally USR mode => IRQ and FIQ enabled).        ;                      LDR     a2, =Angel_StackBase        LDR     a2, [a2]        ADD     sp, a2, #Angel_SVCStackOffset ;  Reset the SVC stack                MOV     a1, #USRmode :OR: IRQDisable :OR: FIQDisable        MSR     CPSR_cxsf, a1                ADD     sp, a2, #Angel_AngelStackOffset        ADD     sl, a2, #Angel_AngelStackLimitOffset        MOV     fp, #0x00000000        IF :DEF: JTAG_ADP_SUPPORTED          IF JTAG_ADP_SUPPORTED <> 0            B       __entry                        EXPORT |main|main          ENDIF        ENDIF                ; This is the main C-Library and Angel startup point. The        ; Angel world and the library are initialised, before calling        ; the application. NOTE: In a ROM only monitor world, the        ; application is a simple control loop managing debug messages        ; from the host. However for normal applications, or ROM based        ; applications the code called will be the user code. This        ; file does not expect any other interface, other than when        ; the initialisation is complete the routine "_main" will be        ; called to enter the application "main" routine.        ;        ; This code *IS* single threaded. When Angel is being        ; constructed as part of a multi-threaded application, then        ; this initialisation code should be atomic. At the moment        ; this is achieved by ensuring that this code is entered in        ; SVC mode with processor interrupts disabled. If part of a        ; ROM image, then the ROM boot-strapping code will ensure that        ; this routine is entered with the correct mode and        ; status. Similarly the new Angel run-time specifies that        ; applications are always entered through |__main| in SVC mode        ; with processor interrupts disabled. The run-time library        ; then deals with switching to USR mode after its        ; initialisation, and before starting the application. This is        ; different from the old Demon method of always starting new        ; applications in USR mode, but does allow applications in the        ; new Angel world to have suitable priviledged control. This        ; avoids the Angel run-time from having to know anything about        ; the environment that started the Angel application, which in        ; itself need *NOT* be based on Angel.        ;        ; This routine contains the generic Angel initialisation. Any        ; ROM specific boot-strapping is held in the "startrom.s"        ; source file.        ;        LDR     a1,=angel_ExceptionInit ; get address of function        TEQ     a1,#0x00000000          ; if zero, it does not exist        BLNE    angel_ExceptionInit     ; initialise the exception system        ;        ;        ; The following calls should probably be build-time        ; conditional. The Angel library being constructed may not        ; require the device driver support, or any debug channel        ; support. At the moment we just include run-time checks for        ; the relevant functions being available.        ;        LDR     a1,=angel_InitialiseDevices     ; get address of function        TEQ     a1,#0x00000000                  ; if zero, it does not exist        BEQ     NoDeviceSupport                 ; cannot have comms support        ;        BL      angel_InitialiseDevices         ; init device driver world        ;        ; Now set the LED which is attached to one of the real devices        ;  IF :DEF: MINIMAL_ANGEL :LAND: MINIMAL_ANGEL<>0        LDR     a1,=Angel_RawDeviceControl  ELSE        LDR     a1,=angel_DeviceControl  ENDIF        TEQ     a1, #0        BEQ     NoDevicesSoNoLEDs        ;        MOV     a1, #DI_LED_DEVICE        MOV     a2, #DC_SET_LED        MOV     a3, #1        ;  IF :DEF: MINIMAL_ANGEL :LAND: MINIMAL_ANGEL<>0        BL      Angel_RawDeviceControl  ELSE        BL      angel_DeviceControl  ENDIF        ;NoDevicesSoNoLEDs        ;        LDR     a1,=angel_InitialiseChannels    ; get address of function        TEQ     a1,#0x00000000                  ; if zero, it does not exist        BEQ     NoChannelSupport                ; cannot have comms support        ;        BL      angel_InitialiseChannels        ; initialise the channel world        ;        ; NOTE: There is no error status return from the device        ; initialisation routine. This means that each device driver        ; must keep its own active (and initialised OK) state, with        ; the users of the device driver dealing with individual        ; device driver error returns.        ;        LDR     a1,=angel_DebugInit             ; check for debug agent        TEQ     a1,#0x00000000                  ; if zero, it does not exist        BLNE    angel_DebugInit                 ; initialise debugging world        LDR     a1,=angelOS_Initialise          ; check for OS presence.        TEQ     a1,#0x00000000                  ; if zero, it does not exist        BLNE    angelOS_Initialise              ; initialise the OS.        ;        LDR     a1,=angel_SysLibraryInit        ; Check for C Library Support        TEQ     a1,#0x00000000                  ; If zero, does not exist.        BLNE    angel_SysLibraryInit                LDR     a1,=Angel_ProfileTimerInitialise  ; Check for Profile / Yield        TEQ     a1,#0x00000000                  ; Timer Support        BLNE    Angel_ProfileTimerInitialise        ;        ; The Angel defined startup channels should now be initialised.        ;NoDeviceSupportNoChannelSupport        BL      Angel_EnterSVC        BL      Angel_ExitToUSR ; This will reenable interrupts !  IF :DEF: MINIMAL_ANGEL :LAND: MINIMAL_ANGEL<>0        ; We just jump straight to the application's __entry point        BL      __entryAppFinished        ADR     a1, appexitmsg        B       __rt_asm_fatalerrorappexitmsg        DCB     "Appl returned\n"        ALIGN  ELSE                ; The boot agent should be the last part of the communications        ; system to be initialised, because it sends the first message        ; to the host. The host should not be generating *ANY*        ; messages until it has received the "booted" status message        ; from the target.        LDR     a1,=angel_BootInit  ; check that boot agent exists        TEQ     a1,#0x00000000      ; if zero, it does not exist        BLNE    angel_BootInit      ; deal with starting bootstrap agent        IF :DEF: LATE_STARTUP :LAND: LATE_STARTUP <> 0          ; We're doing late startup, so as long as there is an entry point,          ; simply unblock the application, and call Yield to let it run                  LDR     a1,=__entry          TEQ     a1,#0x00000000          BEQ     No__entry          BL      Angel_InitialiseTaskFinished          MOV     r0, #0        ; unblock          BL      Angel_BlockApplication          BL      Angel_YieldAppDidNotRun          B       AppDidNotRun  ; should never get here        No__entry          ;; If it doesn't exist, we drop through                ENDIF                BL      Angel_InitialiseTaskFinished        ;; Shouldn't get here more than once        BlockingLoop        BL      Angel_Yield        B       BlockingLoop  ENDIF ; ELSE not minimal angel                        ; ---------------------------------------------------------------------        ; -- Angel run-time workspace -----------------------------------------        ; ---------------------------------------------------------------------        ; Data areas should be declared as necessary. The old Demon source        ; used assembler so no problem with C inter-working of the variables        ; was required. However, the C-Demon work continued to use assembler        ; "space" definitions. This meant a lot of "complicated" work when        ; inter-working with the C portions of C-Demon. For Angel the simple        ; approach of defining proper data AREAs in assembler, and ensuring        ; that the C definitions are correct (to ensure data exists in the        ; correct type of AREA) is used to ensure that clean assembler/C        ; inter-working can occur.        ;        ; The following data area defines the layout of the Angel        ; workspace. It does not specify where the work-space is        ; placed in the final memory map. When Angel is being built as        ; part of a ROM image, then the workspace lives at a fixed        ; lo-memory address. When Angel is part of an application,        ; then the workspace is placed in the standard application        ; memory by the linker. This ensures that an Angel system        ; loaded as part of an application is seperate to any version        ; of Angel already present in a boot/debug ROM.        AREA    |Angel$$DATA|,DATA,NOINIT        EXPORT  angel_StartupStatus        EXPORT  angel_MMUtypeangel_LibraryWorkspaceStart     %       0       ; start of this workspace section                ; This is a status variable used to hold information on how        ; Angel was started. For ROM systems this can include whether        ; the system was started as a result of a PowerOnReset, or for        ; library based systems it can be information on how the        ; system was downloaded and initialised. Zero denotes a        ; hard-reset, whilst a non-zero value denotes a soft-reset.angel_StartupStatus             %       4       ; type of Angel reset                ; This variable is used to denote whether the startup code        ; discovered an ARM MMU unit. This is needed to ensure that        ; certain routines can discover whether there is a cache        ; present. i.e. memory sizing code needsd to ensure that the        ; cache is disabled when checking for ghosting.angel_MMUtype                   %       4       ; type of MMU present                        angel_LibraryWorkspaceEnd       %       0       ; allows size of area to be calculated        ; ---------------------------------------------------------------------        END     ; EOF startlib.s

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美三日本三级三级在线播放| eeuss鲁片一区二区三区| 自拍偷在线精品自拍偷无码专区| 久久影院视频免费| 久久久国产午夜精品| 久久久精品tv| 亚洲国产成人一区二区三区| 国产欧美一区二区三区沐欲| 精品国精品国产尤物美女| 欧美r级电影在线观看| 26uuu精品一区二区| 欧美高清一级片在线观看| 国产精品每日更新| 一区二区三区国产精华| 婷婷开心激情综合| 精品无人码麻豆乱码1区2区 | 国产在线精品一区在线观看麻豆| 久久精品国产久精国产爱| 久久国产尿小便嘘嘘| 国产黄色精品网站| 91精彩视频在线| 欧美一区二区在线免费观看| 久久久无码精品亚洲日韩按摩| 中文字幕一区在线观看视频| 亚洲成年人网站在线观看| 九九视频精品免费| 成人网在线播放| 欧美偷拍一区二区| 久久综合色播五月| 亚洲男人天堂一区| 麻豆精品一区二区三区| 99久久综合99久久综合网站| 欧美日韩电影在线播放| www精品美女久久久tv| 亚洲黄网站在线观看| 亚洲国产高清在线观看视频| 美女视频网站久久| 国产在线精品不卡| 92国产精品观看| 6080国产精品一区二区| 国产三级三级三级精品8ⅰ区| 亚洲三级电影全部在线观看高清| 亚洲mv在线观看| 高清shemale亚洲人妖| 欧美久久久久久久久| 久久久99精品免费观看不卡| 国产精品99久久久久久久女警| 99视频一区二区三区| 欧美一二三四区在线| 一区二区三区精密机械公司| 岛国一区二区在线观看| 91精品国产乱码久久蜜臀| 色呦呦国产精品| 欧美刺激午夜性久久久久久久| 亚洲欧美日韩一区| 国产一区二区91| 日韩午夜中文字幕| 丝袜诱惑亚洲看片| 色欲综合视频天天天| 国产精品色哟哟| 国产一区欧美日韩| 日韩欧美亚洲国产精品字幕久久久 | 久久综合中文字幕| 天天色天天爱天天射综合| 91视频在线观看| 精品黑人一区二区三区久久| 同产精品九九九| 91精品国产色综合久久ai换脸| 亚洲国产精品久久久久婷婷884| 99re这里只有精品视频首页| 国产日产精品一区| 99国产精品久久久| 大白屁股一区二区视频| 日韩三级中文字幕| 无码av免费一区二区三区试看 | 精品在线免费视频| 日韩精品自拍偷拍| 韩日精品视频一区| 久久久久久久久99精品| 国产电影一区二区三区| 欧美激情一区二区三区蜜桃视频| 国产福利一区在线| 中文字幕制服丝袜成人av | 美国精品在线观看| 欧美成人一区二区三区片免费| 日本午夜精品视频在线观看| 日韩一区二区三区三四区视频在线观看| 亚洲v精品v日韩v欧美v专区 | 国内精品国产成人| 中文字幕成人av| 在线观看欧美精品| 日韩av午夜在线观看| 久久综合九色综合欧美98| 国产成人av一区二区三区在线观看| 国产精品丝袜一区| 色哟哟一区二区三区| 婷婷六月综合网| 欧美国产成人精品| 欧美日韩一区二区三区四区五区| 日韩有码一区二区三区| 26uuu久久天堂性欧美| 99精品热视频| 免费观看一级欧美片| 国产精品久久久久久久久久久免费看| 色综合视频在线观看| 麻豆国产一区二区| 亚洲丝袜精品丝袜在线| 欧美精品自拍偷拍动漫精品| 国产麻豆视频精品| 亚洲在线视频网站| 精品国产成人在线影院| 91麻豆福利精品推荐| 裸体在线国模精品偷拍| 国产精品成人在线观看| 欧美成人vps| 欧美在线看片a免费观看| 国产精品亚洲成人| 日韩av电影免费观看高清完整版在线观看| 国产午夜亚洲精品不卡| 欧美久久久一区| 色综合色狠狠天天综合色| 国产一区二区中文字幕| 午夜精品一区二区三区电影天堂 | 99久久伊人精品| 美国精品在线观看| 天天综合色天天综合| 中文字幕在线一区二区三区| 精品久久久网站| 欧美一区二区免费观在线| 色综合一区二区三区| 成人一区二区视频| 久久激情五月激情| 视频一区视频二区中文字幕| 国产精品电影一区二区| 欧美精彩视频一区二区三区| 91精品国产综合久久久久久漫画 | 亚洲一区二区美女| 日韩理论片在线| 欧美激情一区二区三区在线| 精品国产免费一区二区三区四区 | 国产激情视频一区二区在线观看| 日本大胆欧美人术艺术动态| 亚洲一二三四区| 亚洲男女一区二区三区| 成人欧美一区二区三区视频网页 | 精品精品国产高清a毛片牛牛| 欧美日韩mp4| 8x8x8国产精品| 日韩欧美亚洲国产精品字幕久久久| 欧美主播一区二区三区| 91精品1区2区| 欧美男男青年gay1069videost | 欧美日韩一级片在线观看| 色天天综合久久久久综合片| 91麻豆成人久久精品二区三区| 97se亚洲国产综合自在线| 99久免费精品视频在线观看| 91亚洲国产成人精品一区二三| va亚洲va日韩不卡在线观看| 国产剧情一区在线| 日日噜噜夜夜狠狠视频欧美人 | 欧美高清www午色夜在线视频| 91毛片在线观看| 91精品91久久久中77777| 欧美亚洲综合另类| 9191精品国产综合久久久久久| 日韩一二在线观看| 久久亚洲二区三区| 国产精品视频免费看| 亚洲欧美电影一区二区| 午夜精品免费在线观看| 经典三级一区二区| av电影天堂一区二区在线观看| 色天使久久综合网天天| 3d成人h动漫网站入口| 精品福利av导航| 日本高清不卡aⅴ免费网站| 一本色道久久加勒比精品 | 在线观看日韩av先锋影音电影院| 在线免费观看不卡av| 91精品综合久久久久久| 国产农村妇女精品| 亚洲国产成人av网| 国产一区二区三区免费看| 99精品久久只有精品| 欧美日韩国产高清一区二区| 久久丝袜美腿综合| 一区二区三区四区国产精品| 美国十次综合导航| 99久久99久久精品免费观看| 这里只有精品99re| 国产精品高潮久久久久无| 丝袜美腿亚洲一区| hitomi一区二区三区精品| 69精品人人人人| 日韩理论电影院| 国产乱码精品一区二区三区五月婷| 日本黄色一区二区| 久久精品夜色噜噜亚洲a∨| 五月天中文字幕一区二区|