МИКРОКОНТРОЛЛЕР AVR - Страница 53

МИКРОКОНТРОЛЛЕР AVR - МИКРОКОНТРОЛЛЕР AVR

Такое распределение РОН, хотя и поддерживает большое количество задач, на мой взгляд, не является оптимальным. Вместо этого, если вы собираетесь использовать 32 регистра для сохранения параметров задач, то лучше разделить их на части по четыре регистра для стека задач, а последние четыре использовать в качестве индексных. При таком способе разделения регистров каждой задаче соответствует своя область стека. Распределение РОН на группы показано на рис. 34.3. При этом возможно выполнение до семи задач.

Другое решение можно предложить для того, чтобы можно было выполнять операции с непосредственными значениями. Вместо того, чтобы располагать подряд регистры в блоке каждой задачи, можно разместить один регистр в первых 16-ти адресах РОН, а остальные в старшей половине 32-адресного пространства РОН. Такой подход позволит выполнять арифметические операции как с содержимым РОН, так и с непосредственно заданными операндами. Чтобы избежать неожиданностей, лучше заранее определить регистры для каждой задачи, а не вычислять их в процессе выполнения программы. Например, можно определить, что задача n использует смешение п*4 для доступа к своему блоку информации. Программный код для такой модели ОСРВ может выглядеть следующим образом:

Go to Top