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

 
 
> Microblaze и его программа, проблема со стартом программы загруженной с PROM
Camelot
сообщение Feb 23 2007, 13:19
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 182
Регистрация: 10-01-05
Пользователь №: 1 872



Приветсвую всех!
Разработал плату с третим спартаном, отдал один пин под юзерский клок для флешки чтоб читать с нее данные после конфигурации (вообщем как в 482 апликайшен нот). На борту имею 64Кх16 СРАМ. Создал систему подобную проекту xapp482, только со своей СРАМ и парой ледиков. Позаимствовал с того же апнота две проги SRAM_boot и RUN_FROM_SRAM. Изменил в проге которая стартует после догрузки код, чтоб маргало ледиками и изменил базовый адрес СРАМа в линкере и загрузочной программе. Вообщем получил файл прошивки и зашил. Запускаю, работает очень странно, ледики мои то моргают, то становятся в положение инициализации и прога виснет. При старте смотрел осцилом, данные вычитываются из ПРОМа, на пинах СРАМ почемуто при старте не всегда идет запис-чтение. Если делать проект в котором прога стартует с БРАМ, то все работает, СРАМ тоже в этом случае работает, его я ставил как стек и хип. Но вот если с подгрузкой из ПРОМа - не понимаю где рыть. Кто-нибудь сталкивался с подобными вещами? На что следует обратить внимание? Возможно это происки компилятора или опций? (хотя убрал оптимизацию) Спасибо за любой совет
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 5)
3.14
сообщение Feb 25 2007, 15:35
Сообщение #2


Их либе дих ...
******

Группа: СуперМодераторы
Сообщений: 2 010
Регистрация: 6-09-04
Из: Russia, Izhevsk
Пользователь №: 609



Для начала, определите место, на котором все встает.
Выведите индикацию со старта загрузчика из BRAM и с начала main-а из вашей SRAM.


--------------------
Усы, борода и кеды - вот мои документы :)
Go to the top of the page
 
+Quote Post
Camelot
сообщение Feb 26 2007, 15:54
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 182
Регистрация: 10-01-05
Пользователь №: 1 872



Посмотрел как идет запись в СРАМ по мере вычитывания ПРОМ. Оказалось, что запись в СРАМ в
это время не выполняется, иногда проскальзывал WEN, но было раз от разу, на ПРОМ в это время по прежнему шли клоки и с него данные. Создал небольшой софтварный проект и поместил его в БРАМ (размер 0x7FF), где выполнялась в цикле запись константы в СРАМ. Посмотрел осцилом - ничего не пишет, вначале програмы добавил зажечь лед, с этим все было ОК. Т.е. прога стартует, но к СРАМу не имеет доступа.
Запись в СРАМ пробовал выполнять несколькими способами:

1) XIo_Out32(XPAR_SRAM_BASEADDR, 0xAAAAAAAA);
2)
Xuint32 *mem = (Xuint32*) (XPAR_SRAM_BASEADDR+0x1000);
mem[0]=0xAAAAAAAA;

Помучался, решил создать снова проект с нуля. Скопировал полностью с xapp482, не обновляя компоненты, только скрипты, убил модули уарта и дебага, изменил ихнюю память в параметрах на свою (непонятно почему, но в окне конфигурации параметров есть отличия от той срам, что предлагает ЕДК когда я создаю свой модуль), добавил ледики, поменял чип. Вообщем получил промовскую прошивку и все заработало blink.gif

И теперь не понятно, это что же я не могу с нуля создать проект, нужно использовать их старые корки?Может подскажите, где я не прав?

Спасибо
Go to the top of the page
 
+Quote Post
3.14
сообщение Feb 26 2007, 17:18
Сообщение #4


Их либе дих ...
******

Группа: СуперМодераторы
Сообщений: 2 010
Регистрация: 6-09-04
Из: Russia, Izhevsk
Пользователь №: 609



Насчет странного поведения при работе из BRAM - скорее всего компилятор заоптимизировал на смерть ваш цикл (еще не такое бывает smile.gif), подобные переменные/константы надо volatile объявлять.
Копайте дальше в направлении доступа к Вашей SRAM, уверен, найдете причину.


--------------------
Усы, борода и кеды - вот мои документы :)
Go to the top of the page
 
+Quote Post
Camelot
сообщение Feb 26 2007, 18:02
Сообщение #5


Частый гость
**

Группа: Свой
Сообщений: 182
Регистрация: 10-01-05
Пользователь №: 1 872



Уважаемый 3.14, не могли бы Вы просвятить меня по СРАМ компоненту. В рабочей версии системы стоит компонент ЕМС с версией 1.10.б, в ЕДК 8.2 ЕМС для ОПБ версия 2.00 а. Старая версия
имеет два базовых адреса C_BASEADDR и С_MEM0_BASEADDR. В новой только один базовый адрес. Что значит C_BASEADDR?
Спасибо.
Go to the top of the page
 
+Quote Post
3.14
сообщение Feb 26 2007, 18:12
Сообщение #6


Их либе дих ...
******

Группа: СуперМодераторы
Сообщений: 2 010
Регистрация: 6-09-04
Из: Russia, Izhevsk
Пользователь №: 609



Сори, со SRAM коркой я имел дела тоько на стартере S3 пару лет назад ... так что утвердительно ничего не скажу.
C_BASEADDR - базовый адрес корки, в случае со SRAM должен быть и базовым адресом самой SRAM.


--------------------
Усы, борода и кеды - вот мои документы :)
Go to the top of the page
 
+Quote Post

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

 


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


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