Здравствуйте!
ARM только осваиваю. Мигание светодиодом, внешнее прерывание, прерывание от таймера и UART, конфигурацию тактирования освоил сам. Столкнулся с проблемой при освоении Keil RTOS. Программа, которая нормально работает без RTOS (по прерыванию от таймера), частично не работает под RTOS. Не подчиняются некоторые линии портов общего назначения. А именно Port1. Другие не проверял. Даже те линии, которые не были инициализированны, как выходы, держат чёткую единицу, или ноль. На команды сброса и установки линии порта не реагируют. На том же порте другие линии работают нормально. Какой-либо закономерности не выявил. В частности 29 в единице, 28 в нуле, 15 и 16 работают нормально. Без RTOS "ноподчинения" не замечено. Сталкивался ли кто-нибудь, что Keil RTOS позволяет себе что-то лишнее?
Спасибо!
Ivan Panov
Feb 15 2013, 20:50
У меня два проекта на LPC2364 и Keil RTOS и оба прекрасно работают с периферией. "Странности" в поведении программы чаще всего бывают из-за недостаточного размера стека. Попробуйте выделить больше памяти под стек.
Цитата(Ivan Panov @ Feb 16 2013, 00:50)

У меня два проекта на LPC2364 и Keil RTOS и оба прекрасно работают с периферией. "Странности" в поведении программы чаще всего бывают из-за недостаточного размера стека. Попробуйте выделить больше памяти под стек.
Спасибо за совет!
Как ведут себя программы при недостаточном размере стека мне хорошо знакомо. В моей практике это были нестабильные глюки и перезаргузки. В этом же случает наоборот всё стабильно. Одни линии в единице, другие в нуле, третьи нормально работают. Использовал demo пример от Keil. Он то должен вроде бы работать!
esaulenka
Feb 18 2013, 16:00
Очередной подземный стук...
Как вариант - "неправильные" ноги сконфигурированы не как GPIO, а какая-то периферия (для P1.28 P1.29 - выходы таймера, например).
Методика лечения - прочитать раздел даташита про переназначение ног и внимательно проверить код примера на предмет лишних переназначений (внимательно! там один регистр сразу переназначает 16 выводов).
SyncLair
Feb 18 2013, 17:34
Банально, конечно, но:
Цитата(esaulenka @ Feb 18 2013, 20:00)

Методика лечения - прочитать раздел даташита про переназначение ног ...
Методика лечения - прочитать значение регистра про переназначение ног ))
Спасибо огромное за поддержку! Причина, как всегда, была нелепой. В примере от Keil была ещё работа с LCD, который и захватывал линии порта. Отключил эту задачу, и всё заработало.
toweroff
Feb 19 2013, 12:18
Цитата(Д_М @ Feb 18 2013, 22:11)

В примере от Keil...
Вы же этого не сказали

Я тоже натыкался на какие-то грабли с кейловскими примерами для их девбордов, теперь всегда выкидываю все, что не нужно
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.