Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Тема закрыта

свои LIB в Keil (С51)

Ср май 09, 2012 21:58:36

Хочу сделать свою библиотеку, чтобы юзать нужные мне функции в различных проектах.
Взял для теста две функции в либе (в функциях смысла не искать, они тупо для теста):
Код:
#include <reg51.h>
void set_port(unsigned char f)
{
    P3=f;
}
void delay()
{
int i;
for(i=0;++i;i<40000);
}


Заголовочный файл:
Код:
#ifndef __MYLIB_H__
#define __MYLIB_H__
extern void set_port(unsigned char f);
extern void delay(void);
#endif

И проект с полученной либой:
Код:
#include <reg51.h>
#include <mylib.h>
void main()
{
   P3=0x81;
   set_port(0x00);
   delay();
   set_port(0xAA);
   delay();
}


Библиотека собирается нормально. А при ее использовании и сборке проекта - куча варнингов типа:
*** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL SYMBOL: DELAY
*** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL SYMBOL: _SET_PORT
*** WARNING L1: UNRESOLVED EXTERNAL SYMBOL SYMBOL: DELAY

Причем HEX файл создается, но не работает как положено. Не могу никак понять причину, в документации по Кеил тоже ничего толкового нет, только как создать LIB и всё. Помогите пофиксить этот маленький проект. Исходники прилагаются. Спасибо.

2moders: перенесите плз топик в "Микроконтроллеры и ПЛИС"
Вложения
test_lib.rar
(65.26 KiB) Скачиваний: 195

Re: свои LIB в Keil (С51)

Вс май 13, 2012 22:44:50

1. Уберите из проекта библиотеки файл startup.a51
2. Добавьте в тестовый проект скомпиленную библиотеку .lib
все должно работать

Re: свои LIB в Keil (С51)

Вт май 15, 2012 15:33:12

c717411 писал(а):2moders: перенесите плз топик в "Микроконтроллеры и ПЛИС"

Сделано!
В следующий раз пользуйтесь кнопкой Изображение для привлечения модераторов.

Re: свои LIB в Keil (С51)

Ср май 16, 2012 17:38:17

ilya_z писал(а):1. Уберите из проекта библиотеки файл startup.a51
2. Добавьте в тестовый проект скомпиленную библиотеку .lib
все должно работать


Спс, так заработало.
Тема закрыта