Цитата(etoja @ Jun 29 2010, 11:33)

Прилагаю инструкцию
и рекомендую зарегистрироваться в конференции
http://tech.groups.yahoo.com/group/lpc2400_uClinux/messagesага, в одном посте выше делал ссылку на эту инструкцию, вот что у меня сейчас
lowlevel_init.c
Цитата
void
UART0init(void)//uart debug
{
PINSEL0 = 0x00000050;
PINSEL1 = 0x00000000;
U0LCR = 0;
U0IER = 0;
U0LCR = 0x80; /* DLAB=1 */
U0DLL = (Fpclk/16)/CONFIG_BAUDRATE;
U0DLM = 0;
U0LCR = 0x03; /* 8N1, DLAB=0 */
U0FCR = 0x07; /* Enable RX and TX FIFOs */
}
//ARM p0.10 p0.11
void
UART1init(void)
{
PINSEL0 |= 0x00500000;//0x30003fff
PCONP |= (1<<24);
U1LCR = 0;
U1IER = 0;
U1LCR = 0x80;
U1DLL = ((Fpclk/16)/9600) & 0xff;
U1DLM = ((Fpclk/16)/9600) >> 8;
U1LCR = 0x03;
U1FCR = 0x07;
U1THR = '\n';
}
//p0.25 p.026
void
UART2init(void)
{
PINSEL1 |= 0x003C0000;
PCONP |= (1<<25);
U2LCR = 0;
U2IER = 0;
U2LCR = 0x80;
U2DLL = ((Fpclk/16)/9600) & 0xff
U2DLM = ((Fpclk/16)/9600) >> 8;
U2LCR = 0x03;
U2FCR = 0x07;
U2THR = '\n';
}
void//p2.0 p2.1
UART3init(void)
{
PINSEL4 |= 0x0000000A;
PCONP |= (1<<4);
U3LCR = 0;
U3IER = 0;
U3LCR = 0x80;
U3DLL = ((Fpclk/16)/9600) & 0xff;
U3DLM = ((Fpclk/16)/9600) >> 8;
U3LCR = 0x03;
U3FCR = 0x07;
U3THR = '\n';
}
Цитата
lowlevel_init(void)
{
...
UART0init();
UART1init();
UART2init();
UART3init();
uClinux
serial.h
Цитата
#define BASE_BAUD (LPC22xx_Fpclk / 16)
#define UART0_BASE 0xE000C000
#define UART1_BASE 0xE0010000
#define UART2_BASE 0xE0078000
#define UART3_BASE 0xE007C000
/* Standard COM flags */
#define STD_COM_FLAGS (ASYNC_BOOT_AUTOCONF | ASYNC_SKIP_TEST)
#define RS_TABLE_SIZE 4
#define STD_SERIAL_PORT_DEFNS \
/* UART CLK PORT IRQ FLAGS */ \
{ 0, BASE_BAUD, UART0_BASE, 6, STD_COM_FLAGS, \
.iomem_reg_shift = 2, \
.iomem_base = UART0_BASE, \
.io_type = UPIO_MEM}, \
{ 1, BASE_BAUD, UART1_BASE, 7, STD_COM_FLAGS, \
.iomem_reg_shift = 2, \
.iomem_base = UART1_BASE, \
.io_type = UPIO_MEM},\
{ 2, BASE_BAUD, UART2_BASE, 8, STD_COM_FLAGS, \
.iomem_reg_shift = 2, \
.iomem_base = UART2_BASE, \
.io_type = UPIO_MEM},\
{ 3, BASE_BAUD, UART3_BASE, 9, STD_COM_FLAGS, \
.iomem_reg_shift = 2, \
.iomem_base = UART3_BASE, \
.io_type = UPIO_MEM}
Makefile
Цитата
ttyS0,c,4,64 ttyS1,c,4,65 ttyS2,c,4,66 ttyS3,c,4,67 \
собственная прога
Цитата
int set_port( )
{
ttyfd = open("/dev/ttyS1",O_RDWR | O_NOCTTY | O_NONBLOCK | O_NDELAY);
ioctl(ttyfd,TCGETA,&tsaved);
tnew.c_line = 0;
tnew.c_oflag &=~ OPOST;
tnew.c_lflag &=~ ICANON;
tnew.c_cflag &=~ CBAUD;
tnew.c_cflag |= B9600; /* baud rate 9600 setserial -g -abGv */
tnew.c_cflag &=~ CSIZE;
tnew.c_cflag |= CS8; /* 8 bits RTU */
tnew.c_cflag |= (PARENB | PARODD); /* odd parity */
tnew.c_cflag |= CREAD; /* enable read */
tnew.c_cflag |= CLOCAL; /* ignore modem lines */
tnew.c_cc[VMIN] = 0;
tnew.c_cc[VTIME] = 0;
ioctl(ttyfd,TCSETA,&tnew);
}
......
unsigned char msg[8];
write(ttyfd,msg,8);
......
read(ttyfd,&rxchar,1);
пишу в порт и осцилограф показывает тишину

, причём после вчерашнего копания на всех портах на выходе стоит 3 вольта