ksluk 0 23 декабря, 2013 Опубликовано 23 декабря, 2013 · Жалоба Вопрос может глупый но мне не понятно. Как понимаю я: Есть EPCS (как бы Flash память ) - где находиться память программ есть On chip RAM (выбирается в SOPC BUILDER) - как бы ОЗУ. - где находятся память данных EPCS - 2 мегабайта ОЗУ - настроено на 100 мегабайт Когда я в NIOSе пишу программу для Циклона 3, у меня при общей памяти (!!!) программ и данных больше 80 мб - выдается ошибка. то есть максимум под программу и данные у меня 80 мб.... Почему так получается? Ведь если я правильно понимаю то что написано выше такого не должно быть. Спасибо заранее)) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iosifk 3 23 декабря, 2013 Опубликовано 23 декабря, 2013 · Жалоба Вопрос может глупый но мне не понятно. Как понимаю я: Есть EPCS (как бы Flash память ) - где находиться память программ Так это же "память с последовательным доступом"... И как из нее программы выполняются? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
xor.kruger 0 23 декабря, 2013 Опубликовано 23 декабря, 2013 · Жалоба Покажите линковочный скрипт, который скармливаете компилятору. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ksluk 0 23 декабря, 2013 Опубликовано 23 декабря, 2013 · Жалоба Покажите линковочный скрипт, который скармливаете компилятору. Так это же "память с последовательным доступом"... И как из нее программы выполняются? то есть в EPCS память храниться изначально, а потом полностью перегружается в on-chip? и если допустим нужно много памяти то либо выбирать большой on-chip или ставить внешнюю ОЗУ? Правильно я понял? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Копейкин 0 24 декабря, 2013 Опубликовано 24 декабря, 2013 · Жалоба 1) Маленькие программы могут стартовать из встроенного ОЗУ, которое будет заполнено в процессе стартовой конфигурации Циклона. 2) Большие программы, которые не помещаются во встроенное ОЗУ и исполняются из внешнего ОЗУ, требуют программы-загрузчика (которая запускается из встроенного ОЗУ) и, скорее всего, дополнительного ПЗУ, где хранится код программы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iosifk 3 24 декабря, 2013 Опубликовано 24 декабря, 2013 · Жалоба то есть в EPCS память храниться изначально, а потом полностью перегружается в on-chip? и если допустим нужно много памяти то либо выбирать большой on-chip или ставить внешнюю ОЗУ? Правильно я понял? Да, либо перегружать полностью, либо делать во внутренней памяти кэш команд... Ну и потом грызть проблемы с кэшем. Начиная от поисковых таблиц и кончая перезагрузкой кэша при переходах... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iosifk 3 24 декабря, 2013 Опубликовано 24 декабря, 2013 · Жалоба то есть в EPCS память храниться изначально, а потом полностью перегружается в on-chip? и если допустим нужно много памяти то либо выбирать большой on-chip или ставить внешнюю ОЗУ? Правильно я понял? Да, либо перегружать полностью, либо делать во внутренней памяти кэш команд... Ну и потом грызть проблемы с кэшем. Начиная от поисковых таблиц и кончая перезагрузкой кэша при переходах... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
krux 8 24 декабря, 2013 Опубликовано 24 декабря, 2013 · Жалоба Есть EPCS (как бы Flash память ) - где находиться память программ вот здесь есть недопонимание. здесь надо рассматривать два компонента, а не один. первый - это EPCS Flash Controller, к которому имеет доступ QSYS/SOPC система. второй - непосредственно EPCS Flash-микросхема. фактически, это EPCS Flash Controller состоит из SPI-подобного контроллера и маленького кусочка ROM-памяти, в котором хранится код загрузчика. когда вы ставите reset_vector на EPCS Flash Controller, то этим вы указываете что по хард-ресету сразу после загрузки ПЛИСины NIOS должен выполнять код из этой маленькой ROM-ки. загрузчик этот копирует данные из EPCS Flash-микросхемы в память, начиная с адреса, указанного при сборке QSYS/SOPC системы как exception_vector. по адресу exception_vector располагается функция, отвечающая за обработку IRQ. в ней проверяется откуда пришло прерывание и производится переход по соответствующему адресу. Если прерывания фактически не было (как это бывает при старте) то производится переход на entry point программы (.text). поэтому поля .entry и .exceptions в BSP Editor-е всегда серенькие и неактивные. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ksluk 0 25 декабря, 2013 Опубликовано 25 декабря, 2013 · Жалоба Вроде стало понятно. Всем СПАСИБО. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться