Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 01.10.2010, 08:55  
ST_Senya
Временная регистрация
 
Регистрация: 17.11.2007
Сообщений: 67
Сказал спасибо: 0
Сказали Спасибо 6 раз(а) в 6 сообщении(ях)
ST_Senya на пути к лучшему
По умолчанию Программирование NOR FLASH

Разбираясь с прошивкой NAND flash на плате SMDK6410 (содержащей процессор S3C6410 c ядром ARM1176), похерел NOR флэш. Теперь вот не фига не могу прошить загрузчик в NOR флэш. NOR AM29LV800BB. Загружаю свой скрипт в OpenOCD. Вот его код
Код:
#*************************************************  **************************************************  ***************
#*******************OPENOCD.CFG*******************  ***************************************
#*************************************************  **************************************************  ***************
#Вешаем и настраиваем JTAG на параллельный порт LPT1
interface parport
parport_port 0x378
parport_cable arm-jtag

#Настраиваем плату
source samsung_s3c6410.cfg
set  _CHIPNAME s3c6410
set  _ENDIAN little
set _ETBTAPID 0x2b900f0f
set _CPUTAPID 0x07b76f0f
jtag newtap $_CHIPNAME etb -irlen 4 -expected-id $_ETBTAPID
jtag newtap $_CHIPNAME cpu -irlen 5 -ircapture 0x1 -irmask 0x1f -expected-id $_CPUTAPID
set _TARGETNAME $_CHIPNAME.cpu
target create $_TARGETNAME arm11 -endian $_ENDIAN  -chain-position $_TARGETNAME -variant arm1176

jtag_nsrst_delay 500
jtag_ntrst_delay 500

arm11 memwrite burst disable
reset_config trst_and_srst

etm config $_TARGETNAME 16 normal full etb
etb config $_TARGETNAME $_CHIPNAME.etb

$_TARGETNAME configure -work-area-phys 0x00000000 -work-area-size 0x00100000

#Настраиваем NOR FLASH
set _FLASHNAME $_CHIPNAME.flash
flash bank $_FLASHNAME cfi 0x00000000 0x00100000 2 2 $_TARGETNAME

#Делаем настройки памяти SDRAM через проц
$_TARGETNAME configure -event reset-init {
	puts "Halting target"
	poll
	sleep 1
	halt
	wait_halt
	puts "Clock/Timer settings"

	reg cpsr 0x600001D3

	arm mcr 15 0 15 2 4 0x70000003

	mww 0x7e004000 0x00000000

	mww 0x7e00f120 0x00000003

	puts "Operating Mode Change to Sync Mode"
	mww 0x7e00f900 0x0000805E
	sleep 1000

	mww 0x7e00f900 0x000080DE
	sleep 1000

	mww 0x7e00f000 0x0000ffff
	mww 0x7e00f004 0x0000ffff
	
	mww 0x7e00f020 0x01047310
	
	mww 0x7e00f00c 0x81900302
	mww 0x7e00f010 0x81900303
	
	mww 0x7e00f01c 0x00000003
	
	puts "DRAM Initialization"
	mww 0x7e001004 0x00000004
	
	mww 0x7e001010 0x0000030c
	
	mww 0x7e001014 0x00000006
	mww 0x7e001018 0x00000001
	mww 0x7e00101c 0x00000002
	mww 0x7e001020 0x00000007
	mww 0x7e001024 0x0000000A
	mww 0x7e001028 0x0000000C
	mww 0x7e00102C 0x0000010B
	mww 0x7e001030 0x0000000C
	mww 0x7e001034 0x00000003
	mww 0x7e001038 0x00000003
	mww 0x7e00103C 0x00000002
	mww 0x7e001040 0x00000002
	mww 0x7e001044 0x00000011
	mww 0x7e001048 0x00000011
	
	puts "Memory Configuration Register"
	mww 0x7e00100C 0x00010012
	puts "Memory Configuration Register 2"
	mww 0x7e00104C 0x00000B41
	
	puts "Chip 0 Configuration"
	mww 0x7e001200 0x000150F8
	
	puts "Memory Direct Command"
	mww 0x7e001008 0xc0000000
	mww 0x7e001008 0x00000000
	mww 0x7e001008 0x40000000
	mww 0x7e001008 0x40000000
	mww 0x7e001008 0x000A0000
	mww 0x7e001008 0x00080032
	mww 0x7e001004 0x00000000	
}

#*************************************************  **************************************************  ***************
#*************************************************  **************************************************  ***************
#*************************************************  **************************************************  ***************
Запускаю в терминале openocd.exe
получаю рис.1

