📄 platform.s
字号:
;/*****************************************************************************; * Copyright (C) ARM Limited 1998. All rights reserved. ; *****************************************************************************/;/************************************************************************;; EVALUATOR7T address map;; NOTE: This is a multi-hosted header file for use with uHAL and; supported debuggers.;;************************************************************************/ IF :LNOT: :DEF: __address_h__address_h EQU 1PLATFORM_ID EQU 0x0062A; Common modules for uHAL can be included or excluded by changing these; definitions. These can be over-ridden by the makefile/ARM project file; provided the .h file can is rebuilt. IF :LNOT: :DEF: uHAL_BOOTuHAL_BOOT EQU 0 ENDIF IF :LNOT: :DEF: uHAL_TIMERSuHAL_TIMERS EQU 1 ENDIF IF :LNOT: :DEF: uHAL_INTERRUPTSuHAL_INTERRUPTS EQU 1 ENDIF IF :LNOT: :DEF: uHAL_COMPLEX_IRQuHAL_COMPLEX_IRQ EQU 1 ENDIF IF :LNOT: :DEF: uHAL_PCIuHAL_PCI EQU 0 ENDIF IF :LNOT: :DEF: uHAL_HEAPuHAL_HEAP_BASE EQU (SZ_256K + SZ_64K)uHAL_HEAP_SIZE EQU (SZ_256K - SZ_32K)uHAL_HEAP EQU 1 ENDIF; /* memory size */; EVALUATOR7T has been fitted with 512K bytes of SRAMuHAL_MEMORY_SIZE EQU (SZ_512K)EVALUATOR_SSRAM_BASE EQU (0)EVALUATOR_SSRAM_SIZE EQU (SZ_512K)EVALUATOR_FLASH_BASE EQU (0x01800000)EVALUATOR_FLASH_SIZE EQU (SZ_512K); System Manager GroupSYSCFG EQU 0x03FF0000EXTDBWTH EQU (SYSCFG + 0x3010)ROMCON1 EQU (SYSCFG + 0x3018); Interrupt Controller GroupINTMOD EQU (SYSCFG + 0x4000)INTPND EQU (SYSCFG + 0x4004)INTMSK EQU (SYSCFG + 0x4008)MAXIRQNUM EQU 21MAXFIQNUM EQU 21MAXSWINUM EQU 15NR_IRQS EQU (MAXIRQNUM + 1)INT_TIMER0 EQU (10)INT_TIMER1 EQU (11)INT_GLOBAL EQU (21)INT_UART0_TX EQU (4)INT_UART0_RX EQU (5)INT_UART1_TX EQU (6)INT_UART1_RX EQU (7)INT_UART1_TX_MASK EQU (1 << INT_UART1_TX )INT_UART1_RX_MASK EQU (1 << INT_UART1_RX ); /* Timer stuff */OS_TIMER EQU 1MAX_TIMER EQU 2; The irq numbers of the individual timers;#define TIMER_VECTORS { 0, INT_TIMER0, INT_TIMER1 }; Timer RegistersTMOD EQU (SYSCFG + 0x6000)TDATA0 EQU (SYSCFG + 0x6004)TDATA1 EQU (SYSCFG + 0x6008); Timer Mode Register bitsTMR_TE0 EQU (1<<0)TMR_TMD0 EQU (1<<1)TMR_TCLR0 EQU (1<<2)TMR_TE1 EQU (1<<3)TMR_TMD1 EQU (1<<4)TMR_TCLR1 EQU (1<<5); 50 MHz clock => 50,000 ticks / mSec; Max period is a bit larger than 85 smSEC_1 EQU (0xC350)MAX_PERIOD EQU (0xFFFFFFFF); /* LEDs */; LEDs are accessed through the I/O Port; I/O PortsIOPMOD EQU (SYSCFG + 0x5000)IOPCON EQU (SYSCFG + 0x5004)IOPDATA EQU (SYSCFG + 0x5008)LED_BANK EQU IOPDATAALL_LEDS EQU 0xF0uHAL_NUM_OF_LEDS EQU 4;#define uHAL_LED_MASKS { 0, 16, 32, 64, 128 };#define uHAL_LED_OFFSETS { 0, (void *)LED_BANK,(void *)LED_BANK,(void *)LED_BANK,(void *)LED_BANK } IF :LNOT: :DEF: HIGHHIGH EQU 1 ENDIFuHAL_LED_ON EQU 1uHAL_LED_OFF EQU 0; /* UART */UART0_BASE EQU (SYSCFG + 0xD000)UART1_BASE EQU (SYSCFG + 0xE000) ULCON EQU 0x00UCON EQU 0x04USTAT EQU 0x08UTXBUF EQU 0x0CURXBUF EQU 0x10UBRDIV EQU 0x14;/*; * Line Control Register bits; */ULCR8bits EQU (3)ULCRS1StopBit EQU (0)ULCRNoParity EQU (0);/*; * UART Control Register bits; */UCRRxM EQU (1)UCRRxSI EQU (1 << 2)UCRTxM EQU (1 << 3)UCRLPB EQU (1 << 7);/*; * UART Status Register bits; */USROverrun EQU (1 << 0)USRParity EQU (1 << 1)USRFraming EQU (1 << 2)USRBreak EQU (1 << 3)USRDTR EQU (1 << 4)USRRxData EQU (1 << 5)USRTxHoldEmpty EQU (1 << 6)USRTxEmpty EQU (1 << 7); /* define it so that it only ever uses one port */HOST_COMPORT EQU UART1_BASESEMIHOSTED_COMPORT EQU HOST_COMPORTOS_COMPORT EQU HOST_COMPORT; /* default baud rate value */BAUD_9600 EQU (162 << 4)DEFAULT_OS_BAUD EQU BAUD_9600; UART registers are on word aligned, D8; See lib/uart.c; Beware of side effects with IO_MAPADDRESS;#define IO_MAPADDRESS(a) (((0xFF & (unsigned int) (a)) << 2) | (0xFFFFFF00 & (unsigned int) (a)));#define _MapAddress(a) IO_MAPADDRESS(a);#define IO_READ(p) (*(unsigned *)(IO_MAPADDRESS(p)));#define IO_WRITE(p, c) (*(unsigned *)(IO_MAPADDRESS(p)) = c);/* UART primitives */;#define GET_STATUS(p) (*(volatile unsigned *)((p) + USTAT));#define RX_DATA(s) ((s) & USRRxData);#define GET_CHAR(p) (*(volatile unsigned *)((p) + URXBUF));#define TX_READY(s) ((s) & USRTxHoldEmpty);#define PUT_CHAR(p,c) (*(unsigned *)((p) + UTXBUF) = (unsigned )(c)) ;/*************************************************************************/;/* SYSTEM MEMORY CONTROL REGISTER EQU TABLES */;/*************************************************************************/fMCLK_MHz EQU 50000000 ; 50MHz, KS32C50100 defaultMHz EQU 1000000fMCLK EQU (fMCLK_MHz/MHz);/* -> EXTDBWTH : Memory Bus Width register */;-------------------------------------------------------------;DSR0 EQU 2:SHL:0 ; ROM0 Flash 0 : Disable ; 1 : Byte ; 2 : Half-Word ; 3 : WordDSR1 EQU 3:SHL:2 ; ROM1 SRAMDSR2 EQU 3:SHL:4 ; ROM2 SRAMDSR3 EQU 0:SHL:6 ; ROM3DSR4 EQU 0:SHL:8 ; ROM4DSR5 EQU 0:SHL:10 ; ROM5DSD0 EQU 0:SHL:12 ; DRAM0DSD1 EQU 0:SHL:14 ; DRAM1DSD2 EQU 0:SHL:16 ; DRAM2DSD3 EQU 0:SHL:18 ; DRAM3DSX0 EQU 0:SHL:20 ; EXTIO0DSX1 EQU 0:SHL:22 ; EXTIO1DSX2 EQU 0:SHL:24 ; EXTIO2DSX3 EQU 0:SHL:26 ; EXTIO3rEXTDBWTH EQU DSR0+DSR1+DSR2+DSR3+DSR4+DSR5+DSD0+DSD1+DSD2+DSD3+DSX0+DSX1+DSX2+DSX3;-------------------------------------------------------------;/* -> ROMCON0 : ROM Bank0 Control register */;-------------------------------------------------------------ROMBasePtr0 EQU 0x180:SHL:10 ;=0x1800000 ROMEndPtr0 EQU 0x188:SHL:20 ;=0x1880000 PMC0 EQU 0x0 ; 0x0=Normal ROM, 0x1=4Word Page ; 0x2=8Word Page, 0x3=16Word PagerTpa0 EQU (0x0:SHL:2) ; 0x0=5Cycle, 0x1=2Cycle ; 0x2=3Cycle, 0x3=4Cycle rTacc0 EQU (0x3:SHL:4) ; 0x0=Disable, 0x1=2Cycle ; 0x2=3Cycle, 0x3=4Cycle ; 0x4=5Cycle, 0x5=6Cycle ; 0x6=7Cycle, 0x7=ReservedrROMCON0 EQU ROMEndPtr0+ROMBasePtr0+rTacc0+rTpa0+PMC0;-------------------------------------------------------------;/* -> ROMCON1 : ROM Bank1 Control register */;-------------------------------------------------------------ROMBasePtr1 EQU 0x000:SHL:10 ;=0x0000000 ROMEndPtr1 EQU 0x004:SHL:20 ;=0x0040000 PMC1 EQU 0x0 ; 0x0=Normal ROM, 0x1=4Word Page ; 0x2=8Word Page, 0x3=16Word PagerTpa1 EQU (0x0:SHL:2) ; 0x0=5Cycle, 0x1=2Cycle ; 0x2=3Cycle, 0x3=4Cycle rTacc1 EQU (0x1:SHL:4) ; 0x0=Disable, 0x1=2Cycle ; 0x2=3Cycle, 0x3=4Cycle ; 0x4=5Cycle, 0x5=6Cycle ; 0x6=7Cycle, 0x7=ReservedrROMCON1 EQU ROMEndPtr1+ROMBasePtr1+rTacc1+rTpa1+PMC1;-------------------------------------------------------------;/* -> ROMCON2 : ROM Bank2 Control register */;-------------------------------------------------------------ROMBasePtr2 EQU 0x004:SHL:10 ;=0x0040000 ROMEndPtr2 EQU 0x008:SHL:20 ;=0x0080000 PMC2 EQU 0x0 ; 0x0=Normal ROM, 0x1=4Word Page ; 0x2=8Word Page, 0x3=16Word PagerTpa2 EQU (0x0:SHL:2) ; 0x0=5Cycle, 0x1=2Cycle ; 0x2=3Cycle, 0x3=4Cycle rTacc2 EQU (0x1:SHL:4) ; 0x0=Disable, 0x1=2Cycle ; 0x2=3Cycle, 0x3=4Cycle ; 0x4=5Cycle, 0x5=6Cycle ; 0x6=7Cycle, 0x7=ReservedrROMCON2 EQU ROMEndPtr2+ROMBasePtr2+rTacc2+rTpa2+PMC2;-------------------------------------------------------------;/* -> ROMCON3 : ROM Bank3 Control register */;-------------------------------------------------------------ROMBasePtr3 EQU 0x060:SHL:10 ;=0x0600000 ROMEndPtr3 EQU 0x080:SHL:20 ;=0x0800000 PMC3 EQU 0x0 ; 0x0=Normal ROM, 0x1=4Word Page ; 0x2=8Word Page, 0x3=16Word PagerTpa3 EQU (0x0:SHL:2) ; 0x0=5Cycle, 0x1=2Cycle ; 0x2=3Cycle, 0x3=4Cycle rTacc3 EQU (0x2:SHL:4) ; 0x0=Disable, 0x1=2Cycle ; 0x2=3Cycle, 0x3=4Cycle ; 0x4=5Cycle, 0x5=6Cycle ; 0x6=7Cycle, 0x7=ReservedrROMCON3 EQU ROMEndPtr3+ROMBasePtr3+rTacc3+rTpa3+PMC3;-------------------------------------------------------------;/* -> ROMCON4 : ROM Bank4 Control register */;-------------------------------------------------------------ROMBasePtr4 EQU 0x080:SHL:10 ;=0x0800000 ROMEndPtr4 EQU 0x0A0:SHL:20 ;=0x0A00000 PMC4 EQU 0x0 ; 0x0=Normal ROM, 0x1=4Word Page ; 0x2=8Word Page, 0x3=16Word PagerTpa4 EQU (0x0:SHL:2) ; 0x0=5Cycle, 0x1=2Cycle ; 0x2=3Cycle, 0x3=4Cycle rTacc4 EQU (0x4:SHL:4) ; 0x0=Disable, 0x1=2Cycle ; 0x2=3Cycle, 0x3=4Cycle ; 0x4=5Cycle, 0x5=6Cycle ; 0x6=7Cycle, 0x7=ReservedrROMCON4 EQU ROMEndPtr4+ROMBasePtr4+rTacc4+rTpa4+PMC4;-------------------------------------------------------------;/* -> ROMCON5 : ROM Bank5 Control register */;-------------------------------------------------------------ROMBasePtr5 EQU 0x0A0:SHL:10 ;=0x0A00000 ROMEndPtr5 EQU 0x0C0:SHL:20 ;=0x0C00000 PMC5 EQU 0x0 ; 0x0=Normal ROM, 0x1=4Word Page ; 0x2=8Word Page, 0x3=16Word PagerTpa5 EQU (0x0:SHL:2) ; 0x0=5Cycle, 0x1=2Cycle ; 0x2=3Cycle, 0x3=4Cycle rTacc5 EQU (0x4:SHL:4) ; 0x0=Disable, 0x1=2Cycle ; 0x2=3Cycle, 0x3=4Cycle ; 0x4=5Cycle, 0x5=6Cycle ; 0x6=7Cycle, 0x7=ReservedrROMCON5 EQU ROMEndPtr5+ROMBasePtr5+rTacc5+rTpa5+PMC5;-------------------------------------------------------------;/* -> DRAMCON0 : RAM Bank0 control register */rDRAMCON0 EQU 0rSDRAMCON0 EQU 0;-------------------------------------------------------------;/* -> DRAMCON1 : RAM Bank1 control register */rDRAMCON1 EQU 0rSDRAMCON1 EQU 0;-------------------------------------------------------------;/* -> DRAMCON2 : RAM Bank2 control register */rDRAMCON2 EQU 0rSDRAMCON2 EQU 0;-------------------------------------------------------------;/* -> DRAMCON3 : RAM Bank3 control register */rDRAMCON3 EQU 0rSDRAMCON3 EQU 0;-------------------------------------------------------------;/* -> REFEXTCON : External I/O & Memory Refresh cycle Control Register */;-------------------------------------------------------------RefCycle EQU 16 ;Unit [us], 1k refresh 16ms;RefCycle EQU 8 ;Unit [us], 1k refresh 16msCASSetupTime EQU 0 ;0=1cycle, 1=2cycleCASHoldTime EQU 0 ;0=1cycle, 1=2cycle, 2=3cycle, ;3=4cycle, 4=5cycle,RefCycleValue EQU ((2048+1-(RefCycle*fMCLK)):SHL:21)Tcsr EQU (CASSetupTime:SHL:20) ; 1cycleTcs EQU (CASHoldTime:SHL:17) ExtIOBase EQU 0x18360 ; Refresh enable, VSF=1;rREFEXTCON EQU RefCycleValue+Tcsr+Tcs+ExtIOBase;-------------------------------------------------------------;SRefCycle EQU 16 ;Unit [us], 4k refresh 64msSRefCycle EQU 8 ;Unit [us], 4k refresh 64msROWcycleTime EQU 3 ;0=1cycle, 1=2cycle, 2=3cycle, ;3=4cycle, 4=5cycle,SRefCycleValue EQU ((2048+1-(SRefCycle*fMCLK)):SHL:21)STrc EQU (ROWcycleTime:SHL:17) rSREFEXTCON EQU SRefCycleValue+STrc+ExtIOBase;------------------------------------------------------------- ENDIF END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -