Перейти к содержанию
    

Трассировочные макросы для C18 (pic18f8722)

Доброго времени суток.

 

При попытке скомпилировать проект, с использованием трассировочных макросов (установка configUSE_TRACE_FACILYTI в 1 в "FreeRTOSConfig.h")

 

компилятор выдает ошибку "type mismatch in assigment" на строчку

 

/* Write the details of all TCB's in pxList into buffer. */

listGET_OWNER_OF_NEXT_ENTRY( pxFirstTCB, pxList);

 

в файле "tasks.c"

 

При установке configUSE_TRACE_FACILYTI в 0 все компилируется нормально.

 

Версия FreeRTOS 7.2.0

Компилятор C18

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Разобрался. Макрос configUSE_TRACE_FACILYTI нужно устанавливать только при трассировке с записью в буфер, при этом надо выделить память под буфер и задать на него указатель.

 

Другая проблема, в некоторые отладочные макросы, к примеру traceTASK_CREATE(pxTask), передается указатель на структуру блока управления задачей tskTaskControlBlock. Как из этого указателя вытащить данные о задаче (к примеру, имя задачи, приоритет)? Для этого указатель надо привести к типу tskTaskControlBlock, но поскольку определение структуры находиться в с-файле, компилятор не видит его в файле, где я переопределяю трассировочные макросы.

Возможные варианты решения:

1. Определить смещение нужных полей от начала структуры

2. Определить свою структуру, с полями идентичными полям структуры tskTaskControlBlock и приводить указатель к указателю на нее.

 

Оба решения негибки и не очевидны. Наверное, авторы предусмотрели более простое решение. Хотелось бы знать, какое?

 

P.S.

Непонятно, зачем потребовалось размещать определение структуры tskTaskControlBlock в с-файле. Или это такая защита от случайного доступа к полям структуры?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...