| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| Интересна заигравка с цикъл. http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=2803 |
Страница 1 от 1 |
| Автор: | Nikola Kirov [ Чет Авг 24, 2006 6:22 pm ] | |||||||||
| Заглавие: | Интересна заигравка с цикъл. | |||||||||
Оптимизирам си една библиотека и рекох да приведа в по човешки вид това но ми стана интересно кво е сътворил IAR като асемблер
учудих се че на най ниското ниво на оптимизация е компилирано много правилно като проверка а не като цикъл и няма смисъл да го пипам изобщо. Някой има ли наблюдение как се компилират подобни извращения с циклите в други среди? |
||||||||||
| Автор: | miro_atc [ Чет Авг 24, 2006 8:12 pm ] |
| Заглавие: | |
е тука просто няма цикъл почти всики компилатори изяждат всякакви константни изрази и проверка на константи. Само за GCC не съм сигурен, щото на него като му изключиш оптимизациите може всичко да очакваш |
|
| Автор: | Nikola Kirov [ Чет Авг 24, 2006 8:17 pm ] |
| Заглавие: | |
На големите нива на оптимизация компилатора задължително трябва да го компилира без цикъла но ми стана интересно че на най ниско на което обикновенно и се дебъгва в IAR e изключен цикъла. |
|
| Автор: | Dimitar [ Чет Авг 24, 2006 8:49 pm ] | |||||||||
| Заглавие: | ||||||||||
Това е интересно. Я кажи защо така дебъгваш, защото аз със IAR специално винаги съм дебъгвал на full оптимизация. |
||||||||||
| Автор: | Nikola Kirov [ Чет Авг 24, 2006 8:58 pm ] |
| Заглавие: | |
И как дебъгваш на full оптимизация. То кода който се генерира тогава е толкова раздробен в някой участъци е изключен даже. Как дебъгваш? Маркера за стъпките скача като побъркан от място на място Даже за понякога изключвам изобщо оптимизацията че да имам видимост за всички локални променливи. Иначе в зависимост от конкретния случай може и да не виждаш стойноста на някоя. Най вече в случаите когато до края на функцията не се ползва. Но като трябва да видиш стойноста и след последната операция с нея е неприоятно. Изключването на оптимизацията изобщо решава проблема. Поне при AVR ската версия. |
|
| Автор: | Dimitar [ Чет Авг 24, 2006 9:04 pm ] |
| Заглавие: | |
Много рядко се е случвало при MSP430 - а го държахме на пълна оптимизация, защото се борехме за всеки байт програмна памет. Аз мислих, че някаква друга ти е идеята, но за променливите си прав. |
|
| Автор: | Nikola Kirov [ Чет Авг 24, 2006 9:10 pm ] |
| Заглавие: | |
Ами опримизацията може да се задава отделно за всеки фаил от проекта. Даже с #pragma някаква може да се изключва оптимизацията локално за участък от кода даже. Така че не пречи за фаила с който работиш в момента да я изключиш и да си дебъгваш спокойно |
|
| Автор: | Dimitar [ Чет Авг 24, 2006 9:13 pm ] |
| Заглавие: | |
Абе човек - оставаха ни от 3 до 20-на свободни байта в програмната памет. Каквото и да изключа - все надхвърляше |
|
| Страница 1 от 1 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|