PIC18 instabil viselkedés (LVP beállítás probléma)

Ebbe a hibába már régebben is belefutottam, de sajnos teljesen elfelejtettem (vagy 10 éve nem használtam PIC-eket): ha az LVP (low voltage programming, vagyis alacsony feszültségű égetés) be van állítva a konfigurációs mezőben és az LVP engedélyező lábat (RB5/PGM) kimenetnek konfiguráljuk, nagyon furcsa dolgok történnek. Ha H szintre állítanánk a kimenetet mintha ,,lefagyna'' a program, vagy úgy tűnik mintha be sem indulna az oszcillátor és ha hozzáérünk kézzel az RB5-höz elindul (fut a program). A megoldás pedig, hogy a

#pragma config LVP OFF

sort kell hozzáadni a programhoz. A hibát ugyanis az okozza, hogy az MCU véletlenszerűen programozási módba lép. Ha bemenetként használnánk az RB5-öt és nem kötnénk rá semmit (lebeg a bemenet), akkor is hasonló dolgokat tapasztalhatunk.
Az LVP OFF-ba állításával persze elveszítjük az alacsony feszültségű programozás lehetőségét, de hagyományos I/O-ként használhatjuk az RB5 lábat. Ha nem használjuk a #pragma config LVP parancsot, akkor az LVP be lesz kapcsolva az sdcc fordítónál!
A fenti kódrészlet sdcc 3.2.0-tól használható és (ha jól tudom) más PIC C fordítókban is így kell a konfigurációt megadni.