Далее набираю в другом терминале telnet localhost 4444
В нём набираю reset init
получаю рис.2

Затем последовательно набираю команды flash banks, flash probe 0, flash protect 0 0 18 off, flash protect_check 0, flash info
рис.3 (Причём когда выполняется команда flash protect там пишется что команда не поддерживается. Т.е. не получится не установить не снять защиту так???)

Далее я сделал следующие вещи. Набрал команду dump_image NOR.bin 0x00000000 65536 т.е. якобы считал область где лежит загрузчик. Получил файл NOR.bin
рис.4 (Приведён фрагмент загрузчика. С помощью него программа DNW подключалась к плате и выдавала сообщения в COM порт с возможностью настройки разных параметров... Теперь эта возможнасть исчезла))))

После этого на радостях я решил проверить прошивку в NOR (эксперементировать на NOR из платы не хотел, но начальник настаял))
и так набрал команды flash erase_sector 0 0 18, а потом что бы убедиться что я с стёр память опять набираю команду dump_image NOR.bin 0x00000000 65536 и получаю следующую картину
рис.5 (вроде как всё получилось, всё стёрлось, причём команда flash erase_adress тоже имела такой же эффект).

А вот команды прошивки не сработали!!!!!!!!!! все до единой выдают ошибки. Вот пример команды flash write_bank 0 NOR.BIN 0 (причём сначала вроде она как пытается грузить, потому что ошибка вылетает не сразу). При этом если потом попробывать повторить команду (я взял уже flash write_image NOR.bin), то типо пишет что проц не остановлен и приходиться набирать halt, что бы дальше работать.
рис.6

что я делаю не так??? Где ошибка. Почему не прошивается NOR. На защиту и адресацию я думаю не имеет смысла валить? Ведь нор то потёрся, значит уже защита там наверное отключена, а насчёт адресации, параметры то теже что и при считывании. Но не фига не прошивается...( Да кстати при прошивке прога ругалась что типо нужно указать -work-area-phys. Без этого команды прошивки вообще не запускались (А вот на чтение работали!). Я добавил вот эту строчку, правдо не знаю всё ли я правильно сделал...
$_TARGETNAME configure -work-area-phys 0x00000000 -work-area-size 0x01000000
Миниатюры:
Нажмите на изображение для увеличения
Название: OpenOCD_1.JPG
Просмотров: 57
Размер:	52.3 Кб
ID:	13126   Нажмите на изображение для увеличения
Название: OpenOCD_2.JPG
Просмотров: 55
Размер:	55.4 Кб
ID:	13127   Нажмите на изображение для увеличения
Название: OpenOCD_3.JPG
Просмотров: 60
Размер:	75.6 Кб
ID:	13128  

Нажмите на изображение для увеличения
Название: OpenOCD_4.JPG
Просмотров: 63
Размер:	136.9 Кб
ID:	13129   Нажмите на изображение для увеличения
Название: OpenOCD_5.JPG
Просмотров: 80
Размер:	175.7 Кб
ID:	13130   Нажмите на изображение для увеличения
Название: OpenOCD_6.JPG
Просмотров: 53
Размер:	56.7 Кб
ID:	13131  

Реклама:
ST_Senya вне форума  
Сказали "Спасибо" ST_Senya
warel (27.06.2019)
Непрочитано 01.10.2010, 22:18  
AlexTA
Прописка
 
Регистрация: 07.10.2006
Сообщений: 108
Сказал спасибо: 0
Сказали Спасибо 6 раз(а) в 6 сообщении(ях)
AlexTA на пути к лучшему
По умолчанию Re: Программирование NOR FLASH

Есть у меня платы с ARM7 , так при полностью убитой флешке все легко заливается (полный образ) при помощи H-Jtag, только надо правильно указать адреса флеш и ОЗУ.
AlexTA вне форума  
Сказали "Спасибо" AlexTA
warel (27.06.2019)
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Контроллеры Omron, их программирование Katarina Микроконтроллеры, АЦП, память и т.д 19 27.08.2013 20:58
Программирование PLC GE Fanuc Kazah85 Производственное оборудование 1 21.07.2010 06:24
программирование 27с256 urcda Микроконтроллеры, АЦП, память и т.д 2 12.03.2010 20:16
Программирование pic16ce625 densl Микроконтроллеры, АЦП, память и т.д 4 09.01.2010 22:35


Часовой пояс GMT +4, время: 08:00.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot