⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 int_pid.s

📁 Nucleus嵌入式操作系统在s3c2410上的一个应用程序实验
💻 S
📖 第 1 页 / 共 5 页
字号:
;/*************************************************************************/
;/*                                                                       */
;/*               Copyright Mentor Graphics Corporation 2002              */
;/*                         All Rights Reserved.                          */
;/*                                                                       */
;/* THIS WORK CONTAINS TRADE SECRET AND PROPRIETARY INFORMATION WHICH IS  */
;/* THE PROPERTY OF MENTOR GRAPHICS CORPORATION OR ITS LICENSORS AND IS   */
;/* SUBJECT TO LICENSE TERMS.                                             */
;/*                                                                       */
;/*************************************************************************/
;
;/*************************************************************************/
;/*                                                                       */
;/* FILE NAME                                    VERSION                  */
;/*                                                                       */
;/*      int_pid.s                       Nucleus PLUS\ARM PID\ADS 1.13.24 */
;/*                                                                       */
;/* COMPONENT                                                             */
;/*                                                                       */
;/*      IN - Initialization                                              */
;/*                                                                       */
;/* DESCRIPTION                                                           */
;/*                                                                       */
;/*      This file contains the target processor dependent initialization */
;/*      routines and data.                                               */
;/*                                                                       */
;/* DATA STRUCTURES                                                       */
;/*                                                                       */
;/*      INT_Vectors                         Interrupt vector table       */
;/*                                                                       */
;/* FUNCTIONS                                                             */
;/*                                                                       */
;/*      INT_Initialize                      Target initialization        */
;/*      INT_Vectors_Loaded                  Returns a NU_TRUE if all the */
;/*                                            default vectors are loaded */
;/*      INT_Setup_Vector                    Sets up an actual vector     */
;/*                                                                       */
;/* DEPENDENCIES                                                          */
;/*                                                                       */
;/*      int_defs.s                          Intialization constants      */
;/*                                                                       */
;/* HISTORY                                                               */
;/*                                                                       */
;/*         NAME            DATE                    REMARKS               */
;/*                                                                       */
;/*      W. Lamie        08-27-1994      Created initial version 1.0      */
;/*      D. Lamie        08-27-1994      Verified version 1.0             */
;/*      M. Trippi       07-11-1996      New NUCLEUS.H and TMT.S created  */
;/*                                        version 1.2                    */
;/*      M. Trippi       02-18-1997      Released version 1.3             */
;/*      M. Manning      03-04-1997      Released version 1.4             */
;/*      J. Bolton       08-26-1997      Released version 1.5             */
;/*      J. Bolton       10-08-1997      Released version 1.6             */
;/*      M. Kyle Craig   02-05-1999      Revised  version 1.11.17         */
;/*      George Clark    02-05-1999      Verified and Released 1.11.17    */
;/*      B. Whatley      08-12-1999      Verified and Released 1.11.18    */
;/*      D. Phillips     01-18-2000      Updated port to new structuring  */
;/*                                       scheme                          */
;/*      B. Whatley      01-25-2001      Verified and Released 1.13.20    */
;/*                                      Added int_defs.s file            */
;/*      D. Driscoll     05-10-2001      Verified and Released 1.13.21    */
;/*                                      Add code to allow FLASHING of    */
;/*                                      image.  Updated IRQ handeling    */
;/*      C. Sheppard     10-15-2001      Released version 1.13.22         */
;/*      J. Pregeant     04-17-2002      Released version 1.13.23         */
;/*      J. Pregeant     08-16-2002      Released version 1.13.24         */
;/*************************************************************************/
;
;/*************************************************************************/
;/*   INCLUDE FILE                                                        */
;/*************************************************************************/
;/* Define constants used in low-level initialization.  */
    INCLUDE int_defs.s

;/*************************************************************************/
;/*   COMPILE-TIME SWITCHES                                               */
;/*************************************************************************/
;/* NOTE: Define "INCLUDE_PROVIEW" to include hooks for Nucleus ProView
;         support.  To do this use the -pd option on assembler line for TCT.S:
;        -pd "INCLUDE_PROVIEW SETL {TRUE}"       */

;/* NOTE: Define "NU_INT_ROM_SUPPORT" to run out of Flash.
;         To do this use the -pd option on the assembler line:
;            -pd "NU_INT_ROM_SUPPORT SETL {TRUE}"    */

;/* NOTE: Define "NU_ARM9_SUPPORT" to run out of Flash.
;         To do this use the -pd option on the assembler line:
;            -pd "NU_ARM9_SUPPORT SETL {TRUE}"    */

; For ARM ports there are three methods of debugging.
; The assembler argument shown must be added to the line where
; int_pid.s is assembled and the library re-built for these to work.
;
;   1) Using the Embedded ICE or Multi-ICE.
;       - set NU_CLMON_SUPPORT = FALSE
;       - Add assembler argument:  <NONE>
;
;   2) Using CLMON monitor in conjunction with Nucleus UDB.
;       - set NU_CLMON_SUPPORT = TRUE
;       - Add assembler argument:
;           -pd "NU_CLMON_SUPPORT SETL {TRUE}"


