Перейти к содержанию
    

Microblaze и его программа

Приветсвую всех!

Разработал плату с третим спартаном, отдал один пин под юзерский клок для флешки чтоб читать с нее данные после конфигурации (вообщем как в 482 апликайшен нот). На борту имею 64Кх16 СРАМ. Создал систему подобную проекту xapp482, только со своей СРАМ и парой ледиков. Позаимствовал с того же апнота две проги SRAM_boot и RUN_FROM_SRAM. Изменил в проге которая стартует после догрузки код, чтоб маргало ледиками и изменил базовый адрес СРАМа в линкере и загрузочной программе. Вообщем получил файл прошивки и зашил. Запускаю, работает очень странно, ледики мои то моргают, то становятся в положение инициализации и прога виснет. При старте смотрел осцилом, данные вычитываются из ПРОМа, на пинах СРАМ почемуто при старте не всегда идет запис-чтение. Если делать проект в котором прога стартует с БРАМ, то все работает, СРАМ тоже в этом случае работает, его я ставил как стек и хип. Но вот если с подгрузкой из ПРОМа - не понимаю где рыть. Кто-нибудь сталкивался с подобными вещами? На что следует обратить внимание? Возможно это происки компилятора или опций? (хотя убрал оптимизацию) Спасибо за любой совет

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для начала, определите место, на котором все встает.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Посмотрел как идет запись в СРАМ по мере вычитывания ПРОМ. Оказалось, что запись в СРАМ в

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

Запись в СРАМ пробовал выполнять несколькими способами:

 

1) XIo_Out32(XPAR_SRAM_BASEADDR, 0xAAAAAAAA);

2)

Xuint32 *mem = (Xuint32*) (XPAR_SRAM_BASEADDR+0x1000);

mem[0]=0xAAAAAAAA;

 

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

 

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

 

Спасибо

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Копайте дальше в направлении доступа к Вашей SRAM, уверен, найдете причину.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Уважаемый 3.14, не могли бы Вы просвятить меня по СРАМ компоненту. В рабочей версии системы стоит компонент ЕМС с версией 1.10.б, в ЕДК 8.2 ЕМС для ОПБ версия 2.00 а. Старая версия

имеет два базовых адреса C_BASEADDR и С_MEM0_BASEADDR. В новой только один базовый адрес. Что значит C_BASEADDR?

Спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...