Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
Прощай, Мир!
 Аватар для proc3nt
1673 / 831 / 253
Регистрация: 26.05.2012
Сообщений: 3,056

Ошибка error A45: UNDEFINED SYMBOL (PASS-2)

28.10.2021, 22:07. Показов 2509. Ответов 17
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
прив! создаю проект в Keil'е для контроллера Atmel/AT89C52, в котором указана доступность 3-ех таймеров..



Assembler
1
2
3
4
5
6
7
8
9
10
11
12
        CSEG    AT 0
        LJMP    Start
 
        CSEG    AT 30H
Start:  MOV     TL0, #LOW(NOT(50000))
        MOV     TH0, #HIGH(NOT(50000))
        MOV     TL1, #LOW(NOT(50000))
        MOV     TH1, #HIGH(NOT(50000))
        ;MOV    TL2, #LOW(NOT(50000))
        ;MOV    TH2, #HIGH(NOT(50000))
        SJMP    $
        END
при загрузке начальных значений только в первые два таймера (0-ой и 1-ый) компиляция проходит успешно..
если же раскомментировать строки с попыткой загрузки значений в последний (2-ой) таймер, то возникают ошибки..
(9): error A45: UNDEFINED SYMBOL (PASS-2)
(10): error A45: UNDEFINED SYMBOL (PASS-2)

в чем здесь дело? может для этих целей нужно выбирать другой контроллер?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.10.2021, 22:07
Ответы с готовыми решениями:

Error: L6218E: Undefined symbol
Не знаю в какую сторону уже копать. Не так давно начал разбираться с STM32. Среда - Keil5, контроллер stm32f103. При попытке скомпилить...

Ошибка при подключении плагина QPSQL "Symbol lookup error undefined symbol pqstatus"
Подскажите пожалуйста. Подключила драйвер PSQL, но при попытке выполнить код QSqlDatabase db =...

Ошибка error A2006: undefined symbol
Здравствуйте! Проблема такая,не хотит прога компилится и всё.. CSEG segment assume cs:CSEG, ds:CSEG, es:CSEG, ss:CSEG org 100h ...

17
487 / 333 / 33
Регистрация: 15.08.2011
Сообщений: 1,078
28.10.2021, 23:22
Ну да, ассемблер знает регистры 8051, а таймер 2 уже относится к 8052. Там видимо нужно инклуды соответствующие расширеннию подключать.
У себя в старых исходниках я нашел пример с явным доопределением расширения
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
T2CON   DATA    0C8H
RCAP2L  DATA    0CAH
RCAP2H  DATA    0CBH
TL2     DATA    0CCH
TH2     DATA    0CDH
 
; IE
ET2     BIT     0ADH
; IP
PT2     BIT     0BDH
; P1
T2EX    BIT     91H
T2      BIT     90H
; T2CON
TF2     BIT     0CFH
EXF2    BIT     0CEH
RCLK    BIT     0CDH
TCLK    BIT     0CCH
EXEN2   BIT     0CBH
TR2     BIT     0CAH
C_T2    BIT     0C9H
CP_RL2  BIT     0C8H
Для таймера 2 должно хватить.
1
Прощай, Мир!
 Аватар для proc3nt
1673 / 831 / 253
Регистрация: 26.05.2012
Сообщений: 3,056
29.10.2021, 04:23  [ТС]
Цитата Сообщение от paskal Посмотреть сообщение
пример с явным доопределением расширения
Цитата Сообщение от paskal Посмотреть сообщение
Для таймера 2 должно хватить
да, хватило
Цитата Сообщение от paskal Посмотреть сообщение
инклуды соответствующие расширеннию подключать
все таки хотелось бы узнать, какие именно инклуды?
0
487 / 333 / 33
Регистрация: 15.08.2011
Сообщений: 1,078
29.10.2021, 19:11
Для AT89C52 или AT89S52 подходит reg52.inc. В папке с кейлом его искать.
0
Прощай, Мир!
 Аватар для proc3nt
1673 / 831 / 253
Регистрация: 26.05.2012
Сообщений: 3,056
29.10.2021, 22:20  [ТС]
Цитата Сообщение от paskal Посмотреть сообщение
В папке с кейлом искать reg52.inc
paskal,
нашел искомый файл, также там еще хедер reg52.h находился в общей куче..
нужно ли добавлять эти файлы в проект, либо достаточно просто инструкции?
Assembler
1
2
#include <reg52.h>
#include <reg52.inc>
попробовал компилировать после добавления строк инклудов в разных вариантах,
выдает в результате прыгающие по строкам пары одинаковых ошибок..
REG52.INC(86): error A10: ATTEMPT TO DEFINE AN ALREADY DEFINED SYMBOL
REG52.INC(87): error A10: ATTEMPT TO DEFINE AN ALREADY DEFINED SYMBOL

REG52.H(97): error A10: ATTEMPT TO DEFINE AN ALREADY DEFINED SYMBOL
REG52.H(98): error A10: ATTEMPT TO DEFINE AN ALREADY DEFINED SYMBOL

(попытка определить уже определенный символ)
0
487 / 333 / 33
Регистрация: 15.08.2011
Сообщений: 1,078
29.10.2021, 22:40
Включили два эквивалентных инклюда. Они дублируют друг друга что компилятор и сообщил. Или в тексте программы описание дублируется.
0
Прощай, Мир!
 Аватар для proc3nt
