Vitёk 0 18 января, 2005 Опубликовано 18 января, 2005 · Жалоба Существуют ли компиляторы для PPC405x3 (который в V2P), кроме того, что встроен в EDK? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vitёk 0 18 января, 2005 Опубликовано 18 января, 2005 · Жалоба И ещё: каким образом заставить компилятор/линковщик собрать код, исходя из того, что память данных и память программ физически разные (Гарвардская архитектура). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
k2i 0 18 января, 2005 Опубликовано 18 января, 2005 · Жалоба Существуют ли компиляторы для PPC405x3 (который в V2P), кроме того, что встроен в EDK? <{POST_SNAPBACK}> http://www.xilinx.com/ise/embedded/sw_dev.htm Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vitёk 0 18 января, 2005 Опубликовано 18 января, 2005 · Жалоба Спасибо! :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
yes 5 24 января, 2005 Опубликовано 24 января, 2005 · Жалоба И ещё: каким образом заставить компилятор/линковщик собрать код, исходя из того, что память данных и память программ физически разные (Гарвардская архитектура). <{POST_SNAPBACK}> так линковщику вобщем-то по-барабану (Нейман, Гарвард) указываете: в эту память линковать данные, в ту программу... да и у PPC юниформная память (то есть Неймановская) - то что где-то окажется контролер памяти, который разобъет адресное пространство на несколько физически разных памятей - на это линкеру и компилеру плевать и работе мешать не должно. а у по-настоящему Гарвардских процев - инструкции разные для доступа к данным или программе и этот вопрос решает скорее компилятор Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vitёk 0 25 января, 2005 Опубликовано 25 января, 2005 · Жалоба ...инструкции разные для доступа к данным или программе..Скорее всего шины разные. Насчет инструкций для доступа к памяти инструкций - не уверен, есть ли они (да и нужны ли?). Есть команды для работы с кэшем инструкций. :) В своём первом вопросе я не совсем внятно спросил, что хотел. Переформулирую: как средствами, входящими в EDK 6.2, сгенерить такой код, чтобы: - подразумевалось, что физически память для инстукций и для данных была разная, и адреса их могли безболезнено пересекаться; - (было бы неплохо...) не было необходимости инициализировать память данных перед стартом программы. Насчёт пункта 1 - возможно, что "...указываете: в эту память линковать данные, в ту программу...". Линковщик при сборке руководствуется файл-скриптом (целым файлом с правилами сборки), и наверняка это можно сделать. Пока что у меня генериться такой код, что инстукции для проца разбросаны по всему обьёму памяти, в перемешку с данными. И если я хочу разместить в BRAM код, который должен работать с огромной внешней памятью - у меня это не получается. А насчёт пункта 2... На осцилле видать, что при старте программы проц делает несколько ВЫБОРОК из памяти данных. Что он оттуда читает - непонятьно, потому как стандартными средствами эти участки кода не дизасемблируются... Как бы заставить компилер генерить код, который бы сам инициализировал память данных. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vitёk 0 25 января, 2005 Опубликовано 25 января, 2005 · Жалоба Н-да... А PPC то, оказывается, действительно не не Гарвардский... У него только кэш такой. Но всё равно, предыдущие вопросы актуальности не теряют. :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
yes 5 28 января, 2005 Опубликовано 28 января, 2005 · Жалоба c EDK я сам не работал (собираюсь вскоре, но не в рамках основных проектов, а потому что мне РРС нравится :-) поэтому сейчас точно сказать не могу. насколько я понял мозги EDK сделаны из GNU - ну и соответственно там так (да и в других линкерах идея такая же) вначале описываете типы памяти - команда MEMORY { ... то есть имя области памяти, атрибуты, адреса затем привязываете секции сгенеренные компилятором bss, text, data и т.п. к областям памяти - команда SECTION (можно из отдельного файла секцию text (код) поместить в быструю память, или назвать специально секцию) наверняка примеры скриптов в EDK есть если что-то куда-то нелезет - линкер ругнется ---------- перед запуском С-программы (вызовом main), проц делает дофига всякой работы - т.н. стартап (в gnu обычно какой-нибудь crt0.o), в этом коде (обычно) проц забивает нулями секцию bss, копирует данные для инициализированных переменных, с железом чего-нибудь делает и т.д. для того чтобы избавится от стартапа - нужно 1) дать ключи, типа --no-startup или что-то подобное RTFM 2) вручную (через make) скомпилировать (не линковать!) исходники и слинковать их со своим стаотапом (стартап либо на асм-е, либо не должен пользовать внешних переменных, malloc-ов ...) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vitёk 0 31 января, 2005 Опубликовано 31 января, 2005 · Жалоба Сенкс, уже теплее. :) Есть над чем подумать (или попытаться подумать)... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Infineon 0 2 февраля, 2005 Опубликовано 2 февраля, 2005 · Жалоба А можно ли компилятором из EDK собрать прогу под другой процессор PowerPC, но не залитый в Virtex? Интуитивно понимаю что должен, но бывает всякое. Был ли у кого опыт? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться