Версия для печати темы
Форум разработчиков электроники ELECTRONIX.ru _ ARM, 32bit _ Перевод проекта из GCC в Keil
Автор: EmbedElektrik Jul 29 2018, 11:56
Есть интересный открытый проект паяльной станции для t12: http://electronix.ru/redirect.php?https://www.eevblog.com/forum/reviews/stm32-oled-digital-soldering-station-for-t12-handle/ Собственно, сами исходники на ГЦЦ: http://electronix.ru/redirect.php?https://github.com/PTDreamer/stm32_soldering_iron_controller/archive/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 Jul 29 2018, 13:11
Скорее всего надо в заголовочном файле перед объявлением добавить слово extern, а собственно объявление перенести в соответствующий *.c файл.
А вообще вы уверены что с вашим уровнем понимания эта задача вам по силам? Может проще взять релизную сборку и просто пользоваться результатом?
Автор: gte Jul 29 2018, 13:54
Цитата(Kabdim @ Jul 29 2018, 16:11)
А вообще вы уверены что с вашим уровнем понимания эта задача вам по силам? Может проще взять релизную сборку и просто пользоваться результатом?
Из высокого уровня владения инструментом не обязательно вытекает высокое качество продукта и наоборот.
Я про алгоритмы, которые в данном случае определяют качество.
Автор: x893 Jul 29 2018, 14:05
iron.rar ( 5.95 мегабайт )
: 20
Автор: EmbedElektrik Jul 29 2018, 15:02
Цитата(x893 @ Jul 29 2018, 17:05)
iron.rar ( 5.95 мегабайт )
: 20 Снимаю шляпу. Спасибо. А в двух словах можно решение описать?
Автор: x893 Jul 29 2018, 20:42
Цитата(EmbedElektrik @ Jul 29 2018, 18:02)
Снимаю шляпу. Спасибо. А в двух словах можно решение описать?
Чтение книг в детстве.
Автор: MrYuran Jul 30 2018, 03:49
Цитата(EmbedElektrik @ Jul 29 2018, 18:02)
Снимаю шляпу. Спасибо. А в двух словах можно решение описать?
там 50кБ лишних было )
Автор: x893 Jul 30 2018, 06:55
http://electronix.ru/redirect.php?https://www.cnx-software.com/2018/07/11/soldering-pen-board-audio-jack-weller-rt-tips/
только дорогие сильно
http://electronix.ru/redirect.php?https://www.weidinger.eu/en/shop/soldering_equipment/weller/weller_soldering_and_desoldering_tips/weller_soldering_tips_rt-series_for_wmrp
Автор: jcxz Jul 30 2018, 09:15
Цитата(EmbedElektrik @ Jul 29 2018, 18:02)
Снимаю шляпу. Спасибо. А в двух словах можно решение описать?
И пришёл пассажир в кабину авиалайнера и попросил: "А в двух словах можно описать как на нём летать?"
Автор: Kabdim Jul 30 2018, 09:39
Вот вы смеетесь, а ведь изначально дали рыбу вместо удочки. В итоге вместо мотивации разбираться и пробовать вот такие вопросы...
Автор: x893 Jul 30 2018, 10:15
И пришёл пассажир в кабину авиалайнера и попросил:
- А ты где летать научился ?
а тот отвечает
- А я и не умею.
P.S. Удочек в гуглу навалом.
"Программирование на С за 24 часа"
Автор: EmbedElektrik Jul 30 2018, 11:04
Цитата(x893 @ Jul 30 2018, 13:15)
И пришёл пассажир в кабину авиалайнера и попросил:
- А ты где летать научился ?
а тот отвечает
- А я и не умею.
P.S. Удочек в гуглу навалом.
"Программирование на С за 24 часа"
Дооо.. Только в ГЦЦ это собирается, а в кайле приходится по файлам растаскивать переменные. Главное пафоса напустить.
Автор: x893 Jul 30 2018, 11:25
gcc менее требователен к стандарту, armcc более.
Вот и весь пафос.
Хотите используйте gcc с keil, а не armcc.
И жизнь проще будет.
Автор: skripach Aug 1 2018, 22:33
Смеха ради собрал под яр, делов то на 5минут.
Автор: Kabdim Aug 2 2018, 10:20
Теперь вам нужно в двух словах его описать (за снятую шляпу).
Автор: esaulenka Aug 3 2018, 12:36
Цитата(x893 @ Jul 30 2018, 14:25)
gcc менее требователен к стандарту, armcc более.
У меня не получилось собрать тестовый проект в gcc с определением _используемой_ переменной в h-файле.
Предсказуемая гора ошибок "multiple definition".
Исходный проект собирать лень, т.к. там makefile'а не приложено.
Автор: XVR Aug 6 2018, 10:17
Цитата(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
Условия:
- Только С
- Переменные без инициализации
Такое поведение описано в стандарте С
Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)