Микроконтроллеры

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Микроконтроллеры » Всё остальное » Совместимость кода


Совместимость кода

Сообщений 1 страница 21 из 21

1

Как сделать так, чтобы код, публикуемый в наших форумах, можно было бы скопипастить в файл и сразу использовать как есть, без какого-либо допиливания?
Какие идеи?

Отредактировано vt (2018-06-03 10:52:31)

2

Это наверное сложновато будет сделать (чтобы другой человек не вникая мог использовать) у каждого своя организация кода, зависимости между файлами и т.д. Можно попробовать отделять по масимуму железо от остальной логики, писать модули, библиотеки. У меня с этим очень плохо)) даже между проектами перенос кусков это долго. Ну или С++ класс, может быть.

3

Ясно, что это потянет за собой какие-то условия и правила, вопрос сможем ли мы что-то придумать и как-то договориться, а главное захотим ли
С одной стороны, вроде как какие-то искусственные ограничения полёта мысли, а с другой стороны, я вот смотрю иногда на соседний форум http://bascomavr.3bb.ru/ и завидую

4

Я не знаю правильно так или нет. Я например пишу модуль (аппаратно зависимый), он ссылаеться на main.h и там я уже пишу какой чип использую и основные определения (дефайны) прописаны тоже там. Можно еще вывести варнинг в модуле если прикручен неподдерживаемый камень.

5

Может быть и не замахиваться на разные мк, пусть хотя бы в пределах одного семейства мк с одинаковой периферией
Классы?
Сомневаюсь, судя по среднестатистическому отношению к плюсам )
Всё-таки скорее функции наверно

6

vt Я как не пытался не получилось написать под низкий уровень что-то что не нужно менять, т.е. модуль кочует по проектикам, но править его нужно практически всегда. Была у меня попытка написать библиотеку на С++, которая сама может настраивать себе порты, использовать и настраивать прерывания, пользователю нужно было лишь указать структуру параметров при создании класса и потом библиотека генерировала события (выставлялись флаги). Писал долго, все работало кое как, тут вроде выкладывал, потом забросил.

7

vt Сейчас пишу что-то вроде ПЛК, т.е. логику работы можно будет перестраивать пользователю.

В принципе может получиться что-то типа FlowCode или Visuino.

Отредактировано MasterElectric (2018-03-30 23:39:53)

8

И в чём тут совместимость кода???

9

я вот смотрю иногда на соседний форум http://bascomavr.3bb.ru/ и завидую

Чему??? А нужна ли... ваще... эта пресловутая "совместимость"... как и "переносимость"??? Нормальные эмбеддеры так ваще на уровне пальцев и слов общаются... ведь "Первична только идея, реализация уже вторична."(с)...
ИМХО... в современном мире... на "совместимость" и "переносимость" давно уже болт положили... Баском для АВР тому яркий пример... как и ардуина...

10

HHIMERA написал(а):

А нужна ли... ваще... эта пресловутая "совместимость"... как и "переносимость"??? Нормальные эмбеддеры так ваще на уровне пальцев и слов общаются... ведь "Первична только идея, реализация уже вторична."(с)...
ИМХО... в современном мире... на "совместимость" и "переносимость" давно уже болт положили... Баском для АВР тому яркий пример... как и ардуина...

Я услышал твоё мнение, но меня больше интересуют конструктивные идеи )

11

"Конструктивно" как и "совместимость" - вещь эфемерная и абстрактная...

СТМ8... Что совмещать то будем???
СТМ8С и СТМ8Л??? Там взаимодействие периферии и портов разное... уже не будет полной "совместимости"...
ИАР и Космик??? Навряд ли результат на выходе будет одинаковый... Даже хедеры от СТ и то в зачаточном состоянии...
И сколько писанина всего с нуля... займёт по времени??? А главное... кто это все поддержит... да ещё и рискнёт применить в своих проектах???

СТМ32... ваще "Совместим несовместимое"(с)...
Как можно совместить ЦМСИС и ХАЛ... или СПЛ и ЛЛ??? Или Ф0 и Ш7???
О какой "совместимости" ваще речь идёт... и где её берега???

12

Хал для этого сделан же? абстракция

13

HHIMERA написал(а):

"Конструктивно" как и "совместимость" - вещь эфемерная и абстрактная...

