|
Помогите разобратся с ICC AVR 7, В 6й версии работало, в 7й - ошибка |
|
|
|
Dec 22 2005, 05:51
|

Профессионал
    
Группа: Свой
Сообщений: 1 751
Регистрация: 4-08-05
Из: Великие Луки
Пользователь №: 7 360

|
Осваиваю Си по примерам с [banned], пока работал на шестой версии ICC, все было хорошо. Вчера поставил седьмую версию, и она стала ругатся на этот фрагмент: putchar('R'); putchar('x'); говорит: !ERROR file 'work03.0':undefined symbol '_putchar' как эта процедура прописывается в седьмой версии? Тыкните носом! На всякий случай прикладываю текст программы
Прикрепленные файлы
work.txt ( 1.38 килобайт )
Кол-во скачиваний: 64
--------------------
Андрей Смирнов
|
|
|
|
|
Dec 22 2005, 06:36
|

Познающий...
     
Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125

|
Цитата(Pyku_He_oTTyda @ Dec 22 2005, 13:51)  Осваиваю Си по примерам с [banned], пока работал на шестой версии ICC, все было хорошо. Вчера поставил седьмую версию, и она стала ругатся на этот фрагмент:
putchar('R'); putchar('x');
говорит: !ERROR file 'work03.0':undefined symbol '_putchar'
как эта процедура прописывается в седьмой версии? Тыкните носом!
На всякий случай прикладываю текст программы Гм... если мне не изменяет память, то функция putchar() должна быть определена либо в stdio.h, либо в conio.h. По крайней мере в досовском компиляторе я один из этих модулей подключал. Попробуйте написать так: #include <stdio.h> в начале файла, рядом с подключениями других хедеров...
--------------------
Выбор.
|
|
|
|
|
Dec 23 2005, 12:13
|

кекс
     
Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326

|
Цитата(Pyku_He_oTTyda @ Dec 22 2005, 07:51)  putchar('R'); putchar('x');
как эта процедура прописывается в седьмой версии? Тыкните носом! что ее там прописывать-то? void putchar(char ch) { UDR = ch; }
|
|
|
|
|
Dec 23 2005, 20:51
|

Знающий
   
Группа: Свой
Сообщений: 697
Регистрация: 26-07-05
Из: Могилев
Пользователь №: 7 095

|
Цитата(defunct @ Dec 23 2005, 16:38)  ...imho спорный вопрос. Если уж начинать, то я бы выбрал ICC из-за наличия в нем такого незаменимого и удобного для новичков инструмента, как Application builder... Вопрос действительно спорный, для новичка ИМХО все полезнее делать руками: "мат часть" при этом изучается более тщательно, опять же усваиваемость лучше, когда datasheet на девайс детально изучишь (и не один раз) и встроенную периферию сам сконфигурируешь, а не апликешн билдером на скорую руку сляпаешь. Время при этом конечно тратится много, но на собственное обучение его не стоит жалеть... Зато когда начнет как от зубов отскакивать, ради бога, но тогда, думаю в штуках типа Apl.Build. необходимость тем более отпадет... (excuse me за offtop).
|
|
|
|
|
Dec 23 2005, 21:58
|

учащийся
    
Группа: Свой
Сообщений: 1 065
Регистрация: 29-10-05
Из: города контрастов
Пользователь №: 10 249

|
V tom linke kotorij priveden mnoju naverxu napisano (FAQ dlja ICC v& compilers):
How to use putchar() -- [AVR7] This is currently applicable to ICC7 for AVR, but will eventually apply to all of our V7 compilers.
richard@imagecraft.com Q: When I call printf, I get the following message: !ERROR Function 'putchar' not defined.
A: This is a function that references the device's IO register locations and must be compiled specifically for the target device. You may find examples of this function for different devices under the <install root>\examples.AVR directory.
Q: But even when I write my own putchar and add it to my project file list, I still get the same error. Why?
A: Some device specific functions must be provided by users at project build time and cannot be put in the default libraries that we provide. putchar is one such function. From V7.03B onward, we have added a capability in the compiler/linker that if you decorate a function with the pragma
#pragma device_specific_function <function_name> ...
and if the function is needed but undefined, the linker will emit an error message of the above form. For putchar/getchar, this pragma is in the provided stdio.h file, and hence if you are writing your own putchar, you must have:
"#include <stdio.h>"
in your putchar source file.
Етот товариш хочет сказать что если вы написали свой вариант putchar() то в том файле где он ( putchar() ) содержится (исходник putchar() ) вам надо добавить #include <stdio.h> .
--------------------
Зачем лаять на караван , когда на него можно плюнуть?
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|