Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


Результаты опроса: Запуск "на коленке" часть 2. Что дальше будем обсмакивать?
RTC (часы реального времени) 119 11.41%
USB 540 51.77%
Базовые навыки работы с портами ввода-вывода 247 23.68%
АЦП 108 10.35%
ЦАП 29 2.78%
Голосовавшие: 1043. Вы ещё не голосовали в этом опросе

 
Опции темы
Непрочитано 24.11.2010, 18:19  
nekolex
Частый гость
 
Аватар для nekolex
 
Регистрация: 24.03.2010
Сообщений: 25
Сказал спасибо: 6
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
nekolex на пути к лучшему
По умолчанию Re: Здравствуй, ARM. Запуск "на коленке"

Сообщение от kison Посмотреть сообщение
А сам Си файл uart.c в проект подключен?
Подключены заголовки Uart.h
Подключение Uart.c не дает эффекта
Приложил файлы проекта
Вложения:
Тип файла: zip printf.zip (6.4 Кб, 47 просмотров)
Реклама:

Последний раз редактировалось nekolex; 24.11.2010 в 18:27.
nekolex вне форума  
Непрочитано 24.11.2010, 18:26  
kison
Почётный гражданин KAZUS.RU
 
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
kison на пути к лучшему
По умолчанию Re: Здравствуй, ARM. Запуск "на коленке"

Сообщение от ut1wpr Посмотреть сообщение
В обеих случаях компилятор породит одинаковый код, и не будет ворнинга. Не путайте с ошибками - это всего лишь предупреждение.
Вообще то это явная ошибка.
Рассмотрим прототипы:
Код:
void UARTSend(char *c);
char UARTGet();
Для UARTSend требуется указатель, а имеется char. Это тоже целое и компилятор делает из него указатель. И именно о этом выдает предупреждение. Например приняв символ '0' мы отправим указатель типа такого ((char*)0x00000030) в функцию UARTSend. Она возьмет с этого АДРЕСА значение и отправит его по UART. Что там сложно предугадать. Но не думаю что совпадет с '0'
kison вне форума  
Сказали "Спасибо" kison
ut1wpr (24.11.2010)
Непрочитано 24.11.2010, 18:32  
ut1wpr
Почётный гражданин KAZUS.RU
 
Аватар для ut1wpr
 
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,616
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
ut1wpr на пути к лучшему
По умолчанию Re: Здравствуй, ARM. Запуск "на коленке"

Сообщение от kison Посмотреть сообщение
Вообще то это явная ошибка.
Рассмотрим прототипы:
Код:
void UARTSend(char *c);
char UARTGet();
Для UARTSend требуется указатель, а имеется char. Это тоже целое и компилятор делает из него указатель. И именно о этом выдает предупреждение. Например приняв символ '0' мы отправим указатель типа такого ((char*)0x00000030) в функцию UARTSend. Она возьмет с этого АДРЕСА значение и отправит его по UART. Что там сложно предугадать. Но не думаю что совпадет с '0'
Спасибо. Вы правы. Надо было в моем примере подставлять адрес переменной, а не лезть с кастингами... Извините за ошибку.
ut1wpr вне форума  
Непрочитано 24.11.2010, 18:47  
nekolex
Частый гость
 
Аватар для nekolex
 
Регистрация: 24.03.2010
Сообщений: 25
Сказал спасибо: 6
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
nekolex на пути к лучшему
По умолчанию Re: Здравствуй, ARM. Запуск "на коленке"

Сообщение от nekolex Посмотреть сообщение
при вызове UART_Init выдает: undefined reference to `UART_Init'
- остался открытым. Надеюсь на помощь.
nekolex вне форума  
Непрочитано 24.11.2010, 19:00  
kison
Почётный гражданин KAZUS.RU
 
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
kison на пути к лучшему
По умолчанию Re: Здравствуй, ARM. Запуск "на коленке"

Сообщение от nekolex Посмотреть сообщение
остался открытым.
Вроде просто уже должно быть. Измените функцию отправки
Код:
void UARTSend(char c) 
{
	LPC_UART-›THR = c;
	while(!(LPC_UART-›LSR & TEMT)){}
}
И вот Вам эхо
Код:
while(1)
{
 UARTSend(UARTGet());
}
Способ этот для "поиграться", в реальных программах поллинг использовать не принято. Загрузка процессора = 100%, а все что он способен при этом делать - в пинг-понг играть
kison вне форума  
Сказали "Спасибо" kison
ut1wpr (24.11.2010)
Непрочитано 24.11.2010, 19:07  
nekolex
Частый гость
 
Аватар для nekolex
 
Регистрация: 24.03.2010
Сообщений: 25
Сказал спасибо: 6
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
nekolex на пути к лучшему
По умолчанию Re: Здравствуй, ARM. Запуск "на коленке"

Сообщение от kison Посмотреть сообщение
Вроде просто уже должно быть. Измените функцию отправки
Изменено, если вам не трудно, посмотрите приложение поста #681
Перестала работать инициализация UARTInit =(
nekolex вне форума  
Непрочитано 24.11.2010, 19:32  
kison
Почётный гражданин KAZUS.RU
 
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
kison на пути к лучшему
По умолчанию Re: Здравствуй, ARM. Запуск "на коленке"

Сообщение от nekolex Посмотреть сообщение
Перестала работать инициализация UARTInit =(
Что значит - перестала работать?
kison вне форума  
Непрочитано 24.11.2010, 20:10  
nekolex
Частый гость
 
Аватар для nekolex
 
Регистрация: 24.03.2010
Сообщений: 25
Сказал спасибо: 6
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
nekolex на пути к лучшему
По умолчанию Re: Здравствуй, ARM. Запуск "на коленке"

То есть я взял стандартный пример для работы c UART. В этом примере все работало, после того как я добавил инклуд stdio.h и реализовал следующие функции:

// ***********************
void UART_Sendchar(char c);
// ***********************
char UART_Getchar();
// ***********************
void UART_PrintString(char *pcString);

сделал перенаправление вызовов( для работы с printf()) в файле retarget.c

int __write (int iFileHandle, char *pcBuffer, int iLength)
int __readc (void)

После этого перестали работать UARTInit и пара функций из retarget.c c такой же ошибкой как в UARTInit:
undefined reference to ‹название функции›

Последний раз редактировалось nekolex; 24.11.2010 в 20:15.
nekolex вне форума  
Непрочитано 24.11.2010, 20:51  
kison
Почётный гражданин KAZUS.RU
 
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
kison на пути к лучшему
По умолчанию Re: Здравствуй, ARM. Запуск "на коленке"

Разбирайтесь со своей IDE. undefined reference - значит в файлах включенных в проект такой функции нет. Добавьте файл с этими функциями снова. Если он и так есть - удалите, затем добавьте. Почему это происходит я не знаю.
kison вне форума  
Непрочитано 25.11.2010, 11:07  
nekolex
Частый гость
 
Аватар для nekolex
 
Регистрация: 24.03.2010
Сообщений: 25
Сказал спасибо: 6
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
nekolex на пути к лучшему
По умолчанию Re: Здравствуй, ARM. Запуск "на коленке"

Сообщение от kison Посмотреть сообщение
Добавьте файл с этими функциями снова. Если он и так есть - удалите, затем добавьте.
Ничего из этого не помогает=(
nekolex вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 07:39.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot