что то совсем запутался, настроил в финале беседы порт ttyS3 , понадобилось подключить ttyS2, сделал всё по аналогии и согласно мануалу постом выше указанному
lowlevel_init.cЦитата
void UART2init( void )
{
char cuart;
unsigned int divisor = Fpclk / (16 * 9600);
PINSEL0 |= 0x00500000; //configure uart2 on pins P0.10 and P0.11
PCONP |= 1<<24; // включаю питание на UARTe
U2LCR = 0x83; // 8N1, enable Divisor latch bit
U2IER = 0X00; // 0: запретить прерывания
U2DLL = divisor & 0xFF;
U2DLM = (divisor >> 8) & 0xFF;
U2LCR &= ~0x80;
U2FCR = 1; //1: Enable FIFO's
Uart_Init_Delay();
U2FCR = 7; //6: Reset TX and RX FIFO
Uart_Init_Delay();
while(U2LSR & 1) // чистим входное FIFO
cuart = U2RBR;
}
void UART3init(void)//p2.0 p2.1
{
char cuart;
unsigned int divisor = Fpclk / (16 * 9600);
PINSEL1 |= 0x003C0000; //configure uart2 on pins P0.25 and P0.26
PCONP |= 1<<25; // включаю питание на UARTe
U3LCR = 0x83; // 8N1, enable Divisor latch bit
U3IER = 0X00; // 0: запретить прерывания
U3DLL = divisor & 0xFF;
U3DLM = (divisor >> 8) & 0xFF;
U3LCR &= ~0x80;
U3FCR = 1; //1: Enable FIFO's
Uart_Init_Delay();
U3FCR = 7; //6: Reset TX and RX FIFO
Uart_Init_Delay();
while(U3LSR & 1) // чистим входное FIFO
cuart = U3RBR;
}
uClinux-dist-\include\asm\arch-lpc22xx\serial.hЦитата
#define BASE_BAUD (57600000 / 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}, \
{ 0, BASE_BAUD, UART1_BASE, 7, STD_COM_FLAGS, \
.iomem_reg_shift = 2, \
.iomem_base = UART1_BASE, \
.io_type = UPIO_MEM},\
{ 0, BASE_BAUD, UART2_BASE, 28, STD_COM_FLAGS, \
.iomem_reg_shift = 2, \
.iomem_base = UART2_BASE, \
.io_type = UPIO_MEM},\
{ 0, BASE_BAUD, UART3_BASE, 29, STD_COM_FLAGS, \
.iomem_reg_shift = 2, \
.iomem_base = UART3_BASE, \
.io_type = UPIO_MEM}
\uClinux-dist\include\asm\serial.hЦитата
#ifndef __ASM_SERIAL_H
#define __ASM_SERIAL_H
//#define BASE_BAUD (1843200 / 16)
#include <asm/arch-lpc22xx/serial.h>
#endif
в коде прогруммы
Цитата
int setupComm( )
{
ttyfd = open("/dev/ttyS3",O_RDWR | O_NOCTTY);// | O_SYNC | O_NDELAY | O_DIRECT
ioctl(ttyfd,TCGETA,&tsaved);
tnew.c_line = 0;
tnew.c_oflag &=~ OPOST;
tnew.c_lflag &= ~(ICANON | ECHO | ISIG);
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 &= ~CSTOPB;
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);
}
в таком виде данные на 3й порт приходят, меняю на /dev/ttyS2 и тишина ... голову уже поломал
Сообщение отредактировал andybeg - Sep 9 2010, 10:20