Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Перевод проекта из GCC в Keil
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > ARM, 32bit
EmbedElektrik
Есть интересный открытый проект паяльной станции для t12: https://www.eevblog.com/forum/reviews/stm32...for-t12-handle/ Собственно, сами исходники на ГЦЦ: https://github.com/PTDreamer/stm32_...hive/VER1.1.zip Я попробовал пересобрать этот проект в кейле, но получаю ошибки вроде: iron\iron.axf: Error: L6200E: Symbol currentPID multiply defined (by iron.o and main.o). Тогда как никакой переменной currentPID в main не объявляется, но currentPID объявляется в файле pid.h, который инклюдится и в main.c и в iron.c. Мой кейловский проект прикладываю.
Kabdim
Скорее всего надо в заголовочном файле перед объявлением добавить слово extern, а собственно объявление перенести в соответствующий *.c файл.
А вообще вы уверены что с вашим уровнем понимания эта задача вам по силам? Может проще взять релизную сборку и просто пользоваться результатом?
gte
Цитата(Kabdim @ Jul 29 2018, 16:11) *
А вообще вы уверены что с вашим уровнем понимания эта задача вам по силам? Может проще взять релизную сборку и просто пользоваться результатом?

Из высокого уровня владения инструментом не обязательно вытекает высокое качество продукта и наоборот.
Я про алгоритмы, которые в данном случае определяют качество.
EmbedElektrik
Цитата(x893 @ Jul 29 2018, 17:05) *

Снимаю шляпу. Спасибо. А в двух словах можно решение описать?
x893
Цитата(EmbedElektrik @ Jul 29 2018, 18:02) *
Снимаю шляпу. Спасибо. А в двух словах можно решение описать?

Чтение книг в детстве.
MrYuran
Цитата(EmbedElektrik @ Jul 29 2018, 18:02) *
Снимаю шляпу. Спасибо. А в двух словах можно решение описать?

там 50кБ лишних было )
jcxz
Цитата(EmbedElektrik @ Jul 29 2018, 18:02) *
Снимаю шляпу. Спасибо. А в двух словах можно решение описать?

И пришёл пассажир в кабину авиалайнера и попросил: "А в двух словах можно описать как на нём летать?" biggrin.gif
Kabdim
Вот вы смеетесь, а ведь изначально дали рыбу вместо удочки. В итоге вместо мотивации разбираться и пробовать вот такие вопросы...
x893
И пришёл пассажир в кабину авиалайнера и попросил:
- А ты где летать научился ?
а тот отвечает
- А я и не умею.

P.S. Удочек в гуглу навалом.
"Программирование на С за 24 часа"
EmbedElektrik
Цитата(x893 @ Jul 30 2018, 13:15) *
И пришёл пассажир в кабину авиалайнера и попросил:
- А ты где летать научился ?
а тот отвечает
- А я и не умею.

P.S. Удочек в гуглу навалом.
"Программирование на С за 24 часа"

Дооо.. Только в ГЦЦ это собирается, а в кайле приходится по файлам растаскивать переменные. Главное пафоса напустить.
x893
gcc менее требователен к стандарту, armcc более.
Вот и весь пафос.
Хотите используйте gcc с keil, а не armcc.
И жизнь проще будет.
skripach
Смеха ради собрал под яр, делов то на 5минут. santa2.gif
Kabdim
Теперь вам нужно в двух словах его описать (за снятую шляпу). rolleyes.gif
esaulenka
Цитата(x893 @ Jul 30 2018, 14:25) *
gcc менее требователен к стандарту, armcc более.

У меня не получилось собрать тестовый проект в gcc с определением _используемой_ переменной в h-файле.
Предсказуемая гора ошибок "multiple definition".

Исходный проект собирать лень, т.к. там makefile'а не приложено.
XVR
Цитата(esaulenka @ Aug 3 2018, 15:36) *
У меня не получилось собрать тестовый проект в gcc с определением _используемой_ переменной в h-файле
Плохо пытались.
Файл t.c:
Код
int test_var;


Файл main.c:
Код
#include <stdio.h>

int test_var;

int main(int argc, char** argv)
{
    printf ("test var: %d\n", test_var);
    return 0;
}


Сборка и запуск:
Код
> gcc -c t.c -o t.o
> gcc -c main.c -o main.o
> gcc t.o main.o -o test
> ./test
test var: 0


Условия:
  1. Только С
  2. Переменные без инициализации
Такое поведение описано в стандарте С

Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.