📄 hal_platform_setup.h
字号:
//==========================================================================//// hal_platform_setup.h////////==========================================================================//==========================================================================//#####DESCRIPTIONBEGIN####//// Author(s): Sonys <sonys@163.com>// Contributors: // Date: 2004-09-15// Purpose: // Description: // // Copyright (C) 2004 DevBone Software. All rights reserved.//####DESCRIPTIONEND####//==========================================================================#ifndef CYGONCE_HAL_PLATFORM_SETUP_H#define CYGONCE_HAL_PLATFORM_SETUP_H#include <cyg/hal/plf_io.h>#define CYGHWR_LED_MACRO \ ldr r0,=KS32C_IOPDATA ;\ mov r1, #((255 & (~(\x)))) ;\ str r1, [r0] ; #if CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE==4096// Override default to a more sensible value#undef CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE#define CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE 2048#endif// Use relative branch since we are going to switch the address space// around.#define CYGSEM_HAL_ROM_RESET_USES_JUMP#if defined(CYG_HAL_STARTUP_ROM) || defined(CYG_HAL_STARTUP_ROMRAM)#define PLATFORM_SETUP1 \ ldr r1,=KS32C_IOPMOD ;\ ldr r2,=0xff /* set led display to output */ ;\ str r2,[r1,#0x00] ;\ LED 0xaa ;\ \ /* Sync DRAM mode */ ;\ LED 0x81 ;\ ldr r3, =0x83ffff90 /* sdram c+wb disabled, regs @ 0x03ff0000 */;\ ldr r0, =KS32C_SYSCFG ;\ str r3,[r0] ;\ ldr lr,=99f ;\1: mov r1,pc ;\ sub r1,r1,#8 ;\ ldr r0,=1b ;\ sub r1,r1,r0 ;\ ldr r0,=40f ;\ add r0,r0,r1 ;\ ldmia r0,{r1-r12} ;\ ldr r0,=KS32C_EXTDBWTH ;\ stmia r0,{r1-r12} ;\ mov pc,lr ;\ ;\ /* The below are set with a store-multiple instruction */ ;\ ;\ /* Sync DRAM setup */ ;\ /* Flash is 16 bit, everything else 32 bit */ ;\ /* .long KS32C_EXTDBWTH */ ;\40: .long ( (KS32C_EXTDBWTH_16BIT<<KS32C_EXTDBWTH_DSR0_shift) \ |(KS32C_EXTDBWTH_16BIT<<KS32C_EXTDBWTH_DSR1_shift) \ |(KS32C_EXTDBWTH_32BIT<<KS32C_EXTDBWTH_DSR2_shift) \ |(KS32C_EXTDBWTH_32BIT<<KS32C_EXTDBWTH_DSR3_shift) \ |(KS32C_EXTDBWTH_32BIT<<KS32C_EXTDBWTH_DSR4_shift) \ |(KS32C_EXTDBWTH_32BIT<<KS32C_EXTDBWTH_DSR5_shift) \ |(KS32C_EXTDBWTH_32BIT<<KS32C_EXTDBWTH_DSD0_shift) \ |(KS32C_EXTDBWTH_32BIT<<KS32C_EXTDBWTH_DSD1_shift) \ |(KS32C_EXTDBWTH_32BIT<<KS32C_EXTDBWTH_DSD2_shift) \ |(KS32C_EXTDBWTH_32BIT<<KS32C_EXTDBWTH_DSD3_shift) \ |(KS32C_EXTDBWTH_32BIT<<KS32C_EXTDBWTH_DSX0_shift) \ |(KS32C_EXTDBWTH_32BIT<<KS32C_EXTDBWTH_DSX1_shift) \ |(KS32C_EXTDBWTH_32BIT<<KS32C_EXTDBWTH_DSX2_shift) \ |(KS32C_EXTDBWTH_32BIT<<KS32C_EXTDBWTH_DSX3_shift) ) ;\ /* Flash at 0x01800000-0x01880000, 5 cycles, 7 cycles */ ;\ /* .long KS32C_ROMCON0 */ ;\ .long ( (KS32C_ROMCON_PMC_ROM) \ |(KS32C_ROMCON_TPA_5C) \ |(KS32C_ROMCON_TACC_7C) \ |((0x01800000 >> 16) << KS32C_ROMCON_BASE_shift) \ |((0x01a00000 >> 16) << KS32C_ROMCON_NEXT_shift)) ;\ /* .long KS32C_ROMCON1 */ ;\ .long ( (KS32C_ROMCON_PMC_ROM) \ |(KS32C_ROMCON_TPA_5C) \ |(KS32C_ROMCON_TACC_5C) \ |((0x00000000 >> 16) << KS32C_ROMCON_BASE_shift) \ |((0x00000000 >> 16) << KS32C_ROMCON_NEXT_shift)) ;\ /* .long KS32C_ROMCON2 */ ;\ .long ( (KS32C_ROMCON_PMC_ROM) \ |(KS32C_ROMCON_TPA_5C) \ |(KS32C_ROMCON_TACC_5C) \ |((0x00000000 >> 16) << KS32C_ROMCON_BASE_shift) \ |((0x00000000 >> 16) << KS32C_ROMCON_NEXT_shift)) ;\ /* .long KS32C_ROMCON3 */ ;\ .long ( (KS32C_ROMCON_PMC_ROM) \ |(KS32C_ROMCON_TPA_5C) \ |(KS32C_ROMCON_TACC_5C) \ |((0x00000000 >> 16) << KS32C_ROMCON_BASE_shift) \ |((0x00000000 >> 16) << KS32C_ROMCON_NEXT_shift)) ;\ /* .long KS32C_ROMCON4 */ ;\ .long ( (KS32C_ROMCON_PMC_ROM) \ |(KS32C_ROMCON_TPA_5C) \ |(KS32C_ROMCON_TACC_5C) \ |((0x00000000 >> 16) << KS32C_ROMCON_BASE_shift) \ |((0x00000000 >> 16) << KS32C_ROMCON_NEXT_shift)) ;\ /* .long KS32C_ROMCON5 */ ;\ .long ( (KS32C_ROMCON_PMC_ROM) \ |(KS32C_ROMCON_TPA_5C) \ |(KS32C_ROMCON_TACC_5C) \ |((0x00000000 >> 16) << KS32C_ROMCON_BASE_shift) \ |((0x00000000 >> 16) << KS32C_ROMCON_NEXT_shift)) ;\ /* .long KS32C_DRAMCON0 */ ;\ .long ( (KS32C_DRAMCON_RESERVED) \ |(KS32C_DRAMCON_CAN_8) \ |(KS32C_DRAMCON_TRP_4C) \ |(KS32C_DRAMCON_TRC_2C) \ |((0x00000000 >> 16) << KS32C_DRAMCON_BASE_shift) \ |((0x01000000 >> 16) << KS32C_DRAMCON_NEXT_shift)) ;\ /* .long KS32C_DRAMCON1 */ ;\ .long ( (KS32C_DRAMCON_RESERVED) \ |(KS32C_DRAMCON_CAN_8) \ |(KS32C_DRAMCON_TRP_2C) \ |(KS32C_DRAMCON_TRC_2C) \ |((0x00000000 >> 16) << KS32C_DRAMCON_BASE_shift) \ |((0x00000000 >> 16) << KS32C_DRAMCON_NEXT_shift)) ;\ /* .long KS32C_DRAMCON2 */ ;\ .long ( (KS32C_DRAMCON_RESERVED) \ |(KS32C_DRAMCON_CAN_8) \ |(KS32C_DRAMCON_TRP_2C) \ |(KS32C_DRAMCON_TRC_2C) \ |((0x00000000 >> 16) << KS32C_DRAMCON_BASE_shift) \ |((0x00000000 >> 16) << KS32C_DRAMCON_NEXT_shift)) ;\ /* .long KS32C_DRAMCON3 */ ;\ .long ( (KS32C_DRAMCON_RESERVED) \ |(KS32C_DRAMCON_CAN_8) \ |(KS32C_DRAMCON_TRP_2C) \ |(KS32C_DRAMCON_TRC_2C) \ |((0x00000000 >> 16) << KS32C_DRAMCON_BASE_shift) \ |((0x00000000 >> 16) << KS32C_DRAMCON_NEXT_shift)) ;\ /* .long KS32C_REFEXTCON */ ;\ .long (((2048+1-(8*CYGNUM_HAL_CPUCLOCK/1000000)) << KS32C_REFEXTCON_RCV_shift) \ |(KS32C_REFEXTCON_TRC_4C) \ |(KS32C_REFEXTCON_REN) \ |(KS32C_REFEXTCON_VSF) \ |(KS32C_REFEXTCON_BASE)) ;\99: LED 0x82 ;\ ldr r3,=0x00000000 ;\ str r3,[r3] ;\ ldr r4,[r3] ;\ cmp r4,r3 ;\ beq 15f ;\11: LED 0x83 ;\ b 11b ;\15: LED 0x84#else#define PLATFORM_SETUP1#endif//-----------------------------------------------------------------------------// end of hal_platform_setup.h#endif // CYGONCE_HAL_PLATFORM_SETUP_H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -