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

📄 lh7a400_evb.i

📁 sharp的arm920t 7A400的评估板附带光盘Sharp KEVLH7A400 v0.3b Welcome to the SHARP KEV7A400 Evaluation board
💻 I
字号:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; $Workfile:   LH7A400_evb.i  $
; $Revision:   1.16  $
; $Author:   BarnettH  $
; $Date:   Jun 25 2002 18:41:56  $
; 
; Project:  LH7A400 Evaluation Board
; 
; Description:
;       LH7A400 EVB (Platform) definitions
;       Maps location of 16KB MMU Translation Table (TT_BASE)
;
; Predefines:
;       BOOTMODE = 1
;       Maps Asynchronous Flash to 0x0, Synchronous Flash to 0xF0000000
;       Any other value swaps mapping.
;
; $Log:   //smaicnt2/pvcs/VM/CHIPS/archives/SOC/LH7A400/Platform/LH7A400_evb.i-arc  $
;
;   Rev 1.16   Jun 25 2002 18:41:56   BarnettH
;Added memory-mapped bases for UART's
;
;   Rev 1.15   Jun 14 2002 13:25:06   BarnettH
;Removed PROTO_LH7A400 predefine.
;Cleaned up file banner.
;Eliminated CLKIDX values.
;
;   Rev 1.14   Jun 13 2002 14:46:40   BarnettH
;EIT Alpha1. Many changes; may not be compatible with previous usage.
;
;   Rev 1.13   Jun 06 2002 10:49:14   BarnettH
;Added LED utility codes section
;
;   Rev 1.12   Jun 05 2002 11:34:20   MaysR
;Added additional clock indexes:
;175/87/22, 184/92/23, 190/96/24.
;
;   Rev 1.11   Jun 05 2002 11:17:54   BarnettH
;Format housecleaning
;Added SDRAM_PHYS_SIZE
;Added MODE_STACK_INIT_MMU
;Added DATA_STORE_SIZE and DATA_STORE_BASE
;Made SVC_STACK_IRAM dependent on DATA_STORE_xx
;Added Dip Switch equates
;Changed SVC_STACK_INIT to SVC_STACK_SDRAM
;Added several CPLD equates, Dip Switches, 7-seg, 
;Added equates re SMC bcr2
;
;   Rev 1.10   May 21 2002 18:28:20   MaysR
;Changed Include back to LH7A400_mmu.i. (changed in error)
;
;   Rev 1.8   Apr 02 2002 11:42:30   SuryanG
;Added legal disclaimer.
;
;   Rev 1.7   Nov 19 2001 15:52:56   MaysR
;Expanded IRAMATZERO ifdef, corrected logic error.
;
;   Rev 1.6   Nov 16 2001 16:48:00   MaysR
;Added predefine for IRAM mapped to zero.
;
;   Rev 1.5   Nov 14 2001 16:21:42   MaysR
;Added clock speed settings up to 200-100-50
;
;   Rev 1.4   Oct 09 2001 18:49:02   BarnettH
;Added comment on MMU_NO_CACHE
;
;   Rev 1.3   Oct 04 2001 18:02:40   BarnettH
;Added Clock Index equate to PROTO_LH7A400 conditional
;
;   Rev 1.2   Oct 04 2001 17:52:20   BarnettH
;Added PROTO_LH7A400 pre-define and associated #define's
;
;   Rev 1.1   Sep 28 2001 15:12:52   BarnettH
;Added MODE_STACK_INIT_MMU
;Corrected SYSTEM_STACK_INIT
;Added Clock indices up to 200 MHz core
;
;   Rev 1.0   Sep 18 2001 18:04:06   BarnettH
;Initial revision.
;
; SHARP MICROELECTRONICS OF THE AMERICAS MAKES NO REPRESENTATION
; OR WARRANTIES WITH RESPECT TO THE PERFORMANCE OF THIS SOFTWARE,
; AND SPECIFICALLY DISCLAIMS ANY RESPONSIBILITY FOR ANY DAMAGES, 
; SPECIAL OR CONSEQUENTIAL, CONNECTED WITH THE USE OF THIS SOFTWARE.
;
; SHARP MICROELECTRONICS OF THE AMERICAS PROVIDES THIS SOFTWARE SOLELY 
; FOR THE PURPOSE OF SOFTWARE DEVELOPMENT INCORPORATING THE USE OF A 
; SHARP MICROCONTROLLER OR SYSTEM-ON-CHIP PRODUCT. USE OF THIS SOURCE
; FILE IMPLIES ACCEPTANCE OF THESE CONDITIONS.
;
; COPYRIGHT (C) 2001  SHARP MICROELECTRONICS OF THE AMERICAS INC.
;                        CAMAS, WA
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; SPECIALIZED INCLUDES
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
   INCLUDE LH7A400_mmu.i

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; LH7A400 xPSR bits
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

