|
среда программирования Keil uVision 4, ошибки в данной среде, отладка программы |
|
|
|
Jan 8 2012, 10:55
|
Группа: Участник
Сообщений: 10
Регистрация: 8-01-12
Пользователь №: 69 218

|
Здравствуйте! Пишу программу для мк АТ89С51RC в Keil uVision 4, впервые работаю в этой среде программирования, кроме того пишу программу полностью на ассемблере. Проблема в том, что не знаю с чего должна начинаться программа, с каких модулей и т.п. в это среде. Это раз. И ещё, при попытке компиляции возникает непонятная ошибка. Вот она: Build target 'Target 1' compiling main.c... MAIN.C(3): error C129: missing ';' before 'EQU' Target not created. Дело не в переводе, никаких знаков препинания до EQU стоять не должно. Подскажите, как исправить ошибку и надо ли что-то написать в начале программы.
|
|
|
|
|
 |
Ответов
|
Jan 8 2012, 11:22
|
Группа: Участник
Сообщений: 10
Регистрация: 8-01-12
Пользователь №: 69 218

|
Цитата(Палыч @ Jan 8 2012, 19:11)  Ваша программа находится в файле main.c ? Расширение файла .с зарезервировано за файлами на языке Си. Keil пытается применить к Вашему файлу транслятор Си. Для ассемблера - расширение .а51 Я так и думала, что надо было сразу поменять расширение...Благодарю за помощь. Ещё один момент: не подскажете, как вставить в программу таблицу символов для клавиш клавиатуры и связать её с программой?
|
|
|
|
|
Jan 8 2012, 13:01
|
Группа: Участник
Сообщений: 10
Регистрация: 8-01-12
Пользователь №: 69 218

|
Цитата(Палыч @ Jan 8 2012, 19:45)  Попробуйте перефразировать вопрос: внятно и понятно для других... Перефразирую: В микроЭВМ есть клавиатура. На ней набираются некоторые значения, вообщем цифры. Для того, чтобы клавиша работала, "зажигалась", нужно присвоить ей свой код. Иначе говоря, эти коды клавиш или таблица символов нужны для взаимодействия с микроконтроллером. Так же как есть у меня в программе таблица символов для 7-сегментных индикаторов, должна быть похожая таблица и для клавиш. Я имела ввиду, как программно организовать включение клавиш, вот и всё. Ну, если вам так не понятно, я не знаю как ещё описать такое вроде простое явление, как присутсвие клавиатуры в устройстве! Создала всё как надо, и вылезла куча ошибок! Программа взята из книжки, в основном, так что код не может быть неправильный. Хотя, конечно, я кое-что добавила ещё. Если возможно, пробегитесь по программе, скажите, что там не так? Build target 'Target 1' assembling main.a51... main.a51(1): error A68: UNKNOWN CONTROL OR BAD ARGUMENT(S) main.a51(20): error A8: ATTEMPT TO DEFINE AN ALREADY DEFINED LABEL main.a51(51): error A45: UNDEFINED SYMBOL main.a51(51): error A45: UNDEFINED SYMBOL main.a51(54): error A45: UNDEFINED SYMBOL main.a51(59): error A45: UNDEFINED SYMBOL main.a51(60): error A45: UNDEFINED SYMBOL main.a51(61): error A45: UNDEFINED SYMBOL main.a51(62): error A45: UNDEFINED SYMBOL main.a51(63): error A45: UNDEFINED SYMBOL main.a51(64): error A45: UNDEFINED SYMBOL main.a51(67): error A45: UNDEFINED SYMBOL main.a51(68): error A45: UNDEFINED SYMBOL main.a51(69): error A22: EXPRESSION TYPE DOES NOT MATCH INSTRUCTION main.a51(70): error A22: EXPRESSION TYPE DOES NOT MATCH INSTRUCTION main.a51(71): error A45: UNDEFINED SYMBOL main.a51(72): error A22: EXPRESSION TYPE DOES NOT MATCH INSTRUCTION main.a51(73): error A22: EXPRESSION TYPE DOES NOT MATCH INSTRUCTION main.a51(83): error A45: UNDEFINED SYMBOL main.a51(84): error A45: UNDEFINED SYMBOL main.a51(86): error A45: UNDEFINED SYMBOL main.a51(93): error A45: UNDEFINED SYMBOL main.a51(114): error A45: UNDEFINED SYMBOL main.a51(134): error A48: DATA-ADDRESS EXPECTED main.a51(152): error A45: UNDEFINED SYMBOL main.a51(153): error A45: UNDEFINED SYMBOL main.a51(157): error A45: UNDEFINED SYMBOL main.a51(159): error A45: UNDEFINED SYMBOL main.a51(179): error A38: NUMBER OF OPERANDS DOES NOT MATCH INSTRUCTION main.a51(179): error A9: SYNTAX ERROR main.a51(180): error A45: UNDEFINED SYMBOL Target not created
|
|
|
|
|
Jan 8 2012, 13:05
|

