modifications to IE_setup.c/.h and uartio.c/.h
the goal is to create buffered and unbuffered version of the various input and output routines that involve the uart. dma will manage one half of the swinging buffer while user is interacting with the other.
in addition create a means to implement the xmodem protocol towards the end. I actually implemented xmodem completely in mc6800 assembly years ago so doing so in C should be too tasking.
IE_setup.c
create
egwu_setup_gpdma
generic gpdma configuration routines
egwu_nvic_gpdma_isr
call table for all 8 channels using pointer to void function
egwu_dma_hook_channel_isr
add user isr to call table above
egwu_dma_unhook_channel_isr
remove user isr from call table above
IE_uartio.c
create
egwu_uartio_fflush
uses dma transfer to clear out one half of the tx swinging buffer
egwu_uartio_tx_dma_isr
user isr to hook unto gpdma isr call table (for any of 8 channels)
egwu_uartio_printf/putc
printf will be buffered
putc will be unbuffered
egwu_uartio_getc/getch/gets
for now gets will be unbuffered but that might change
getc and getch will be unbuffered with the latter simply looking at the
rx fifo flag and returning a code indicating presence or absence of a
key/character
No comments:
Post a Comment