Keil System Viewer - просмотр содержимого регистров микроконтроллера
В четвертой версии Keil uVision посмотреть состояние портов ввода-вывода в режиме отладки можно было открыв окно из вкладки, например: Peripherials -> General Purpose IO -> GPIOA . В пятой версии такое решение "из коробки" убрали, но сделали возможность подключения внешнего файла с описанием регистров периферийных устройств для их отображения отладчиком.
Информация из help-файла:
Вкладка System Viewer отображает информацию о регистрах периферийных устройств при отладке приложения. Механизмом отображения информации о регистрах периферийных устройств является файл регистра периферийных устройств. Эти файлы называются в соответствии с устройством или серией устройств, к которым они принадлежат. Файлы расположены в папке ..\ARM\SFD\vendor\device_series и имеют расширение *.SFR.
Устройства, поддерживаемые MDK, настроены на автоматическое отображение информации о регистрации периферийных устройств. Однако, если файл регистрации периферийных устройств отсутствует, вы можете добавить этот файл в базу данных устройств или в проект, как описано ниже.
Как накрафтить sfr-файл
Для начала необходимо найти svd-файл (System View Description) - файл описания системного представления. Эти файлы предоставляются производителями микроконтроллеров и содержат информацию о регистрах периферии и пр. в виде обычного xml-файла. Информация используется в отладчике различных сред разработки для отображения состояния устройств микроконтроллера.
Вариант 1: найти требуемый файл в среде Keil uVision.
- Поиском в проводнике в каталоге установленного Keil'а выбрать нужный файл вида <Имя_семейства_микроконтроллера>.svd, или
- В окне свойств проекта "Options for Target ..." на вкладке "Target" (поставив галочку "Use custom file") кнопкой выбора открыть каталог "System Viewer File". В каталоге по умолчанию установлен фильтр на *.sfr-файлы. Переключить на All Files. Должны отобразиться svd-файлы.
Найденые в Keil'е (версии 5.41 2024 года) файлы оказались 2016 года.
Вариант 2: найти требуемый файл в среде STM32Cube.
При установленном CUBE от STMicroelectronics, простейший поиск в проводнике находит в недрах CubeIDE нужный файл. Например: STM32F103.svd.
Выбрать файл одного из двух вариантов и преобразовать его в sfr-формат.
В пакете Keil'а есть утилита: System View Description Converter (SVDConv), которая расположена: Keil_v5/UV4/SVDConv.exe
Копируем в папку с утилитой найденный svd-файл. Копируем именно svd-файл в папку с утилитой, т.к. запуск утилиты в другом месте не приводит к генерации sfr-файла (видимо использует другие файлы этого каталога).
Сделать bat-файл или с помощью Total Commander сформировать командную строку по образцу:
SVDConv <SVD file> --generate=sfr
Для платы Blue pill командная строка выглядит так:
SVDConv.exe STM32F103.svd --generate=sfr
Запустить. В результате получим два файла, один из которых требуемый .sfr
Разместить файлы в каталоге, рекомендованном Keil. Примерно так: C:\Keil_v5\ARM\SFD\ST\STM32F1xx\STM32F103.sfr
Путь должен совпадать [но это не точно, не проверял] с нижней строкой в окне: File -> Device Database... -> Device Database
Подключить файл к проекту в окне "Options for Target ..." на вкладке "Target" (поставив галочку "Use custom file"):
Теперь в режиме отладки доступно меню: System Viwer Windows:
и окно просмотра состояния регистров периферийных устройств: