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

 
 
> Скрипт линкера Xilinx EDK, Где почитать как распределять сегменты?
misyachniy
сообщение Feb 17 2014, 16:26
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 716
Регистрация: 27-05-05
Из: Kyiv
Пользователь №: 5 454



Проект перестал помещатся в 64К пришлось создать дополнительный блок и углубиться в изучение распределения памяти Microblaze. В сгенерированом по умолчанию скрипте линкера был блок размером чуть больше 64К.
Часть памяти отведена под прерывания.

Но когда я посмотрел архитектуру процессора то увидел, что она "Гарвардская" и имеет два блока по 64К.
Один для инструкций другой для данных.
Базовый адрес один.

По наименованию некоторых секций можно догадатся какого они типа.

Но остается не понятно: как линкер распределяет коды и данные?
Самостоятельно пакует коды в BRAM кодов , а данные в BRAM данных?

Пытался поискать в Итернете, так все ссылки забиты инструкциями к Eclipse/Java :-(

Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 3)
atan2
сообщение Apr 8 2014, 10:52
Сообщение #2





Группа: Новичок
Сообщений: 7
Регистрация: 23-10-12
Пользователь №: 74 051



Подозреваю, что вот это вам надо - GNU Linker
https://web.eecs.umich.edu/~prabal/teaching...inker.pdf\

Могу попробовать подкинуть линкер-скрипты для систем с DDR + BRAM
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Apr 8 2014, 19:26
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



где то на этот счет был хелп.

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


Более того есть соседняя тема про сколько памяти надо для микроблайз... там ближе к концу есть изыскания как микроблайз уговорить работать с более чем 1 брамом более 64 кБайт. Без бубна и танцев это невозможно... Легче сразу на ДДР переходить, а брамы на кеши потратить...
Go to the top of the page
 
+Quote Post
atan2
сообщение Apr 9 2014, 08:38
Сообщение #4





Группа: Новичок
Сообщений: 7
Регистрация: 23-10-12
Пользователь №: 74 051



Непонятно причем тут упоминание о гарвардской архитектуре.

Больше 64 Кб, на сколько я понимаю, вам не позволит распределить по шинам ILMB/DLMB (если это не Virtex или Kintex). Если надо больше памяти за счет существующей bram, нужно подключать её через AXI/PLB, но программа, опять же как я понимаю, туда попадать не будет - это будут только данные.

И, может быть, стоит обратить внимание на оптимизацию кода программы. Вы действительно пользуетесь кучей - если нет - вот вам, к примеру, лишний килобайт.
Я тоже почти забил 64 Кб программой - но там ещё массивы данных хранятся + подхожу я к приделу только на Debug-версии.

Сообщение отредактировал atan2 - Apr 9 2014, 08:41
Go to the top of the page
 
+Quote Post

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

 


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


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