Sunday, August 9, 2015

Phase 2: Overview

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