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

 
 
> Создание lib-библиотеки uC/GUI под RealView
manifest
сообщение Oct 4 2007, 13:11
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 26
Регистрация: 14-08-07
Пользователь №: 29 778



Кто-нибуть пытался собрать lib-библиотеку uC/GUI под компилятор RealView? Поделитесь опытом, может уже кто-то переделал make-файлы для создания библиотеки?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 14)
manifest
сообщение Oct 8 2007, 08:31
Сообщение #2


Участник
*

Группа: Новичок
Сообщений: 26
Регистрация: 14-08-07
Пользователь №: 29 778



Выложил make-файлы для сборки lib-библиотеки uc/GUI с помощью компилятора RealView, возможно кому-то пригодится.

http://depositfiles.com/files/1992490
Go to the top of the page
 
+Quote Post
manifest
сообщение Oct 9 2007, 08:38
Сообщение #3


Участник
*

Группа: Новичок
Сообщений: 26
Регистрация: 14-08-07
Пользователь №: 29 778



Создал проект в Keil uVision3, подключил к нему созданную lib-библиотеку, все header-файлы uc/GUI и файлы конфигурации. При компиляции получил множесто ошибок L6212E вроде этих:

Код
Error: Undefined symbol GUI_X_Init (referred from GUICore.o)
Error: Undefined symbol GUI_X_GetTaskId (referred from GUITask.o)
...


Код
#include <RTL.h>
#include "gui.h"

extern "C" void startTask() __task;
extern "C" void guiInitTask() __task;

int main()
{
  os_sys_init(startTask);

  return 0;
}

void startTask() __task
{
  os_sys_init(guiInitTask);
  os_tsk_delete_self();
}

void guiInitTask() __task
{
  GUI_Init();
  while(true);
}


Решил было, что напортачил с make-файлами и неправильно собрал библиотеку, решил проверить, подключил к проекту вместо lib-библиотеки исходники uc/GUI, получил аналогичные ошибки:

Код
Error: Undefined symbol GUI_X_ErrorOut (referred from gui_errorout.o)
...


Решил перепроверить с другим компилятором, создал проект в IAR, подключил к нему lib-библиотеку (созданную с помощью make-файлов идущих в составе uc/GUI под компилятор IAR), все header-файлы uc/GUI и файлы конфигурации. При компиляции получил ошибки:

Код
Error[e46]: Undefined symbol "GUI_X_Init" referred in GUICore
Error[e46]: Undefined symbol "GUI_X_GetTaskId" referred in GUICore
...


Проблема в том, что мне совсем не понятно, с чем связаны эти ошибки и как с ними бороться.
Go to the top of the page
 
+Quote Post
DASM
сообщение Oct 9 2007, 09:24
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 3 644
Регистрация: 28-05-05
Пользователь №: 5 493



