mirror of https://github.com/rusefi/openblt.git
Refs #579. Added CpuMemSet function to all ports and used it in XCP memory reads when the programming resource is locked.
git-svn-id: https://svn.code.sf.net/p/openblt/code/trunk@549 5dc33758-31d5-4daf-9ae8-b24bf3d40d73
This commit is contained in:
parent
87c6a0e8ee
commit
17beaf5802
|
@ -145,4 +145,30 @@ void CpuMemCopy(blt_addr dest, blt_addr src, blt_int16u len)
|
||||||
} /*** end of CpuMemCopy ***/
|
} /*** end of CpuMemCopy ***/
|
||||||
|
|
||||||
|
|
||||||
|
/************************************************************************************//**
|
||||||
|
** \brief Sets the bytes at the destination address to the specified value.
|
||||||
|
** \param dest Destination address for the data.
|
||||||
|
** \param value Value to write.
|
||||||
|
** \param len Number of bytes to write.
|
||||||
|
** \return none.
|
||||||
|
**
|
||||||
|
****************************************************************************************/
|
||||||
|
void CpuMemSet(blt_addr dest, blt_int8u value, blt_int16u len)
|
||||||
|
{
|
||||||
|
blt_int8u *to;
|
||||||
|
|
||||||
|
/* set casted pointer */
|
||||||
|
to = (blt_int8u *)dest;
|
||||||
|
|
||||||
|
/* set all bytes at the destination address to the specified value */
|
||||||
|
while (len-- > 0)
|
||||||
|
{
|
||||||
|
/* set byte value */
|
||||||
|
*to++ = value;
|
||||||
|
/* keep the watchdog happy */
|
||||||
|
CopService();
|
||||||
|
}
|
||||||
|
} /*** end of CpuMemSet ***/
|
||||||
|
|
||||||
|
|
||||||
/*********************************** end of cpu.c **************************************/
|
/*********************************** end of cpu.c **************************************/
|
||||||
|
|
|
@ -156,4 +156,30 @@ void CpuMemCopy(blt_addr dest, blt_addr src, blt_int16u len)
|
||||||
} /*** end of CpuMemCopy ***/
|
} /*** end of CpuMemCopy ***/
|
||||||
|
|
||||||
|
|
||||||
|
/************************************************************************************//**
|
||||||
|
** \brief Sets the bytes at the destination address to the specified value.
|
||||||
|
** \param dest Destination address for the data.
|
||||||
|
** \param value Value to write.
|
||||||
|
** \param len Number of bytes to write.
|
||||||
|
** \return none.
|
||||||
|
**
|
||||||
|
****************************************************************************************/
|
||||||
|
void CpuMemSet(blt_addr dest, blt_int8u value, blt_int16u len)
|
||||||
|
{
|
||||||
|
blt_int8u *to;
|
||||||
|
|
||||||
|
/* set casted pointer */
|
||||||
|
to = (blt_int8u *)dest;
|
||||||
|
|
||||||
|
/* set all bytes at the destination address to the specified value */
|
||||||
|
while (len-- > 0)
|
||||||
|
{
|
||||||
|
/* set byte value */
|
||||||
|
*to++ = value;
|
||||||
|
/* keep the watchdog happy */
|
||||||
|
CopService();
|
||||||
|
}
|
||||||
|
} /*** end of CpuMemSet ***/
|
||||||
|
|
||||||
|
|
||||||
/*********************************** end of cpu.c **************************************/
|
/*********************************** end of cpu.c **************************************/
|
||||||
|
|
|
@ -136,4 +136,30 @@ void CpuMemCopy(blt_addr dest, blt_addr src, blt_int16u len)
|
||||||
} /*** end of CpuMemCopy ***/
|
} /*** end of CpuMemCopy ***/
|
||||||
|
|
||||||
|
|
||||||
|
/************************************************************************************//**
|
||||||
|
** \brief Sets the bytes at the destination address to the specified value.
|
||||||
|
** \param dest Destination address for the data.
|
||||||
|
** \param value Value to write.
|
||||||
|
** \param len Number of bytes to write.
|
||||||
|
** \return none.
|
||||||
|
**
|
||||||
|
****************************************************************************************/
|
||||||
|
void CpuMemSet(blt_addr dest, blt_int8u value, blt_int16u len)
|
||||||
|
{
|
||||||
|
blt_int8u *to;
|
||||||
|
|
||||||
|
/* set casted pointer */
|
||||||
|
to = (blt_int8u *)dest;
|
||||||
|
|
||||||
|
/* set all bytes at the destination address to the specified value */
|
||||||
|
while (len-- > 0)
|
||||||
|
{
|
||||||
|
/* set byte value */
|
||||||
|
*to++ = value;
|
||||||
|
/* keep the watchdog happy */
|
||||||
|
CopService();
|
||||||
|
}
|
||||||
|
} /*** end of CpuMemSet ***/
|
||||||
|
|
||||||
|
|
||||||
/*********************************** end of cpu.c **************************************/
|
/*********************************** end of cpu.c **************************************/
|
||||||
|
|
|
@ -145,4 +145,30 @@ void CpuMemCopy(blt_addr dest, blt_addr src, blt_int16u len)
|
||||||
} /*** end of CpuMemCopy ***/
|
} /*** end of CpuMemCopy ***/
|
||||||
|
|
||||||
|
|
||||||
|
/************************************************************************************//**
|
||||||
|
** \brief Sets the bytes at the destination address to the specified value.
|
||||||
|
** \param dest Destination address for the data.
|
||||||
|
** \param value Value to write.
|
||||||
|
** \param len Number of bytes to write.
|
||||||
|
** \return none.
|
||||||
|
**
|
||||||
|
****************************************************************************************/
|
||||||
|
void CpuMemSet(blt_addr dest, blt_int8u value, blt_int16u len)
|
||||||
|
{
|
||||||
|
blt_int8u *to;
|
||||||
|
|
||||||
|
/* set casted pointer */
|
||||||
|
to = (blt_int8u *)dest;
|
||||||
|
|
||||||
|
/* set all bytes at the destination address to the specified value */
|
||||||
|
while (len-- > 0)
|
||||||
|
{
|
||||||
|
/* set byte value */
|
||||||
|
*to++ = value;
|
||||||
|
/* keep the watchdog happy */
|
||||||
|
CopService();
|
||||||
|
}
|
||||||
|
} /*** end of CpuMemSet ***/
|
||||||
|
|
||||||
|
|
||||||
/*********************************** end of cpu.c **************************************/
|
/*********************************** end of cpu.c **************************************/
|
||||||
|
|
|
@ -145,4 +145,30 @@ void CpuMemCopy(blt_addr dest, blt_addr src, blt_int16u len)
|
||||||
} /*** end of CpuMemCopy ***/
|
} /*** end of CpuMemCopy ***/
|
||||||
|
|
||||||
|
|
||||||
|
/************************************************************************************//**
|
||||||
|
** \brief Sets the bytes at the destination address to the specified value.
|
||||||
|
** \param dest Destination address for the data.
|
||||||
|
** \param value Value to write.
|
||||||
|
** \param len Number of bytes to write.
|
||||||
|
** \return none.
|
||||||
|
**
|
||||||
|
****************************************************************************************/
|
||||||
|
void CpuMemSet(blt_addr dest, blt_int8u value, blt_int16u len)
|
||||||
|
{
|
||||||
|
blt_int8u *to;
|
||||||
|
|
||||||
|
/* set casted pointer */
|
||||||
|
to = (blt_int8u *)dest;
|
||||||
|
|
||||||
|
/* set all bytes at the destination address to the specified value */
|
||||||
|
while (len-- > 0)
|
||||||
|
{
|
||||||
|
/* set byte value */
|
||||||
|
*to++ = value;
|
||||||
|
/* keep the watchdog happy */
|
||||||
|
CopService();
|
||||||
|
}
|
||||||
|
} /*** end of CpuMemSet ***/
|
||||||
|
|
||||||
|
|
||||||
/*********************************** end of cpu.c **************************************/
|
/*********************************** end of cpu.c **************************************/
|
||||||
|
|
|
@ -145,4 +145,30 @@ void CpuMemCopy(blt_addr dest, blt_addr src, blt_int16u len)
|
||||||
} /*** end of CpuMemCopy ***/
|
} /*** end of CpuMemCopy ***/
|
||||||
|
|
||||||
|
|
||||||
|
/************************************************************************************//**
|
||||||
|
** \brief Sets the bytes at the destination address to the specified value.
|
||||||
|
** \param dest Destination address for the data.
|
||||||
|
** \param value Value to write.
|
||||||
|
** \param len Number of bytes to write.
|
||||||
|
** \return none.
|
||||||
|
**
|
||||||
|
****************************************************************************************/
|
||||||
|
void CpuMemSet(blt_addr dest, blt_int8u value, blt_int16u len)
|
||||||
|
{
|
||||||
|
blt_int8u *to;
|
||||||
|
|
||||||
|
/* set casted pointer */
|
||||||
|
to = (blt_int8u *)dest;
|
||||||
|
|
||||||
|
/* set all bytes at the destination address to the specified value */
|
||||||
|
while (len-- > 0)
|
||||||
|
{
|
||||||
|
/* set byte value */
|
||||||
|
*to++ = value;
|
||||||
|
/* keep the watchdog happy */
|
||||||
|
CopService();
|
||||||
|
}
|
||||||
|
} /*** end of CpuMemSet ***/
|
||||||
|
|
||||||
|
|
||||||
/*********************************** end of cpu.c **************************************/
|
/*********************************** end of cpu.c **************************************/
|
||||||
|
|
|
@ -141,4 +141,30 @@ void CpuMemCopy(blt_addr dest, blt_addr src, blt_int16u len)
|
||||||
} /*** end of CpuMemCopy ***/
|
} /*** end of CpuMemCopy ***/
|
||||||
|
|
||||||
|
|
||||||
|
/************************************************************************************//**
|
||||||
|
** \brief Sets the bytes at the destination address to the specified value.
|
||||||
|
** \param dest Destination address for the data.
|
||||||
|
** \param value Value to write.
|
||||||
|
** \param len Number of bytes to write.
|
||||||
|
** \return none.
|
||||||
|
**
|
||||||
|
****************************************************************************************/
|
||||||
|
void CpuMemSet(blt_addr dest, blt_int8u value, blt_int16u len)
|
||||||
|
{
|
||||||
|
blt_int8u *to;
|
||||||
|
|
||||||
|
/* set casted pointer */
|
||||||
|
to = (blt_int8u *)dest;
|
||||||
|
|
||||||
|
/* set all bytes at the destination address to the specified value */
|
||||||
|
while (len-- > 0)
|
||||||
|
{
|
||||||
|
/* set byte value */
|
||||||
|
*to++ = value;
|
||||||
|
/* keep the watchdog happy */
|
||||||
|
CopService();
|
||||||
|
}
|
||||||
|
} /*** end of CpuMemSet ***/
|
||||||
|
|
||||||
|
|
||||||
/*********************************** end of cpu.c **************************************/
|
/*********************************** end of cpu.c **************************************/
|
||||||
|
|
|
@ -141,4 +141,30 @@ void CpuMemCopy(blt_addr dest, blt_addr src, blt_int16u len)
|
||||||
} /*** end of CpuMemCopy ***/
|
} /*** end of CpuMemCopy ***/
|
||||||
|
|
||||||
|
|
||||||
|
/************************************************************************************//**
|
||||||
|
** \brief Sets the bytes at the destination address to the specified value.
|
||||||
|
** \param dest Destination address for the data.
|
||||||
|
** \param value Value to write.
|
||||||
|
** \param len Number of bytes to write.
|
||||||
|
** \return none.
|
||||||
|
**
|
||||||
|
****************************************************************************************/
|
||||||
|
void CpuMemSet(blt_addr dest, blt_int8u value, blt_int16u len)
|
||||||
|
{
|
||||||
|
blt_int8u *to;
|
||||||
|
|
||||||
|
/* set casted pointer */
|
||||||
|
to = (blt_int8u *)dest;
|
||||||
|
|
||||||
|
/* set all bytes at the destination address to the specified value */
|
||||||
|
while (len-- > 0)
|
||||||
|
{
|
||||||
|
/* set byte value */
|
||||||
|
*to++ = value;
|
||||||
|
/* keep the watchdog happy */
|
||||||
|
CopService();
|
||||||
|
}
|
||||||
|
} /*** end of CpuMemSet ***/
|
||||||
|
|
||||||
|
|
||||||
/*********************************** end of cpu.c **************************************/
|
/*********************************** end of cpu.c **************************************/
|
||||||
|
|
|
@ -145,4 +145,30 @@ void CpuMemCopy(blt_addr dest, blt_addr src, blt_int16u len)
|
||||||
} /*** end of CpuMemCopy ***/
|
} /*** end of CpuMemCopy ***/
|
||||||
|
|
||||||
|
|
||||||
|
/************************************************************************************//**
|
||||||
|
** \brief Sets the bytes at the destination address to the specified value.
|
||||||
|
** \param dest Destination address for the data.
|
||||||
|
** \param value Value to write.
|
||||||
|
** \param len Number of bytes to write.
|
||||||
|
** \return none.
|
||||||
|
**
|
||||||
|
****************************************************************************************/
|
||||||
|
void CpuMemSet(blt_addr dest, blt_int8u value, blt_int16u len)
|
||||||
|
{
|
||||||
|
blt_int8u *to;
|
||||||
|
|
||||||
|
/* set casted pointer */
|
||||||
|
to = (blt_int8u *)dest;
|
||||||
|
|
||||||
|
/* set all bytes at the destination address to the specified value */
|
||||||
|
while (len-- > 0)
|
||||||
|
{
|
||||||
|
/* set byte value */
|
||||||
|
*to++ = value;
|
||||||
|
/* keep the watchdog happy */
|
||||||
|
CopService();
|
||||||
|
}
|
||||||
|
} /*** end of CpuMemSet ***/
|
||||||
|
|
||||||
|
|
||||||
/*********************************** end of cpu.c **************************************/
|
/*********************************** end of cpu.c **************************************/
|
||||||
|
|
|
@ -141,4 +141,30 @@ void CpuMemCopy(blt_addr dest, blt_addr src, blt_int16u len)
|
||||||
} /*** end of CpuMemCopy ***/
|
} /*** end of CpuMemCopy ***/
|
||||||
|
|
||||||
|
|
||||||
|
/************************************************************************************//**
|
||||||
|
** \brief Sets the bytes at the destination address to the specified value.
|
||||||
|
** \param dest Destination address for the data.
|
||||||
|
** \param value Value to write.
|
||||||
|
** \param len Number of bytes to write.
|
||||||
|
** \return none.
|
||||||
|
**
|
||||||
|
****************************************************************************************/
|
||||||
|
void CpuMemSet(blt_addr dest, blt_int8u value, blt_int16u len)
|
||||||
|
{
|
||||||
|
blt_int8u *to;
|
||||||
|
|
||||||
|
/* set casted pointer */
|
||||||
|
to = (blt_int8u *)dest;
|
||||||
|
|
||||||
|
/* set all bytes at the destination address to the specified value */
|
||||||
|
while (len-- > 0)
|
||||||
|
{
|
||||||
|
/* set byte value */
|
||||||
|
*to++ = value;
|
||||||
|
/* keep the watchdog happy */
|
||||||
|
CopService();
|
||||||
|
}
|
||||||
|
} /*** end of CpuMemSet ***/
|
||||||
|
|
||||||
|
|
||||||
/*********************************** end of cpu.c **************************************/
|
/*********************************** end of cpu.c **************************************/
|
||||||
|
|
|
@ -145,4 +145,30 @@ void CpuMemCopy(blt_addr dest, blt_addr src, blt_int16u len)
|
||||||
} /*** end of CpuMemCopy ***/
|
} /*** end of CpuMemCopy ***/
|
||||||
|
|
||||||
|
|
||||||
|
/************************************************************************************//**
|
||||||
|
** \brief Sets the bytes at the destination address to the specified value.
|
||||||
|
** \param dest Destination address for the data.
|
||||||
|
** \param value Value to write.
|
||||||
|
** \param len Number of bytes to write.
|
||||||
|
** \return none.
|
||||||
|
**
|
||||||
|
****************************************************************************************/
|
||||||
|
void CpuMemSet(blt_addr dest, blt_int8u value, blt_int16u len)
|
||||||
|
{
|
||||||
|
blt_int8u *to;
|
||||||
|
|
||||||
|
/* set casted pointer */
|
||||||
|
to = (blt_int8u *)dest;
|
||||||
|
|
||||||
|
/* set all bytes at the destination address to the specified value */
|
||||||
|
while (len-- > 0)
|
||||||
|
{
|
||||||
|
/* set byte value */
|
||||||
|
*to++ = value;
|
||||||
|
/* keep the watchdog happy */
|
||||||
|
CopService();
|
||||||
|
}
|
||||||
|
} /*** end of CpuMemSet ***/
|
||||||
|
|
||||||
|
|
||||||
/*********************************** end of cpu.c **************************************/
|
/*********************************** end of cpu.c **************************************/
|
||||||
|
|
|
@ -145,4 +145,30 @@ void CpuMemCopy(blt_addr dest, blt_addr src, blt_int16u len)
|
||||||
} /*** end of CpuMemCopy ***/
|
} /*** end of CpuMemCopy ***/
|
||||||
|
|
||||||
|
|
||||||
|
/************************************************************************************//**
|
||||||
|
** \brief Sets the bytes at the destination address to the specified value.
|
||||||
|
** \param dest Destination address for the data.
|
||||||
|
** \param value Value to write.
|
||||||
|
** \param len Number of bytes to write.
|
||||||
|
** \return none.
|
||||||
|
**
|
||||||
|
****************************************************************************************/
|
||||||
|
void CpuMemSet(blt_addr dest, blt_int8u value, blt_int16u len)
|
||||||
|
{
|
||||||
|
blt_int8u *to;
|
||||||
|
|
||||||
|
/* set casted pointer */
|
||||||
|
to = (blt_int8u *)dest;
|
||||||
|
|
||||||
|
/* set all bytes at the destination address to the specified value */
|
||||||
|
while (len-- > 0)
|
||||||
|
{
|
||||||
|
/* set byte value */
|
||||||
|
*to++ = value;
|
||||||
|
/* keep the watchdog happy */
|
||||||
|
CopService();
|
||||||
|
}
|
||||||
|
} /*** end of CpuMemSet ***/
|
||||||
|
|
||||||
|
|
||||||
/*********************************** end of cpu.c **************************************/
|
/*********************************** end of cpu.c **************************************/
|
||||||
|
|
|
@ -133,4 +133,30 @@ void CpuMemCopy(blt_addr dest, blt_addr src, blt_int16u len)
|
||||||
} /*** end of CpuMemCopy ***/
|
} /*** end of CpuMemCopy ***/
|
||||||
|
|
||||||
|
|
||||||
|
/************************************************************************************//**
|
||||||
|
** \brief Sets the bytes at the destination address to the specified value.
|
||||||
|
** \param dest Destination address for the data.
|
||||||
|
** \param value Value to write.
|
||||||
|
** \param len Number of bytes to write.
|
||||||
|
** \return none.
|
||||||
|
**
|
||||||
|
****************************************************************************************/
|
||||||
|
void CpuMemSet(blt_addr dest, blt_int8u value, blt_int16u len)
|
||||||
|
{
|
||||||
|
blt_int8u *to;
|
||||||
|
|
||||||
|
/* set casted pointer */
|
||||||
|
to = (blt_int8u *)dest;
|
||||||
|
|
||||||
|
/* set all bytes at the destination address to the specified value */
|
||||||
|
while (len-- > 0)
|
||||||
|
{
|
||||||
|
/* set byte value */
|
||||||
|
*to++ = value;
|
||||||
|
/* keep the watchdog happy */
|
||||||
|
CopService();
|
||||||
|
}
|
||||||
|
} /*** end of CpuMemSet ***/
|
||||||
|
|
||||||
|
|
||||||
/*********************************** end of cpu.c **************************************/
|
/*********************************** end of cpu.c **************************************/
|
||||||
|
|
|
@ -129,4 +129,30 @@ void CpuMemCopy(blt_addr dest, blt_addr src, blt_int16u len)
|
||||||
} /*** end of CpuMemCopy ***/
|
} /*** end of CpuMemCopy ***/
|
||||||
|
|
||||||
|
|
||||||
|
/************************************************************************************//**
|
||||||
|
** \brief Sets the bytes at the destination address to the specified value.
|
||||||
|
** \param dest Destination address for the data.
|
||||||
|
** \param value Value to write.
|
||||||
|
** \param len Number of bytes to write.
|
||||||
|
** \return none.
|
||||||
|
**
|
||||||
|
****************************************************************************************/
|
||||||
|
void CpuMemSet(blt_addr dest, blt_int8u value, blt_int16u len)
|
||||||
|
{
|
||||||
|
blt_int8u *to;
|
||||||
|
|
||||||
|
/* set casted pointer */
|
||||||
|
to = (blt_int8u *)dest;
|
||||||
|
|
||||||
|
/* set all bytes at the destination address to the specified value */
|
||||||
|
while (len-- > 0)
|
||||||
|
{
|
||||||
|
/* set byte value */
|
||||||
|
*to++ = value;
|
||||||
|
/* keep the watchdog happy */
|
||||||
|
CopService();
|
||||||
|
}
|
||||||
|
} /*** end of CpuMemSet ***/
|
||||||
|
|
||||||
|
|
||||||
/*********************************** end of cpu.c **************************************/
|
/*********************************** end of cpu.c **************************************/
|
||||||
|
|
|
@ -35,6 +35,7 @@
|
||||||
void CpuInit(void);
|
void CpuInit(void);
|
||||||
void CpuStartUserProgram(void);
|
void CpuStartUserProgram(void);
|
||||||
void CpuMemCopy(blt_addr dest, blt_addr src, blt_int16u len);
|
void CpuMemCopy(blt_addr dest, blt_addr src, blt_int16u len);
|
||||||
|
void CpuMemSet(blt_addr dest, blt_int8u value, blt_int16u len);
|
||||||
void CpuIrqDisable(void);
|
void CpuIrqDisable(void);
|
||||||
void CpuIrqEnable(void);
|
void CpuIrqEnable(void);
|
||||||
|
|
||||||
|
|
|
@ -707,16 +707,7 @@ static void XcpCmdUpload(blt_int8u *data)
|
||||||
/* resource is locked so memory read access is denied. zero values are returned
|
/* resource is locked so memory read access is denied. zero values are returned
|
||||||
* instead.
|
* instead.
|
||||||
*/
|
*/
|
||||||
while (len > 0)
|
CpuMemSet((blt_addr)destPtr, 0, len);
|
||||||
{
|
|
||||||
/* write a zero value */
|
|
||||||
*destPtr = 0;
|
|
||||||
/* update write pointer and loop counter */
|
|
||||||
destPtr++;
|
|
||||||
len--;
|
|
||||||
/* keep the watchdog happy */
|
|
||||||
CopService();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -779,16 +770,7 @@ static void XcpCmdShortUpload(blt_int8u *data)
|
||||||
/* resource is locked so memory read access is denied. zero values are returned
|
/* resource is locked so memory read access is denied. zero values are returned
|
||||||
* instead.
|
* instead.
|
||||||
*/
|
*/
|
||||||
while (len > 0)
|
CpuMemSet((blt_addr)destPtr, 0, len);
|
||||||
{
|
|
||||||
/* write a zero value */
|
|
||||||
*destPtr = 0;
|
|
||||||
/* update write pointer and loop counter */
|
|
||||||
destPtr++;
|
|
||||||
len--;
|
|
||||||
/* keep the watchdog happy */
|
|
||||||
CopService();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue