-
- Багу видимо поправили в 4.11C. Тока гдеж его взять... diper(1455 знак., 25.10.2008 00:51)
- Update можно на сайте IAR скачать. Только во-первых, для доступа к разделу скачивания нужно ввести валидный номер лицензии для full-версии. А во-вторых, update работает опять же только для full-версии, а не для evaluation :( - rezident(25.10.2008 01:15)
- Видимо нужно ждать выхода какой-нибудь новой версии типа 4.20A. - rezident(25.10.2008 01:18)
- Дык я что полез то... на следующей неделе привезут семплы MSP430F471xx, а h-файлов в IARе для них нету. Ну не самому же писать... :) diper(58 знак., 25.10.2008 02:54)
- "Ну не самому же писать" --- Пурква бы да не па? О_о Разве это так сложно? Вон некоторые не только сами все хидеры пишут, но даже и IDE IAR не пользуются, просто вызывая батнички из командной строки ;) - rezident(25.10.2008 22:13)
- Дык я что полез то... на следующей неделе привезут семплы MSP430F471xx, а h-файлов в IARе для них нету. Ну не самому же писать... :) diper(58 знак., 25.10.2008 02:54)
- Видимо нужно ждать выхода какой-нибудь новой версии типа 4.20A. - rezident(25.10.2008 01:18)
- Update можно на сайте IAR скачать. Только во-первых, для доступа к разделу скачивания нужно ввести валидный номер лицензии для full-версии. А во-вторых, update работает опять же только для full-версии, а не для evaluation :( - rezident(25.10.2008 01:15)
- кроссворк делает так: Mahagam(524 знак., 16.09.2008 12:35)
- Теоретически эта команда очищает старший байт. Практически это недоработка оптимизатора - то же самое происходит и в следующей команде. - Сергей Борщ(16.09.2008 14:16)
- IAR EW430 4.10A без оптимизации, делает аналогично. rezident(285 знак., 16.09.2008 12:49)
- Невесело. Посижу я пока на старичке 3.42a - 3m(15.09.2008 23:59)
- В предыдущей версии 4.10A этот пример правильно компилирует. - rezident(16.09.2008 11:10)
- Есть предположение, может, глупое. 4.11B почему-то воспринимает data как 1-разрядную переменную, вследствие чего в листинге видим только перенос младшего бита из data в P4OUT. - Argon(14.09.2008 00:29)
- Чтобы нам не терзаться потугами телепатии, топикстартер мог бы более полный текст исходника привести. А то ведь нам неизвестно как определена и инициализирована переменная data. Я в своем эксперименте делал ее глобальной и тут же инициализировал rezident(20 знак., 14.09.2008 00:34)
- Ну или P4OUT как 1-разрядную. В хэдерах бы порыться потщательнее. - Argon(14.09.2008 00:32)
- что-то этот участок кода вообще не похож на исходник. Вы уверены, что эти строки относятся именно к этой строчке исходника? Может это глюк в листинге при высокой оптимизации, а реальный код этой строчки исходника находится ниже или выше? - Cepгeй Бopщ(13.09.2008 23:59)
- Вот такой код глючит, от оптимизации не зависит. Если у ааа убрать volatile то глюк исчезнет. diper(174 знак., 14.09.2008 17:21)
- А компилятор не выдавал предупреждения типа undefined behaviour? Ну типа "не могу сообразить в какой последовательности выполнять эти ваши операции" - Argon(11.09.2008 10:31)
- Дык здесь вовсе нет неопределенности. Сначала выполняются операции справа от "=", затем полученное значение присваивается тому что слева от "=". Но компилятор действительно тупит почему-то. Я проверил на 4.11B и получил такой же (неправильный) результ - rezident(11.09.2008 22:53)
- а я обращал внимание, что компилятор ругался на подобную конструкцию из трех бинарных операций справа от "=". Якобы "не знаю что вы раньше хотите сделать - P4OUT&0xf0 или data&0x0f, они ведь равнозначны". Вот не помню какая версия так ругалась. Но Argon(106 знак., 13.09.2008 22:11)
- Вы путаете. Компилятор выдает такое предупреждение если справа от оператора "=" находится выражение с более чем одной volatile-переменной. В данном случае volatile-переменная одна, P4OUT. - Cepгeй Бopщ(13.09.2008 23:59)
- Угу. Предупреждение было бы, если бы выражение выглядело, например, как P4OUT |= (P4OUT^data)&data; В этом случае справа от "=" две volatile переменных P4OUT. - rezident(14.09.2008 00:36)
- а у меня был не этот случай, а похожий и обе переменные могли быть volatile, в чем сейчас не уверен. Тогда я разбивал эту конструкцию на 2. Тем не менее проблема 4.11B в чем-то другом. dxwak говорит, оптимизации не было в обоих случаях. rezident Argon(25 знак., 14.09.2008 00:21)
- Вы путаете. Компилятор выдает такое предупреждение если справа от оператора "=" находится выражение с более чем одной volatile-переменной. В данном случае volatile-переменная одна, P4OUT. - Cepгeй Бopщ(13.09.2008 23:59)
- а я обращал внимание, что компилятор ругался на подобную конструкцию из трех бинарных операций справа от "=". Якобы "не знаю что вы раньше хотите сделать - P4OUT&0xf0 или data&0x0f, они ведь равнозначны". Вот не помню какая версия так ругалась. Но Argon(106 знак., 13.09.2008 22:11)
- Нет dxwak(44 знак., 11.09.2008 11:44)
- Дык здесь вовсе нет неопределенности. Сначала выполняются операции справа от "=", затем полученное значение присваивается тому что слева от "=". Но компилятор действительно тупит почему-то. Я проверил на 4.11B и получил такой же (неправильный) результ - rezident(11.09.2008 22:53)
- Как будто P4OUT перестал быть volatile. Сравните определения. Ващет использование портов вывода в качестве источника данных не особенно кошерно. - Vladimir Ljaschko(11.09.2008 10:30)
- хм точнее наоборот если б P4OUT был не voltile то компилируется нормально... - diper(11.09.2008 13:44)
- Сравнил dxwak(244 знак., 11.09.2008 11:49)
- Багу видимо поправили в 4.11C. Тока гдеж его взять... diper(1455 знак., 25.10.2008 00:51)