Почитайте описание c-spy и его .mac файлов. Можно в таком файле написать макрос установки/чтения фузов. Вот что-то писаное левой ногой для SAM7:
CODE
SetGPNVM(bit)
{
__var tmp;
__message " -------- GPNVM bit ", bit, " programming ---------- ";
tmp = __readMemory32(0xFFFFFF68, "Memory"); // MC_FSR
if(!(tmp & ( 1 << (8 + bit) ))) // if GPNVMx not set
{
__writeMemory32( 0
| ((4032000 * 36 / 3 / 1000000) << 16) // MCK cycles in 1 us
| (1 << 8) // 1 FWS
| (1 << 7) // no erase before prog
,0xFFFFFF60, "Memory"); // MC_FMR
__writeMemory32( 0
| (0x5A << 24) // key
| (bit << 8) // bit number
| 0x0000000B // SET GPNVM command
,0xFFFFFF64, "Memory"); // MC_FCR
do
{
tmp = __readMemory32(0xFFFFFF68, "Memory");
}
while (! (tmp & (1 << 0)) ); // wait untli FRDY
if(tmp & (3 << 2))
__message " !!!!!!! GPNVM bit ", bit, " programming error !!!!!!!!!";
else
__message " GPNVM bit ", bit, " programmed ";
}
else
{
__message " GPNVM bit ", bit, " alredy set ";
}
}
SetSecurity()
{
__var tmp;
__writeMemory32( 0
| ((4032000 * 36 / 3 / 1000000) << 16) // MCK cycles in 1 us
| (1 << 8) // 1 FWS
| (1 << 7) // no erase before prog
,0xFFFFFF60, "Memory"); // MC_FMR
__writeMemory32( 0
| (0x5A << 24) // key
| 0x0000000F // SET Security command
,0xFFFFFF64, "Memory"); // MC_FCR
do
{
tmp = __readMemory32(0xFFFFFF68, "Memory");
}
while (! (tmp & (1 << 0)) ); // wait untli FRDY
if(tmp & (1<<4))
__message "Security bit set ok";
__message "Security bit set failed: ", tmp:%x;
}