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

 
 
 
Reply to this topicStart new topic
> Проблема с RTX Kernal !
Dениs
сообщение Oct 30 2014, 15:16
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 52
Регистрация: 25-12-12
Пользователь №: 74 984



Вообщем, проблема в следующем: при созданиии тестового проекта для RTX Kernal появляется следующая ошибка

Error: L6200E: Symbol os_tmr multiply defined (by rt_timer.o and rtx_conf_cm.o).

Проект создавал в Keil 5.1, библиотеки подтянул следующим образом при создании проекта:





Вроде бы все сделал правильно, но не могу понять где выскакивает двойное описание переменной ? Мучаюсь уже очень долго ... (
Go to the top of the page
 
+Quote Post
Dениs
сообщение Oct 30 2014, 22:42
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 52
Регистрация: 25-12-12
Пользователь №: 74 984



Кажись выяснил причину ... Она кроется в os_tmr_create макроопределении функции в RTL.h ... Когда закоментируешь эту строку ошибка исчезает, но раскоментировав опять появляется ... Как же тогда использовать эту функцию, может МАКРОС надо добавить какой-то ?

Так же есть совпадение переменной в файле RT_Timer.c и в RTX_CM_lib.h ... переменная os_tmr которую определена и там и там, но вот вопрос я же не вызываю и не подтягиваю нигде в проекте библиотеку RT_Timer.c откуда она лезет ?
Go to the top of the page
 
+Quote Post
VAI
сообщение Oct 31 2014, 06:05
Сообщение #3


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

Группа: Модераторы
Сообщений: 1 120
Регистрация: 17-06-04
Пользователь №: 37



Я у себя в проектах использую CMSIS_RTX в исходниках, а не как библиотеку и в самом начале столкнулся с подобным сообщением. Оно вылазит по тому, что в файле "RTX_CM_lib.h" есть определение вида
Код
uint32_t       os_tmr = 0;

А в исходниках, в файле "rt_Timer.c" есть строка
Код
struct OS_XTMR os_tmr;

т.е. двойное определение os_tmr.
В файле "RTX_CM_lib.h" я закоментировал определение os_tmr, т.к. везде в исходниках os_tmr используется как структура.


--------------------
Если зайца бить, его можно и спички научить зажигать
Сколько дурака не бей - умнее не будет. Зато опытнее
Go to the top of the page
 
+Quote Post
Dениs
сообщение Oct 31 2014, 07:59
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 52
Регистрация: 25-12-12
Пользователь №: 74 984



Цитата(VAI @ Oct 31 2014, 08:05) *
Я у себя в проектах использую CMSIS_RTX в исходниках, а не как библиотеку и в самом начале столкнулся с подобным сообщением. Оно вылазит по тому, что в файле "RTX_CM_lib.h" есть определение вида
Код
uint32_t       os_tmr = 0;

А в исходниках, в файле "rt_Timer.c" есть строка
Код
struct OS_XTMR os_tmr;

т.е. двойное определение os_tmr.
В файле "RTX_CM_lib.h" я закоментировал определение os_tmr, т.к. везде в исходниках os_tmr используется как структура.


Да я так и понял, но проблема в том что "RTX_CM_lib.h" в проекте после подстановки в Keil не радактируемый, как его изменить ... зачем тогда Keil его подставляет в проект и делает нерадактируемым ? Смысл тогда использования подтягиваемых библиотек с Keil для создония проекта если их можно тогда скопировать в папку проекта и потом подставить в проект и он будет редактируемым, может это можно через define как-то обойти ?
Go to the top of the page
 
+Quote Post

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

 


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


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