реклама на сайте
подробности

 
 
> Купил книгу ARM7 вводный курс Тревор Мартин, Установил c прилаг. диска Keil mVision3v3.10b
ZanozM
сообщение Oct 31 2006, 16:30
Сообщение #1





Группа: Участник
Сообщений: 7
Регистрация: 9-05-06
Пользователь №: 16 918



Давно собирался купить, и сбылось.
Стал обладателем книги Миикроконтроллеры ARM7 Семейство LPC2000 Тревор Мартин.
Так же преобретена плата LPC2106 от OLIMEX c UART0 на борту.
Сразу скажу что на Си писать не приходилось.
Начал маленько разбираться с примерами из книги, поморгал лампочкой , а вот на Hello World застрял.
Вернее Hello World получился printf работает, а вот на scanf пишет вот такое.
MODULE: C:\KEIL\ARM\LIB\CAL.LIB (getchar)
DEFINED: serial.obj (serial)
*** WARNING L23: UNRESOLVED EXTERNAL SYMBOLS
Я так понял что библиотеки нужной нет?
Нажал About вылетело C Compiler CA.exe V2.00f , а в хелпе про какой то CARM говорится где его взять
ежели это и есть он, то куда библиотека CARM.lib затерялась, либо где ее родную взять.
Обьясните люди добрые, если можно то как в школе для Дибилоидов.
Спасибо за ответы.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Sarez
сообщение Nov 2 2006, 10:26
Сообщение #2


Частый гость
**

Группа: Новичок
Сообщений: 75
Регистрация: 17-08-06
Из: Минск
Пользователь №: 19 630



Здравствуйте!
В продолжение темы... Повторял опыт уважаемого ZanozM. Появился ряд вопросов. Во первых , как я понимаю , функционирует это все следующим образом :

1) Имеются функции высокого уровня printf и scanf , отвечающие за ввод и вывод строки символов. Для этого они используют функции низкого уровня putchar и getchar , которые в свою очередь работают с регистрами различной переферии МК ( по умолчанию UART0). Если я хочу перенаправить потоки ввода/вывода с UART0 на другую переферию ( для простоты допустим UART1), то я включаю в прект файл Serial.c , переписываю в нем функции putchar и getchar так , как необходимо мне . Т.к в STDIO данные функции описаны как extern , то соответственно никаких проблем с ними быть не должно. Далее использую функции printf и scanf , которым абсолютно неважно , КУДА выводить поток символов , так как этот вопрос решают putchar и getchar

2) Данные функции являются библиотечными , прототипы в файле STDIO.H , следовательно , если передо мной не стоит задачи перенаправления потока символов , то я могу просто использовать printf и scanf , без описания putchar и getchar ? По идее , поскольку прототипы putchar и getchar описаны в STDIO , то они должны быть в библиотеке и на этапе компоновки добавлятся к моему объектному файлу... Если поток надо перенаправить - включаю и редактирую Serial.c ( которого , почему-то в папке LIB не нашел , лежит только putchar.c .... ). Или же код данных функций ( putchar и getchar )ВСЕГДА необходимо описывать самому , включая каждый раз в проект соответствующий файл?

Сразу оговорюсь , что включая STDIO.H и пытаясь использовать printf без включения Serial.c и описания putchar результатов не дает - вывода символов в симуляторе я не получил. Далее включаю Serial.c описываю putchar - printf работает - идет вывод вводимых с клавиатуры символов на экран симулятора. ОПИСЫВАЮ В Serial.s GETCHAR - компилирую - получаю неизменно превосходный результат :

*** ERROR L104: MULTIPLE PUBLIC DEFINITIONS
SYMBOL: getchar?T
MODULE: C:\KEIL\ARM\LIB\CAL.LIB (getchar)
DEFINED: serial.obj (serial)
*** WARNING L23: UNRESOLVED EXTERNAL SYMBOLS
Program Size: data=1172 const=37 code=282
Target not created

Что собственно и наблюдал у себя да экране уважаемый ZanozM. Заинтересовала фраза :

ERROR L104: MULTIPLE PUBLIC DEFINITIONS - насколько я понимаю - множественное определение ?

Комментируешь функцию getchar - все нормально , за исключением того , что scanf не работает....
Напрашивается возможный ответ , что конфликтует функция getchar в библиотеке и getchar в Serial.c , хотя возможно я неправ... и почему тогда не конфликтует putchar ? Или же предполагается , что можно редактировать только функцию putchar , без возможности редактирования getchar ( этим можно с натяжкой попытаться обьяснить наличие в папке LIB только файла putchar.c ), хотя по моему это бред.... Я понимаю , что вопрос в принципе , наверное , простой и скорее всего ответ кроется в какой-то упущенной мелочи , но обьясните тогда идиоту , что я делаю не так smile.gif
Go to the top of the page
 
+Quote Post
zltigo
сообщение Nov 2 2006, 13:21
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Sarez @ Nov 2 2006, 12:26) *
то я включаю в прект файл Serial.c , переписываю в нем функции putchar и getchar

Включать не надо, просто напишите свои и все.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- ZanozM   Купил книгу ARM7 вводный курс Тревор Мартин   Oct 31 2006, 16:30
- - zltigo   Цитата(ZanozM @ Oct 31 2006, 18:30) ...ge...   Oct 31 2006, 20:28
- - ZanozM   Да вроде getchar(); работает нормально. Одиночный ...   Oct 31 2006, 21:23
- - ZanozM   Сейчас скачиваю Keil Evaluation MDK303A.EXE с его ...   Oct 31 2006, 21:45
- - VAI   адаптация по имени клизьма здесь http://www.caxapa...   Nov 1 2006, 06:08
- - ZanozM   Добрый вечер всем. Большое спасибо VAI, за ссылки ...   Nov 2 2006, 16:08
- - Dr.Craft   Здравствуйте, я тоже выкачал этот кейл, подлечил, ...   Nov 2 2006, 16:32
- - Sarez   to zltigo Спасибо Вам большое за ответ. Но к сож...   Nov 3 2006, 13:31
|- - zltigo   Цитата(Sarez @ Nov 3 2006, 15:31) Обьясни...   Nov 3 2006, 13:55
- - Sarez   Данная функция определена обычно : extern int g...   Nov 3 2006, 14:07
|- - zltigo   Цитата(Sarez @ Nov 3 2006, 16:07) Файл st...   Nov 3 2006, 14:27
- - Sarez   Использую компилятор Keil. Файл stdio.h смотрел из...   Nov 3 2006, 15:14
|- - zltigo   Цитата(Sarez @ Nov 3 2006, 17:14) в остал...   Nov 3 2006, 15:34
- - Sarez   "Рабочих там нет. Только заглушки, или хуки д...   Nov 3 2006, 15:51
|- - zltigo   Цитата(Sarez @ Nov 3 2006, 17:51) Тогда ч...   Nov 3 2006, 15:54
- - Sarez   Ясно. Будем проводить розыскные мероприятия. С...   Nov 3 2006, 16:02
- - leva87   А может ли кто-нибудь выкинуть примеры с диска из ...   Mar 27 2009, 22:35


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 29th July 2025 - 11:25
Рейтинг@Mail.ru


Страница сгенерированна за 0.01388 секунд с 7
ELECTRONIX ©2004-2016