Здравствуйте, господа!
Использую Keil uVision 4.14 и LPC2378 (сетевая часть содрана с MCB2300)
Запустил стек TCPNet под операционной системой Keil RTX - переделал пример SNMP-агента. Чтение и запись SNMP переменных работает нормально, а вот с trap не получается. Основываясь на документации Keil, написал вот такую функцию отправки trapов.
Код
BOOL snmp_trap (
U8* man_ip, /* Указатель на IP-адрес trap-менеджера */
U8 gen_trap, /* Общее значение trap */
U8 spec_trap, /* Специфическое значение trap */
U16* obj_list ); /* Указатель на список объектов */
int send_trap_one (U16 data)
{
/* Send a trap message when alarm input is activated.*/
U16 obj[2];
//Добавление данных в trap-запрос
obj[0] = 1;
obj[1] = data;
if (snmp_trap (NULL, 6, 1, obj)) return 1;
else return 0;
}
однако, трап-запросы приходят через раз или еще реже. Без операционной системы программа нормально работала, с операционной же системой не получается. При этом функция возвращает значение true
Что уже попробовал:
Для задачи, которая вызывает функцию отправки trap увеличил объем стека с 200 байт до 1000.
Пробовал менять приоритет:
timer_task имеет приоритет 0х20
tcp_task имеет приоритет 0
ставил приоритет 0х20 и 0х30 - не меняется
Заранее спасибо за помощь
Сообщение отредактировал stepper88 - May 23 2012, 06:07