Змінюй хід війни! Допомагай ЗСУ!

Программирование ARM. Eclipse, Keil,IAR,CooCox - всё сюда.

🔴 21:27 Повітряна тривога в м. Харків та Харківська територіальна громадаСлідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • 🔴 21:27 Повітряна тривога в м. Харків та Харківська територіальна громадаСлідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #201
ммм... я её не использую, я просто задефайнил хидер в 2-х .с файлах одновременно.

Мне что, все переменные, которые в хидере есть - ещё раз екстерном обязательно объявлять?? Да ни где такого нет. Или я чего-то не понимаю.

И почему в хандлерз? Она именно там и объявлена сама, её ещё раз екстерном?

потому что переменная должна быть обьявлена только один раз.
Обьявил ее в нужном модуле,сделал экстерном в хидере,теперь каждый модуль,который пользуется этим хидером будет знать,что переменная определена в другом месте и линкер не будет ругаться.
Еще делается защита от рекурсивного подключения хидеров
#ifndef __mhdr_h
#define __mhdr_h
 
  • 🔴 21:27 Повітряна тривога в м. Харків та Харківська територіальна громадаСлідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #202
Шозанахуй? А как он библиотечные функции друг с другом пересекает, в которых включение .h в несколько файлов - норма?

Чё, блядь, ему надо? Ни в одном IDE такого нету.
Во во во, полчаса назад я эту хуйню борол у себя! Прикинь, он сука "забывает" про изменения внесенные в хидер.
Короче, я сделал так. В дереве проекта еще раз открыл нужный хидер, в него перетащил то что нафигачил в уже открытом. Старый закрыл, новый сохранил. По сути это ОДИН И ТОТ же, блядь, файл, но Кейлу похуй.
 
  • 🔴 21:27 Повітряна тривога в м. Харків та Харківська територіальна громадаСлідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #203
да дохера где такое есть. неча привыкать к плюхам коммерца

Не, есть какой-то особенный глюк кейла, из за него я и не использовал этот бред.

