我有一个经过彻底测试的老C项目,它是在MpLab 8.7中为PIC24FJ256GA106使用C30编译器构建的,现在我想使用最新的XC16编译器在最新的MpLabX中继续这个项目。我已经完成了对MPLABX的导入,结果很好。选择了新的XC16编译器,修复了路径并确保设置都是相同的。这个项目现在没有警告和错误,而且在很大程度上是有效的。主回路运行,中断射击,但我有工作串行
通信,但是…本项目使用PIC的PMP与同一板上的Zylog芯片进行通信,代码使用微芯片提供的外围库(PIC24/dsPIC外围库v2.00-Windows)中的PMP方法:www.微芯片。com/mplab/compilers当我通过PIC的PMP调用以前工作的(C30)方法来设置Zylog芯片时,PIC完全锁定,大概在PLIB内部的某个无限循环中。我现在完全不知道可能出了什么问题。如果我使用MPLABX与C30,它工作完美。切换到XC16,具有相同的设置,并在PMPMistRead()内部锁定。它开始感觉像是XC16外围库中的一个bug,但我确信一定在某种程度上已经测试过了,这让我对可能遗漏的内容摸不着头脑。在从C30到XC16的移植中,有没有其他人有类似的问题?或者我有什么新的想法可以解决?