СТМ8... Что совмещать то будем???
СТМ8С и СТМ8Л??? Там взаимодействие периферии и портов разное... уже не будет полной "совместимости"...
ИАР и Космик??? Навряд ли результат на выходе будет одинаковый... Даже хедеры от СТ и то в зачаточном состоянии...
И сколько писанина всего с нуля... займёт по времени??? А главное... кто это все поддержит... да ещё и рискнёт применить в своих проектах???

СТМ32... ваще "Совместим несовместимое"(с)...
Как можно совместить ЦМСИС и ХАЛ... или СПЛ и ЛЛ??? Или Ф0 и Ш7???
О какой "совместимости" ваще речь идёт... и где её берега???

Я же уже ответил выше на все эти вопросы
"Ясно, что это потянет за собой какие-то условия и правила" [т.е. одинаковые хедеры, одинаковые библиотеки или никаких библиотек, возможно один компилятор и т.п.]
"пусть хотя бы в пределах одного семейства мк с одинаковой периферией"
Ну и зачем столько экспрессии, я же ни на чём не настаиваю, просто спрашиваю
Нет так нет

CERGEI написал(а):

Хал для этого сделан же? абстракция

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

14

vt написал(а):

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


Ну не зря же я сказал о ПЛК подобном подходе, у меня как раз идет перебор разных функций со своими правилами организации передаваемых параметров. Ну по сути просто каждая функция понимает свои данные, а началные данные этих данных типовые для всех функций, типа заголовок. Но это еще так в процессе изобретения. Как раз пересматриваю первую неудачную попытку.

15

"Универсальность есть истинное зло."(с)...

16

И я надеюсь что можно будет подключать в список любые функции быстро и легко, и не важно кто их писал, и есть ли там только логика или работа с регистрами. Главное чтобы ядро, которое перебирало функции смогло работать с этими данными. Работа с общими глобальными переменными строго через указатели. А может это все бред))

17

HHIMERA написал(а):

"Универсальность есть истинное зло."(с)...

Да дело не в универсальности, а в том, что публикации кода здесь, имхо, просто уходят в свисток

18

vt написал(а):

Да дело не в универсальности, а в том, что публикации кода, имхо, просто уходят в свисток

Да нет, почему. Вот пример по LTDC не то что помог, я его взял за основу, просто переделал под себя. Сложность в том то многие в примерах конкретно указывают SPI2 и т.п. не передают как указатель, т.е. это не библиотека, а просто пример. Невозможно быстро сменить порты, каналы, модули. Я у себя делаю структуру параметров (константные) и библиотека их использует, передаю только указатель для каждой функции или это уже есть в классах на с++ - передаеться экземпляр.

Отредактировано MasterElectric (2018-03-31 19:35:39)

19

Фишка в чём - если пост а-ля мануал, то код просто как пример, как иллюстрация вполне нормально
Но писать такие посты сжирает массу времени
Если же пост в основном код с минимумом объяснений, т.е. предполагается, что читатель сам будет разбираться прямо в коде, то такой код надо запускать, чтоб разбираться
Но если для того чтоб запустить надо допиливать, то большая вероятность, что будут ошибки и соотв разборки, причём теперь уже автору надо будет разбираться в чужом портированном коде
И кстати, потому что я не наблюдаю тут таких разборок, я и делаю предположение про свисток

20

Сложность в том то многие в примерах конкретно указывают SPI2 и т.п. не передают как указатель

Ничего удивительного... SPI2 может отличаться от SPI1... ТИМ1 от ТИМ4... ЮАРТ1 от ЮАРТ3...
Зачем расписывать все нюансы периферии... если оно при определённых случаях может не заработать... или ваще зачудить???
Получается... что что-то простое будет работать на любом ТИМ или СПИ... а более сложное только при определённой периферии... что мы частенько и наблюдаем у юзеров СПЛ или ХАЛ...

21

vt Ну так и было при запуске LTDC, разобрался сам впрочем сам и ошибся. Есть только в том коде ошибка одна, не настроен порт А вроде бы, и то это в библиотечной функции, а в мэйне это есть. Но бежать и писать не стал, пример то работал (hex).

HHIMERA Тогда все бесмыссленно... но делать подобные попытки для себя это хороший опыт... хотя может и зря потраченное время... непонятно, много кода было написано, потом он был забыт и исчез навсегда.

Отредактировано MasterElectric (2018-03-31 21:30:03)


Вы здесь » Микроконтроллеры » Всё остальное » Совместимость кода