Minor documentation improvements.
[pub/USBasp.git] / Projects / AVRISP-MKII / Lib / XPROG / XMEGANVM.c
index 47a757d..43c540e 100644 (file)
@@ -67,7 +67,7 @@ static void XMEGANVM_SendNVMRegAddress(const uint8_t Register)
 /** Busy-waits while the NVM controller is busy performing a NVM operation, such as a FLASH page read or CRC
  *  calculation.
  *
- *  \return Boolean true if the NVM controller became ready within the timeout period, false otherwise
+ *  \return Boolean \c true if the NVM controller became ready within the timeout period, \c false otherwise
  */
 bool XMEGANVM_WaitWhileNVMBusBusy(void)
 {
@@ -92,7 +92,7 @@ bool XMEGANVM_WaitWhileNVMBusBusy(void)
 /** Waits while the target's NVM controller is busy performing an operation, exiting if the
  *  timeout period expires.
  *
- *  \return Boolean true if the NVM controller became ready within the timeout period, false otherwise
+ *  \return Boolean \c true if the NVM controller became ready within the timeout period, \c false otherwise
  */
 bool XMEGANVM_WaitWhileNVMControllerBusy(void)
 {
@@ -120,7 +120,7 @@ bool XMEGANVM_WaitWhileNVMControllerBusy(void)
 
 /** Enables the physical PDI interface on the target and enables access to the internal NVM controller.
  *
- *  \return Boolean true if the PDI interface was enabled successfully, false otherwise
+ *  \return Boolean \c true if the PDI interface was enabled successfully, \c false otherwise
  */
 bool XMEGANVM_EnablePDI(void)
 {
@@ -170,9 +170,10 @@ void XMEGANVM_DisablePDI(void)
  *  \param[in]  CRCCommand  NVM CRC command to issue to the target
  *  \param[out] CRCDest     CRC Destination when read from the target
  *
- *  \return Boolean true if the command sequence complete successfully
+ *  \return Boolean \c true if the command sequence complete successfully
  */
-bool XMEGANVM_GetMemoryCRC(const uint8_t CRCCommand, uint32_t* const CRCDest)
+bool XMEGANVM_GetMemoryCRC(const uint8_t CRCCommand,
+                           uint32_t* const CRCDest)
 {
        *CRCDest = 0;
 
@@ -220,9 +221,11 @@ bool XMEGANVM_GetMemoryCRC(const uint8_t CRCCommand, uint32_t* const CRCDest)
  *  \param[out] ReadBuffer   Buffer to store read data into
  *  \param[in]  ReadSize     Number of bytes to read
  *
- *  \return Boolean true if the command sequence complete successfully
+ *  \return Boolean \c true if the command sequence complete successfully
  */
-bool XMEGANVM_ReadMemory(const uint32_t ReadAddress, uint8_t* ReadBuffer, uint16_t ReadSize)
+bool XMEGANVM_ReadMemory(const uint32_t ReadAddress,
+                         uint8_t* ReadBuffer,
+                         uint16_t ReadSize)
 {
        /* Wait until the NVM controller is no longer busy */
        if (!(XMEGANVM_WaitWhileNVMControllerBusy()))
@@ -237,9 +240,12 @@ bool XMEGANVM_ReadMemory(const uint32_t ReadAddress, uint8_t* ReadBuffer, uint16
        XPROGTarget_SendByte(PDI_CMD_ST | (PDI_POINTER_DIRECT << 2) | PDI_DATSIZE_4BYTES);
        XMEGANVM_SendAddress(ReadAddress);
 
-       /* Send the REPEAT command with the specified number of bytes to read */
-       XPROGTarget_SendByte(PDI_CMD_REPEAT | PDI_DATSIZE_1BYTE);
-       XPROGTarget_SendByte(ReadSize - 1);
+       if (ReadSize > 1)
+       {
+               /* Send the REPEAT command with the specified number of bytes to read */
+               XPROGTarget_SendByte(PDI_CMD_REPEAT | PDI_DATSIZE_1BYTE);
+               XPROGTarget_SendByte(ReadSize - 1);
+       }
 
        /* Send a LD command with indirect access and post-increment to read out the bytes */
        XPROGTarget_SendByte(PDI_CMD_LD | (PDI_POINTER_INDIRECT_PI << 2) | PDI_DATSIZE_1BYTE);
@@ -255,9 +261,11 @@ bool XMEGANVM_ReadMemory(const uint32_t ReadAddress, uint8_t* ReadBuffer, uint16
  *  \param[in]  WriteAddress  Address to write to within the target's address space
  *  \param[in]  Byte          Byte to write to the target
  *
- *  \return Boolean true if the command sequence complete successfully
+ *  \return Boolean \c true if the command sequence complete successfully
  */
-bool XMEGANVM_WriteByteMemory(const uint8_t WriteCommand, const uint32_t WriteAddress, const uint8_t Byte)
+bool XMEGANVM_WriteByteMemory(const uint8_t WriteCommand,
+                              const uint32_t WriteAddress,
+                              const uint8_t Byte)
 {
        /* Wait until the NVM controller is no longer busy */
        if (!(XMEGANVM_WaitWhileNVMControllerBusy()))
@@ -286,11 +294,15 @@ bool XMEGANVM_WriteByteMemory(const uint8_t WriteCommand, const uint32_t WriteAd
  *  \param[in]  WriteBuffer       Buffer to source data from
  *  \param[in]  WriteSize         Number of bytes to write
  *
- *  \return Boolean true if the command sequence complete successfully
+ *  \return Boolean \c true if the command sequence complete successfully
  */
-bool XMEGANVM_WritePageMemory(const uint8_t WriteBuffCommand, const uint8_t EraseBuffCommand,
-                              const uint8_t WritePageCommand, const uint8_t PageMode, const uint32_t WriteAddress,
-                              const uint8_t* WriteBuffer, uint16_t WriteSize)
+bool XMEGANVM_WritePageMemory(const uint8_t WriteBuffCommand,
+                              const uint8_t EraseBuffCommand,
+                              const uint8_t WritePageCommand,
+                              const uint8_t PageMode,
+                              const uint32_t WriteAddress,
+                              const uint8_t* WriteBuffer,
+                              uint16_t WriteSize)
 {
        if (PageMode & XPRG_PAGEMODE_ERASE)
        {
@@ -359,9 +371,10 @@ bool XMEGANVM_WritePageMemory(const uint8_t WriteBuffCommand, const uint8_t Eras
  *  \param[in] EraseCommand  NVM erase command to send to the device
  *  \param[in] Address       Address inside the memory space to erase
  *
- *  \return Boolean true if the command sequence complete successfully
+ *  \return Boolean \c true if the command sequence complete successfully
  */
-bool XMEGANVM_EraseMemory(const uint8_t EraseCommand, const uint32_t Address)
+bool XMEGANVM_EraseMemory(const uint8_t EraseCommand,
+                          const uint32_t Address)
 {
        /* Wait until the NVM controller is no longer busy */
        if (!(XMEGANVM_WaitWhileNVMControllerBusy()))