MODE_USR        EQU     0x010
MODE_FIQ        EQU     0x011
MODE_IRQ        EQU     0x012
MODE_SVC        EQU     0x013
MODE_ABORT      EQU     0x017
MODE_UNDEF      EQU     0x01b
MODE_SYSTEM     EQU     0x01F
I_MASK          EQU     (1 << 7)  ; 0x080
F_MASK          EQU     (1 << 6)  ; 0x040
T_MASK          EQU     (1 << 5)  ; 0x020

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; EVB MEMORY (Physical)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

; Memory Mapped Register Bases
AHB_REG_PHYS_BASE       EQU 0x80002000
APB_REG_PHYS_BASE       EQU 0x80000000

LH7A400_IRAM_PHYS_BASE  EQU 0xB0000000
LH7A400_IRAM_PHYS_SIZE  EQU 0x14000  ; 80KB
LH7A400_IRAM_PHYS_END   EQU LH7A400_IRAM_PHYS_BASE + \
                              LH7A400_IRAM_PHYS_SIZE

IRAM_PHYS_BASE          EQU LH7A400_IRAM_PHYS_BASE
IRAM_PHYS_SIZE          EQU LH7A400_IRAM_PHYS_SIZE
IRAM_PHYS_END           EQU LH7A400_IRAM_PHYS_END

LH7A400_CPLD_PHYS_BASE  EQU 0x20000000
LH7A400_CPLD_PHYS_SIZE  EQU 0x00010000
LH7A400_CPLD_PHYS_END   EQU LH7A400_CPLD_PHYS_BASE + \
                            LH7A400_CPLD_PHYS_SIZE

SDRAM0_PHYS_BASE        EQU 0xC0000000
SDRAM0_PHYS_SIZE        EQU 0x02000000  ; 32MB
SDRAM0_PHYS_END         EQU SDRAM0_PHYS_BASE + SDRAM0_PHYS_SIZE

SDRAM1_PHYS_BASE        EQU 0xD0000000
SDRAM1_PHYS_SIZE        EQU 0x02000000  ; 32MB
SDRAM1_PHYS_END         EQU SDRAM1_PHYS_BASE + SDRAM1_PHYS_SIZE

SDRAM_PHYS_SIZE         EQU (SDRAM0_PHYS_SIZE + SDRAM1_PHYS_SIZE)

    IF :DEF: BOOTMODE
        IF BOOTMODE=0x1
ASYNCFLASH_PHYS_BASE    EQU 0x0
SYNCFLASH_PHYS_BASE     EQU 0xF0000000
        ELSE
ASYNCFLASH_PHYS_BASE    EQU 0xF0000000
SYNCFLASH_PHYS_BASE     EQU 0x0
        ENDIF
    ELSE
ASYNCFLASH_PHYS_BASE    EQU 0xF0000000
SYNCFLASH_PHYS_BASE     EQU 0x0
    ENDIF

