Здравствуйте.Спасибо за помощь. Думаю дело в этом файле т.к. вижу только начальную картинку и всё. Посмотрите пожалуйста...Вот файл startup.s:
;**********************************************************************
;
; Filename: startup.s
;
; Description: Initialization before the MMU gets turned. This is
; the first code that gets executed.
;
; THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
; ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
; THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
; PARTICULAR PURPOSE.
;
; Use of this source code is subject to the terms of the Cirrus end-user
; license agreement (EULA) under which you licensed this SOFTWARE PRODUCT.
; If you did not accept the terms of the EULA, you are not authorized to
; use this source code. For a copy of the EULA, please see the
; EULA.RTF on your install media.
;
; Copyright(c) Cirrus Logic Corporation 2002, All Rights Reserved
;
;**********************************************************************
OPT 2 ; disable listing
INCLUDE kxarm.h
INCLUDE memorymap.inc
OPT 1 ; reenable listing
OPT 128 ; disable listing of macro expansions
;
; ASync bus mode, little endian, MMU disabled
;
CP15R1Init EQU 0xC0001078
CLKSET1DEFAULT EQU 0x000398e7
EBOOT_RUN_FLAG EQU 0x00001234
REG_LED_ADDRESS EQU 0x80840020
;
; Static memory settings.
;
SMCBCR_IDCY_MASK EQU 0x0000000F
SMCBCR_IDCY_SHIFT EQU 0
SMCBCR_WST1_MASK EQU 0x000003E0
SMCBCR_WST1_SHIFT EQU 5
SMCBCR_RBLE EQU 0x00000400
SMCBCR_WST2_MASK EQU 0x0000F800
SMCBCR_WST2_SHIFT EQU 11
SMCBCR_WPERR EQU 0x02000000
SMCBCR_WP EQU 0x04000000
SMCBCR_PME EQU 0x08000000
SMCBCR_MASK EQU 0x30000000
SMCBCR_MW_8BIT EQU 0x00000000
SMCBCR_MW_16BIT EQU 0x10000000
SMCBCR_MW_32BIT EQU 0x20000000
SMCBCR_EBIBRKDIS EQU 0x40000000
ROMHDR_dllfirst EQU 0x8
ROMHDR_dlllast EQU 0xC
ROMHDR_physfirst EQU 0x10
ROMHDR_physlast EQU 0x14
REG_SCRATCH_REG0 EQU 0x80930040
IF EP93XX_SDRAM_WIDTH = 16
ROM_OFFSET EQU 0xDFF40000
ELSE
ROM_OFFSET EQU 0XDFD40000
ENDIF
IMPORT KernelStart
IMPORT OEMAddressTable
IMPORT SysconSetup
IMPORT SdramCfg
IMPORT pTOC
IMPORT ep93xx_setup_display
IMPORT ep93xx_turnon_display
IMPORT bmp_logo_bitmap
;**********************************************************************
; StartUp routine to initialize the processor.
;**********************************************************************
STARTUPTEXT
StartString
DCB "CRUS", 0
LEAF_ENTRY StartUp
;
; Kill watch dog timer. Before any thing else.
;
; ldr r0, =0x80940000
; ldr r1, =0xAA55
; str r1, [r0]
;
; ensure SVC32 mode with IRQ and FIQ disabled
;
mov r0, #0xd3
msr cpsr_c, r0
;
; Turn off the MMU
;
ldr r0, =CP15R1Init
mcr p15, 0, r0, c1, c0, 0
nop
nop
;
;Если мы загружались через eboot, SDRAM уже конфигурирован.
; Проверьте регистр CLKSET1, чтобы видеть, был ли он изменен.
;
ldr r0, =REG_SCRATCH_REG0
ldr r1, [r0]
ldr r0, =EBOOT_RUN_FLAG
cmp r0, r1
beq DontConfigureSDRAM
;
;
; Configure SDRAM
;
bl SdramCfg
DontConfigureSDRAM
;
; Если мы хотим образ, который копирует от flash в RAM, используйте следующий.
;
;
; Configure the flash chips
IF EP93XX_FLASH_TYPE = "FLASH_TYPE_J3"
ldr r0, =( (4:SHL:SMCBCR_WST2_SHIFT) :or: \
(15:SHL:SMCBCR_WST1_SHIFT) )
;ENDIF
ELSEIF EP93XX_FLASH_TYPE = "FLASH_TYPE_P3"
ldr r0, =( (3:SHL:SMCBCR_WST2_SHIFT) :or: \
(9:SHL:SMCBCR_WST1_SHIFT) )
ELSE
ldr r0, =((31:SHL:SMCBCR_WST2_SHIFT) :or: \
(31:SHL:SMCBCR_WST1_SHIFT) )
ENDIF
IF EP93XX_FLASH_WIDTH =16
ldr r1, =SMCBCR_MW_16BIT
ELSE
ldr r1, =SMCBCR_MW_32BIT
ENDIF
ldr r2, =((1 :and:SMCBCR_IDCY_MASK) :or: \
SMCBCR_WP :or: \
SMCBCR_PME :or: \
SMCBCR_RBLE)
orr r0, r0, r1
orr r0, r0, r2
ldr r1, =REG_FLASH_CONFIG
str r0, [r1]
nop
;init lcd controller and draw logo
ldr r0, =EP93XX_SDRAM_PHY_ADDR
add r0, r0, #0x00040000 ;sp is set to the buffer of EDBG.
mov sp, r0
bl SysconSetup
bl ep93xx_setup_display
ldr R2, =0xC0000 ;=0x5900000
IF DISPLAY_SHARP
ldr R1, =0x025800 ;320x240
ELSE
ldr R1, =0x096000 ;640x480
ENDIF
add R1, R2, R1
ldr r3, =bmp_logo_bitmap
ldr r0, =ROM_OFFSET
add R3, R3, r0 ;
B _check_logo_len
_fill_fb
ldr R0, [R3] ; =0x07E007E0;
str R0, [R2]
add R2, R2, #4
add R3, R3, #4
_check_logo_len
cmp R2, R1
bcc _fill_fb
bl ep93xx_turnon_display
IF COPY_FLASH_TO_RAM
bl CopyCodeToRam
ENDIF ;COPY_FLASH_TO_RAM
ExecuteFromRam
; clear out magic words for memory and heap/уберите волшебные слова для памяти и динамической памяти
; (r0) = physical address of OEMAddressTable
;
;
; Calculate the physical address of the table.
;
; r0 - Virtual address of OEMAddressTable
; r1 - Physical Address of Startup
; r2 - Virtual Address of Startup
;
; r0 = r0 - r2 + r1 = Physical address of OEMAddressTable
;
ldr r0,=OEMAddressTable
adr r1,StartUp
ldr r2,=StartUp
add r0, r0, r1
sub r0, r0, r2
bl KernelStart
;
; KernelStart никогда не должен возвращаться:
;
b .
;;***********************************************************************************
;;CopyCodeToRam function starts
;;***********************************************************************************
IF COPY_FLASH_TO_RAM
LEAF_ENTRY CopyCodeToRam
;
; Get the address of the table of contents and adjust for the flash address.
;Получите адрес оглавления и корректируйте для перепрограммируемого адреса.
ldr r0, =pTOC
ldr r3, =ROM_OFFSET
add r0, r0, r3
ldr r4, [r0]
add r4, r4, r3
;
; Get the dll first and dll last address.
; r1 = Destiniation = dllfirst
; r11 = length = dlllast - dllfirst
;
ldr r1, [r4, #ROMHDR_dllfirst]
ldr r11, [r4, #ROMHDR_dlllast]
;
; Make sure that r1 and r11 are on a 0x20 boundary.
;Удостоверьтесь, что r1 и r11 находятся на 0x20 границе.
ldr r2, =0x07FFFFE0
ldr r0, =EP93XX_SDRAM_PHY_ADDR
and r1, r1, r2
orr r1, r1, r0
and r11, r11, r2
add r11, r11, #0x20
orr r11, r11, r0
;*************************************************************************
; Copy routine.
;
; r0 = Source
; r1 = Destination
;r10 = The last address of first piece of SDRAM.Последний адрес первой части SDRAM.
; r11 = End Address Address of Destination
; r12 = LED counter
; r13 = LED address.
;
;*************************************************************************
;Get the end address of first piece of SDRAM from OEMAddressTable.
;Получите конечный адрес первой части SDRAM от OEMAddressTable
ldr r9,=OEMAddressTable
ldr r8, =ROM_OFFSET
add r9, r9,r8
ldr r2, [r9, #8] ; r2 is the size of first piece of SDRAM in M bytes.
cmp r2,#64
BHS GreatThan64M
ldr r10, [r9, #0x4];the physical address of first piece of SDRAM
ldr r2, [r9, #0x8] ;the size of first piece of SDRAM
mov r2, r2, LSL #20 ;change the size from xxM to xxxxx BYTES
add r10, r10, r2 ;then, r10 is the last physical address of first piece of SDRAM.
b SecondSDRAMEnd
GreatThan64M
ldr r2,=EP93XX_SDRAM_PHY_ADDR
add r10,r2,#0x4000000
SecondSDRAMEnd
;Initialize LED state;;
ldr r13, =REG_LED_ADDRESS
ldr r2, [r13]
and r2, r2, #0xFFFFFFFC
orr r2, r2, #1
str r2, [r13]
ldr r12, =0x3FFFF
ldr r0, =EP93XX_FLASH_PHY_ADDR
NKCopyLoop
ldmia r0!, {r2-r9}
stmia r1!, {r2-r9}
NK8MegTest
cmp r1, r10
bne NKLedTest
ldr r9,=OEMAddressTable
ldr r8, =ROM_OFFSET
add r9, r9,r8
ldr r1, [r9, #0x10]; set destination address to the second piece of SDRAM.
sub r11, r11, r10
add r11, r11, r1
NKLedTest
ands r2, r0, r12
beq ToggleLED
NKCopyTest
cmp r1, r11
bne NKCopyLoop
ldr r0, =EP93XX_SDRAM_PHY_ADDR
ldr r2, =ExecuteFromRam
and r2, r2, #0x00FFFFFF
orr r2, r2, r0
mov pc, r2
ToggleLED
ldr r2, [r13]
eor r2, r2, #3
str r2, [r13]
b NKCopyTest
mov pc, lr
ENDIF ;COPY_FLASH_TO_RAM
; End of initialization code & data
TEXTAREA
END