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

📄 lh79524_startup.i

📁 SHARP_ARM720T_LH79524/5软件开发包_支持TFT_LCD_NAND_FLASH_ETH_USB
💻 I
字号:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; $Workfile:   lh79524_startup.i  $
; $Revision:   1.0  $
; $Author:   ZhangJ  $
; $Date:   Oct 20 2004 09:41:34  $
;
; Project:  LH79524 
;
; Description:
;   This file contains chip-specific definitions used by the basic
;   startup code for the LH79524.
;
; $Log::   //smaicnt2/pvcs/VM/sharpmcu/archives/sharpmcu/software/csps/$
; 
;    Rev 1.0   Oct 20 2004 09:41:34   ZhangJ
; Initial revision.
; 
;    Rev 1.1   Jul 20 2004 16:50:42   PattamattaD
; Updated comments.
; 
;    Rev 1.0   Jun 15 2004 14:03:02   PattamattaD
; Initial revision.
; 
; 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
;   Copyright (c) 2004 Sharp Microelectronics of the Americas
;
;   All rights reserved
;
;   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.
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; LH79524 xPSR bits
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

MODE_USR                EQU 0x010
MODE_FIQ                EQU 0x011
MODE_IRQ                EQU 0x012
MODE_SVC                EQU 0x013
MODE_ABT                EQU 0x017
MODE_UNDEF              EQU 0x01b
MODE_SYS                EQU 0x01F
I_Bit                   EQU (1 << 7)  ; 0x080
F_Bit                   EQU (1 << 6)  ; 0x040
T_Bit                   EQU (1 << 5)  ; 0x020


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; MMU, Coprocessor Definitions
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

SYS_CONTROL_CP          CP 15
MMU_CP                  CP 15
CACHE_CP                CP 15

; Valid CP15 registers
MMU_REG_ID              CN 0
MMU_REG_CONTROL         CN 1
MMU_REG_TTB             CN 2  ; Translation Table Base Address
MMU_REG_DAC             CN 3  ; Domain Access Control
MMU_REG_FS              CN 5  ; Fault Status
MMU_REG_FA              CN 6  ; Fault Address
MMU_REG_CACHE_OP        CN 7  ; Cache Operations
MMU_REG_TLB_OP          CN 8  ; Translation Lookaside Buffer Operation
MMU_REG_FCSE_PID        CN 13 ; Fast Context Switch Extension

; Control register bits
MMU_CONTROL_M           EQU (1 << 0)   ; MMU Enable
MMU_CONTROL_A           EQU (1 << 1)   ; Alignment Fault
MMU_CONTROL_C           EQU (1 << 2)   ; Data Cache
MMU_CONTROL_W           EQU (1 << 3)   ; Write buffer
MMU_CONTROL_B           EQU (1 << 7)   ; Endianess
MMU_CONTROL_S           EQU (1 << 8)   ; System Protection
MMU_CONTROL_R           EQU (1 << 9)   ; ROM Protection
MMU_CONTROL_V           EQU (1 << 13)  ; Exception Vector location

; Convenient EQU's
MMU_ENABLE              EQU (MMU_CONTROL_M)
MMU_ENABLE_CACHE        EQU (MMU_CONTROL_M :OR: MMU_CONTROL_C)
MMU_CONTROL_RESET       EQU 0x70 ; bits 4,5 and 6 should be 1
MMU_CONTROL_ALL_BITS    EQU (MMU_CONTROL_M :OR: MMU_CONTROL_A :OR: \
                             MMU_CONTROL_C :OR: MMU_CONTROL_B :OR: \
                             MMU_CONTROL_S :OR: MMU_CONTROL_R :OR: \
                             MMU_CONTROL_W :OR: MMU_CONTROL_V)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Memory Mapped Register Bases
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

AHB_REG_PHYS_BASE       EQU 0xFFFF0000
APB_REG_PHYS_BASE       EQU 0xFFFC0000

IRAM_PHYS_BASE          EQU 0x60000000
IRAM_PHYS_SIZE          EQU 0x00008000  ; 32KB
IRAM_PHYS_END           EQU (IRAM_PHYS_BASE + IRAM_PHYS_SIZE)

; Interrupt Controller
VIC_REG_BASE            EQU (AHB_REG_PHYS_BASE + 0xF000)
VIC_IRQSR_OFFSET        EQU 0x00
VIC_FIQSR_OFFSET        EQU 0x04
VIC_RAWSR_OFFSET        EQU 0x08
VIC_INTSEL_OFFSET       EQU 0x0C
VIC_INTEN_OFFSET        EQU 0x10
VIC_INTENC_OFFSET       EQU 0x14
VIC_SOFT_INT_OFFSET     EQU 0x18
VIC_SOFT_INTC_OFFSET    EQU 0x1C
VIC_VECADDR_OFFSET      EQU 0x30

; RCPC
RCPC_REG_BASE           EQU (APB_REG_PHYS_BASE + 0x22000)
RCPC_CTRL_OFFSET        EQU 0x00        
RCPC_ID_OFFSET          EQU 0x04
RCPC_REMAP_OFFSET       EQU 0x08      
RCPC_SOFTRESET_OFFSET   EQU 0x0C      
RCPC_RST_STAT_OFFSET    EQU 0x10    
RCPC_RST_STATCLR_OFFSET EQU 0x14
RCPC_HCLK_OFFSET        EQU 0x18  
RCPC_CPUCLK_OFFSET      EQU 0x1C
RCPC_PERIC_CTRL0_OFFSET EQU 0x24
RCPC_PERIC_CTRL1_OFFSET EQU 0x28
RCPC_AHBCLKCTRL_OFFSET  EQU 0x2C    
RCPC_PERIC_SEL_OFFSET   EQU 0x34  
RCPC_LCD_CLK_OFFSET     EQU 0x40
RCPC_SSP_CLK_OFFSET     EQU 0x44
RCPC_ADC_CLK_OFFSET     EQU 0x48
RCPC_USB_CLK_OFFSET     EQU 0x4C
RCPC_INTCONFIG_OFFSET   EQU 0x80     
RCPC_INTCLEAR_OFFSET    EQU 0x84      
RCPC_COREC_CFG_OFFSET   EQU 0x88 
RCPC_SYSPLLCTRL_OFFSET  EQU 0xC0 
RCPC_USBPLLCTRL_OFFSET  EQU 0xC4   

 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Data Store (top of IRAM)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Leave some Data Store at top of IRAM,
; used for miscellaneous data, save status
DATA_STORE_SIZE         EQU 0x40   ; 16 words
DATA_STORE_BASE         EQU (IRAM_PHYS_END - 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)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; 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

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Primary stack setup
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; IRAM stack grows down below Data Store area.
IRAM_SVC_STACK_BASE     EQU DATA_STORE_BASE

SVC_STACK_SIZE      EQU 1024  ; primary running stack for Supervisor
IRQ_STACK_SIZE      EQU 512   ; primary running stack for IRQ
UNDEF_STACK_SIZE    EQU 512   ; 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.

;Initial startup may not have SDRAM available, use IRAM for stacks
SVC_STACK_BASE      EQU IRAM_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)


    END

⌨️ 快捷键说明

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