код для приема через PDC
AT91F_SPI_CfgPCS(AT91C_BASE_SPI,cs_data_recive);
AT91F_SPI_ReceiveFrame(AT91C_BASE_SPI, (char *)(&data_mas[0], read_size, 0, 0);
//тут надо что-нибудь отправить, все-равно что, только заданное кол-во байт
AT91F_SPI_SendFrame(AT91C_BASE_SPI, (char *)(&data_mas[0]), read_size, 0, 0);
для "разматыватывания" API функций (при разборках как она работает и что ей надо) пользуйтесь функцией IAR goto definiton . Вызывается то правому клику на функции.
Цитата
Вопрос такой: каким образом (из какого регистра) можно определить, с каким устройством я работаю?
А в чем проблема? Когда SAM7S мастер, то он сам знает с чем работает, т.к вы сами инициируете передачу. А когда он slave - то другой мастер должен знать с чем работать. Т.е. вы пишете свой менеджер SPI, и все настройки храните в отдельных переменных. Все равно его делать придется , если хотите работать с несколькими Slave через PDC.