четверг, 15 июля 2010 г.

Смотрим лог mgcamd под линукс

Меняем настройки mgcamd в Dreambox:
/var/keys/mg_cfg
L: { 01 } 192.168.0.5 5000  # адрес и порт хоста для просмотра лога
На Linux хосте набираем:
nc -lup 5000
где 5000 - номер порта из конф. файла

Проверка lock-бита в основной программе (AVR)

Всегда страшно отдать устройство заказчику с незалоченным контроллером.
В некоторых проектах я проверяю защиту от копирования на стадии запуска программы.
Для этого читаю lock биты:
lock_bit.asm
#include "iom88.h"

PUBLIC Get_Lock_Bits
RSEG CODE

Get_Lock_Bits:
        push ZH
        push ZL
        ldi ZH,0
        ldi ZL,1
        ldi r16,(1<<BLBSET)|(1<<SPMEN)
        out SPMCSR,r16
        lpm
        mov r16,r0
        pop ZL
        pop ZH
        ret


... и проверяю их при запуске основной программы:
main.c
#define LOCK_BITS_MASK 0x03
#define LOCK_BITS_VAL  0x00

void main(void)
{
  if ((Get_Lock_Bits() & LOCK_BITS_MASK) != LOCK_BITS_VAL) while(1);
  // some code
}
Если контроллер не защищен от чтения просто запускю бесконечный цикл и устройство не подаст признаков жизни.
Предохраняйтесь!