Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: с uIp не работают другие задачи
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Операционные системы > FreeRTOS
int0x25
Здравствуйте. МК = AT91SAM7x256. Столкнулся с проблемой - для FreeRTOS создал задачу с использованием uip (из стандартновго примера "EasyWEB" в папке Keil). Эта задача работает нормально, а вот другие перестали вообще работать(видимо на них не переключается система). От чего это может быть и как бороться?
int0x25
Нашел от чего это происходит в этой функции.
Код
void TCPLowLevelInit(void)
{
// Keil: Timer 0 is used for TCP retransmission control

  *AT91C_PITC_PIMR = AT91C_PITC_PITIEN | AT91C_PITC_PITEN |
                     784741;                     // 262mSec;

  *(AT91C_AIC_SVR + AT91C_ID_SYS) = (unsigned int)TCPClockHandler;
  *(AT91C_AIC_SMR + AT91C_ID_SYS) = AT91C_AIC_SRCTYPE_INT_POSITIVE_EDGE;
  *AT91C_AIC_IECR = (1 << AT91C_ID_SYS);
}
Оказывается во FreeRTOS уже используется этот таймер для переключения задач и я просто затирал старый обработчик прерываний. А вот теперь я хочу код из своего обработчика сунуть в тот, который затирал, но он находится в ассемблерном файле. Отсюда вопрос - можно ли в ассемблерный файл экспортировать глобальные переменные из си файла?
aaarrr
Цитата(int0x25 @ Apr 22 2010, 01:57) *
Нашел от чего это происходит в этой функции.

Одного взгляда на эту функцию достаточно, чтобы сделать нелицеприятное заключение о способностях ее автора: работать по фронту с прерыванием SYS, мягко говоря, чревато последствиями.

Цитата(int0x25 @ Apr 22 2010, 01:57) *
Отсюда вопрос - можно ли в ассемблерный файл экспортировать глобальные переменные из си файла?

Для этого существует директива IMPORT. Но если хотите сделать не через известное место, воспользуйтесь vApplicationTickHook.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.