ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
27 ноября
91076 Топик полностью
Алексей Мусин (09.06.2007 10:23, просмотров: 1) ответил blackbit на ..кстати, как раз все понятно. Время действительно будет меньше, ведь сам обработчик будет отрабатываться быстрее, если его переменные запихать в залоченные регистры.
Да, там часть залоченных регистров юзалась под нужды ОС. Из доки на scmRTOS v2 (где lock был убран): С AVR’ом все оказалось гораздо «интереснее». AVR имеет два весьма «кривых» момента с точки зрения ОС. Во-первых, у него слишком много регистров. Используется из них едва ли половина, но при переключении контекстов таскать нужно все 32. Для улучшения ситуации в предыдущих версиях было принято решение заблокировать часть регистров от использования их компилятором. Компилятор из пакета IAR EWAVR дает возможность это сделать с помощью ключа –-lock_regs, AVR-GCC – с помощью ключа –ffixed-<register>, и в тех портах были заблокированы регистры r4-r15. К сожалению, и этот подход не лишен недостатков. Во-первых, возни- кает необходимость в перекомпиляции run-time библиотек... Исходя их этих предпосылок, текущий вариант порта выполнен без блокировки регистров. Это, разумеется, привело к тому, что размер контекста увеличился на 12 байт и время переключения контекста также возросло на 12*41 = 48 тактов. Зато отсутствуют вышеперечисленные недостатки.