1 #include "HAL_DIV.h"
2 
3 //Computes q = b div c and a = b mod c
4 //cDigits must be 1, and *c < 0xffffffff
hardwareNN_Div_q32(UINT32 * q,UINT32 * a,UINT32 * b,UINT32 bDigits,UINT32 * c,UINT32 cDigits)5 void hardwareNN_Div_q32(UINT32 *q,UINT32 *a,UINT32 *b,UINT32 bDigits,UINT32 *c,UINT32 cDigits)
6 {
7     UINT32 * p;
8     int i;
9 
10     DIV->REMAIN = 0;
11     DIV->DIVISOR = *c;
12     for(i = (bDigits-1); i >= 0 ; i -- )
13     {
14         p = (UINT32*) (b + i);
15         DIV->DIVIDENED = *p;
16 
17         while((DIV->STATUS&0x01)!=0x01);
18         DIV->STATUS = 0x01;
19         (*(q+i)) = (UINT32)DIV->QUOTIENT;
20     }
21     (*a) = DIV->REMAIN;
22 }
23