1673 / 831 / 253
Регистрация: 26.05.2012
Сообщений: 3,056
29.10.2021, 23:18  [ТС]
Цитата Сообщение от paskal Посмотреть сообщение
Включили два эквивалентных инклюда
включал и только один единственный, все равно те же ошибки на строках 86 и 87

Цитата Сообщение от paskal Посмотреть сообщение
в тексте программы описание дублируется
какое еще такое там описание?
0
пофигист широкого профиля
4769 / 3204 / 862
Регистрация: 15.07.2013
Сообщений: 18,612
30.10.2021, 00:28
Еще какие-нибудь инклуды в тексте программы есть?
0
Прощай, Мир!
 Аватар для proc3nt
1673 / 831 / 253
Регистрация: 26.05.2012
Сообщений: 3,056
30.10.2021, 00:42  [ТС]
Цитата Сообщение от northener Посмотреть сообщение
Еще какие-нибудь инклуды в тексте программы есть?
northener, никак нет, больше ничего, прямо пустота пустот..
0
пофигист широкого профиля
4769 / 3204 / 862
Регистрация: 15.07.2013
Сообщений: 18,612
30.10.2021, 00:55
А можете приложить к сообщению оба файла Delay.a51, REG52.inc?
Приложить их нужно архивом.
0
Прощай, Мир!
 Аватар для proc3nt
1673 / 831 / 253
Регистрация: 26.05.2012
Сообщений: 3,056
30.10.2021, 01:14  [ТС]
Цитата Сообщение от northener Посмотреть сообщение
Приложить их нужно архивом
northener, вот они delay.zip родимые..
0
пофигист широкого профиля
4769 / 3204 / 862
Регистрация: 15.07.2013
Сообщений: 18,612
30.10.2021, 01:30
Да. В этих файлах криминала нет.

Добавлено через 1 минуту
Каким Keil'ом вы пользуетесь?
0
Прощай, Мир!
 Аватар для proc3nt
1673 / 831 / 253
Регистрация: 26.05.2012
Сообщений: 3,056
30.10.2021, 14:03  [ТС]
Цитата Сообщение от northener Посмотреть сообщение
Каким Keil'ом вы пользуетесь?
Keil uVision v5.11.2.0
0
пофигист широкого профиля
4769 / 3204 / 862
Регистрация: 15.07.2013
Сообщений: 18,612
30.10.2021, 19:38
Проблем не увидел
Миниатюры
Ошибка error A45: UNDEFINED SYMBOL (PASS-2)  
0
487 / 333 / 33
Регистрация: 15.08.2011
Сообщений: 1,078
30.10.2021, 23:22
proc3nt, характерно что компилятор ругается на базовые имена 8051, которые у вас и без инклюдов работали. Значит правильно ругается. Инклюд их дублирует.
Зайдите в настройки проекта. Там в настройках ассемблера должна быть опция включения 8051 имен регистров. Отключите ее, и все заработает.
1
пофигист широкого профиля
4769 / 3204 / 862
Регистрация: 15.07.2013
Сообщений: 18,612
31.10.2021, 00:57
Да. Это действительно кривизна Keil во всяком случае в том, что касается ассемблера 51. Вроде в опциях проекта выбран конкретный процессор, а Keil ничего про него знать не хочет.
1
Прощай, Мир!
 Аватар для proc3nt
1673 / 831 / 253
Регистрация: 26.05.2012
Сообщений: 3,056
31.10.2021, 03:00  [ТС]
Цитата Сообщение от paskal Посмотреть сообщение
Отключите ее, и все заработает
уже была отлючена, заработало только после включения и обратного отключения..
0
пофигист широкого профиля
4769 / 3204 / 862
Регистрация: 15.07.2013
Сообщений: 18,612
31.10.2021, 03:06
Цитата Сообщение от proc3nt Посмотреть сообщение
уже была отлючена, заработало только после включения и обратного отключения..
Ждём сообщений о новых проблемах с Keil'ом
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
31.10.2021, 03:06
Помогаю со студенческими работами здесь

Opencv error :-1: ошибка: main.o: undefined reference to symbol '_ZN2cv6String10deallocateEv'
Добрый вечер, только начинаю знакомится с opencv Появились проблемы при запуске первого примера :-1: предупреждение:...

Ошибка [C++ Error] Unit1.cpp(97): E2451 Undefined symbol 'ADOTable1ULogin'
Как пофиксить, часть кода ADOTable1ULogin-&gt;Value=Kode(ADOTable1ULogin-&gt;Value, '5');

Собрать многофайловый проект в Turbo C++ (ошибка Linker error Undefined symbol f (int) in module)
Столкнулся с проблемой, сам не ожидал. Вот три файла main.cpp #include &lt;iostream.h&gt; #include &lt;conio.h&gt; #include...

Hello, world и ошибка "error A2006: undefined symbol"
помогите откомпилировать в масм32, выдает ошибку hello.asm(7) : error A2006: undefined symbol : DGROUP .model small .stack 1000h ...

Linker Error: undefined symbol
Прога компилируется без ошибок, когда запускается, то появляется 10 ошибок. И все одного характера Linker Error: undefined symbol. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru