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

 
 
> Компилятор IAR из командной строки и из IDE, Результат должен совпадать?!
Alfa
сообщение Mar 23 2012, 04:18
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 52
Регистрация: 9-02-06
Из: Челябинск
Пользователь №: 14 160



Пытаюсь переползти из IDE IAR на Eclipse (компиляция из командной строки)...

Написан makefile для eclipse. Проект компилируется и собирается.
Тот же самый проект компилируется и собирается в IAR.
Логи компиляции в IAR и в Eclipse полностью совпадают (параметры передаваемые компилятору и линкеру).

Но выходной размер flash и озу получается разный....

Стал смотреть получаемые листинги отдельных файлов.

компиляция из eclipse:
8 072 bytes of CODE memory (+ 488 bytes shared)
81 bytes of CONST memory
25 bytes of DATA memory

компиляция из IAR:
8 060 bytes of CODE memory (+ 488 bytes shared)
81 bytes of CONST memory
25 bytes of DATA memory

кусок листинга eclipse
Код
    621                     // применим контрастность
    622                    AT91C_BASE_PWMC_CH3->PWMC_CUPDR=CONTRAST_MIN+ParametersPCN.Contrast*(CONTRAST_MAX-CONTRAST_MIN)/100;
   \   000005A4   E4249FE5           LDR         R2,??FillInOutParamPCN_25 ;; 0xfffcc270
   \   000005A8   4500D7E5           LDRB        R0,[R7, #+0x45]
   \   000005AC   4C10A0E3           MOV         R1,#+0x4C
   \   000005B0   401E81E3           ORR         R1,R1,#+0x400
   \   000005B4   910000E0           MUL         R0,R1,R0
   \   000005B8   6410A0E3           MOV         R1,#+0x64
   \   000005BC   ........           _BLF        ??div32_a,??rA??div32_a
   \   000005C0   7800A0E3           MOV         R0,#+0x78
   \   000005C4   500E80E3           ORR         R0,R0,#+0x500
   \   000005C8   010080E0           ADD         R0,R0,R1
   \   000005CC   000082E5           STR         R0,[R2, #+0]


кусок листинга IAR
Код
    621                     // применим контрастность
    622                    AT91C_BASE_PWMC_CH3->PWMC_CUPDR=CONTRAST_MIN+ParametersPCN.Contrast*(CONTRAST_MAX-CONTRAST_MIN)/100;
   \   000005A4   D8249FE5           LDR         R2,??FillInOutParamPCN_25 ;; 0xfffcc270
   \   000005A8   4500D7E5           LDRB        R0,[R7, #+0x45]
   \   000005AC   7D1EA0E3           MOV         R1,#+0x7D0
   \   000005B0   910000E0           MUL         R0,R1,R0
   \   000005B4   6410A0E3           MOV         R1,#+0x64
   \   000005B8   ........           _BLF        ??div32_a,??rA??div32_a
   \   000005BC   7D0F81E2           ADD         R0,R1,#+0x1F4
   \   000005C0   000082E5           STR         R0,[R2, #+0]



В принципе то что собралось в eclipse работает корректно (по крайней мере на первый взгляд), но напрягает что есть отличия....

Есть идеи что я сделал неправильно?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 4)
VslavX
сообщение Mar 23 2012, 05:09
Сообщение #2


embarrassed systems engineer
*****

Группа: Свой
Сообщений: 1 083
Регистрация: 24-10-05
Из: Осокорки
Пользователь №: 10 038



Мне кажется что при компиляции отличаются константы CONTRAST_MIN и CONTRAST_MAX. ИМХО, следует проверить пути и сравнить копии исходных файлов в проектах (для IAR IDE и Eclipse в разных же каталогах проекты храняться?).
Go to the top of the page
 
+Quote Post
Alfa
сообщение Mar 23 2012, 05:40
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 52
Регистрация: 9-02-06
Из: Челябинск
Пользователь №: 14 160



Цитата(VslavX @ Mar 23 2012, 11:09) *
Мне кажется что при компиляции отличаются константы CONTRAST_MIN и CONTRAST_MAX. ИМХО, следует проверить пути и сравнить копии исходных файлов в проектах (для IAR IDE и Eclipse в разных же каталогах проекты храняться?).



Позор на мою седую голову....
Спасибо за пинок в правильную сторону.....
Go to the top of the page
 
+Quote Post
KRS
сообщение Mar 23 2012, 07:19
Сообщение #4


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

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



Цитата(Alfa @ Mar 23 2012, 08:18) *
Тот же самый проект компилируется и собирается в IAR.

если есть проект для IAR - самый простой способ обойтись без мейка, (вернее сделать травильный мейк) просто вызвать IarBuild.exe указав проект traget и что делать. тогда будет компилироваться однозначно как в IAR, потому что IAR его и вызывает.
Go to the top of the page
 
+Quote Post
Alfa
сообщение Mar 23 2012, 08:31
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 52
Регистрация: 9-02-06
Из: Челябинск
Пользователь №: 14 160



Цитата(KRS @ Mar 23 2012, 13:19) *
если есть проект для IAR - самый простой способ обойтись без мейка, (вернее сделать травильный мейк) просто вызвать IarBuild.exe указав проект traget и что делать. тогда будет компилироваться однозначно как в IAR, потому что IAR его и вызывает.


Есть желание получить универсальное решение. Так что IarBuild.exe не катит.

PS: те куски листинга которые показывал теперь одинаковые (действительно исходники отличались) . В других файлах есть отличия, но там тоже видимо что менялось...



Go to the top of the page
 
+Quote Post

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

 


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


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