Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Регистры процессоров в многопроцессорной системе
Форум разработчиков электроники ELECTRONIX.ru > Цифровая обработка сигналов - ЦОС (DSP) > Алгоритмы ЦОС (DSP)
Ghost2
Привет всем.

Сейчас ковыряю TS201 на базе соотвествующего EZ-KIT.

С одним процессором проблем никаких - все понятно и доступно, благо есть опыт работы с ниосом.

А вот с многопроцессорной системой трабл. Собственно суть проблемы в том что я не могу добраться до регистров одного процессора из программы другого. Более того, я понятия не имею как этого можно достичь, т.к. мануалы неинформативны и описывают DMA, shared memory, линк порты и т.п. банальности.

Есть догадка что нужно создать *.sm. Только что там нужно объявить и как после этого использовать. В *.ldf как положено - два процессора и MPMEMORY.

Спасибо за помощь.

PS. Я из win32/ниоса - в сигнальниках полный нуб.
Sergey manuchin
Ракскрой пожалуйста секрет НАХРЕНА тебе доступ до РЕГИСТРОВ? Во первых они не расшариваются(на сколько я знаю). Во вторых, даже если и расшариваются, ЭТО ТАКОЙ ГЕМОРОЙ И САМОЕ ГЛАВНОЕ НИКОМУ НАХРЕН НЕ НУЖНО. Я например под Tiger Shark вообще предпочитаю без крайней необходимости в ассемблер не лезть. Сам занимался многопроцессорными системами довольно много и всегда мне всегда хватало разделяемой памяти, и симафоров... Т.Е. ты можешь свободно видеть PIO другово процессора но в его регистры ты лазить не можешь...
Ghost2
Цитата(Sergey manuchin @ Mar 6 2007, 16:56) *
Ракскрой пожалуйста секрет НАХРЕНА тебе доступ до РЕГИСТРОВ?


Да мне просто интересно. Я в лекциях от KAZTEK прочитал:

A processor can access other processor's UREG's through their memory mapped address.

Попробовал, не вышло вот и спросил.

Цитата
Я например под Tiger Shark вообще предпочитаю без крайней необходимости в ассемблер не лезть.


Я так совсем на асме не пишу.

Цитата
Сам занимался многопроцессорными системами довольно много и всегда мне всегда хватало разделяемой памяти, и симафоров... Т.Е. ты можешь свободно видеть PIO другово процессора но в его регистры ты лазить не можешь...


Просто задача и архитектура системы пока ваще не ясна и с чем экспериментировать непонятно. От нечего делать я решил покодить на демоплате и по незнанию первое что в голову пришло - читать состояние флага на одном процессоре и писать во флаг на другом, благо светодиоды и кнопки есть. Ну и сразу напоролся на такую хрень - ведь если пишут что можно, значит можно. Идея, конечно бредовая, можно это организовать совсем подругому - через shared переменную например. Но это единственное что пришло в голову и я на этом зациклился (ситуация еще осложнялась тем что Visual DSP++ падала регулярно от Expert Linker'a).

Как делаются MP семафоры?
Sergey manuchin
[/quote]

Просто задача и архитектура системы пока ваще не ясна и с чем экспериментировать непонятно. От нечего делать я решил покодить на демоплате и по незнанию первое что в голову пришло - читать состояние флага на одном процессоре и писать во флаг на другом, благо светодиоды и кнопки есть. Ну и сразу напоролся на такую хрень - ведь если пишут что можно, значит можно. Идея, конечно бредовая, можно это организовать совсем подругому - через shared переменную например. Но это единственное что пришло в голову и я на этом зациклился (ситуация еще осложнялась тем что Visual DSP++ падала регулярно от Expert Linker'a).

Как делаются MP семафоры?
[/quot]

С флагами я работал. Но у меня всегда один процессор был центральным... И он флагом указывал можно либо нельзя что-либо делать... А вообще Они все равно у тебя соединены в общий кластер. Соответственно без геморно можно выделить область памяти для семафоров. У меня так вообще симафоры стояли во ВНЕШНЕЙ памяти подключенной через ПЛИС. А процессоры, коих было 4шт. были полносвязной топологией свйзаны через линк порты. Это типа круче... Это и симафор и данные можно кидать одновременно(ЦП собирает данные со всех ведомых одновременно).
ЗЫЖ можно вообще не expert lincerом не писать что эта память shared ты все Запузырил ее в пространство памяти одного из DSP а потом к ней просто обращаешься. Из других процов, зная ее адрес. А ее с адресом объявляешь статически.
ЗЫЖ флаг это булевая переменная а если расшарить переменную можно вместе с флагом кидать еще и информацию о том, по какой причине установлен тот или иной флаг....
Ghost2
Спасибо, буду пробовать.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.