Перейти к содержанию
    

Создание lib-библиотеки uC/GUI под RealView

Кто-нибуть пытался собрать lib-библиотеку uC/GUI под компилятор RealView? Поделитесь опытом, может уже кто-то переделал make-файлы для создания библиотеки?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

http://depositfiles.com/files/1992490

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Создал проект в 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
...

 

Проблема в том, что мне совсем не понятно, с чем связаны эти ошибки и как с ними бороться.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

связано с тем, что эти ф-ции вызываются (ну например из GuiCore.c зовется GUI_X_init, но в комплект UCOS не входят, юзер должен их сам писать. А тут он просто их не находит

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

связано с тем, что эти ф-ции вызываются (ну например из GuiCore.c зовется GUI_X_init, но в комплект UCOS не входят, юзер должен их сам писать. А тут он просто их не находит

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ты хотел сказать не входят в комплект 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 ? По мне так если сурцы ее не править - то нафик вообще нужна. Время компиляции не меняется.. Короче зачем ? Чтобы враг не догадался ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

а откуда непреодолимое желания загнать ucos в lib ? По мне так если сурцы ее не править - то нафик вообще нужна. Время компиляции не меняется.. Короче зачем ? Чтобы враг не догадался?
Желание не столько чтобы загнать в lib, сколько прикрутить её к ОС. С добавлением исходников к проекту те же самые ошибки. У меня опыта подобной работы нет, поэтому не понятно что менять нужно, что за функции периписывать и как, а статей на эту тему не видел.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да просто прикрути пустышки этих ф-ций куда нибудь - делов то

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да просто прикрути пустышки этих ф-ций куда нибудь - делов то

Gui`шные ф-ции описал, но нужен ещё драйвер дисплея. Может кто-нибуть выложить драйвер LCDPage1bpp или аналогичный для KS0107?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Нужен под uc/GUI,

нашёл у китайцев LCDPage1bpp.с для uc/GUI 3.32a, подключил к проекту, указал идентификатор контроллера LCD_CONTROLLER = 1502, но линкер по прежнему не находит описаний некоторых ф-ций дисплея, хотя они имеются в LCDPage1bpp.с :(

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Взглянул на код драйвера 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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

...Компилятор файл подхватил, ругнулся на отсутствие описания ф-ций:

LCD_READ_A0_0

LCD_READ_A0_1

...

Посмотри какие макросы должны быть определены для доступа к железу здесь http://www.micrium.com/products/gui/lcdpage1bpp.html

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для того чтобы собрать и запустить 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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Пытаюсь скомпилировать проект "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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...