[an error occurred while processing this directive]
|
Разбирался с SAM7 и есть пару вопросов:
т.к. SAM7 читает данные из flash с нулевым циклом ожидания максимум на 30МГц, то необходимо использовать один цикл ожидания в режиме ARM при частоте процессора выше 30МГц (можно сказать, что частота процессора и частота работы со flash одинаковые - в активном режиме) и нулевой цикл ожидания в режиме Thumb при любой частоте процессора
Тогда построение системы, работающей с максимальным быстродействие и применяющей USB-порт, может быть нескольких типов:
1. Частота ядра процессора д.б. около 27,429МГц (192/7) с нулевым циклом ожидания чтения данных из внутреннего flash процессора.
2. Частота ядра процессора д.б. около 48МГц с нулевым циклом ожидания чтения данных из внутреннего flash процессора и все ПО должно работать в режиме Thumb. Единственная проблема в данном случае это работа в режиме прерываний, т.к. в начале возникновения прерывания процессор переключается в режим ARM: т.о. надо сделать как минимум две команды, это jump и переключиться в режим Thumb - данный вариант мною не проверелся - насколько его правомочно применять?
3. Частота ядра процессора д.б. около 48МГц с одним циклом ожидания чтения данных из внутреннего flash процессора, но в местах ПО, где необходимо максимальное быстродействие:
3.1. Отключать прерывания и переходить в режим Thumb+нулевой цикл ожидания
3.2. Размещать кусок ПО в ОЗУ и вновь отключать прерывания, но при этом работать в режиме ARM+нулевой цикл ожидания
3.3. Запрещать вложенные прерывания, а в прерываниях работать или в режиме Thumb+нулевой цикл ожидания или в режиме ARM+обработчик в ОЗУ+нулевой цикл ожидания
Какие еще возможны варианты или уточнения?