CMSIS-Driver_PIC32CM-JH  
Peripheral Library (PLIB) Documentation
 
Loading...
Searching...
No Matches
DSU Interface

Driver API for DSU (plib_dsu.h) More...

Macros

#define DSU_CRC_ACCESS_MODE_ARRAY   0U
 DSU CRC32 Access Mode.
 
#define DSU_CRC_ACCESS_MODE_DATAFLASH   1U
 

Functions

void DSU_ResetSoftware (void)
 Trigger DSU software reset.
 
void DSU_SetCRCStartAddress (uint32_t address)
 Configure DSU CRC start address register.
 
void DSU_SetCRCDataLength (uint32_t length)
 Configure DSU CRC data length register.
 
void DSU_SetCRCInitialData (uint32_t data)
 Configure DSU DATA register.
 
void DSU_TriggerCRC (void)
 Trigger CRC32 calculation.
 
uint32_t DSU_ReadCRCResult (void)
 Read CRC32 result.
 
void DSU_CancelCRC (void)
 Cancel CRC32 operation.
 
bool DSU_CRCIsDone (void)
 Check if CRC32 operation is done.
 
bool DSU_CRCBusHasError (void)
 Check if CRC32 bus error occurred.
 
bool DSU_SelectCRCAccessMode (uint32_t mode)
 Select CRC32 access mode.
 

Description

Driver API for DSU (plib_dsu.h)

Usage Example

The following example demonstrates typical usage of the DSU peripheral:

#include <pic32c.h>
#include "plib_dsu.h"
/* Function prototype declaration */
uint32_t DSU_CRC32_Calculate(uint32_t start_addr, uint32_t length);
uint32_t DSU_CRC32_Calculate(uint32_t start_addr, uint32_t length)
{
uint32_t crc_result = 0xFFFFFFFFU;
bool crc_error = false;
/* 1. Configure the address and length for CRC calculation */
/* 2. Set the initial seed value for CRC32 */
DSU_SetCRCInitialData(0xFFFFFFFFU);
/* 3. Trigger the CRC calculation */
/* 4. Wait for CRC calculation to complete */
while (DSU_CRCIsDone() == false)
{
if (DSU_CRCBusHasError() == true)
{
crc_error = true;
break;
}
}
/* 5. Read the CRC result only if no error occurred */
if (crc_error == false)
{
crc_result = DSU_ReadCRCResult();
}
return crc_result;
}
bool DSU_CRCIsDone(void)
Check if CRC32 operation is done.
bool DSU_CRCBusHasError(void)
Check if CRC32 bus error occurred.
void DSU_SetCRCInitialData(uint32_t data)
Configure DSU DATA register.
uint32_t DSU_ReadCRCResult(void)
Read CRC32 result.
void DSU_SetCRCStartAddress(uint32_t address)
Configure DSU CRC start address register.
void DSU_SetCRCDataLength(uint32_t length)
Configure DSU CRC data length register.
void DSU_TriggerCRC(void)
Trigger CRC32 calculation.
Device Service Unit PLIB interface.

Macro Definition Documentation

◆ DSU_CRC_ACCESS_MODE_ARRAY

#define DSU_CRC_ACCESS_MODE_ARRAY   0U

DSU CRC32 Access Mode.

Array access mode

◆ DSU_CRC_ACCESS_MODE_DATAFLASH

#define DSU_CRC_ACCESS_MODE_DATAFLASH   1U

Data Flash access mode

Function Documentation

◆ DSU_CancelCRC()

void DSU_CancelCRC ( void )

Cancel CRC32 operation.

◆ DSU_CRCBusHasError()

bool DSU_CRCBusHasError ( void )

Check if CRC32 bus error occurred.

Returns
true if CRC32 bus error occurred, false otherwise.

◆ DSU_CRCIsDone()

bool DSU_CRCIsDone ( void )

Check if CRC32 operation is done.

Returns
true if CRC32 operation is done, false otherwise.

◆ DSU_ReadCRCResult()

uint32_t DSU_ReadCRCResult ( void )

Read CRC32 result.

Returns
CRC32 result value.

◆ DSU_ResetSoftware()

void DSU_ResetSoftware ( void )

Trigger DSU software reset.

◆ DSU_SelectCRCAccessMode()

bool DSU_SelectCRCAccessMode ( uint32_t mode)

Select CRC32 access mode.

Parameters
modeCRC32 access mode
Returns
true if CRC access mode is valid and updated

◆ DSU_SetCRCDataLength()

void DSU_SetCRCDataLength ( uint32_t length)

Configure DSU CRC data length register.

Parameters
lengthDSU LENGTH register value.

◆ DSU_SetCRCInitialData()

void DSU_SetCRCInitialData ( uint32_t data)

Configure DSU DATA register.

Parameters
dataDSU DATA register value.

◆ DSU_SetCRCStartAddress()

void DSU_SetCRCStartAddress ( uint32_t address)

Configure DSU CRC start address register.

Parameters
addressDSU ADDR register value.

◆ DSU_TriggerCRC()

void DSU_TriggerCRC ( void )

Trigger CRC32 calculation.