boombox 0 17 марта, 2009 Опубликовано 17 марта, 2009 (изменено) · Жалоба SSL - это специальный "костыль" для загрузки двухядерников, и AFAIK, в одноядерных финах он не поддерживается. Поддерживается BF535, FYI. В принципе и любым другим процессором он тоже поддерживается, но как пишут ADI нет необходимости в использовании SSL. SSL в первую очередь это не какая то фича какого либо процессора, а лишь способ загрузки процессора из чего угодно и как угодно. Т.е. это всего лишь написанный кем то, либо вами кусок кода, который позволит загрузить процессор не только через SPI или AMS0, но и например через PPI (через что реализуете). SSL - всего лишь загрузчик. Всё, что он делает размещает кусок кода туда куда ему скажут. Изменено 17 марта, 2009 пользователем boom Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
denebopetukius 0 17 марта, 2009 Опубликовано 17 марта, 2009 · Жалоба Приложение НЕ МОЖЕТ стартовать с произвольного адреса. Либо с 0х20000000 (в режиме bypass), либо с начала L1 code. Все, других вариантов нет. мой загрузчик(который ldr, торчащий в L1, инициализирующий всё и грузящий в SDRAM) сам передаст управление на загруженный код в SDRAM Вы можете объяснить зачем вам это нужно?? нужно загружать большие по объёму приложения и ОСи разные Что вы собираетесь делать с 32 (а то и 48, если не использовать кэш) килобайтами очень быстрой памяти програм? разместить кучу, стек, интеррупт хэндлеры Зачем вам ставить 400 МГц DSP и сразу на корню убивать всю его производительность, исполняя код из тормозной SDRAM?? Видимо я что-то в этом мире не понимаю Разве кеши не помогут (с обратной записью)? Код явно превышает 48кБ, а делить его и резать напообие оверлеев не совсем хочется. Нужен шустрый вычислитель Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vik0 0 18 марта, 2009 Опубликовано 18 марта, 2009 · Жалоба мой загрузчик(который ldr, торчащий в L1, инициализирующий всё и грузящий в SDRAM) сам передаст управление на загруженный код в SDRAM Тогда в чем проблема? Как "прыгнуть" в SDRAM? разместить кучу, стек, интеррупт хэндлеры Не путайте мухи и котлеты. Кучу и стек в памяти программ вы не разместите. Интеррупт хэндлеры займут намного меньше чем 32кб. Зачем пихать всю програму в SDRAM? Код явно превышает 48кБ, а делить его и резать напообие оверлеев не совсем хочется. Нужен шустрый вычислитель Не режьте. Разместите критичные к скорости выполнения куски в L1 принудительно, код инициализации - в SDRAM (принудительно). Остальное оставьте на усмотрение линкера. И включите кэш. Все. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Supernaut 0 18 марта, 2009 Опубликовано 18 марта, 2009 · Жалоба Извините, что встреваю, но имею очень похожую проблему. Не получается прыгнуть в SDRAM - по окончании закачки рабочей программы в SDRAM по адресу 0х1000 вот это __asm__("P0.H = 0x0000;"); __asm__("P0.L = 0x1000;"); __asm__("JUMP (P0);"); приводит к зависанию проца (bf537 в моем случае). Файл пишется в SDRAM корректно, проверял. Чего не хватает для счастья? :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Massaew 0 18 марта, 2009 Опубликовано 18 марта, 2009 · Жалоба Здравствуйте! Я тоже разбираюсь с режимами загрузки Blackfin'а. Вот попытался структурировать информацию, кот. скопилась у меня в голове по этому вопросу. Исходные данные: -BF533 -Тип загрузки 01 - из флеш памяти. -Использую SDRAM Мои действия: 1. Я создал проект MyProgramm, написал там свою программу, отладил и получил файл MyProgramm.dxe - пользовательский код. 2. Теперь, поскольку я хочу использовать SDRAM, я создаю проект InitCode и там на ассемблере пишу код инициализации для SDRAM контроллера (типа того как в примере EE-240). В итоге получаю файл InitCode.dxe - код инициализации для SDRAM 3. Теперь в проекте MyProgramm, в опциях в Project->Load->Options в строчке Initialization file указываю InitCode.dxe, а в строчке Output file указываю как будет называться "общий" образ для прошивки во влеш, например MyProgramm_and_InitCode.ldr. И затем лоадер сформирует мне этот .ldr файл, который я укажу флешпрограммеру для записи во флеш. Вопросы: 1. Правильны ли те мои действия, кот я описал выше? 2. Как сформировать .ldr файл? .dxe файлы в папке проекта вижу, а .ldr нет. 3. В настройках ldf я поставил галку использовать внешнюю память SDRAM. Я так понял linker сам раскидает что грузить в L1, что в SDRAM, так? И потом, разрешать кеш данных и команд или нет? Я так понял, если часть программы лежит в SDRAM, то использование кеша позволит увеличить быстродействие. Частичный ответ на мой 3-й вопрос уже есть, как я понимаю: Не режьте. Разместите критичные к скорости выполнения куски в L1 принудительно, код инициализации - в SDRAM (принудительно). Остальное оставьте на усмотрение линкера. И включите кэш. Все. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vik0 0 18 марта, 2009 Опубликовано 18 марта, 2009 · Жалоба Вопросы: 1. Правильны ли те мои действия, кот я описал выше? 2. Как сформировать .ldr файл? .dxe файлы в папке проекта вижу, а .ldr нет. 3. В настройках ldf я поставил галку использовать внешнюю память SDRAM. Я так понял linker сам раскидает что грузить в L1, что в SDRAM, так? Здравствуйте. 1. Да, все правильно 2. В окне Project Options поменять тип проекта (см. рис), и пересобрать проект. 3. Да И потом, разрешать кеш данных...? Часто правильная организация потоков DMA позволяет обойтись без использования кэша данных. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
denebopetukius 0 18 марта, 2009 Опубликовано 18 марта, 2009 · Жалоба Тогда в чем проблема? Как "прыгнуть" в SDRAM? Нет!!! Проблема чтоб слинковать Hex или bin ДЛЯ ИСПОЛНЕНИЯ из SDRAM!!! Попогите плиз. Не путайте мухи и котлеты. Кучу и стек в памяти программ вы не разместите. ну это да. имел ввиду DATA RAM L1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться