Jump to content

    

Компилятор IAR из командной строки и из IDE

Пытаюсь переползти из 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 работает корректно (по крайней мере на первый взгляд), но напрягает что есть отличия....

 

Есть идеи что я сделал неправильно?

 

Share this post


Link to post
Share on other sites

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

 

Share this post


Link to post
Share on other sites
Мне кажется что при компиляции отличаются константы CONTRAST_MIN и CONTRAST_MAX. ИМХО, следует проверить пути и сравнить копии исходных файлов в проектах (для IAR IDE и Eclipse в разных же каталогах проекты храняться?).

 

 

Позор на мою седую голову....

Спасибо за пинок в правильную сторону.....

Share this post


Link to post
Share on other sites
Тот же самый проект компилируется и собирается в IAR.

если есть проект для IAR - самый простой способ обойтись без мейка, (вернее сделать травильный мейк) просто вызвать IarBuild.exe указав проект traget и что делать. тогда будет компилироваться однозначно как в IAR, потому что IAR его и вызывает.

Share this post


Link to post
Share on other sites
если есть проект для IAR - самый простой способ обойтись без мейка, (вернее сделать травильный мейк) просто вызвать IarBuild.exe указав проект traget и что делать. тогда будет компилироваться однозначно как в IAR, потому что IAR его и вызывает.

 

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

 

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

 

 

 

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this