X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=mware%2Fxmodem.c;h=4f89bcd3f7129e1f2ac5fd195ee58c51901e37a8;hb=6cc971430fda3760940c8f92bb484a6145bbad8d;hp=9041b4cc29ed6bec7b6166a50eecd6a7c891744b;hpb=4560fc1a4dc7c27243d7f8afa9a1291e646c2f8b;p=bertos.git diff --git a/mware/xmodem.c b/mware/xmodem.c index 9041b4cc..4f89bcd3 100755 --- a/mware/xmodem.c +++ b/mware/xmodem.c @@ -1,10 +1,10 @@ #error This module has not been revised for the API changes in several DevLib modules -/*! +/** * \file * * \brief X-Modem serial transmission protocol (implementation) * @@ -26,30 +26,42 @@ * \author Bernardo Innocenti */ -/* - * $Log$ - * Revision 1.6 2004/08/15 05:31:46 bernie - * Add an #error to spread some FUD about the quality of this module; - * Add a few TODOs from Rasky's review; - * Update to the new drv/ser.c API; - * Move FlushSerial() to drv/ser.c and generalize. - * - * Revision 1.5 2004/08/12 23:46:21 bernie - * Remove extra indentation level in switch statements. - * - * Revision 1.4 2004/08/12 23:35:50 bernie - * Replace a handmade loop with memset(). - * - * Revision 1.3 2004/08/12 23:34:36 bernie - * Replace if/else with continue to reduce indentation level. - * - * Revision 1.2 2004/08/12 23:24:07 bernie - * Rename UPDCRC() to UPDCRC16(). - * - * Revision 1.1 2004/08/11 19:54:22 bernie - * Import XModem protocol into DevLib. - * - */ +/*#* + *#* $Log$ + *#* Revision 1.10 2006/07/19 12:56:28 bernie + *#* Convert to new Doxygen style. + *#* + *#* Revision 1.9 2005/11/04 16:20:02 bernie + *#* Fix reference to README.devlib in header. + *#* + *#* Revision 1.8 2004/08/25 14:12:09 rasky + *#* Aggiornato il comment block dei log RCS + *#* + *#* Revision 1.7 2004/08/15 06:30:06 bernie + *#* Make the buffer a local variable, as documented. + *#* + *#* Revision 1.6 2004/08/15 05:31:46 bernie + *#* Add an #error to spread some FUD about the quality of this module; + *#* Add a few TODOs from Rasky's review; + *#* Update to the new drv/ser.c API; + *#* Move FlushSerial() to drv/ser.c and generalize. + *#* + *#* Revision 1.5 2004/08/12 23:46:21 bernie + *#* Remove extra indentation level in switch statements. + *#* + *#* Revision 1.4 2004/08/12 23:35:50 bernie + *#* Replace a handmade loop with memset(). + *#* + *#* Revision 1.3 2004/08/12 23:34:36 bernie + *#* Replace if/else with continue to reduce indentation level. + *#* + *#* Revision 1.2 2004/08/12 23:24:07 bernie + *#* Rename UPDCRC() to UPDCRC16(). + *#* + *#* Revision 1.1 2004/08/11 19:54:22 bernie + *#* Import XModem protocol into DevLib. + *#* + *#*/ #include "xmodem.h" @@ -62,22 +74,22 @@ #include /* for memset() */ -/*! +/** * \name Protocol control codes * \{ */ -#define XM_SOH 0x01 /*!< Start Of Header (128-byte block) */ -#define XM_STX 0x02 /*!< Start Of Header (1024-byte block) */ -#define XM_EOT 0x04 /*!< End Of Transmission */ -#define XM_ACK 0x06 /*!< Acknowledge block */ -#define XM_NAK 0x15 /*!< Negative Acknowledge */ -#define XM_C 0x43 /*!< Request CRC-16 transmission */ -#define XM_CAN 0x18 /*!< CANcel transmission */ +#define XM_SOH 0x01 /**< Start Of Header (128-byte block) */ +#define XM_STX 0x02 /**< Start Of Header (1024-byte block) */ +#define XM_EOT 0x04 /**< End Of Transmission */ +#define XM_ACK 0x06 /**< Acknowledge block */ +#define XM_NAK 0x15 /**< Negative Acknowledge */ +#define XM_C 0x43 /**< Request CRC-16 transmission */ +#define XM_CAN 0x18 /**< CANcel transmission */ /*\}*/ -#define XM_MAXRETRIES 15 /*!< Max retries before giving up */ -#define XM_MAXCRCRETRIES 7 /*!< Max retries before switching to BCC */ -#define XM_BUFSIZE 1024 /*!< Size of block buffer */ +#define XM_MAXRETRIES 15 /**< Max retries before giving up */ +#define XM_MAXCRCRETRIES 7 /**< Max retries before switching to BCC */ +#define XM_BUFSIZE 1024 /**< Size of block buffer */ #if (ARCH & ARCH_BOOT) @@ -97,11 +109,7 @@ #endif /* ARCH_BOOT */ -/*! Buffer to hold a block of data */ -static char block_buffer[XM_BUFSIZE]; - - -/*! +/** * Decode serial driver errors and print them on the display. */ static void print_serial_error(struct Serial *port, int retries) @@ -125,7 +133,8 @@ static void print_serial_error(struct Serial *port, int retries) } } -/*! + +/** * \brief Receive a file using the XModem protocol. * * \param port Serial port to use for transfer @@ -135,6 +144,7 @@ static void print_serial_error(struct Serial *port, int retries) */ bool xmodem_recv(struct Serial *port, KFile *fd) { + char block_buffer[XM_BUFSIZE]; /* Buffer to hold a block of data */ int c, i, blocksize; int blocknr = 0, last_block_done = 0, retries = 0; char *buf; @@ -340,7 +350,7 @@ bool xmodem_recv(struct Serial *port, KFile *fd) } -/*! +/** * \brief Transmit a file using the XModem protocol. * * \param port Serial port to use for transfer @@ -351,6 +361,7 @@ bool xmodem_recv(struct Serial *port, KFile *fd) */ bool xmodem_send(struct Serial *port, KFile *fd) { + char block_buffer[XM_BUFSIZE]; /* Buffer to hold a block of data */ size_t size = -1; int blocknr = 1, retries = 0, c, i; bool proceed, usecrc = false;