Дело в том, что либы, которые он затягивает из того же куба - отлично работают, а там - дефайны как множественные, так и перекрестные (чего ни один компилятор не простил бы).
Пример:
Код:
/**
  ******************************************************************************
  * @file           : usbd_conf.h
  * @version        : v1.0_Cube
  * @brief          : Header for usbd_conf file.
  ******************************************************************************
......
#include "usbd_def.h"
и тут же
Код:
/**
  ******************************************************************************
  * @file           : usbd_conf.h
  * @version        : v1.0_Cube
  * @brief          : Header for usbd_conf file.
  ******************************************************************************
  * COPYRIGHT(c) 2016 STMicroelectronics
....
#include "usbd_def.h"
И НИ ГДЕ! Ни где, Карл! Нет ни каких екстернов, чтобы не ругалось. Это ж непреемлемо - там десятки описаний, что, все экстерном? Да нет там екстернов ни каких.
Екстерн нужен, если я объект использую. И-то - если его не поставить, а использовать имя - он просто создаст ещё один объект. Я же хидер добавил - сколько памяти выделять компилятор знает. Он его создаст - неоднократно проверено (тот же non eabi...хуёмаё арм ЖЦЦ, атмел, иар). Везде кроме кейла просто инклудят хидеры в .с в любом количестве, а если без extern - будет N переменных одного типа с одним именем... видимых только из файла, где они созданы.
Но это ни как не multiple definition.

потому что переменная должна быть обьявлена только один раз.
Обьявил ее в нужном модуле,сделал экстерном в хидере,теперь каждый модуль,который пользуется этим хидером будет знать,что переменная определена в другом месте и линкер не будет ругаться.
Еще делается защита от рекурсивного подключения хидеров
#ifndef __mhdr.h
#define__mhdr.h

ьыыыы...
Вот ты конкретно сейчас на кейловский проект смотришь?
А я смотрю.
И ни какого отношения к требованиям стандарта этотт маразм не имеет.
И #ifndef __file.h
#define__file.h
там есть у меня.
Просто єто кейл. Чтобы не быть голословным - просто поставь кейл, создай проект и заинклудь в 2 .с файла один .h файл - а-то этот спич весь о сферических конях. Собери в кейле и удивись.

Во во во, полчаса назад я эту хуйню борол у себя! Прикинь, он сука "забывает" про изменения внесенные в хидер.
Короче, я сделал так. В дереве проекта еще раз открыл нужный хидер, в него перетащил то что нафигачил в уже открытом. Старый закрыл, новый сохранил. По сути это ОДИН И ТОТ же, блядь, файл, но Кейлу похуй.

о как... а я прошлій раз, когда стоял выбор IDE на повестке - именно из за этой хеты кейл нахер выкинул. Я так и не нашел в чем прикол.
 
  • 🔴 21:27 Повітряна тривога в м. Харків та Харківська територіальна громадаСлідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #204
Тогда может IDE поменять,чтобы не удивляться? К той-же Eclipse уже прикручивается IAR.
 
  • 🔴 21:27 Повітряна тривога в м. Харків та Харківська територіальна громадаСлідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #205
я когда вижу переменную в хедере, хоть и extern - делаю вот так: :eyecrazy:
пушо это такой крайняк, шо пестрить определениями оно никак не должно.
и пестроту всю стараюсь в неймспейс обернуть, то бишь в struct{}
иначе :eyecrazy: :eyecrazy: :eyecrazy:
 
  • 🔴 21:27 Повітряна тривога в м. Харків та Харківська територіальна громадаСлідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #206
Тогда может IDE поменять,чтобы не удивляться? К той-же Eclipse уже прикручивается IAR.

Я так и делал, но USB библиотеки правильные - генерятся в IAR, кейл и ещё 3 ИДЕ, среди которых нет еклипса, а есть еклипсоподобные

Я уже устал перебирать IDE, бля. Ну ещё 2 надо поставить и проверить.

IAR уже доделал автодополнение кода?
 
  • 🔴 21:27 Повітряна тривога в м. Харків та Харківська територіальна громадаСлідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #207
  • 🔴 21:27 Повітряна тривога в м. Харків та Харківська територіальна громадаСлідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #208
я когда вижу переменную в хедере, хоть и extern - делаю вот так: :eyecrazy:
пушо это такой крайняк, шо пестрить определениями оно никак не должно.
и пестроту всю стараюсь в неймспейс обернуть, то бишь в struct{}
иначе :eyecrazy: :eyecrazy: :eyecrazy:

ммм... чем тебе не нравятся переменные?
В хИдере, не в хедере :D

хидер это .h файл, а не верхняя часть файла .с :)
Чего в .h не должно быть переменных? Не всё есть смысл оборачивать.
 
  • 🔴 21:27 Повітряна тривога в м. Харків та Харківська територіальна громадаСлідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #209
IAR уже доделал автодополнение кода?
Сделал. Версия 7.50

Не знаю, не смотря на все приколы мне нравится Кейл, потому шо... удобный он, вкладочки разноцветные там, ебли с настройкой меньше. И вообще привык я к нему. Четвертый говно, а пятый ништяк :)
 
  • 🔴 21:27 Повітряна тривога в м. Харків та Харківська територіальна громадаСлідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #210
Сделал. Версия 7.50

Потому как твоё предположение о забівчивости кейла - не подтвердилось. Всё он замечательно помнит - глюк в другом где-то. Если я дефайню хидер только в 1 файл - всё работает. Множественній дефайн вызывает ошибку. и как это обойти я не понимаю. И как это обошли в либах - тоже. так как либы все работают и содержат любые дефайны, включая перекрестные.
 
  • 🔴 21:27 Повітряна тривога в м. Харків та Харківська територіальна громадаСлідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #211
  • 🔴 21:27 Повітряна тривога в м. Харків та Харківська територіальна громадаСлідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #212
Проверил ещё 2 IDE
Докладываю - обе на еклипсе (в результате - обе ушли нахуй).
Одна - не фриварь. Вернее, она фриварь только без много чего (отладчика, анализа статического кода и ещё чего-то). Чтобы включить полный функционал - помогает "недорогая подписка". Стоимость самой "недорогой подписки" я ни где не нашел (ну я больше 2х минут и не искал).
Это Атоллик тру студио Фтопку.

SystemWorkbench - еклипс. Бесплатен. Бессмысленнен.
Открыл проект - один из юсб-файлов сразу после генератора подсвечен воскличательным знаком, утверждает, что мало переменных передают в функцию.

Даже не компилировал - закрыл проект.

Остался или IAR, или если кто-нибудь объяснит мне что надо кейлу, чтобы он перестал неадекватно реагировать на включение одного хидера в 2 сишника одновременно.

Сделал. Версия 7.50

Не знаю, не смотря на все приколы мне нравится Кейл, потому шо...

Кейл не работает.
Невозможно в 2 разных *.с файла включить один и тот же *.h файл.
Как это сделать?
 
  • 🔴 21:27 Повітряна тривога в м. Харків та Харківська територіальна громадаСлідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #213
Ну я хер его знает. У меня хидер с системными параметрами подключен в десятке сишных файлов и все ОК, полет нормальный.
 
  • 🔴 21:27 Повітряна тривога в м. Харків та Харківська територіальна громадаСлідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #214
Ну я хер его знает. У меня хидер с системными параметрами подключен в десятке сишных файлов и все ОК, полет нормальный.

А у меня - нет. И єто уже второй раз происходит в истории. Первый раз кейл именно по такой же причине улетел на мусорку.
 
  • 🔴 21:27 Повітряна тривога в м. Харків та Харківська територіальна громадаСлідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #215
Может Пашу Гайдука попросим чтоб запилил свою IDE с библиотеками и визардами?
:D
 
  • 🔴 21:27 Повітряна тривога в м. Харків та Харківська територіальна громадаСлідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #216
У кейла с инклудами какой-то пиздец.
Говорю создать файл.h в группе Application/User
Предлагает мне путь в папку MDK-ARM и менять отказывается. Естественно, этот файл потом нихуя не находится из main.c, куда ему и дорога заинклудиться. Если создаю руками в папке src (это которая Application/User) - находится, но проблемы вышеописанные.



P.S.

Помогите выяснить где косяк. Вот проект кейл мдк арм 5.17. У меня выдает ошибку множественного дефайна. У всех так, или только у меня?

⚠ Тільки зареєстровані користувачі бачать весь контент та не бачать рекламу.
 
Останнє редагування:
  • 🔴 21:27 Повітряна тривога в м. Харків та Харківська територіальна громадаСлідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #217
  • 🔴 21:27 Повітряна тривога в м. Харків та Харківська територіальна громадаСлідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #218
Та ладно, а вдруг он ровно его портирует :)

Помогите выяснить где косяк. Вот проект кейл мдк арм 5.17. У меня выдает ошибку множественного дефайна. У всех так, или только у меня?
Переархивируй и перезалей. 235 ошибок распаковки.
 
  • 🔴 21:27 Повітряна тривога в м. Харків та Харківська територіальна громадаСлідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #219
  • 🔴 21:27 Повітряна тривога в м. Харків та Харківська територіальна громадаСлідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #220
Та ладно, а вдруг он ровно его портирует :)


Переархивируй и перезалей. 235 ошибок распаковки.

Нет там ошибок, но могу переархивировать. просто попробуй 7 распаковать программой 7zip.
⚠ Тільки зареєстровані користувачі бачать весь контент та не бачать рекламу.
.
 
Назад
Зверху Знизу