Перейти к содержанию
    

Запуск программ на более старшем ADSP

будут ли программы, написанные для ADSP-BF532 работать на ADSP-BF533 ?

 

речь идет о собранных программах, так как исходников нет :(

 

платы устройств одинаковы (кроме ADSP, разумееться)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Должны работать, по идее.

Правда еще от ревизии процессоров зависит.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Нет не должны работать! Векторы ресета отличаются.

У 533-го программа стартует с 0xFFA00000 у 531 и 532-го с 0xFFA080000

Вот выдержка из EE-240

Bit 1: RESVECT – Indicates the reset vector after booting. All ADSP-BF531/BF532/BF533

derivatives use the same Boot ROM. This bit is set to 0 for the ADSP-BF531/BF532 and it is set to

1 for the ADSP-BF533. After booting is complete, the on-chip Boot ROM uses this bit to jump to

address 0xFFA0 0000 for the ADSP-BF533 or to address 0xFFA0 8000 for the ADSPBF531/

BF532.

Возможно будет достаточно исправить это бит в ldr файле и подправить контрольную сумму.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Нет не должны работать! Векторы ресета отличаются.

У 533-го программа стартует с 0xFFA00000 у 531 и 532-го с 0xFFA080000

Вот выдержка из EE-240

Bit 1: RESVECT – Indicates the reset vector after booting. All ADSP-BF531/BF532/BF533

derivatives use the same Boot ROM. This bit is set to 0 for the ADSP-BF531/BF532 and it is set to

1 for the ADSP-BF533. After booting is complete, the on-chip Boot ROM uses this bit to jump to

address 0xFFA0 0000 for the ADSP-BF533 or to address 0xFFA0 8000 for the ADSPBF531/

BF532.

Возможно будет достаточно исправить это бит в ldr файле и подправить контрольную сумму.

Да должно работать.

Ну не будет часть памяти использоваться.

Вот наоборот не будет.

Мы случайно запаяли 533 вместо 532, все работало. Случайно заметил, начал копаться.

Там так распределение памяти и boot сделаны, что все работать должно.

А вот если прошиву поменять, то работать не будет.

Загрузка пройдет как 532, а старт будет как в 533.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

koljakh давайте взглянем на карты памяти.

Мне кажется логичным что программа грузится в начало Instruction SRAM. Т.е. программа для 533-го грузится с адреса 0xFFA0 0000 для 532-го с адреса 0xFFA0 8000. После ресета проц переходит по этим адресам, различным для 533-го и 532-го. Разница между этими адресами 0x8000 это 32КБайта. Теперь предположим что программа от 532 загружена в 533. Она помещается туда с адреса 0xFFA0 8000. После этого программа переходит по адресу 0xFFA0 0000. Содержимое области 0xFFA0 0000 - 0xFFA0 8000 после ресета будет не понятно каким. И чтобы программа действительно заработала в этой области в 32Кбайта должны быть существующие коды операций и такие чтобы не случилось чего плохого. Я не верю что это возможно.

 

post-11606-1253505776_thumb.pngpost-11606-1253505781_thumb.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

koljakh давайте взглянем на карты памяти.

Мне кажется логичным что программа грузится в начало Instruction SRAM. Т.е. программа для 533-го грузится с адреса 0xFFA0 0000 для 532-го с адреса 0xFFA0 8000. После ресета проц переходит по этим адресам, различным для 533-го и 532-го. Разница между этими адресами 0x8000 это 32КБайта. Теперь предположим что программа от 532 загружена в 533. Она помещается туда с адреса 0xFFA0 8000. После этого программа переходит по адресу 0xFFA0 0000. Содержимое области 0xFFA0 0000 - 0xFFA0 8000 после ресета будет не понятно каким. И чтобы программа действительно заработала в этой области в 32Кбайта должны быть существующие коды операций и такие чтобы не случилось чего плохого. Я не верю что это возможно.

 

post-11606-1253505776_thumb.pngpost-11606-1253505781_thumb.png

Ну программа грузится туда, куда линкер скажет.

После ресета проц уходит, в зависимости от BMODE[1..0], или на прямое выполнение из внешней памяти, или на BOOT ROM.

далее BOOT ROM грузит LDR, в котором есть бит Bit 1: RESVECT

и после загрузки происходит переход на адрес, который зависит от этого бита.

Кто сказал что 533 жестко переходит по 0xFFA00000?

Я так понял это от этого бит в прошивке зависит.

А бут ром там один для 531(2,3), вот он и выбирает куда прыгать.

After booting is complete, the on-chip Boot ROM uses this bit to jump to

address 0xFFA0 0000 for the ADSP-BF533 or to address 0xFFA0 8000 for the ADSPBF531/

BF532.

 

Другое дело, что надо посмотреть на ревизию чипа. Вот здесь могут быть проблемы.

Старые баги уходят, новые приходят :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну программа грузится туда, куда линкер скажет.
Исходников нет, про линкер можно забыть.

После ресета проц уходит, в зависимости от BMODE[1..0], или на прямое выполнение из внешней памяти, или на BOOT ROM.
Прямое выполнение из внешней памяти происходит медленно, не думаю что автор так делает. Хотя пусть пояснит этот вопрос. Поэтому будем считать что начинает выполняться встроенный BOOT с адреса 0xEF00 0000.

Кто сказал что 533 жестко переходит по 0xFFA00000?

Я так понял это от этого бит в прошивке зависит.

А я о чем??? Читаем мой первый пост в этой ветке.

А бут ром там один для 531(2,3), вот он и выбирает куда прыгать.
Никто и не спорит.

Вы же писали что вместо 533 случайно запаяли 532 и все работало! Мне не понятно как это может работать. Раз вы случайно запаяли не тот проц, значит перекомпиляцию проекта не делали.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Исходников нет, про линкер можно забыть.

Да, но прога слинкована под 532, и BOOT будет грузить ее по адресам которые есть и 532 и 533.

 

Прямое выполнение из внешней памяти происходит медленно, не думаю что автор так делает. Хотя пусть пояснит этот вопрос. Поэтому будем считать что начинает выполняться встроенный BOOT с адреса 0xEF00 0000.

А я о чем??? Читаем мой первый пост в этой ветке.

Никто и не спорит.

Да я и не спорю. Я про то, что ВООТ грузит по тем адресам, которые прописаны в LDR файле. И выполняет переход по адресу, определяемому битом RESVECT.

Т.е. если код для 532 загрузить в 533, то работать будет, а наоборот нет.

 

 

Вы же писали что вместо 533 случайно запаяли 532 и все работало! Мне не понятно как это может работать. Раз вы случайно запаяли не тот проц, значит перекомпиляцию проекта не делали.

Я писал наоборот :) "Мы случайно запаяли 533 вместо 532, все работало. "

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

koljakh да наверно вы правы. Я уже перепутал в каком порядке меняем процы, на форуме читаю одно, а в мануале от проца пытаюсь увидеть другое. Все-таки должно работать. А насчет ревизий, вроде у них не было такого чтобы новые баги появлялись. Вроде честно исправляли старые.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

koljakh да наверно вы правы. Я уже перепутал в каком порядке меняем процы, на форуме читаю одно, а в мануале от проца пытаюсь увидеть другое. Все-таки должно работать. А насчет ревизий, вроде у них не было такого чтобы новые баги появлялись. Вроде честно исправляли старые.

Да есть баги новые, если сравнить аномали лист, то видно что новые есть, хотя конечно новых гораздо меньше, чем исправленных старых.

Сам недавно столкнулся с багой PPI-порта, которой в старых ревизиях не было, а в 0.4 появилась это касательно 532.

Для 561 появилась проблема при работе с памятью в рев 0.5, а в 0.3 ее не было. Так что несоответствие ревизий может стать основной проблемой.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...