Latch 0 7 марта, 2007 Опубликовано 7 марта, 2007 · Жалоба Использую GCC из дистрибутива Yagarto. Если просто моргать светодиодом в главном цикле, то периодические прерывания функционируют нормально. Если, к примеру, добавить вызов в цикле sprintf, прерывания перестают работать (через какое-то время ~ несколько сотен вызовов), но главный цикл продолжает выполняться. Предполагаю проблема в стандартной библиотеке, внутри которой используется thumb режим (мой код весь в arm режиме). Хотя, если вызывать мою thumb функцию, зависаний не происходит. В какую сторону копать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alex03 0 7 марта, 2007 Опубликовано 7 марта, 2007 · Жалоба Использую GCC из дистрибутива Yagarto. Если просто моргать светодиодом в главном цикле, то периодические прерывания функционируют нормально. Если, к примеру, добавить вызов в цикле sprintf, прерывания перестают работать (через какое-то время ~ несколько сотен вызовов), но главный цикл продолжает выполняться. Предполагаю проблема в стандартной библиотеке, внутри которой используется thumb режим (мой код весь в arm режиме). Хотя, если вызывать мою thumb функцию, зависаний не происходит. В какую сторону копать? 1. Размеры стеков. 2. Прерывание случайно не в С коде с __attribute__((interrupt("IRQ")))? 3. ... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kovalchuk_i_v 0 7 марта, 2007 Опубликовано 7 марта, 2007 · Жалоба Если в обработчике прерывания какой-либо регистр забыть сохранить, то все что угодно может происходить. имхо ваши симптомы очень похожи. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
etoja 0 7 марта, 2007 Опубликовано 7 марта, 2007 · Жалоба Проблема с прерываниями в GCC известна давно. Посмотри обсуждение этого вопроса в присоединённом файле. t21799.html Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
klen 1 7 марта, 2007 Опубликовано 7 марта, 2007 · Жалоба Проблема с прерываниями в GCC известна давно. Посмотри обсуждение этого вопроса в присоединённом файле. помогло? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SpiritDance 0 7 марта, 2007 Опубликовано 7 марта, 2007 · Жалоба Кстати с компилером, который собрад klen проблем вроде нет, и thumb режиме тоже, правда глубоко не тестил. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 141 7 марта, 2007 Опубликовано 7 марта, 2007 · Жалоба Кстати с компилером, который собрал klen проблем вроде нет, и thumb режиме тоже, правда глубоко не тестил.Очень интересует такой вопрос - кто и какие телодвижения должен сделать, чтобы эта проблема исчезла и в официальной сборке WinARM? Ведь, насколько я понимаю, данное исправление никак не влияет на совместимость со старыми исходными кодами (с ручной вставкой пролога/эпилога)? Просто WinARM жив и будет жить, а klen завтра откроет для себя какой-нибудь более вкусный BlackFin и его ветка будет заброшена, поэтому "подсаживаться" на нее несколько опасно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
klen 1 7 марта, 2007 Опубликовано 7 марта, 2007 · Жалоба ....а klen завтра откроет для себя какой-нибудь более вкусный BlackFin и его ветка будет заброшена а еще кирпич может на голову упасть, или метеорт. ;) Не волнуйтесь. GCC очень похож на В.И.Ленина - живее всех живых. Кстате после открытия вкусных ARM7 я авэрки не забросил, собираю под обе платформы, скоро циррусы подвизут :santa2: . Сеоро свежак соберу :w00t: 4.1.2 - мои коллеги пообесчали выдать avr-libc 1.5.0 вот ждусь обесчанного чтоб разом пересобрать все а теперь по делу. кто моим исправленным пользовался? были ли побочные эффекты и тд. Просба потраить время и сообщить. Чтоб протащить изменения в основную ветку GCC нужны серьезные основания. Одного моего тестирования недостаточно. О! коллеги, а скажите пажалуста, в КросссВорке 1.6b3 gcc тоже ошибку дает в эпилоге или они исправленный в дистрибутив кладут? я просто его ниразу не пробывал, сразу свой заливал. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Latch 0 7 марта, 2007 Опубликовано 7 марта, 2007 · Жалоба всем спасибо, завтра буду пробовать. похоже действительно в прологе-эпилоге (просто поторопился и код брал из готового примера). как обычно проект надо сдать "вчера" Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
klen 1 8 марта, 2007 Опубликовано 8 марта, 2007 · Жалоба попробывал? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SpiritDance 0 9 марта, 2007 Опубликовано 9 марта, 2007 · Жалоба а теперь по делу. кто моим исправленным пользовался? были ли побочные эффекты и тд. Просба потраить время и сообщить. Чтоб протащить изменения в основную ветку GCC нужны серьезные основания. Одного моего тестирования недостаточно. А каких оснований достаточно? И вообще описать поподробней что и как исправлено можно? О! коллеги, а скажите пажалуста, в КросссВорке 1.6b3 gcc тоже ошибку дает в эпилоге... Похоже что да. Таки дает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 141 9 марта, 2007 Опубликовано 9 марта, 2007 · Жалоба а еще кирпич может на голову упасть, или метеорт. ;)Типун тебе на клавиатуру :) . Не волнуйтесь. GCC очень похож на В.И.Ленина - живее всех живых.Но ведь это относится к проекту в целом, а не к отдельным веткам? Кстате после открытия вкусных ARM7 я авэрки не забросил, собираю под обе платформыТак и времени полка прошло всего ничего - я не глуболкий старик, а уже помню как ты открыл ARM7 ;) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться