在psc.h文件中只有相应的定义,而没有函数具体的内容。这时,我们可以在提供的例程的source中寻找。找到psc.c文件。
int PSCModuleControl (unsigned int baseAdd, unsigned int moduleId,
unsigned int powerDomain, unsigned int flags)
{
vola
tile unsigned int timeout = 0xFFFFFF;
int retVal = 0;
unsigned int status = 0;
HWREG(baseAdd + PSC_MDCTL(moduleId)) = (flags & PSC_MDCTL_NEXT);
if (powerDomain == 0)
{
HWREG(baseAdd + PSC_PTCMD) = PSC_PTCMD_GO0;
}
else
{
HWREG(baseAdd + PSC_PTCMD) = PSC_PTCMD_GO1;
}
if (powerDomain == 0)
{
do {
status = HWREG(baseAdd + PSC_PTSTAT) & PSC_PTSTAT_GOSTAT0;
} while (status && timeout--);
}
else
{
do {
status = HWREG(baseAdd + PSC_PTSTAT) & PSC_PTSTAT_GOSTAT1;
} while (status && timeout--);
}
if (timeout != 0)
{
timeout = 0xFFFFFF;
status = flags & PSC_MDCTL_NEXT;
do {
timeout--;
} while(timeout &&
(HWREG(baseAdd + PSC_MDSTAT(moduleId)) & PSC_MDSTAT_STATE) != status);
}
if (timeout == 0)
{
retVal = -1;
}
return retVal;
}
找到了相应的函数内容。
虽然这对我们的开发起到的帮助很小。但是,这对我们了解和学习DSP,了解对寄存器的操作有着很重要的意义。可以帮助我们利用和理解这个函数。