реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Регистры процессоров в многопроцессорной системе
Ghost2
сообщение Mar 6 2007, 15:54
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 28
Регистрация: 7-11-06
Пользователь №: 22 046



Привет всем.

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

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

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

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

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

PS. Я из win32/ниоса - в сигнальниках полный нуб.
Go to the top of the page
 
+Quote Post
Sergey manuchin
сообщение Mar 6 2007, 16:56
Сообщение #2


Участник
*

Группа: Новичок
Сообщений: 29
Регистрация: 2-02-07
Пользователь №: 24 968



Ракскрой пожалуйста секрет НАХРЕНА тебе доступ до РЕГИСТРОВ? Во первых они не расшариваются(на сколько я знаю). Во вторых, даже если и расшариваются, ЭТО ТАКОЙ ГЕМОРОЙ И САМОЕ ГЛАВНОЕ НИКОМУ НАХРЕН НЕ НУЖНО. Я например под Tiger Shark вообще предпочитаю без крайней необходимости в ассемблер не лезть. Сам занимался многопроцессорными системами довольно много и всегда мне всегда хватало разделяемой памяти, и симафоров... Т.Е. ты можешь свободно видеть PIO другово процессора но в его регистры ты лазить не можешь...
Go to the top of the page
 
+Quote Post
Ghost2
сообщение Mar 6 2007, 18:02
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 28
Регистрация: 7-11-06
Пользователь №: 22 046



Цитата(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 семафоры?
Go to the top of the page
 
+Quote Post
Sergey manuchin
сообщение Mar 9 2007, 15:09
Сообщение #4


Участник
*

Группа: Новичок
Сообщений: 29
Регистрация: 2-02-07
Пользователь №: 24 968



[/quote]

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

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

С флагами я работал. Но у меня всегда один процессор был центральным... И он флагом указывал можно либо нельзя что-либо делать... А вообще Они все равно у тебя соединены в общий кластер. Соответственно без геморно можно выделить область памяти для семафоров. У меня так вообще симафоры стояли во ВНЕШНЕЙ памяти подключенной через ПЛИС. А процессоры, коих было 4шт. были полносвязной топологией свйзаны через линк порты. Это типа круче... Это и симафор и данные можно кидать одновременно(ЦП собирает данные со всех ведомых одновременно).
ЗЫЖ можно вообще не expert lincerом не писать что эта память shared ты все Запузырил ее в пространство памяти одного из DSP а потом к ней просто обращаешься. Из других процов, зная ее адрес. А ее с адресом объявляешь статически.
ЗЫЖ флаг это булевая переменная а если расшарить переменную можно вместе с флагом кидать еще и информацию о том, по какой причине установлен тот или иной флаг....
Go to the top of the page
 
+Quote Post
Ghost2
сообщение Mar 11 2007, 21:40
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 28
Регистрация: 7-11-06
Пользователь №: 22 046



Спасибо, буду пробовать.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th June 2025 - 22:33
Рейтинг@Mail.ru


Страница сгенерированна за 0.0138 секунд с 7
ELECTRONIX ©2004-2016