Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум разработчиков электроники 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. Мой кейловский проект прикладываю.

 iron.rar ( 6.01 мегабайт ) : 8
 

Автор: 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) *
Снимаю шляпу. Спасибо. А в двух словах можно решение описать?

И пришёл пассажир в кабину авиалайнера и попросил: "А в двух словах можно описать как на нём летать?" biggrin.gif

Автор: 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минут. santa2.gif

 iron.rar ( 5.96 мегабайт ) : 3
 

Автор: Kabdim Aug 2 2018, 10:20

Теперь вам нужно в двух словах его описать (за снятую шляпу). rolleyes.gif

Автор: 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


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


Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)