[an error occurred while processing this directive]
|
Нужно пока элементарное.
Вопросы можно позадавать? Можно в мыле, если другим не интересно.
1. есть у меня версия 2.2.0
пробую создать 4-ю задачу не получается код возврата 0xA
....
#define TASK1_P OSTCBP(1)
#define TASK2_P OSTCBP(2)
#define TASK3_P OSTCBP(3)
#define TASK4_P OSTCBP(4)
/* use _OSLabel() to create context-switching labels. */
_OSLabel(Task1a)
_OSLabel(Task2a)
_OSLabel(Task3a)
_OSLabel(Task4a)
...
// три нормально Dur=0, а 4-я dur=0xA
Dur =OSCreateTask(Task4, TASK4_P, 7);
подключил slp42Cab.LIB
salvocfg.h
#define OSUSE_LIBRARY TRUE
#define OSLIBRARY_TYPE OSL
#define OSLIBRARY_CONFIG OSA
#define OSLIBRARY_VARIANT OSB
#define OSTASKS 5
даже пробовал mem.c подключать.
что-то не пойму.
2.
Читая доку на 3 версию обнаружил макро замены одной задачи на другую
с тем же tcbP, а как это сделать в V2 не могу понять.
т.е. если я хочу
есть
task1{
...
for(;;){
OS_WaitBinSem(BSem_Key_P, KeyBoardLabel1);
if(Key1Pressed){
// сдесь я хочу в место задачи task1 запустить task2, и чтобы
// память не отводилась
// Просто написать OSCreateTask(task2, OScTcbP, PRIO_TASK2); return;
// в версии 2, не проходит
// Задача task2 не запускается
// OS_Replace(task2, PRIO_TASK2); // это макро V3 в нем вызывается
// OSCreateTask(task2, OScTcbP, PRIO_TASK2); return;
}
}
}
Использовать OS_Destroy не получилось не понял как потом
OSCreateTask(task2...) запустить
С уважением, Иван.
E-mail: info@telesys.ru