Например TDA7294

Форум РадиоКот • Просмотр темы - Не считываются значения регистров под отладкой в окне Watch
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Чт июн 19, 2025 20:26:51

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: Не считываются значения регистров под отладкой в окне Watch
СообщениеДобавлено: Ср янв 22, 2025 07:55:31 
Прорезались зубы

Зарегистрирован: Чт апр 08, 2021 09:46:48
Сообщений: 225
Рейтинг сообщения: 0
Доброго дня! Нужны дополнительные умы!)
Решил создать проект с нуля без cubeMX, ручками. Появилась такая проблема - не отображаются данные регистров под отладкой(в окне Watch), место значения укзанао <cannot evaluate>. Причем если просматривать значения регистров через средство от keil "Periphery" то все работает, значения показываются и изменяются в процессе работы программы. Причем значения переменных показывается как нодо.
Я думал может тактирования не включено, но значения не показываются даже на таких регистрах как "FLASH->ACR, RCC-CR", а для них в программе тактирование не нужно включать. Но если создать проект через cubeMX, то все работает как надо. Так и кажется что в какой-то мелочи проблема, что-то может в настройках, или файл какой добавить, но сижу уже два дня над этой проблемой много что перепробовал, но в итоге так ничего и не нашел. Кто сталкивался с таким, подскажи в чем может быть проблема?



В файле system_stm32f4xx.c я оставил только следующий код:

#include "system_stm32f4xx.h"

uint32_t SystemCoreClock = 168000000;
const uint8_t AHBPrescTable[16] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 6, 7, 8, 9};
const uint8_t APBPrescTable[8] = {0, 0, 0, 0, 1, 2, 3, 4};

void SystemInit(void)
{
SCB->CPACR |= ((3UL << 10*2)|(3UL << 11*2)); /* set CP10 and CP11 Full Access */
}



В файле main.с я настраиваю flash, системную частоту(на168МГц) и systick. Все делаю только библиотекой CMSIS(не спрашивайте почему, :D)

Микроконтроллер STM32F407VET6. Работаю в IDE Keil


Вложения:
Screenshot_11.png [5.63 KiB]
Скачиваний: 46
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Не считываются значения регистров под отладкой в окне Wa
СообщениеДобавлено: Вт янв 28, 2025 06:15:28 
Это не хвост, это антенна

Карма: -10
Рейтинг сообщений: 171
Зарегистрирован: Вт авг 15, 2017 10:51:13
Сообщений: 1483
Рейтинг сообщения: 0
Я думал может тактирования не включено, но значения не показываются даже на таких регистрах как "FLASH->ACR, RCC-CR"
А почему они у вас имеют тип 'uchar'? Они ведь должны быть 32-битными.

, а для них в программе тактирование не нужно включать.
Имхо - тактирование тут не при чём. Если было бы из-за этого, то отображались бы или случайные значения или что-то типа "Unable to access".
Скорее всего - что-то у вас неправильно объявлено. Может быть есть конфликт нескольких дублирующих объявлений или что-то подобное.
Для теста попробуйте создать свою структуру описания проблемных регистров периферии (со своим неконфликтующим именем естественно), натянуть её на адресное пространство соответствующей периферии и посмотреть в "Watch".

Вот как FLASH.ACR выглядит у меня в Watch IAR для STM32F429:
Изображение
как видно - регистры 32-битные. И это ещё до включений всяческих тактирований, на самом старте прошивки.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Не считываются значения регистров под отладкой в окне Wa
СообщениеДобавлено: Пт янв 31, 2025 18:36:14 
Прорезались зубы

Зарегистрирован: Чт апр 08, 2021 09:46:48
Сообщений: 225
Рейтинг сообщения: 0
uchar пишется keil всегда если какая-то проблема. Например если мы в watch запиши несуществующий регистр то тоже тип будет uchar.
До сих пор я еще ищу решение для этой проблемы. Есть небольшая зацепка, в проекте, сгенерированном Cubemx, как я уже писал, регистры все показывает нормально, но если удалить библиотеку HAL, то возникает такая же песня(регистры перестают видеться). Ищу проблему, страдаю


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Не считываются значения регистров под отладкой в окне Wa
СообщениеДобавлено: Сб фев 01, 2025 23:18:14 
Прорезались зубы

Зарегистрирован: Чт апр 08, 2021 09:46:48
Сообщений: 225
Рейтинг сообщения: 0
Вроде победил, а вроде и нет.
В общем, если использовать в функции main какую нибудь функцию HAL, то значение регистров показываются. Например если в пустую функцию main записать функцию «HAL_GPIO_WritePin(GPIOA, GPIO_PIN_6, GPIO_PIN_SET)» то регистры в watch показываются. Но это работает не со всем функции HAL.
Я не могу понять почему такое поведение, конкретно из-за чего зависит отображения значение регистров в watch?
Есть у кого нибудь какие догадки, ибо у меня в голове уже ничего не приходит?

Добавлено after 4 hours 40 minutes 14 seconds:
Re: Не считываются значения регистров под отладкой в окне Watch
Вообщем все что было выяснено:
в проекте с библиотекой SPL, в пустом проекте тоже значение регистров не отображаются в окне watch. Но если написать следующий код:
GPIO_InitTypeDef GPIO_InitStructure = {0};
GPIO_Init(GPIOA, &GPIO_InitStructure);
то отображаться регистры будут(даже если функция GPIO_Init пустая). Если передачу структуры в функцию GPIO_Init удалить то регистры НЕ будут отображаться.
Когда значение регистров отображаются(для примера взят регистр FLASH->ACR) то в окне Command отображается следующею:
Вложение:
Screenshot_16.png [12.79 KiB]
Скачиваний: 34


если НЕ отображается:
Вложение:
Screenshot_17.png [11.88 KiB]
Скачиваний: 27


В итоге я думаю что если возникает какая-о операция, где необходимо обраться в flash, то тогда keil считывает и отображается в watch значение регистров.


Вернуться наверх
 
В продаже новые LED-драйверы XLC компании MEAN WELL с диммингом нового поколения

Компания MEAN WELL пополнила ассортимент своей широкой линейки светодиодных драйверов новым семейством XLC для внутреннего освещения. Главное отличие – поддержка широкого спектра проводных и беспроводных технологий диммирования. Новинки представлены в MEANWELL.market моделями с мощностями 25 Вт, 40 Вт и 60 Вт. В линейке есть модели, работающие как в режиме стабилизации тока (СС), так и в режиме стабилизации напряжения (CV) значением 12, 24 и 48 В.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Не считываются значения регистров под отладкой в окне Wa
СообщениеДобавлено: Вс фев 02, 2025 00:12:14 
Это не хвост, это антенна

Карма: -10
Рейтинг сообщений: 171
Зарегистрирован: Вт авг 15, 2017 10:51:13
Сообщений: 1483
Рейтинг сообщения: 0
Ищу проблему, страдаю
Страдаете, а советы игнорируете... :dont_know:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Не считываются значения регистров под отладкой в окне Wa
СообщениеДобавлено: Вс фев 02, 2025 12:46:52 
Прорезались зубы

Зарегистрирован: Чт апр 08, 2021 09:46:48
Сообщений: 225
Рейтинг сообщения: 0
Забыл написать, не получилось у меня так сделать


Вернуться наверх
 
Распродажа паяльного оборудования ATTEN!
Паяльные станции, паяльники и аксессуары по самой выгодной цене.

По промокоду radiokot скидка 10%
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 22


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y