Гуру
     
Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954

|
Цитата(NightVamp @ Jan 8 2012, 16:52)  Ну, если вам так не понятно, я не знаю как ещё описать такое вроде простое явление, как присутсвие клавиатуры в устройстве! Н-да... Если Вы научитесь "хорошо" формулировать вопросы, то работа пойдёт гораздо быстрее и плодотворнее... "Таблица" (массив) констанд на ассемблере определяется как-то так (для байтовых констант): Метка: .db константа1, константа2, константа3, ... ,константаN
|
|
|
|
|
Jan 8 2012, 13:22
|
Группа: Участник
Сообщений: 10
Регистрация: 8-01-12
Пользователь №: 69 218

|
Цитата(Палыч @ Jan 8 2012, 21:05)  Н-да... Если Вы научитесь "хорошо" формулировать вопросы, то работа пойдёт гораздо быстрее и плодотворнее...
"Таблица" (массив) констанд на ассемблере определяется как-то так (для байтовых констант): Метка: .db константа1, константа2, константа3, ... ,константаN Интересно...человек просит помощи, пытается объяснить, пусть даже не обладает отличным техническим языком...а вы в остроумии упражняетесь. Заметьте, kovigor, понял почему-то моё первое сообщение про эти коды клавиш и сазу написал про массив констант в хелпе кейла. Раз мне смогли здесь ответить кроме вас, значит не так уж и плохо я формулирую вопросы. Однако, всё равно, благодарю вас за помощь. Надеюсь, в следующем вашем сообщении не увижу сарказма.
|
|
|
|
|
Jan 8 2012, 14:45
|

Гуру
     
Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954

|
Цитата(NightVamp @ Jan 8 2012, 17:22)  ...не обладает отличным техническим языком...а вы в остроумии упражняетесь. Не упражняюсь я в остроумии! Уж так меня научили: если есть какая-то техническая проблема, то нужно грамотно её сформулировать. Это позволит: 1) найти решение самому 2) поручить решение этой проблемы подчиненному 3) попросить помощи у других. Это всегда срабатывает! Этого (как мне кажется) не хватает многим вопрошающим... Пытаясь "правильно" сформулировать вопрос, Вы, зачастую, находите возможные пути решения; проблема из "размытой" становиться вполне конкретной (по меньшей мере - поставлен вопрос будет с использованием "правильных" технических терминов). Цитата(NightVamp @ Jan 8 2012, 17:22)  ...в следующем вашем сообщении не увижу сарказма Вовсе я над Вами не смеюсь! Я пытаюсь Вам помочь.
|
|
|
|
|
Jan 8 2012, 15:03
|
Группа: Участник
Сообщений: 10
Регистрация: 8-01-12
Пользователь №: 69 218