ASYNCFLASH_PHYS_SIZE    EQU 0x400000 ; 4 MB
ASYNCFLASH_PHYS_END     EQU (ASYNCFLASH_PHYS_BASE+ASYNCFLASH_PHYS_SIZE)
SYNCFLASH_PHYS_SIZE     EQU 0x800000 ; 8 MB
SYNCFLASH_PHYS_END      EQU (SYNCFLASH_PHYS_BASE+SYNCFLASH_PHYS_SIZE)

; ASYNCHFLASH_MMU_BASE must be coherent with virtual memory map chosen.
; ASYNCHFLASH_MMU_BASE is 0x90000000 for tt_init_basic mapping
ASYNCHFLASH_MMU_BASE    EQU 0x90000000

SRAM_PHYS_BASE          EQU 0x10000000
SRAM_PHYS_SIZE          EQU 0x00200000  ; 2 MB
SRAM_PHYS_END           EQU SRAM_PHYS_BASE + SRAM_PHYS_SIZE

UART1_BASE              EQU 0x80000600
UART2_BASE              EQU 0x80000700
UART3_BASE              EQU 0x80000800

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; BootROM Load Addresses
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

; Translation Tables and Page Tables will be built from executable
; code at startup.

; Translation Table Base Address
   IF :DEF: IRAMATZERO
      IF IRAMATZERO = {TRUE}
TT_BASE_LADDR   EQU ((IRAM_PHYS_END - 0x4000) - TRANS_TABLE_SIZE)
TT_BASE_XADDR   EQU ((IRAM_PHYS_END - 0x4000) - TRANS_TABLE_SIZE)
      ELSE
TT_BASE_LADDR   EQU (SRAM_PHYS_END - TRANS_TABLE_SIZE)
TT_BASE_XADDR   EQU (SRAM_PHYS_END - TRANS_TABLE_SIZE)
      ENDIF
   ELSE
TT_BASE_LADDR   EQU (SRAM_PHYS_END - TRANS_TABLE_SIZE)
TT_BASE_XADDR   EQU (SRAM_PHYS_END - TRANS_TABLE_SIZE)
   ENDIF

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Mode stack setup
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; 64 MB stack top for MMU enabled
MMU_MODE_STACK_BASE EQU SDRAM_PHYS_SIZE

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Data Store (top of IRAM)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Leave some Data Store at top of IRAM,
; used for miscellaneous data, save status
DATA_STORE_SIZE         EQU 0x100   ; 
DATA_STORE_BASE         EQU (IRAM_PHYS_BASE + IRAM_PHYS_SIZE - \
                            DATA_STORE_SIZE)
;   Miscellaneous Data
;   Boot Status Store address
BOOT_STATUS_STORE_ADDR  EQU (DATA_STORE_BASE + 0x0)
;   Software Reset Status Store address
SRVAL_STATUS_STORE_ADDR EQU (DATA_STORE_BASE + 0x4)
;   CPU Board DIP Switch (S1) Status Store address
CPU_DIPSW_STORE_ADDR    EQU (DATA_STORE_BASE + 0x8)
;   Display Board DIP Switch (S1) Status Store address
DISP_DIPSW_STORE_ADDR   EQU (DATA_STORE_BASE + 0xC)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Save Status stack in IRAM (grows down Data Store IRAM)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Leaves four empty words at top of IRAM for contingencies.
; See comments in startup code for Save Status memory map.
SAVE_STATUS_STORE_ADDR  EQU (DATA_STORE_BASE + DATA_STORE_SIZE - 0x10)
SAVE_STATUS_SIZE        EQU 0x80  ; 32 words 

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Supervisor stack setup
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Size will be as needed, calling depth is expected to be minimal
; before Primary stack setup
; Stack usage is assumed to be Full Descending
;
; IRAM stack grows down below Data Store area.
IRAM_SVC_STACK_BASE     EQU DATA_STORE_BASE
; SDRAM stack at top of SDRAM after MMU is enabled.
SDRAM_SVC_STACK_BASE    EQU (0x0 + SDRAM_PHYS_SIZE)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Primary stack setup
; In SDRAM after MMU is enabled
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

