Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

Глюк IAR4 ?

Отправлено Zevaka 14 декабря 2006 г. 11:27


При компиляции следующего кода (фрагмент):

for ( sram_test_page = 3; sram_test_page <= 0x0F; sram_test_page++ ) {
SELECT_SRAM_PAGE( sram_test_page );
if ( ptr[0] != sram_test_page ) {
sram_test_code = ( uint16_t ) SRAM_PAGE_BEGIN;
return( sram_test_step );
}
if ( ptr[1] != ~sram_test_page ) {
sram_test_code = ( uint16_t )( SRAM_PAGE_BEGIN + 1 );
return( sram_test_step );
}
}

получаю результат:

258 for ( sram_test_page = 3; sram_test_page <= 0x0F; sram_test_page++ ) {
\??xmemTestAll_6:
\ LDI R16, 3
\ STS sram_test_page, R16
\ LDS R16, sram_test_page
\ CPI R16, 16
\ BRCC ??xmemTestAll_7
259 SELECT_SRAM_PAGE( sram_test_page );
\ LDS R16, sram_test_page
\ STS 49151, R16
260 if ( ptr[0] != sram_test_page ) {
\ LD R16, X
\ LDS R17, sram_test_page
\ CP R16, R17
\ BREQ ??xmemTestAll_8
261 sram_test_code = ( uint16_t ) SRAM_PAGE_BEGIN;
\ LDI R16, 0
\ LDI R17, 192
\ LDI R30, 1
\ LDI R31, 1
\ ST Z, R16
\ STD Z+1, R17
262 return( sram_test_step );
\ LDS R16, sram_test_step
\ RJMP ??xmemTestAll_1
263 }
264 if ( ptr[1] != ~sram_test_page ) {
265 sram_test_code = ( uint16_t )( SRAM_PAGE_BEGIN + 1 );
\ ??xmemTestAll_8:
\ LDI R16, 1
\ LDI R17, 192
\ LDI R30, 1
\ LDI R31, 1
\ ST Z, R16
\ STD Z+1, R17
266 return( sram_test_step );
\ LDS R16, sram_test_step
\ RJMP ??xmemTestAll_1
267 }
268 }

Из кода видно, что проверка условия

if ( ptr[1] != ~sram_test_page ) {

не выполняется вообще.

Может быть кто-нибудь знает , в чем дело - это моя ошибка или
глюк компилятора ?

С Уважением, Zevaka

P.S. Оптимизация вырублена полностью




Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
введите число 654:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru