Цитата(Sarez @ Mar 28 2007, 10:18)

Спасибо большое!!!! Сейчас буду пробовать.
Обратите внимание (сам на это налетел): У ARM многобайтовые переменные хранятся в формате Little Endian(младший байт по меньшему адресу) а у визнета - Big Endian. Т.е. даже если вы его повесите как внешнюю память, то писать все равно придется побайтно или перед записью перетасовывать байты. Это относится и к 4-байтным указателям и к регистрам IP-адресов и к регистрам портов. Вот моя инициализация для LPC2214 (визнет висит на CS3):
Код
BCFG3 = (0<<LPC_IDCY) | (0x7<<LPC_WST1) | (0<<LPC_RBLE) | (0x7<<LPC_WST2) | (0<<LPC_WP) | (0<<LPC_BM) | (0<<LPC_MW); // задержки можно уменьшать, не было времени проверить.
{
uint32_t Tmp = PINSEL2 & (0xF00C160F);
PINSEL2 = Tmp |
(1UL<<2)| //P1[26..31] = JTAG
(0UL<<3)| //P1[16..25] = GPIO
(1UL<<4)| // P2.[0..15] = D[0..15], P1.0 = CS0, P1.1 = OE, P3.31 = BLS0, P3.30 = BLS1,
// P2[16..29] = GPIO, P2[30, 31] = GPIO/AN, P3[28, 29] = GPIO/AN
(0UL<<6)|(0UL<<7)| // P3.29 = GPIO, P3.28 = GPIO
(1UL<<8)| // P3.27 = WE
(1UL<<11)| // P3.26 = CS1
(0UL<<13)| // P3.23 = GPIO
// (1UL<<14)| // P3.25 = CS2
(1UL<<16)| // P3.24 = CS3
(0UL<<20)|(0UL<<21)|(0UL<<22)| // P2[28..31] = GPIO
(1UL<<23)|(1UL<<24)| //P3.0 = A0, P3.1 = A1
(6UL<<25); //P3[2..19] = A[2..19]
}