ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
18 июля
144706 Топик полностью
Сергей Борщ (16.01.2009 01:44, просмотров: 116) ответил Evgeny_CD на К вопросу о статических и данамических ОСях. Навеяно ->
Эти приемы используются. В scmRTOS статически задаются количество процессов и размеры их стеков. Исходя из количества процессов автоматически выбирается подходящий тип переменной карты процессов, в порте для ARM выбирается оптимальная реализация функции поиска наиболее приоритетного процесса в карте. Параметром шаблона можно задавать тип переменной-счетчика в очередях. Есть сканер кода, который проверяет совместимость заданных настроек. Так что вопрос чисто риторический, и может быть сформулирован иначе: "А почему вы, Evgeny_CD, не делаете такие ОСи"? :) Ответ вы, скорее всего, знаете- идеальная программа должна быть написана на ассемблере и на ее написание уйдет бесконечное количество времени. К моменту написания она будет уже никому не нужна. Любое решение обладает преимуществами и недостатками. Даже в embedded-применениях на этапе компиляции может быть неизвестно необходимое количество процессов, размеры очередей, количество необходимых сервисов и прочее... Их приходится создавать динамически, проигрывая в скорости и размере кода по сравнению со статическим распределением ресурсов. Опять же ваше предложение "обращение по константным адресам" вместо "манипуляций с указателями" на ARM даст обратный ожидаемому вами эффект - за счет развитой косвенной адресации обращение по указателям (с манипуляцией) очень эффективно, а вот абсолютный адрес в команду не влезает, и обращение по абсолютному адресу выливается в два обращения по указателю: сначала косвенно относительно PC в регистр грузится адрес, потом косвенно по этому регистру идет обращение. Даже на обожаемой вами Xмеге косвенное обращение к нескольким рядом расположенным переменным начиная с какого-то количества этих обращений уже будет эффективнее: LD, ST занимают одно слово, LDS, STS - два.