Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: К писавшим собственные драйвера для системы на Microblaze
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
lim
Сейчас пишу драйвер для SPI интерфейса ( в виде класса на С++).

В документации на PCORE, например, сказано следующее:

All the SPI and INTR registers are 32-bit wide. The XPS SPI IP Core supports only word access to all SPI and INTR register modules.

Особенно обратите внимание на слово ONLY !

Далее смотрю Си-шный драйвер SPI, предоставляемый Xilinx, где приведено следующее:

/*
* Register offsets for the SPI. Each register except the CR & SSR is 8 bits,
* so add 3 to the word-offset to get the LSB (in a big-endian system).
*/
#define XSP_CR_OFFSET (XSP_REGISTER_OFFSET + 0x2) /* 16-bit Control */
#define XSP_SR_OFFSET (XSP_REGISTER_OFFSET + 0x4 + 3) /* Status */
#define XSP_DTR_OFFSET (XSP_REGISTER_OFFSET + 0x8 + 3) /* Data transmit */
#define XSP_DRR_OFFSET (XSP_REGISTER_OFFSET + 0xC + 3) /* Data receive */
#define XSP_SSR_OFFSET (XSP_REGISTER_OFFSET + 0x10) /* 32-bit slave select */
#define XSP_TFO_OFFSET (XSP_REGISTER_OFFSET + 0x14 + 3) /* Tx FIFO occupancy */
#define XSP_RFO_OFFSET (XSP_REGISTER_OFFSET + 0x18 + 3) /* Rx FIFO occupancy */

Ну и дальше в драйвере применяется доступ к этим регистрам по Byte, Half-Word, Word.

Пока я решил полагаться всё-таки на сам драйвер, нежели на слова, приведенные в описании PCORE.

Вопрос есть ещё такой. Скажем очень часто в некоторых 32-битных регистрах масса бит не используется ( Reserved ). Будет ли какая либо ошибочная ситуация ( типа Bus Transaction Error),
если писать ( или читать ) в такие регистры целым словом WORD. Или же надо в каждом конкретном случае учитывать доступ по Byte, Half-Word, Word.
Я пока склоняюсь к тому, что ничего страшного не произойдёт при 32-бит доступе, но хотелось бы
услышать подтверждение от знатоков.

С Уважением,
Игорь
Дмитрий Мазунин
Пользуйтесь функциями драйвера !
Как показала практика, с драйверами у Xilinx все в полном порядке, проверено (в т.ч. и конкретно SPI).

Второй вопрос - при 32-бит доступе ничего страшного не произойдет.

PS На Вашем месте я бы не стал ничего наворачивать на С++. Зачем Вам это, если есть нормальный драйвер ?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.