読者です 読者をやめる 読者になる 読者になる

Armadilloシリアル改良

linux

花粉症がまだ続いている(*_*)いつまで続くのか

Armadilloでシリアル受信取りこぼしを防止するための改良点まとめ
これで、9600bpsで取りこぼしが起きないことを確認している

●8250.c
梅沢無線HT3010用
割り込みハンドラ
static void serial8250_interrupt(int irq, void *dev_id, struct pt_regs *regs)
高速ハンドラに変更しないと9600bpsでも受信オーバーランエラー起こす
static int serial_link_irq_chain(struct uart_8250_port *up)
irq_flags |= SA_INTERRUPT;
ret = request_irq(convirq_from_isa(up->port.irq), serial8250_interrupt, irq_flags, "serial", i);

●clps711x.c
arm内蔵のシリアル用
drivers/serial/clps711x.c
高速ハンドラに変更しないと9600bpsでも受信オーバーランエラー起こす
static int clps711xuart_startup(struct uart_port *port)
retval = request_irq(RX_IRQ(port), clps711xuart_int_rx, SA_INTERRUPT,

ide-probe.c
drivers/ide/ide-probe.c
IDEの割り込みがシリアル受信の邪魔をしているので
高速ハンドラ−>低速
低速ハンドラに変更しないと9600bpsでも8250.cやclps711x.cが受信オーバーランエラー起こす
init_irq()関数
sa = 0;