SVC_STACK_SIZE      EQU 1024    ; primary running stack for Supervisor
IRQ_STACK_SIZE      EQU 1024    ; primary running stack for IRQ
UNDEF_STACK_SIZE    EQU 1024    ; may be used by debugger or SWI
FIQ_STACK_SIZE      EQU 256     ; primary running stack for FIQ
ABORT_STACK_SIZE    EQU 256     ; Memory error handler stack
SYSTEM_STACK_SIZE   EQU 1024    ; not used if User Mode not entered.
SVC_STACK_BASE      EQU SDRAM_SVC_STACK_BASE
IRQ_STACK_BASE      EQU (SVC_STACK_BASE - SVC_STACK_SIZE)
UNDEF_STACK_BASE    EQU (IRQ_STACK_BASE - IRQ_STACK_SIZE)
FIQ_STACK_BASE      EQU (UNDEF_STACK_BASE - UNDEF_STACK_SIZE)
ABORT_STACK_BASE    EQU (FIQ_STACK_BASE - FIQ_STACK_SIZE)
SYSTEM_STACK_BASE   EQU (ABORT_STACK_BASE - ABORT_STACK_SIZE)
SYSTEM_STACK_LIMIT  EQU (SYSTEM_STACK_BASE - SYSTEM_STACK_SIZE)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; DIP Switch Codes for LH7A400_evb_get_dipsw ()
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
CPU_DIP_SWITCH      EQU     0
DISP_DIP_SWITCH     EQU     1

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; LED Utility Codes for LH7A400_evb_toggle/set_led ()
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
LED_D16             EQU 0x02
LED_D17             EQU 0x04
LED_ON              EQU 0
LED_OFF             EQU 1
LED_TOGGLE          EQU 2

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; LH7A400 memory mapped registers
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Interrupt Controller
INTC_REG_BASE       EQU (APB_REG_PHYS_BASE + 0x500)
INTC_INTSR_OFFSET   EQU 0x00
INTC_INTRSR_OFFSET  EQU 0x04
INTC_INTENS_OFFSET  EQU 0x08
INTC_INTENC_OFFSET  EQU 0x0C

; SMC
SMC_REG_BASE        EQU (AHB_REG_PHYS_BASE + 0x000)
SMC_BCR2_OFFSET     EQU 0x08        ; CPLD
SMC_BCR2_INIT       EQU 0x1000FBE0  ; CPLD

; CPLD
CPLD_REG_BASE               EQU     LH7A400_CPLD_PHYS_BASE
CPLD_CPUDIPSW_OFFSET        EQU     0x00
CPLD_SEVEN_SEG_OFFSET       EQU     0x0E
CPLD_DISPDIPSW_OFFSET       EQU     0x0A
                                                ; Major Minor
CPLD_CPUDIPSW_DEMO_A_RUN    EQU     0x80        ; b100
CPLD_CPUDIPSW_DEMO_B_RUN    EQU     0xC0        ; b110
CPLD_CPUDIPSW_EIT_RUN       EQU     0x00        ; b000
CPLD_CPUDIPSW_DEBUG_RUN     EQU     0x20        ; b001
CPLD_CPUDIPSW_USER_RUN      EQU     0x40        ; b010
CPLD_CPUDIPSW_NO_INIT_RUN   EQU     0x3C        ; b001  b111 xx

CPLD_CPUDIPSW_DCACHE_BIT    EQU     0x01
CPLD_CPUDIPSW_ICACHE_BIT    EQU     0x02
CPLD_CPUDIPSW_MAJOR_MODE    EQU     0xE0

; CLKSC
CLKSC_REG_BASE      EQU     (APB_REG_PHYS_BASE + 0x400)
CLKSC_PWRSR_OFST    EQU     0x00
CLKSC_PWRSR         EQU     0x80000400
CLKSC_SCR0          EQU     0x80000440      ; scratch register 0
CLKSC_SCR1          EQU     0x80000444      ; scratch register 1

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    END

⌨️ 快捷键说明

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