связано с тем, что эти ф-ции вызываются (ну например из GuiCore.c зовется GUI_X_init, но в комплект UCOS не входят, юзер должен их сам писать. А тут он просто их не находит
Go to the top of the page
 
+Quote Post
manifest
сообщение Oct 9 2007, 10:49
Сообщение #5


Участник
*

Группа: Новичок
Сообщений: 26
Регистрация: 14-08-07
Пользователь №: 29 778



Цитата(DASM @ Oct 9 2007, 13:24) *
связано с тем, что эти ф-ции вызываются (ну например из GuiCore.c зовется GUI_X_init, но в комплект UCOS не входят, юзер должен их сам писать. А тут он просто их не находит

Ты хотел сказать не входят в комплект uc/GUI? Тогда почему в эмуляторе, поставляемом с исходниками всё компилируется без ошибок и юзеру вводить ни чего не нужно?

Возникла мысль, что из uc/GUI вызываются какие-нибуть ф-ции из uc/OS-II, решил проверить, взял демонстрационный проект uc/OS-II с офф. сайта для RealView, подключил к нему свою lib-библиотеку uc/GUI. При компиляции посыпались всё теже ошибки. Непонятно.
Go to the top of the page
 
+Quote Post
DASM
сообщение Oct 9 2007, 14:52
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 3 644
Регистрация: 28-05-05
Пользователь №: 5 493



Цитата(manifest @ Oct 9 2007, 14:49) *
Ты хотел сказать не входят в комплект uc/GUI? Тогда почему в эмуляторе, поставляемом с исходниками всё компилируется без ошибок и юзеру вводить ни чего не нужно?

Возникла мысль, что из uc/GUI вызываются какие-нибуть ф-ции из uc/OS-II, решил проверить, взял демонстрационный проект uc/OS-II с офф. сайта для RealView, подключил к нему свою lib-библиотеку uc/GUI. При компиляции посыпались всё теже ошибки. Непонятно.

В симуляторе мы видим в additional dependencies такое
Simulation\GUISim.lib Simulation\Simulation.res winmm.lib odbc32.lib odbccp32.lib
Если мы глянем GUISim.lib например через IDA то увидим, что в ней эта Gui_X_Init и реализована. И так далее.
PS а откуда непреодолимое желания загнать ucos в lib ? По мне так если сурцы ее не править - то нафик вообще нужна. Время компиляции не меняется.. Короче зачем ? Чтобы враг не догадался ?
Go to the top of the page
 
+Quote Post
manifest
сообщение Oct 10 2007, 04:38
Сообщение #7


Участник
*

Группа: Новичок
Сообщений: 26
Регистрация: 14-08-07
Пользователь №: 29 778



Цитата(DASM @ Oct 9 2007, 18:52) *
а откуда непреодолимое желания загнать ucos в lib ? По мне так если сурцы ее не править - то нафик вообще нужна. Время компиляции не меняется.. Короче зачем ? Чтобы враг не догадался?
Желание не столько чтобы загнать в lib, сколько прикрутить её к ОС. С добавлением исходников к проекту те же самые ошибки. У меня опыта подобной работы нет, поэтому не понятно что менять нужно, что за функции периписывать и как, а статей на эту тему не видел.
Go to the top of the page
 
+Quote Post
DASM
сообщение Oct 10 2007, 05:59
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 3 644
Регистрация: 28-05-05
Пользователь №: 5 493



Да просто прикрути пустышки этих ф-ций куда нибудь - делов то
Go to the top of the page
 
+Quote Post
manifest
сообщение Oct 10 2007, 07:52
Сообщение #9


Участник
*

Группа: Новичок
Сообщений: 26
Регистрация: 14-08-07
Пользователь №: 29 778



Цитата(DASM @ Oct 10 2007, 09:59) *
Да просто прикрути пустышки этих ф-ций куда нибудь - делов то

Gui`шные ф-ции описал, но нужен ещё драйвер дисплея. Может кто-нибуть выложить драйвер LCDPage1bpp или аналогичный для KS0107?
Go to the top of the page
 
+Quote Post
sensor_ua
сообщение Oct 11 2007, 04:57
Сообщение #10


Профессионал
*****

Группа: Свой
Сообщений: 1 266
Регистрация: 22-04-05
Из: Киев
Пользователь №: 4 387



GLCD не подходит?


--------------------
aka Vit
Go to the top of the page
 
+Quote Post
manifest
сообщение Oct 11 2007, 06:46
Сообщение #11


Участник
*

Группа: Новичок
Сообщений: 26
Регистрация: 14-08-07
Пользователь №: 29 778



Цитата(sensor_ua @ Oct 11 2007, 08:57) *
GLCD не подходит?

Нужен под uc/GUI,
нашёл у китайцев LCDPage1bpp.с для uc/GUI 3.32a, подключил к проекту, указал идентификатор контроллера LCD_CONTROLLER = 1502, но линкер по прежнему не находит описаний некоторых ф-ций дисплея, хотя они имеются в LCDPage1bpp.с sad.gif
Go to the top of the page
 
+Quote Post
manifest
сообщение Oct 11 2007, 08:18
Сообщение #12


Участник
*

Группа: Новичок
Сообщений: 26
Регистрация: 14-08-07
Пользователь №: 29 778



Взглянул на код драйвера LCDPage1bpp, оказалось, что он весь заключён в условие:
Код
#if (LCD_CONTROLLER == 8811) || (LCD_CONTROLLER == 8535) && (!defined(WIN32) | defined(LCD_SIMCONTROLLER))

При таком условии, код даже не компилируется, т.к. в моём случае LCD_CONTROLLER = 1502 (для KS108B). Это что значит? На офф. сайте micrium сказано что для данного контролера дисплея нужно использовать драйвер LCDPage1bpp.

У китайцев отыскался ещё один драйвер LCD15XX.c, в комментариях описывается что он поддерживает контроллер дисплея KS108B.
Компилятор файл подхватил, ругнулся на отсутствие описания ф-ций:
LCD_READ_A0_0
LCD_READ_A0_1
...

Выходит драйвер не весь, а только часть его что-ли? Свои, выложите пожалуйста нормальный драйвер LCDPage1bpp для KS108B, наверняка имеется на здешнем фтп.

Сообщение отредактировал manifest - Oct 11 2007, 07:51
Go to the top of the page
 
+Quote Post
SDS28
сообщение Oct 16 2007, 08:56
Сообщение #13


Участник
*

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



Цитата(manifest @ Oct 11 2007, 12:18) *
...Компилятор файл подхватил, ругнулся на отсутствие описания ф-ций:
LCD_READ_A0_0
LCD_READ_A0_1
...

Посмотри какие макросы должны быть определены для доступа к железу здесь http://www.micrium.com/products/gui/lcdpage1bpp.html
Go to the top of the page
 
+Quote Post
manifest
сообщение Oct 19 2007, 04:31
Сообщение #14


Участник
*

Группа: Новичок
Сообщений: 26
Регистрация: 14-08-07
Пользователь №: 29 778



Для того чтобы собрать и запустить uC/GUI, необходимо:
1. Описать все ф-ции объявленные в gui_x.h и некоторые ф-ци из gui.h (ф-ции взаимодействия GUI с операционной системой) [для некоторых ОС файлы с описанием ф-ций уже имеются в директории Sample\GUI_X];
2. Заменить исходный файл lcdconf.h на файл содержащий конфигурацию подключаемого LCD, либо определить макросы самостоятельно [файлы конфигураций для некоторых дисплеев поставляются вместе с GUI в директории sample\LCDConf\xxx];
3. Описать низкоуровневые ф-ции работы с LCD, объявленные в lcdconf.h (LCD_X_READ(), LCD_X_READ() и т.п.) [для некоторых дисплеев уже имеются в директории Sample\LCD_X];

Сообщение отредактировал manifest - Oct 19 2007, 04:32
Go to the top of the page
 
+Quote Post
Almaz1988
сообщение Nov 4 2012, 21:52
Сообщение #15


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

Группа: Участник
Сообщений: 100
Регистрация: 19-09-12
Пользователь №: 73 602



Пытаюсь скомпилировать проект "uCOSII2.91+UCGUI3.90A demo" для отладочной платы "Open1768". Получаю множество ошибок вроде этой:
Цитата
cannot open source input file "uCGUI\Config\GUIConf.h": No such file or directory


Открываю хидеры и вижу там строки вроде этой:
Код
#include "uCGUI\Config\GUIConf.h"


Что-то не суразное)

Gui-библиотеки для других отладочных плат компиллируются нормально, там такой ерунды нет.

Вручную переделывать:
Код
#include "uCGUI\Config\GUIConf.h"
на
Код
#include "GUIConf.h"
?

Для чего вообще так написали?
Прикрепленные файлы
Прикрепленный файл  Open1768.7z ( 3.31 мегабайт ) Кол-во скачиваний: 17
 
Go to the top of the page
 
+Quote Post

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

 


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


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