Fine-tuning "libs" API
This commit is contained in:
parent
ffec0e2b57
commit
e8cff640ac
18 changed files with 244 additions and 204 deletions
|
@ -4,9 +4,8 @@
|
|||
* Created on: Aug 29, 2019
|
||||
* Author: abody
|
||||
*/
|
||||
#include <dma.h>
|
||||
#include <string.h>
|
||||
#include "crc.h"
|
||||
#include <platform/crc_ll.h>
|
||||
#include "dma_helper.h"
|
||||
#include "diag.h"
|
||||
#include "crc_handler.h"
|
||||
|
@ -28,7 +27,7 @@
|
|||
#endif
|
||||
|
||||
|
||||
void InitCrcStatus(struct crcstatus_t *st, DMA_TypeDef *dma, uint32_t stream)
|
||||
void InitCrcStatus(CRCSTATUS *st, DMA_TypeDef *dma, uint32_t stream)
|
||||
{
|
||||
InitDmaInfo(&st->dmaInfo, dma, stream);
|
||||
LL_DMA_EnableIT_TC(dma, stream);
|
||||
|
@ -38,7 +37,7 @@ void InitCrcStatus(struct crcstatus_t *st, DMA_TypeDef *dma, uint32_t stream)
|
|||
memset((void*)st->crcTasks, 0, sizeof(st->crcTasks));
|
||||
}
|
||||
|
||||
uint8_t EnqueueCrcTask(struct crcstatus_t *status, uint8_t slot, uint8_t *address, uint16_t len,
|
||||
uint8_t EnqueueCrcTask(CRCSTATUS *status, uint8_t slot, uint8_t *address, uint16_t len,
|
||||
void (*callback)(void*, uint32_t, uint8_t), void* callbackParam)
|
||||
{
|
||||
uint32_t prim = __get_PRIMASK();
|
||||
|
@ -65,13 +64,13 @@ uint8_t EnqueueCrcTask(struct crcstatus_t *status, uint8_t slot, uint8_t *addres
|
|||
return need_start;
|
||||
}
|
||||
|
||||
void WaitCrcResults(struct crcstatus_t *status, uint8_t slot)
|
||||
void WaitCrcResults(CRCSTATUS *status, uint8_t slot)
|
||||
{
|
||||
while(IsSlotQueued(status, slot));
|
||||
while(GetActiveSlot(status) == slot);
|
||||
}
|
||||
|
||||
uint32_t ComputeCrc(struct crcstatus_t *status, uint8_t slot, uint8_t *address, uint16_t len)
|
||||
uint32_t ComputeCrc(CRCSTATUS *status, uint8_t slot, uint8_t *address, uint16_t len)
|
||||
{
|
||||
uint32_t result;
|
||||
EnqueueCrcTask(status, slot, address, len, NULL, &result);
|
||||
|
@ -79,7 +78,7 @@ uint32_t ComputeCrc(struct crcstatus_t *status, uint8_t slot, uint8_t *address,
|
|||
return result;
|
||||
}
|
||||
|
||||
void StartNextCrcTask(struct crcstatus_t *status)
|
||||
void StartNextCrcTask(CRCSTATUS *status)
|
||||
{
|
||||
uint16_t slot;
|
||||
for(slot = 0; slot < CRCTASKCOUNT; ++slot)
|
||||
|
@ -97,7 +96,7 @@ void StartNextCrcTask(struct crcstatus_t *status)
|
|||
status->activeSlot = 0xff;
|
||||
}
|
||||
|
||||
void HandleCrcDmaIrq(struct crcstatus_t *status)
|
||||
void HandleCrcDmaIrq(CRCSTATUS *status)
|
||||
{
|
||||
DIAG_INTERRUPT_IN();
|
||||
if(*status->dmaInfo.isReg & status->dmaInfo.tcMask) { // DMA transfer complete
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue