Fixed mtxSetSlaveSplitAddr and mtxSetSlaveRegionSize.
git-svn-id: https://svn.code.sf.net/p/chibios/svn2/trunk@11617 110e8d01-0319-4d1e-a829-52ad28d1bb01
This commit is contained in:
parent
e840c781aa
commit
88a439033e
|
@ -171,11 +171,14 @@ void mtxSetSlaveSplitAddr(Matrix *mtxp, uint8_t slaveID,
|
||||||
mtxDisableWP(mtxp);
|
mtxDisableWP(mtxp);
|
||||||
uint8_t i = mask, j = 0;
|
uint8_t i = mask, j = 0;
|
||||||
uint32_t value = 0;
|
uint32_t value = 0;
|
||||||
|
uint32_t pmask = 0;
|
||||||
for (i = 1; (i <= mask) && (j < 32); i <<= 1, j += 4) {
|
for (i = 1; (i <= mask) && (j < 32); i <<= 1, j += 4) {
|
||||||
if (i & mask)
|
if (i & mask) {
|
||||||
value |= areaSize << j;
|
value |= areaSize << j;
|
||||||
|
pmask |= 0x0F << j;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
mtxp->MATRIX_SASSR[slaveID] = value;
|
mtxp->MATRIX_SASSR[slaveID] = (mtxp->MATRIX_SASSR[slaveID] & ~pmask) | value;
|
||||||
mtxEnableWP(mtxp);
|
mtxEnableWP(mtxp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -196,11 +199,14 @@ void mtxSetSlaveRegionSize(Matrix *mtxp, uint8_t slaveID,
|
||||||
mtxDisableWP(mtxp);
|
mtxDisableWP(mtxp);
|
||||||
uint8_t i = mask, j = 0;
|
uint8_t i = mask, j = 0;
|
||||||
uint32_t value = 0;
|
uint32_t value = 0;
|
||||||
|
uint32_t pmask = 0;
|
||||||
for (i = 1; (i <= mask) && (j < 32 ); i <<= 1, j += 4) {
|
for (i = 1; (i <= mask) && (j < 32 ); i <<= 1, j += 4) {
|
||||||
if (i & mask)
|
if (i & mask) {
|
||||||
value |= areaSize << j;
|
value |= areaSize << j;
|
||||||
|
pmask |= 0x0F << j;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
mtxp->MATRIX_SRTSR[slaveID] = value;
|
mtxp->MATRIX_SRTSR[slaveID] = (mtxp->MATRIX_SRTSR[slaveID] & ~pmask) | value;
|
||||||
mtxEnableWP(mtxp);
|
mtxEnableWP(mtxp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue