Чтобы не создавать новую тему, тут спрошу.
Речь опять о периферийных memory-mapped регистрах и их потрохах. Как правило, программные пакеты от вендоров имеют в своём составе директорию типа include, где лежит ворох *.h файлов с определениями регистров периферии и прочим. Обычно это тыщи макроопредлений вида:
CODE
/********************************************************************************
*** */
/* System MMR Register Map */
/********************************************************************************
*** */
/*// Clock/Regulator Control (0xFFC00000 - 0xFFC000FF) */
#define PLL_CTL><--><-->0xFFC00000 /* PLL Control register (16-bit) */
#define PLL_DIV><--><-->0xFFC00004<>/* PLL Divide Register (16-bit) */
#define VR_CTL<><--><-->0xFFC00008<>/* Voltage Regulator Control Register (16-bit) */
#define PLL_STAT<--><-->0xFFC0000C /* PLL Status register (16-bit) */
#define PLL_LOCKCNT><-->0xFFC00010 /* PLL Lock Count register (16-bit) */
#define>CHIPID<><--><-->0xFFC00014<>/* Chip ID Register><--><--><--><--><-->*/
/* System Interrupt Controller (0xFFC00100 - 0xFFC001FF) */
#define SWRST<-><--><-->0xFFC00100 /* Software Reset Register (16-bit) */
#define SYSCR<-><--><-->0xFFC00104 /* System Configuration registe */
#define SIC_IMASK<-><-->0xFFC0010C /* Interrupt Mask Register */
#define SIC_IAR0<--><-->0xFFC00110 /* Interrupt Assignment Register 0 */
#define SIC_IAR1<--><-->0xFFC00114 /* Interrupt Assignment Register 1 */
#define SIC_IAR2<--><-->0xFFC00118 /* Interrupt Assignment Register 2 */
#define SIC_ISR><--><-->0xFFC00120 /* Interrupt Status Register */
#define SIC_IWR><--><-->0xFFC00124 /* Interrupt Wakeup Register */
/*// Watchdog Timer (0xFFC00200 - 0xFFC002FF) */
#define WDOG_CTL 0xFFC00200 /* Watchdog Control Register */
#define WDOG_CNT 0xFFC00204 /* Watchdog Count Register */
#define WDOG_STAT 0xFFC00208 /* Watchdog Status Register */
<...>
и т.д.
Сколько не искал в xsdk, не нашёл ничего похожего. В примерах попадаются какие-то файлы, которые что-то фрагментарно описывают - xparameters.h, xparametes_ps.h, xiluartps.h, xiluartps_hw.h и т.д. Но это, во-первых, не с пакетом поставляется, отдельно надо искать и собирать по частям, а во-вторых, и в-главных, это всё какие-то частные куски, нету цельного описания всех регистров и их битов (масок, позиций).
Вопрос: их нет, потому что никому не надо - все на цинке запускают линух и работают с периферий с помощью предоставленных драйверов? или их нет..., потому что просто нет, и если кому надо, то он сам себе частным порядком создаёт эти описания?
«Отыщи всему начало, и ты многое поймёшь» К. Прутков