我在写擦除程序时,是以下这样的,但编译时,引用汇编出错,请高手指教:
void EarseFlash(unsigned int addr)
{
faddr=addr; //擦除flash的首地址
asm{
ldhx @DoEarseFlash //擦除程序的首地址->HX
sthx pbase //HX->内存变量pbase
ldhx @EarseFlash_END //擦除程序的末地址->HX
sthx pend //HX->内存变量pend
}
memcpy((void *)PrgOfRam,(void *)pbase,pend-pbase); //编译时这句出现警告
//在RAM区执行擦除程序
asm{
ldhx @PrgOfRam //擦除程序在RAM区的首地址
jsr ,X
} //执行RAM区域的擦除程序
} |