mn2=n 0 18 августа, 2020 Опубликовано 18 августа, 2020 · Жалоба Добрый день Подскажите пожалуйста как в Keil просматривать регистры контроллера при отладке программы, например, как в AVRStudio Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AleksBak 0 18 августа, 2020 Опубликовано 18 августа, 2020 · Жалоба https://habr.com/ru/post/407083/ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Darth Vader 0 19 августа, 2020 Опубликовано 19 августа, 2020 · Жалоба Меню Peripherials в режиме отладки. Выбираете оттуда нужную периферию для просмотра её регистров. Должен быть установлен пак под целевой МК, чтобы в поле SVD был выбран файл с описанием периферии. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SII 0 19 августа, 2020 Опубликовано 19 августа, 2020 · Жалоба И не забывать: если ты смотришь регистры периферии, то они считываются, а значит, возможны побочные эффекты: скажем, сбрасывается бит запроса прерывания, поскольку регистр был считан, а этот бит сбрасывается при считывании. Для периферии нет разницы, читает её регистры процессор или же отладочный порт. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mn2=n 0 20 августа, 2020 Опубликовано 20 августа, 2020 · Жалоба 19.08.2020 в 20:40, SII сказал: И не забывать: если ты смотришь регистры периферии, то они считываются, а значит, возможны побочные эффекты: скажем, сбрасывается бит запроса прерывания, поскольку регистр был считан, а этот бит сбрасывается при считывании. Для периферии нет разницы, читает её регистры процессор или же отладочный порт. Понял, а как тогда при отладке проверить правильность настройки периферии? Вот например хочу использовать UART, настроил тактирование,порты, сам юарт. А он взял и не заработал. И начинается пляска с даташитом и просмотр кода. При работе с авр удавалось отловить косяки просматривая регистры 19.08.2020 в 05:01, Darth Vader сказал: Меню Peripherials в режиме отладки. Выбираете оттуда нужную периферию для просмотра её регистров. Должен быть установлен пак под целевой МК, чтобы в поле SVD был выбран файл с описанием периферии. Все установлено, однако все равно не работает. Гугл и оф. сайт направили на создание sfr файла из файла svd с помощью утилиты SVConv.exe однако я не могу разобраться как ее запустить. При стандартном запуске, как и любую другую программу двумя щелчками курсора, запускается консоль и закрывается, при этом sfr файла так и не появилось. Гугл сказал, что нужно запустить утилиту и прописать специальную команду, однако, как я уже и сказал, я не понял как запустить утилиту Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Darth Vader 0 20 августа, 2020 Опубликовано 20 августа, 2020 · Жалоба 9 минут назад, mn2=n сказал: я не понял как запустить утилиту Забейте пока на утилиту, раз написание командных файлов для вас проблема. Сделайте проще. Поставьте пак для вашего контроллера и всё установится автоматически - SVD скомпилируется в SFR и подхватится из пака при его установке в Кейле. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 35 20 августа, 2020 Опубликовано 20 августа, 2020 · Жалоба 3 hours ago, mn2=n said: любую другую программу двумя щелчками курсора, запускается консоль и закрывается, при этом sfr файла так и не появилось. Два щелчка недостаточно для программирования. Надо общий уровень повышать. Освоить три щелчка, например. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Obam 30 20 августа, 2020 Опубликовано 20 августа, 2020 · Жалоба Вот например хочу использовать UART, настроил тактирование,порты, сам юарт. А он взял и не заработал. И начинается пляска с даташитом и просмотр кода. Ядро останавливаешь, берёшь и руками в TXDAT пишешь байт (0x55, к примеру), а в терминале на компе (плата с компом соединена должна быть) должен увидеть "U" (или эти же 0x55, если dump-режим). В терминале жмакнул "U" - проверь (F12) RXDAT: должно появиться 0x55. Если ничего нет, то однозначно в том списке из цитаты - "косяк"; вот при остановленном ядре и проверяй настройки. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SII 0 21 августа, 2020 Опубликовано 21 августа, 2020 · Жалоба 8 hours ago, mn2=n said: Понял, а как тогда при отладке проверить правильность настройки периферии? Вот например хочу использовать UART, настроил тактирование,порты, сам юарт. А он взял и не заработал. И начинается пляска с даташитом и просмотр кода. Обычно путём пошагового выполнения программы в отладчике. Если нужно проверять состояние неких регистров -- добавить код для их чтения прямо в программу и смотреть переменные, куда было прочитано. Это позволяет считывать именно те регистры, что нужны, а не все подряд, и тем самым либо исключает побочные эффекты, либо, по крайней мере, ты знаешь, что именно было прочитано и какие при этом возможны эффекты (всё же в документации описано). Возможно, у Вас не работает из-за того, что неверно синхронизация настроена. Скажем, взяли за основу готовый пример, где UART работает от частоты проца в 32 МГц, а у Вас реально 4 МГц; естественно, для такой ситуации надо пересчитывать множители/делители (ну или заводить проц на 32 Мгц, что тоже требует определённых телодвижений). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться