05-08-2015, 09:41 AM
(Сообщение последний раз редактировалось: 05-08-2015, 09:54 AM Altor Audio.)
Nick Написал:Некоторые "аналоговые инжинеры" понимают больше чем "специализированнвые программисты".Вполне возможно, но я не только "специализированный программист, но и "аналоговый инженер" тоже :)
Nick Написал:без знания какой компилятор будет использоваться (даже для одного и того же процессора)
Для означенного выше, варианта всего два - IAR & KEIL, я предпочитаю Keil. Остальные даже не рассматриваются.
Nick Написал:Во многих случаях ручная оптимизация критических кусков всё равно может дать значимый выигрышь.
Разумеется, если криво написано, то без разницы на каком языке. Но если написано корректно, то я сколько ни раз пытался это делать - в лучшем случае мало что менялось. Компиляторы нынче достаточно умные. Достаточно только им кое-де подсказывать, а переходить на асм в 99.99% случаев нет смысла, лучше не будет.
Подсказки могут быть,например, когда в switch несколько case'ов заканчиваются одинаковой последовательностью вызовов других функция или каких действий, то если это не противоречит алгоритму, располагать их надо в одинаковой последовательности, тогда компилятор их вставит только один раз а с остальных будут просто джампы.
Или другой пример, который почти никогда не используют "РС программисты", но который часто весьма существенен для МК - если опять-же, это не противоречит алгоритму, делать цикл не for(i=0; i0;i--), ибо даже еще в Z80 была отличная команда DJNZ (decrement and jump if no zero), хотя опять-же - если i не используется внутри цикла, то умный компилятор сам превратит первый цикл во второй.
Nick Написал:Но ежели у тебя что-то работает на батарейках то возможно у тебя не будет особо выбора...У меня в основном на батарейках и работает.