реклама на сайте
подробности

 
 
> OpenOCD - AT91SAM9260. Запись в SDRAM
Aesthete Animus
сообщение Aug 26 2009, 19:07
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 222
Регистрация: 9-06-07
Пользователь №: 28 317



Имеется плата на основе AT91SAM9260. Пытаюсь при помощи OpenOCD записать данные в SDRAM. В качестве хвостика использую Wiggler.
Конфиг для OpenOCD был получен допиливанием имеющегося под мои нужды. В результате получилось так:
CODE

interface parport
parport_port 0
parport_cable wiggler
source [find ./at91sam9260.cfg]

flash bank cfi 0x10000000 0x0400000 2 2 $_TARGETNAME

proc start { } {
godown
load_image armtest.bin 0x20000000
verify_image armtest.bin 0x20000000
resume 0x20000000
}

proc ramstart { } {
reset
halt
load_image armtest.elf
verify_image armtest.elf
resume 0x00200000
}

proc restart { } {
halt
resume 0x20000000
}

proc godown { } {
reset
halt
mww 0xfffffd08 0xa5000501 # RSTC_MR : enable user reset
mww 0xfffffd44 0x00008000 # WDT_MR : disable watchdog

mww 0xfffffc20 0x00004001 # CKGR_MOR : enable the main oscillator
sleep 20 # wait 20 ms
mww 0xfffffc30 0x00000001 # PMC_MCKR : switch to main oscillator
sleep 10 # wait 10 ms

#mww 0xfffffc28 0x2060bf09 # CKGR_PLLAR: Set PLLA Register for 198,656MHz
mww 0xfffffc28 0x2031bf03
#mww 0xfffffc28 0x2018bf03 # 100MHz
sleep 20 # wait 20 ms


mww 0xfffffc30 0x00000101 # PMC_MCKR : Select prescaler
sleep 10 # wait 10 ms
mww 0xfffffc30 0x00000102 # PMC_MCKR : Clock from PLLA is selected
sleep 10 # wait 10 ms

#mww 0xfffffc30 0x00000002
#sleep 10

# Now run at anything fast... ie: 10mhz!
#jtag_khz 10000 # Increase JTAG Speed to 6 MHz
#arm7_9 dcc_downloads enable # Enable faster DCC downloads

#mww 0xffffec00 0x0a0a0a0a # SMC_SETUP0 : Setup SMC for Intel NOR Flash JS28F128P30T85 128MBit
#mww 0xffffec04 0x0b0b0b0b # SMC_PULSE0
#mww 0xffffec08 0x00160016 # SMC_CYCLE0
#mww 0xffffec0c 0x00161003 # SMC_MODE0
#flash probe 0 # Identify flash bank 0

mww 0xfffff870 0xffff0000 # PIO_ASR : Select peripheral function for D15..D31
mww 0xfffff804 0xffff0000 # PIO_PDR : Disable PIO function for D15..D31

mww 0xffffef1c 0x2 # EBI_CSA : Assign EBI Chip Select 1 to SDRAM

#mww 0xffffea08 0x85227259 # SDRAMC_CR : Configure SDRAM (2 x Samsung K4S561632H-UC75 : 4M x 16Bit x 4 Banks)
#mww 0xffffea08 0x85227254 # SDRAMC_CR : Configure SDRAM (2 x Samsung K4S641632H-UC75 : 1M x 16Bit x 4 Banks)
mww 0xffffea08 0x852272D9

mww 0xffffea00 0x1 # SDRAMC_MR : issue a NOP command
mww 0x20000000 0
mww 0xffffea00 0x2 # SDRAMC_MR : issue an 'All Banks Precharge' command
mww 0x20000000 0
mww 0xffffea00 0x4 # SDRAMC_MR : issue 8 x 'Auto-Refresh' Command
mww 0x20000000 0
mww 0xffffea00 0x4
mww 0x20000000 0
mww 0xffffea00 0x4
mww 0x20000000 0
mww 0xffffea00 0x4
mww 0x20000000 0
mww 0xffffea00 0x4
mww 0x20000000 0
mww 0xffffea00 0x4
mww 0x20000000 0
mww 0xffffea00 0x4
mww 0x20000000 0
mww 0xffffea00 0x4
mww 0x20000000 0
mww 0xffffea00 0x3 # SDRAMC_MR : issue a 'Load Mode Register' command
mww 0x20000000 0
mww 0xffffea00 0x0 # SDRAMC_MR : normal mode
mww 0x20000000 0
mww 0xffffea04 0x5d2 # SDRAMC_TR : Set refresh timer count to 15us
}



После инициализации (godown) SDRAM становится доступна для операций mdw/mww, но попытки записать образ (start) оканчиваются неудачей при его проверке. В тоже время, все операции по чтению/записи SRAM проходят безо всяких проблем.

Следующей интуитивной попыткой было записать в SRAM небольшой код, инициализирующий SDRAM и тестирующий ее: здесь все работает. Ожидая, что теперь то SDRAM проинициализирована должным образом, пытаюсь сделать это (sample.bin - небольшой файл, взятый из /dev/random):
Код
halt
load_image sample.bin 0x20000000
verify_image sample.bin 0x20000000

но опять не прохожу проверку.

С чем это может быть связано?
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 02:44
Рейтинг@Mail.ru


Страница сгенерированна за 0.01353 секунд с 7
ELECTRONIX ©2004-2016