|
Цитата(Палыч @ Jan 8 2012, 22:45)  Не упражняюсь я в остроумии! Уж так меня научили: если есть какая-то техническая проблема, то нужно грамотно её сформулировать. Это позволит: 1) найти решение самому 2) поручить решение этой проблемы подчиненному 3) попросить помощи у других. Это всегда срабатывает! Этого (как мне кажется) не хватает многим вопрошающим... Пытаясь "правильно" сформулировать вопрос, Вы, зачастую, находите возможные пути решения; проблема из "размытой" становиться вполне конкретной (по меньшей мере - поставлен вопрос будет с использованием "правильных" технических терминов). Вовсе я над Вами не смеюсь! Я пытаюсь Вам помочь. Ладно, ладно, я поняла, что вы не хотели меня обидеть. Но и вы поймите, что уж я то точно знаю и понимаю, что мне нужно. Может просто не могу с первого раза очень правильно это сформулировать и донести до кого-либо по причине отсутствия технического опыта. вот и всё.
|
|
|
|
|
Jan 16 2012, 17:45
|
Группа: Участник
Сообщений: 10
Регистрация: 8-01-12
Пользователь №: 69 218

|
Цитата(kovigor @ Jan 9 2012, 02:20)  Так получилось или нет ?  Ещё не пробовала, завал учебный =) Как попробую, напишу о рузультатах =) Цитата(редактор @ Jan 10 2012, 15:15)  При работе в Кейле можно сделать хитрую штуку. Написать весь код на Си, и откомпилировать с получением асемблерного модуля (галочками выставляется) Быстро и дешево для курсового. Написать подобную программу на Си для меня невозможно, тем более он сложнее асм! В асм я могу понять каждую строчку, даже если программа не моя, а вот в Си не каждую. Цитата(Палыч @ Jan 10 2012, 16:54)  В сообщениях об ошибках в скобочках - номера строк с ошибкой
20 - "bufT" был уже определен в строке 13. Скорее всего здесь должно быть "buf" (без буквы Т) - см.стр.114 51,54 - регистр ноль (не буква о) ro заменить на r0 60,61,83,84 - регистры THC и TLC - это, вероятно, TH0 TL0 69,70,72,73 - команда ADD - первым аргументом должен быть аккумулятор (например ADD A,R0); коммнда RR - аргумент только аккумулятор (RR A) 114 - ошибка уйдёт, если исправить в стр.20 134 - вместо команды inc должна быть что-то другое 179 - пропущена точка - должно быть "acc.7"
Транслировал Вашу программу из поста №1. Остальные ошибки мой транслятор не выдаёт... Спасибо, я посмотрю, исправлю =) А не скажете какие модули подключали? Ведь с них начинается программа? Напишите, если не сложно, что вы писали до первой строки моей программы, чтобы её откомпилить!
|
|
|
|
Сообщений в этой теме
NightVamp среда программирования Keil uVision 4 Jan 8 2012, 10:55  kovigor Цитата(NightVamp @ Jan 8 2012, 14:22) Я т... Jan 8 2012, 11:39   Палыч Цитата(kovigor @ Jan 8 2012, 15:39) ...об... Jan 8 2012, 12:48    kovigor Цитата(NightVamp @ Jan 8 2012, 16:01) Соз... Jan 8 2012, 13:08    Палыч Цитата(NightVamp @ Jan 8 2012, 17:01) Соз... Jan 10 2012, 08:54     NightVamp Цитата(Палыч @ Jan 10 2012, 15:54) Трансл... Jan 19 2012, 09:55      Палыч Цитата(NightVamp @ Jan 19 2012, 13:55) Ка... Jan 19 2012, 10:10       NightVamp Цитата(Палыч @ Jan 19 2012, 17:10) uVisio... Jan 19 2012, 13:33        Палыч Цитата(NightVamp @ Jan 19 2012, 17:33) По... Jan 19 2012, 15:14         NightVamp Цитата(Палыч @ Jan 19 2012, 22:14) Часть ... Jan 21 2012, 15:15 barabek Цитата(NightVamp @ Jan 8 2012, 20:55) Здр... Jan 8 2012, 11:21 NightVamp Цитата(barabek @ Jan 8 2012, 19:21) Во-пе... Jan 8 2012, 12:40  kovigor Цитата(NightVamp @ Jan 8 2012, 15:40) Вот... Jan 8 2012, 12:45 редактор При работе в Кейле можно сделать хитрую штуку. Нап... Jan 10 2012, 07:15
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|