реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Переезд с IAR 3.2 на IAR 3.41
Dawyd
сообщение Dec 28 2006, 14:15
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 21
Регистрация: 26-04-06
Из: Самара
Пользователь №: 16 532



Всем привет, тут проблемка образовалась
А именно, писал я программку на ассемблере в IAR 3.2 она работала всё путем, потом поставил IAR 3.41, но както возникла необходимость снова влезть в тот старый проект, подцепил кристалл, делаю Debug, а он матерится на стек и посылает в Tools>Options.

Вопрос чё делать, в IARе я пока не очень разобрался.
P.S. Заранее благодарен за помощь.


--------------------
Лучше день потерять, что бы потом за пять минут долететь.
Go to the top of the page
 
+Quote Post
rezident
сообщение Dec 28 2006, 14:22
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(Dawyd @ Dec 28 2006, 16:15) *
Вопрос чё делать, в IARе я пока не очень разобрался.
P.S. Заранее благодарен за помощь.

Для начала нужно скачать самую последнюю версию - 3.42A. Может она менее глючная, чем предыдущая 3.41. А вообще до сих пор 3.4x были довольно сырыми и лично я пользовался версией 3.30A.
Go to the top of the page
 
+Quote Post
VAI
сообщение Dec 28 2006, 16:35
Сообщение #3


Профессионал
*****

Группа: Модераторы
Сообщений: 1 120
Регистрация: 17-06-04
Пользователь №: 37



Цитата
лично я пользовался версией 3.30A.

А какой пользуетесь?
Я пока не проводил испытаний 3.42а. Вначале февраля буду перекомпилировать большой проект с msp430f149 на msp430f1611. Вот тогда и собираюсь их сравнить.


--------------------
Если зайца бить, его можно и спички научить зажигать
Сколько дурака не бей - умнее не будет. Зато опытнее
Go to the top of the page
 
+Quote Post
rezident
сообщение Dec 28 2006, 19:42
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(VAI @ Dec 28 2006, 18:35) *
Цитата
лично я пользовался версией 3.30A.

А какой пользуетесь?

Дык 3.30A и пользуюсь. Пока еще идут авральные работы и некогда тестировать новую версию.
Go to the top of the page
 
+Quote Post
HARMHARM
сообщение Dec 28 2006, 20:30
Сообщение #5


читатель даташитов
****

Группа: Свой
Сообщений: 853
Регистрация: 5-11-06
Из: Днепропетровск
Пользователь №: 21 999



IAR 3.41 использовать не надо. Буквально сегодня столкнулся с проблемой, компилятор иногда не вставляет инструкцию AND, у меня случалось когда я маскировал байт значением 0x80; другие биты работают нормально. Убил часа 3. В 3.42 исправлено, буду проверять. А вообще лучше подождать еще smile.gif

P.S. Кстати, поставил 3.42А, там где это "исправили". Ан как не было AND, так и нету...

unsigned char TimerData[10];
if (TimerData[2] & BIT7)
??CheckRTC_2:
// A вот тут должен был быть AND.B #080h, Rxx и еще вместе с временной переменной, а лучше бы BIT.B #080h, 0x2(SP).
CMP.B #0x0, 0x2(SP)
JGE ??CheckRTC_3


Где бы взять 3.30?..

Сообщение отредактировал HARMHARM - Dec 28 2006, 21:02
Go to the top of the page
 
+Quote Post
HARMHARM
сообщение Dec 29 2006, 18:52
Сообщение #6


читатель даташитов
****

Группа: Свой
Сообщений: 853
Регистрация: 5-11-06
Из: Днепропетровск
Пользователь №: 21 999



Протестировал свой код с IAR 3.30A, выходит проблема все же в коде... Проблема следующая: проверяется бит 7 (0х80) в переменной типа unsigned char. Компилятор вставляет
CMP.B #0x0,0x2(SP)
вместо
BIT.B #0x80,0x2(SP)
в коде
if ( TimerData[2] & 0x80 )

Я понимаю, если бы был signed char... C 0x40 и меньше работает нормально.

Подскажите пожалуйста, в чем же я ошибся?
Go to the top of the page
 
+Quote Post
VAI
сообщение Dec 29 2006, 20:49
Сообщение #7


Профессионал
*****

Группа: Модераторы
Сообщений: 1 120
Регистрация: 17-06-04
Пользователь №: 37



если не хотите выкладывать текст полностью, то сделайте тестовый проект, в котором проявляется Ваша ошибка и выложите его.


--------------------
Если зайца бить, его можно и спички научить зажигать
Сколько дурака не бей - умнее не будет. Зато опытнее
Go to the top of the page
 
+Quote Post
HARMHARM
сообщение Dec 30 2006, 23:58
Сообщение #8


читатель даташитов
****

Группа: Свой
Сообщений: 853
Регистрация: 5-11-06
Из: Днепропетровск
Пользователь №: 21 999



Сделал тестовый файлик, озадачен до крайности... Прилагаю на всякий случай листинг того, что у меня компилируется.
Прикрепленные файлы
Прикрепленный файл  test.zip ( 1.83 килобайт ) Кол-во скачиваний: 51
 
Go to the top of the page
 
+Quote Post
Concorde
сообщение Jan 9 2007, 21:39
Сообщение #9


Участник
*

Группа: Свой
Сообщений: 56
Регистрация: 5-07-05
Пользователь №: 6 553



Цитата(HARMHARM @ Dec 30 2006, 23:58) *
Сделал тестовый файлик, озадачен до крайности... Прилагаю на всякий случай листинг того, что у меня компилируется.

Все правильно он скомпилировал.
При сравнении с нулем "CMP #0, 2(SP)" бит 7 (0x80) просто скопируется во флаг 'N'.
Соответственно, след. jump проверяет этот флаг.
Оптимизация (для нуля используется константный генератор - меньше кода/быстрее).
Go to the top of the page
 
+Quote Post
HARMHARM
сообщение Jan 11 2007, 11:12
Сообщение #10


читатель даташитов
****

Группа: Свой
Сообщений: 853
Регистрация: 5-11-06
Из: Днепропетровск
Пользователь №: 21 999



Цитата(Concorde @ Jan 9 2007, 20:39) *
Все правильно он скомпилировал.
При сравнении с нулем "CMP #0, 2(SP)" бит 7 (0x80) просто скопируется во флаг 'N'.
Соответственно, след. jump проверяет этот флаг.
Оптимизация (для нуля используется константный генератор - меньше кода/быстрее).

Точно! Вот ведь я слепец. Огромное спасибо! cheers.gif
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 17th July 2025 - 23:49
Рейтинг@Mail.ru


Страница сгенерированна за 0.01463 секунд с 7
ELECTRONIX ©2004-2016