К1921ВК01Т - вопросы по ТО и его доработка
Модераторы: ea, dav, bkolbov, Alis, pip, _sva_
- Лашкевич
- Сообщения: 373
- Зарегистрирован: 13 май 2015, 13:10
- Предприятие: ООО "НПФ Вектор"
- Откуда: Москва
- Контактная информация:
Re: К1921ВК01Т - вопросы по ТО и его доработка
1. В описании регистра AQCSFRC и при поиске этого регистра по тексту описания не получается найти, когда именно (в какой момент времени) применятся настройки, которые он конфигурирует. У тексаса есть специальное поле RLDCSF регистра AQSFRC, которое настраивает поведение регистра AQCSFRC (параметры теневой загрузки). В данном ТО написано, что RLDCSF трогать нельзя, но как при этом работает AQCSFRC я не нашел.
2. В описании регистра AQSFRC про поле ACTSFB написано, что это действие с сигналом на выходе, но не указано, когда это действие выполняется. Нужно указать что-то типа, "действие при получении сигнала формирования выхода полем OTSFB" или как-то так, иначе трудно догадаться, как регистр AQSFRC работает и как им пользоваться. Или более подробно расписать в тексте ТО. Аналогично нужно дополнить про поля OTSFA и ACTSFA. Также написать, как у этого регистра с "теневыми" значениями - имеются ли они, и в какой момент применяются его настройки.
3. Поле CAPSYNCSEL регистра PWM_CTRL. Про него написано, что он выбирает источник синхронизации, но не написано, что для блоков захвата. Из описания поля можно подумать, что он влияет на синхронизацию модулей ШИМ. Можно, конечно, из рисунка 14.3 понять что куда, но лучше дополнить описание регистра более четко.
4. Поле CAPSYNCSEL, как и многие другие, не ищется по PDF документу из-за того, что оно разбито на несколько строк. Это очень неудобно, нужно что-то с этим сделать. Иначе, глядя в код программы, сложно быстро найти в документации что имеется ввиду.
2. В описании регистра AQSFRC про поле ACTSFB написано, что это действие с сигналом на выходе, но не указано, когда это действие выполняется. Нужно указать что-то типа, "действие при получении сигнала формирования выхода полем OTSFB" или как-то так, иначе трудно догадаться, как регистр AQSFRC работает и как им пользоваться. Или более подробно расписать в тексте ТО. Аналогично нужно дополнить про поля OTSFA и ACTSFA. Также написать, как у этого регистра с "теневыми" значениями - имеются ли они, и в какой момент применяются его настройки.
3. Поле CAPSYNCSEL регистра PWM_CTRL. Про него написано, что он выбирает источник синхронизации, но не написано, что для блоков захвата. Из описания поля можно подумать, что он влияет на синхронизацию модулей ШИМ. Можно, конечно, из рисунка 14.3 понять что куда, но лучше дополнить описание регистра более четко.
4. Поле CAPSYNCSEL, как и многие другие, не ищется по PDF документу из-за того, что оно разбито на несколько строк. Это очень неудобно, нужно что-то с этим сделать. Иначе, глядя в код программы, сложно быстро найти в документации что имеется ввиду.
- Лашкевич
- Сообщения: 373
- Зарегистрирован: 13 май 2015, 13:10
- Предприятие: ООО "НПФ Вектор"
- Откуда: Москва
- Контактная информация:
Re: К1921ВК01Т - вопросы по ТО и его доработка
Описание регистра VTOR - в оригинальной документации на арм про этот регистр написано больше важного и интересного. Например, указано, что записываемое в поле TBLOFF смещения должно быть само сдвинуто на столько же бит, насколько этого поле сдвинуто в регистре VTOR - видимо, чтобы приравнивать VTOR напрямую желаемому адресу. Кроме того, есть взаимосвязь между количеством используемых прерываний и количеством нулей в нижней части адреса.
Думаю, в описании надо это все детализировать для однозначности.
Думаю, в описании надо это все детализировать для однозначности.
- Лашкевич
- Сообщения: 373
- Зарегистрирован: 13 май 2015, 13:10
- Предприятие: ООО "НПФ Вектор"
- Откуда: Москва
- Контактная информация:
Re: К1921ВК01Т - вопросы по ТО и его доработка
Не могу найти в описании регистра AIRCR (определение групп и подгрупп Энвик) и его взаимосвязи с регистрами приоритетов прерываний Энвик->ICPR. Есть ли ограничения на распределение групп и подгрупп прерываний в данном изделии? Сколько допустимо групп, подгрупп? Думаю, нужно дополнить ТО и описание регистров этими данными.
Re: К1921ВК01Т - вопросы по ТО и его доработка
Да, его трогать не стоит. По умолчанию там 00b, что значит условие CTR=0 (как и в тексасе). Да, пояснить это стоит.Лашкевич писал(а): ↑27 июн 2017, 17:49 В описании регистра AQCSFRC и при поиске этого регистра по тексту описания не получается найти, когда именно (в какой момент времени) применятся настройки, которые он конфигурирует. У тексаса есть специальное поле RLDCSF регистра AQSFRC, которое настраивает поведение регистра AQCSFRC (параметры теневой загрузки). В данном ТО написано, что RLDCSF трогать нельзя, но как при этом работает AQCSFRC я не нашел.
Наверное вы имели ввиду регистр Энвик->IPR. Битов приоритета 3, соответственно, всего 8 приоритетов.Не могу найти в описании регистра AIRCR (определение групп и подгрупп Энвик) и его взаимосвязи с регистрами приоритетов прерываний Энвик->ICPR. Есть ли ограничения на распределение групп и подгрупп прерываний в данном изделии? Сколько допустимо групп, подгрупп? Думаю, нужно дополнить ТО и описание регистров этими данными.
- Лашкевич
- Сообщения: 373
- Зарегистрирован: 13 май 2015, 13:10
- Предприятие: ООО "НПФ Вектор"
- Откуда: Москва
- Контактная информация:
Re: К1921ВК01Т - вопросы по ТО и его доработка
Ну, в общем, да, все что с Энвик нужно описать - в ТО сейчас сказано что приоритетов 15, и есть еще группы и подгруппы приоритетов, что, как я понимаю, ложная информация.
Re: К1921ВК01Т - вопросы по ТО и его доработка
1)Регистр ECCTL1. Поле STOP_WRAP. Вопрос Что произойдет при циклическом захвате с таймером и кольцевым буфером, когда сработает счетчик событий. Написано "останов" в описании поля, но это для однократного захвата, а циклический не расписан...Будет ли останов таймера при циклической обработке?
2)VTOR. Записывая адрес смещения в этот регистр, нужно ли его сдвигать на 7 бит?(первые 7 бит возможно зарезервированы). Или можно брать адрес и писать в этот регистр напрямую без сдвигов?
3)Энвик->IP[(uint32_t)(IRQn)] = ((priority << (8 - __Энвик_PRIO_BITS)) & 0xff); Так мы задаем Приоритет... Вопрос чему равен регистр __Энвик_PRIO_BITS(обычно это число равно 4)...
2)VTOR. Записывая адрес смещения в этот регистр, нужно ли его сдвигать на 7 бит?(первые 7 бит возможно зарезервированы). Или можно брать адрес и писать в этот регистр напрямую без сдвигов?
3)Энвик->IP[(uint32_t)(IRQn)] = ((priority << (8 - __Энвик_PRIO_BITS)) & 0xff); Так мы задаем Приоритет... Вопрос чему равен регистр __Энвик_PRIO_BITS(обычно это число равно 4)...
Re: К1921ВК01Т - вопросы по ТО и его доработка
4)Контроллер прерываний Энвик
Контроллер обеспечивает:
- программное задание уровня приоритета независимо для каждого прерывания в
диапазоне от 0 до 15 (прерывание с уровнем 0 имеет наивысший приоритет);
- генерирование сигнала прерывания по фронту и по уровню сигнала;
- динамическое изменение приоритета прерываний;
- разделение по группам с одинаковым приоритетом и по подгруппам внутри одной
группы;
- передача управления из одного обработчика в другой без восстановления
контекста.
Это описание прерываний... Вопрос что значит фраза "передача управления из одного обработчика в другой без восстановления
контекста"
Контроллер обеспечивает:
- программное задание уровня приоритета независимо для каждого прерывания в
диапазоне от 0 до 15 (прерывание с уровнем 0 имеет наивысший приоритет);
- генерирование сигнала прерывания по фронту и по уровню сигнала;
- динамическое изменение приоритета прерываний;
- разделение по группам с одинаковым приоритетом и по подгруппам внутри одной
группы;
- передача управления из одного обработчика в другой без восстановления
контекста.
Это описание прерываний... Вопрос что значит фраза "передача управления из одного обработчика в другой без восстановления
контекста"
Re: К1921ВК01Т - вопросы по ТО и его доработка
1) Поле STOP_WRAP не влияет на работу счетчика TSCTR, только на возможность осуществления захвата. Счет таймера управляется состоянием бита TSCTRSTOP в ECCTL1.Александр писал(а): ↑03 июл 2017, 09:48 1)Регистр ECCTL1. Поле STOP_WRAP. Вопрос Что произойдет при циклическом захвате с таймером и кольцевым буфером, когда сработает счетчик событий. Написано "останов" в описании поля, но это для однократного захвата, а циклический не расписан...Будет ли останов таймера при циклической обработке?
2)VTOR. Записывая адрес смещения в этот регистр, нужно ли его сдвигать на 7 бит?(первые 7 бит возможно зарезервированы). Или можно брать адрес и писать в этот регистр напрямую без сдвигов?
3)Энвик->IP[(uint32_t)(IRQn)] = ((priority << (8 - __Энвик_PRIO_BITS)) & 0xff); Так мы задаем Приоритет... Вопрос чему равен регистр __Энвик_PRIO_BITS(обычно это число равно 4)...
4)Контроллер прерываний Энвик
Контроллер обеспечивает:
- программное задание уровня приоритета независимо для каждого прерывания в
диапазоне от 0 до 15 (прерывание с уровнем 0 имеет наивысший приоритет);
- генерирование сигнала прерывания по фронту и по уровню сигнала;
- динамическое изменение приоритета прерываний;
- разделение по группам с одинаковым приоритетом и по подгруппам внутри одной
группы;
- передача управления из одного обработчика в другой без восстановления
контекста.
Это описание прерываний... Вопрос что значит фраза "передача управления из одного обработчика в другой без восстановления
контекста"
2) Необходимо писать адрес на прямую, т.е. просто глобальный адрес, обязательно выравненный (биты 6-0 равны нулю).
3) Равен 3.
4) Контекст - состояние регистров общего назначения ядра. При переходе между прерываниями, контекст основной программы не восстанавливается, за счет этого переход происходит за 6 тактов, а не за 12. Описание с сайта арм (найдите поиском там Tail chaining).
Re: К1921ВК01Т - вопросы по ТО и его доработка
А что Вы подразумеваете под регистрами общего назначения?