; If assembled with TASM the variable {CONFIG} will be set to 16
; If assembled with ARMASM the variable {CONFIG} will be set to 32
; Set the variable THUMB to TRUE or false depending on whether the
; file is being assembled with TASM or ARMASM.

        GBLL    THUMB
        GBLL    ARM
    [ {CONFIG} = 16
THUMB   SETL    {TRUE}
ARM     SETL    {FALSE}

; If assembling with TASM go into 32 bit mode as the Armulator will
; start up the program in ARM state.

        CODE32
    |
THUMB   SETL    {FALSE}
ARM     SETL    {TRUE}
    ]

;/* Define the global NU_CLMON_SUPPORT if necessary */
    IF  (:LNOT: :DEF: NU_CLMON_SUPPORT)
        GBLL          NU_CLMON_SUPPORT
NU_CLMON_SUPPORT      SETL    {FALSE}
    ENDIF

;/* Define the global NU_INT_ROM_SUPPORT if necessary */
    IF  (:LNOT: :DEF: NU_INT_ROM_SUPPORT)
        GBLL          NU_INT_ROM_SUPPORT
NU_INT_ROM_SUPPORT   SETL   {TRUE}

    ENDIF

;/* Define the global NU_INT_FIQ_DEMO if using the FIQ demo */
    IF  (:LNOT: :DEF: NU_INT_FIQ_DEMO)
        GBLL       NU_INT_FIQ_DEMO 
NU_INT_FIQ_DEMO   SETL    {FALSE}
    ENDIF

;/* If NU_INT_ROM_SUPPORT is {TRUE}, ensure all
;   monitor support is disabled */

    IF NU_INT_ROM_SUPPORT

NU_CLMON_SUPPORT      SETL    {FALSE}

;/* Import INT_Reset function.  Necessary to keep linker from discarding
;   int_rom.s file when linking FLASH image.    */
    IMPORT  INT_Reset

    ENDIF ;/* NU_INT_ROM_SUPPORT */


;/* Define the global NU_ARM9_SUPPORT if necessary */
    IF  (:LNOT: :DEF: NU_ARM9_SUPPORT)
        GBLL          NU_ARM9_SUPPORT
NU_ARM9_SUPPORT   SETL    {FALSE}
    ENDIF

    AREA    Heap, DATA, NOINIT

; Create dummy variable used to locate bottom of heap

bottom_of_heap    SPACE   1
;/*------------------------------------------------------------------*/
;bottom_of_heap    %   1
;/*------------------------------------------------------------------*/

;/*************************************************************************/
;/*   EXTERNAL VARIABLE/FUNCTION DECLARATIONS                             */
;/*************************************************************************/
;/* Define the global system stack variable.  This is setup by the
;   initialization routine.  */
;
;extern VOID            *TCD_System_Stack;
;
    IMPORT  TCD_System_Stack
    IMPORT  TCT_System_Limit

    IF  NU_ARM9_SUPPORT
    IMPORT  Initialise940
    ENDIF
;
;
;/* Define the global data structures that need to be initialized by this
;   routine.  These structures are used to define the system timer management
;   HISR.  */
;
;extern VOID     *TMD_HISR_Stack_Ptr;
;extern UNSIGNED  TMD_HISR_Stack_Size;
;extern INT       TMD_HISR_Priority;
;
    IMPORT  TMD_HISR_Stack_Ptr
    IMPORT  TMD_HISR_Stack_Size
    IMPORT  TMD_HISR_Priority
    IMPORT  INT_Timer_Initialize
;
;
;/* Define extern function references.  */
;
;VOID   INC_Initialize(VOID *first_available_memory);
;VOID   TCT_Interrupt_Context_Save(VOID);
;VOID   TCT_Interrupt_Context_Restore(VOID);
;VOID   TCC_Dispatch_LISR(INT vector_number);
;VOID   TMT_Timer_Interrupt(void);
;
    IMPORT  INC_Initialize
    IMPORT  TCT_Interrupt_Context_Save
    IMPORT  TCT_Interrupt_Context_Restore
    IMPORT  TCC_Dispatch_LISR
    IMPORT  TMT_Timer_Interrupt

    IF NU_INT_FIQ_DEMO
    IMPORT  FIQ_LISR
    ENDIF

;/*************************************************************************/
;/*   GLOBAL VARIABLE DECLARATIONS                                       */
;/*************************************************************************/
    AREA INT_DATA, DATA, READWRITE

;/* Define the initialization flag that indicates whether or not all of the
;   default vectors have been loaded during initialization.  */
;
;INT    INT_Loaded_Flag;

    EXPORT  INT_Loaded_Flag
INT_Loaded_Flag
    DCD     &00000000


;/*************************************************************************/
;/*   INTERRUPT TABLES                                                    */
;/*************************************************************************/
;
; Define vector table used by INT_IRQ to branch to necessary ISR
;
INT_IRQ_Vectors
    DCD     INT_Interrupt_Shell             ; Vector 0
    DCD     INT_Interrupt_Shell             ; Vector 1

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -