-
PIC18的bootloader引导APP正常,但可能跑飞?
硬件:单片机:PIC18F25K80情况:1.bootloader单独跑没有问题;APP单独跑也没问题。2.将bootloader的hex文件,loadables到app工程,并将app的codoffset为0x0C00,成功进入app模式。问题:由bootloader引导app模式,存在程序跑飞的情况(中断已不响应)。有时候能正常运行半小时,有时仅能正常运行几十秒。bootloader部分代码:unsignedcharisBootloader__at(0x00AA);//Bootloader中的中断voidinterruptlow_priorityInterruptISR_Low(void){if(0==isBootloader){asm("pagesel"str(APP_LOW_VECTOR));asm("goto"str(APP_LOW_VECTOR));}elselowPriorityISR();}voidmain(){...初始化if(0==isBootloader){STKPTR=0x00;//清除返回堆栈指针BSR=0x00;asm("pagesel"str(APP_RESET_VECTOR));asm("goto"str(APP_RESET_VECTOR));}...}
2023-06-16 0 -
dsPIC33休眠后串口接收无法唤醒?!!
目标:采用dsPIC33EV64GM004的串口实现休眠下的半双工通信。问题:1.在串口发送数据时,无法单独禁止串口接收。只能通过失能串口接收中断实现,而再次允许接收中断后,又需要UARTEN复位模块。2.休眠下,通过串口接收中断唤醒,时灵时不灵。按照手册,休眠前需置位U1MODEbits.WAKE,从而实现休眠后的串口接收唤醒。但实际:①初始化时,未置位U1MODEbits.WAKE,将无法唤醒;②初始化时置位U1MODEbits.WAKE,休眠前未置位,有时可唤醒,有时不行;③初始化时,置位U1MODEbits.WAKE,休眠前置位U1MODEbits.WAKE,无法唤醒。该单片机的串口接收中断,时灵时不灵,感觉好不稳定(真不靠谱),求解?
2022-11-08 0