- posted
15 years ago
AVRGCC ICCAVR
- Vote on answer
- posted
15 years ago
Hед.
Абсолютно правильно. Что самое смешное.
А с того, что умный шибко. GCC. Соптимизировал твой while(forver) в конструкцию вида jmp $. Ибо, следи за мыслью. Он их вначале загружает в регистры из ОЗУ и потом сравнивает. Первая стадия оптимизации, следи за мыслью -- не грузить в регистры уже там находящееся, ибо это бессмысленно и накладно по ресурсам:
lds r18, 0x0131 lds r19, 0x0132 lds r24, 0x014F lds r25, 0x0150 L1: cp r18, r24 cpc r19, r25 breq L1
Так сделает каждый разумный компилятор. Может не конкретно в таком выражении (вот IAR не делает, и это по совершенно отдельной причине), но в случае отсутствия циклов -- точно совершенно. Вторая стадия оптимизации -- выкинуть весь цикл ввиду абсурдности. Попробуй поставить разные -O0, -O1, -O2, -O3 ключи оптимизации и посмотреть что получается. Занимательно будет. И заодно почитай info gcc о ключиках, которые включают эти -Ox.
Hе виснем, а выполняем while(forever). В смысле jmp $.
google://volatile. Вобщем низачот. В очередной раз убеждаюсь, что модное @#$ (IAR) в красивой обёртке учит исключительно плохому. Если не дошло, то шибко умный в данном случае на самом деле IAR, а не GCC, который видит, что ты в данном случае сам облажался или не умеешь на C писать, но он панимашь-ли юзер-френдли должен быть, и подчищает все баги за тобой на ходу, отключая оптимизацию в явно абсурдных ситуациях.
- Vote on answer
- posted
15 years ago
- Vote on answer
- posted
15 years ago
- Vote on answer
- posted
15 years ago
- Vote on answer
- posted
15 years ago
- Vote on answer
- posted
15 years ago
- Vote on answer
- posted
15 years ago
- Vote on answer
- posted
15 years ago
- Vote on answer
- posted
15 years ago
- Vote on answer
- posted
15 years ago
- Vote on answer
- posted
15 years ago
- Vote on answer
- posted
15 years ago
- Vote on answer
- posted
15 years ago
- Vote on answer
- posted
15 years ago
- Vote on answer
- posted
15 years ago
- Vote on answer
- posted
15 years ago
Hа XXX -- лучше, а YYY -- однозначно дерьмо.
- Vote on answer
- posted
15 years ago
Да конечно XXX -- говно и поделки финских студентов. (скромно умолчу, что насколько я знаю внутри uVision тот же gcc запрятан).