diff --git a/os/io/pal.h b/os/io/pal.h index b75582ee1..2a1cbaf63 100644 --- a/os/io/pal.h +++ b/os/io/pal.h @@ -141,12 +141,12 @@ * not belonging to the bus. */ typedef struct { - /** Port identifier. */ + /** Port identifier.*/ ioportid_t bus_portid; /** Bus mask aligned to port bit 0. The bus mask implicitly define the bus - * width. */ + width. A logical AND is performed on the bus data.*/ ioportmask_t bus_mask; - /** Offset, within the port, of the least significant bit of the bus. */ + /** Offset, within the port, of the least significant bit of the bus.*/ uint_fast8_t bus_offset; } IOBus; @@ -273,7 +273,8 @@ typedef struct { * @brief Reads a group of bits. * * @param[in] port the port identifier - * @param[in] mask the group mask + * @param[in] mask the group mask, a logical AND is performed on the input + * data * @param[in] offset the group bit offset within the port * @return The group logical states. */ @@ -288,7 +289,8 @@ typedef struct { * @brief Writes a group of bits. * * @param[in] port the port identifier - * @param[in] mask the group mask + * @param[in] mask the group mask, a logical AND is performed on the output + * data * @param[in] offset the group bit offset within the port * @param[in] bits the bits to be written. Values exceeding the group width * are masked. diff --git a/os/io/platforms/LPC214x/pal_lld.h b/os/io/platforms/LPC214x/pal_lld.h index 4547abc61..565b3333a 100644 --- a/os/io/platforms/LPC214x/pal_lld.h +++ b/os/io/platforms/LPC214x/pal_lld.h @@ -183,7 +183,8 @@ typedef FIO * ioportid_t; * accesses. * * @param[in] port the port identifier - * @param[in] mask the group mask + * @param[in] mask the group mask, a logical AND is performed on the output + * data * @param[in] offset the group bit offset within the port * @param[in] bits the bits to be written. Values exceeding the group width * are masked. @@ -192,7 +193,7 @@ typedef FIO * ioportid_t; * code. */ #define pal_lld_writegroup(port, mask, offset, bits) { \ - (port)->FIO_MASK = (mask) << (offset); \ + (port)->FIO_MASK = ~((mask) << (offset)); \ (port)->FIO_PIN = (bits) << (offset); \ (port)->FIO_MASK = 0; \ } diff --git a/readme.txt b/readme.txt index 6f9b05139..73fb81919 100644 --- a/readme.txt +++ b/readme.txt @@ -3,6 +3,8 @@ ***************************************************************************** *** 1.3.3 *** +- FIX: Fixed bug in the LPC2148 PAL driver (bug 2881380). +- FIX: Fixed bug in the AT91SAM7X PAL driver (bug 2879933). - NEW: New MAC and MII driver models and implementations for the AT91SAM7X. Removed the old EMAC driver, updated the uIP WEB demo to use the new driver model.