Добрый день. Веду разработку на контроллере К1921ВК028, работаю непосредственно с регистрами контроллера. Возникла проблема - при компиляции обращения к некоторым регистрам контроллера компилятор помечает как ошибку. Пример:
NT_RCU -> PLLCFG_bit.REFSRC = 0x2;
Error[c20] identifier "NT_RCU" Is undefined
NT_RCU -> HCLKCFG = 0x00000001;
Error[c20] identifier "NT_RCU" Is undefined
NT_GPIOA -> DRIVEMODE = 0x000AAA00;
Error[c20] identifier "NT_GPIOA" Is undefined
С чем подобная ошибка может быть связана? В опциях проекта выбран нужный контроллер.
Работа с регистрами К1921ВК028
Модераторы: ea, dav, bkolbov, Alis, pip, _sva_
-
- Сообщения: 6
- Зарегистрирован: 13 дек 2022, 16:08
- Предприятие: Концерн
-
- Сообщения: 209
- Зарегистрирован: 14 дек 2015, 09:21
- Предприятие: АО НИИЭТ
- Откуда: АО НИИЭТ, Воронеж
Re: Работа с регистрами К1921ВК028
Доброго времени суток!Summer Thunder писал(а): ↑13 дек 2022, 17:20 Добрый день. Веду разработку на контроллере К1921ВК028, работаю непосредственно с регистрами контроллера. Возникла проблема - при компиляции обращения к некоторым регистрам контроллера компилятор помечает как ошибку.
С чем подобная ошибка может быть связана? В опциях проекта выбран нужный контроллер.
Для микроконтроллера К1921ВК028 будут корректные следующие обращения к регистрам (без префикса "NT_"):
RCU -> PLLCFG_bit.REFSRC = 0x2;
RCU -> HCLKCFG = 0x00000001;
GPIOA -> DRIVEMODE = 0x000AAA00;
-
- Сообщения: 6
- Зарегистрирован: 13 дек 2022, 16:08
- Предприятие: Концерн
Re: Работа с регистрами К1921ВК028
К сожалению получаю такую же ошибку.
RCU -> PLLCFG_bit.REFSRC =0x2;
Error [c20] identifier "RCU" is undefined
RCU -> HCLKCFG = 0x00000001;
Error [c20] identifier "RCU" is undefined
Перепроверил опции проекта - контроллер выбран нужный, при просмотре регистров вижу регистры на 028 контроллер.
RCU -> PLLCFG_bit.REFSRC =0x2;
Error [c20] identifier "RCU" is undefined
RCU -> HCLKCFG = 0x00000001;
Error [c20] identifier "RCU" is undefined
Перепроверил опции проекта - контроллер выбран нужный, при просмотре регистров вижу регистры на 028 контроллер.
Re: Работа с регистрами К1921ВК028
Здравствуйте.Summer Thunder писал(а): ↑13 дек 2022, 17:20 работаю непосредственно с регистрами контроллера
...
компилятор помечает как ошибку
NT_RCU -> HCLKCFG = 0x00000001;
Error[c20] identifier "NT_RCU" Is undefined
Вы не указали компилятор и не привели исходный код этого файла, однако
макросы типа RCU и GPIOA, специфичные для этого микроконтроллера,
определены в заголовочном файле CMSIS Device:
niietcm4/k1921vkx_sdk/platform/Device/NIIET/K1921VK028/Include/K1921VK028.h
Код: Выделить всё
user@hostname:~/git/niietcm4/k1921vkx_sdk$ grep "#define RCU " -nr platform/
platform/Device/NIIET/K1921VK028/Include/K1921VK028.h:17646:#define RCU ((RCU_TypeDef *) RCU_BASE)
platform/Device/NIIET/K1921VK035/Include/K1921VK035.h:10051:#define RCU ((RCU_TypeDef *) RCU_BASE)
user@hostname:~/git/niietcm4/k1921vkx_sdk$ git rev-parse HEAD
45893dd9ab5d922c235e22f2a31df5f131703054
user@hostname:~/git/niietcm4/k1921vkx_sdk$ git status
На ветке develop
Ваша ветка обновлена в соответствии с «origin/develop».
-
- Сообщения: 6
- Зарегистрирован: 13 дек 2022, 16:08
- Предприятие: Концерн
Re: Работа с регистрами К1921ВК028
Большое спасибо за помощь! Заголовочный файл K1921 VK028.h был в зависимостях, по вашим номерам строк нашёл нужный образец обращения. В нем прописанно обращение к регистрам с нижним подчеркиванием:
_RCU -> PLLCFG_bit.REFSRC =0x2;
_RCU -> HCLKCFG = 0x00000001;
На данный момент всё работает.
_RCU -> PLLCFG_bit.REFSRC =0x2;
_RCU -> HCLKCFG = 0x00000001;
На данный момент всё работает.