|
Перенос проекта с DDR3 в BRAM на microblaze |
|
|
|
Aug 1 2014, 07:43
|
Участник

Группа: Участник
Сообщений: 15
Регистрация: 24-06-14
Пользователь №: 82 043

|
Цитата(aabmail @ Jul 31 2014, 12:15)  Сегмент .text, .init, .fini можно располагать только в памяти на шине LMB. Остальные сегменты можно располагать и в LMB, и в AXI. Какой тогда смысл от axi bram, если основной листинг программы лежит в text? Спасибо.
|
|
|
|
|
Aug 1 2014, 08:13
|
Местный
  
Группа: Свой
Сообщений: 203
Регистрация: 12-11-10
Из: Poland
Пользователь №: 60 842

|
Цитата(vv_ @ Aug 1 2014, 09:43)  Какой тогда смысл от axi bram, если основной листинг программы лежит в text? Спасибо. .text можно на AXI, но процессор туда сам не пойдет - надо его носом ткнуть. И сделать это должна программа .text которой находится на LMB - как правило бутлоадер.
|
|
|
|
|
Aug 1 2014, 09:01
|
Местный
  
Группа: Свой
Сообщений: 210
Регистрация: 4-06-08
Из: Москва
Пользователь №: 38 056

|
Цитата(Golikov A. @ Aug 1 2014, 09:37)  с чего это? Все весящие на адресном шине с кешированием может кешироваться. А потом независимо от того есть такое или нет, кеш может быть включен в процессоре или выключен, как блок. То есть если сказать что кеша не будет, то проц отдаст кучу брамов. Ок. Действительно кеш в процессоре включить можно. Правда, если запустить Base System Builder, то при отсутствии внешней памяти кеш недоступен (ну это ладно). Тогда вопрос возникает, стоит ли делать кеш в случае, если BRAMs используются как внешняя память?
|
|
|
|
|
Aug 1 2014, 09:41
|
Местный
  
Группа: Свой
Сообщений: 203
Регистрация: 12-11-10
Из: Poland
Пользователь №: 60 842

|
Цитата(aabmail @ Aug 1 2014, 11:01)  Ок. Действительно кеш в процессоре включить можно. Правда, если запустить Base System Builder, то при отсутствии внешней памяти кеш недоступен (ну это ладно). Тогда вопрос возникает, стоит ли делать кеш в случае, если BRAMs используются как внешняя память? Может помочь, т.к. транзакция AXI достаточно "дорогая", чтоб прочитать одно слово надо делать дополнительные телодвижения. Из более экзотических примеров - если шина интенсивно используется для DMA и процессор имеет низкий приоритет - кеш тоже поможет.
|
|
|
|
|
Aug 8 2014, 04:10
|
Участник

Группа: Участник
Сообщений: 15
Регистрация: 24-06-14
Пользователь №: 82 043

|
Спасибо за советы! Все работает) Единственное, столкнулся с проблемой, что блок .text не влазит ни в один раздел полностью. Его размер около 153 кб, а максимальный размер одного раздела BRAM можно сделать до 128кб. Оптимизировать код почти на 30кб, это довольно трудоёмкая задача. Есть ли возможность разделить блок .text на 2 блока AXI BRAM или формировать 2 раздела *.text и раскидывать их по разным AXI BRAM?
|
|
|
|
|
Aug 8 2014, 09:49
|
Местный
  
Группа: Свой
Сообщений: 210
Регистрация: 4-06-08
Из: Москва
Пользователь №: 38 056

|
Цитата(vv_ @ Aug 8 2014, 08:10)  Спасибо за советы! Все работает) ? Вы booloader сделали?
|
|
|
|
|
Aug 12 2014, 11:23
|
Участник

Группа: Участник
Сообщений: 15
Регистрация: 24-06-14
Пользователь №: 82 043

|
Цитата(Golikov A. @ Aug 8 2014, 16:42)  судя по тому что хотят секцию текст затолкать в 128 Кбайт, то - нет  П.С. дебуг инфу отключите, и printff, сразу станет легче секция... Дебаг отключил. Пока блок текста весит 175 кб. Проблема в том, что у меня используется в проекте управление через консоль. простое вычленение printf не спасёт, потому что используются библиотеки stdio и stdargs. Они сами по себе довольно жирные. Наверняка ведь есть какие то технологии хранения блока .text в разных адресных пространствах.
|
|
|
|
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|