реклама на сайте
подробности

 
 
3 страниц V  < 1 2 3  
Reply to this topicStart new topic
> Логирование данных.
Сергей Борщ
сообщение Jan 17 2017, 16:34
Сообщение #31


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



QUOTE (Jenya7 @ Jan 17 2017, 17:17) *
так я почему передаю void *data. я хочу чтоб функция была генерик. чтоб работала с любыми данными.
Вы такую функцию и показали - она принимает указатель на void и размер. Теперь вам надо ей передавать размер каждый раз вручную. Как тремя строчками заставить это делать компилятор для любых типов данных - я показал. Но для этого требуется переходить на С++. Но вы примкнули к тем, кто хочет все делать на голом Си. Пожалуйста. Можете написать макрос
CODE
#define LOG_SEND(storage, data) LOG_Send(storage, &data, sizeof(data))
и взять на себя ответственность за все возможные ошибки использования. Размер кода будет идентичен варианту с шаблоном, но все подводные камни на вашей совести.


QUOTE (Эдди @ Jan 17 2017, 18:28) *
Выше я на него ответил.
Нет. Или давайте перефразируем: на какой вопрос вы ответили выше?


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
jorikdima
сообщение Jan 17 2017, 16:38
Сообщение #32


тут может быть ваша реклама
*****

Группа: Свой
Сообщений: 1 164
Регистрация: 15-03-06
Из: Санкт-Петербург/CA
Пользователь №: 15 280



Цитата(Jenya7 @ Jan 17 2017, 06:02) *
подозреваю что компилятор выполнит те же самые танцы с бубном. просто мы их не увидим.

В этом и прелесть!
Go to the top of the page
 
+Quote Post
Jenya7
сообщение Jan 17 2017, 17:02
Сообщение #33


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



Цитата(Сергей Борщ @ Jan 17 2017, 22:34) *
Вы такую функцию и показали - она принимает указатель на void и размер. Теперь вам надо ей передавать размер каждый раз вручную. Как тремя строчками заставить это делать компилятор для любых типов данных - я показал. Но для этого требуется переходить на С++. Но вы примкнули к тем, кто хочет все делать на голом Си. Пожалуйста. Можете написать макрос
Код
#define LOG_SEND(storage, data) LOG_Send(storage, &data, sizeof(data))
и взять на себя ответственность за все возможные ошибки использования. Размер кода будет идентичен варианту с шаблоном, но все подводные камни на вашей совести.


Нет. Или давайте перефразируем: на какой вопрос вы ответили выше?

Сергей! Вы красиво разрулили и без плюсов! sm.gif
Go to the top of the page
 
+Quote Post
Jenya7
сообщение Jan 18 2017, 06:46
Сообщение #34


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



Цитата(jorikdima @ Jan 17 2017, 21:38) *
В этом и прелесть!

я когда то думал что HAL прелесть. потом решил работать на уровне регистров. Мне нужен полный контроль и понимание происходящего.

вот если Сергей напишет туториал - программирование ембедед в плюсах тогда да.
Сам поизводитель SPL и примеры предоставляет в С. Если бы они то же самое продублировали в С++ не так боязно было бы пересесть на C++.


Сообщение отредактировал Jenya7 - Jan 18 2017, 07:05
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Jan 18 2017, 08:06
Сообщение #35


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



QUOTE (Jenya7 @ Jan 18 2017, 14:46) *
потом решил работать на уровне регистров.

Вы же не используете регистры "пользовательском" коде? Я имею в виду, вы же не используете в коде логгера регистры? Т.е. HAL у вас всё равно есть.
QUOTE (Jenya7 @ Jan 18 2017, 14:46) *
Мне нужен полный контроль и понимание происходящего.

Обилие регистров как раз должно лишить вас этого rolleyes.gif
QUOTE (Jenya7 @ Jan 18 2017, 14:46) *
вот если Сергей напишет туториал - программирование ембедед в плюсах тогда да.

Да оно мало отличается от компьютера) Принцип тот-же.
QUOTE (Jenya7 @ Jan 18 2017, 14:46) *
Если бы они то же самое продублировали в С++

А я оборачиваю CMSIS, lpcopen, FatFS в Си++. Не боязно. Удобно! rolleyes.gif
QUOTE (Jenya7 @ Jan 18 2017, 14:46) *
не так боязно было бы пересесть на C++.

а вообще боязнь и неуверенность - от незнания, без обид, это и ко мне относится. Читайте хорошие книги, вникайте в глубь происходящего, и вы будете уверенны в том, что делаете.

Например: в коде для LPC1768 выделяется динамически память. В проге для компа вы её можете выделить в первой строчке функции main(). В железяке такое может не пройти, если куча инициализируется не в startup-файле, а после. Вроде всё просто, а люди задают вопросы)


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Jan 18 2017, 08:53
Сообщение #36


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



QUOTE (Jenya7 @ Jan 18 2017, 08:46) *
вот если Сергей напишет туториал - программирование ембедед в плюсах тогда да.
"Чтение документации из интернета вслух - 100 евро в час". Нет никаких чернил для второго класса Си плюсов для контроллеров. Есть обычные плюсы и голова программиста.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
mdmitry
сообщение Jan 18 2017, 15:39
Сообщение #37


Начинающий профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 25-10-06
Из: СПб
Пользователь №: 21 648



Цитата(Jenya7 @ Jan 18 2017, 10:46) *
....
Сам поизводитель SPL и примеры предоставляет в С. Если бы они то же самое продублировали в С++ не так боязно было бы пересесть на C++.

Посмотрите здесь как сделано у одного из соавторов scmRTOS.


--------------------
Наука изощряет ум; ученье вострит память. Козьма Прутков
Go to the top of the page
 
+Quote Post
Jenya7
сообщение Jan 18 2017, 17:06
Сообщение #38


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



Цитата(mdmitry @ Jan 18 2017, 20:39) *
Посмотрите здесь как сделано у одного из соавторов scmRTOS.

спасибо. выглядит интересно. попробую разобраться.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jan 18 2017, 18:40
Сообщение #39


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(esaulenka @ Jan 17 2017, 16:19) *
А можно примеры таких систем? Они ведь очень широко распространены, правда?

Поскольку я НЕ ЗНАЮ ни одной платфомы, где это было бы не так, то мне очень интересно, существует ли вообще платформа, где данные пофиг, как выровнены. Хотя ответ я знаю у удручающей точностью - не существует - ограничения железа.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Jan 18 2017, 19:16
Сообщение #40


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



QUOTE (zltigo @ Jan 18 2017, 20:40) *
Поскольку я НЕ ЗНАЮ ни одной платфомы, где это было бы не так,
Ну хоть одну назовите наконец. Во всех известных мне платформах (что 16-битных, что 32-х, что 64-х) 16-битные данные выравниваются на два байта.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
aiwa
сообщение Jan 18 2017, 22:54
Сообщение #41


Местный
***

Группа: Участник
Сообщений: 301
Регистрация: 13-12-15
Из: Харьков
Пользователь №: 89 682



Цитата(Эдди @ Jan 17 2017, 16:27) *
Если даже абстрагироваться от этого, то есть элементарная причина не использовать С++: зачем учить лишний ЯП, если С за глаза хватает? Вы бы еще на go каком-нибудь предложили код написать

Если абстрагироваться, то это - не изучение лишнего/нового языка, а расширение словарного запаса.
Go to the top of the page
 
+Quote Post

3 страниц V  < 1 2 3
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 11th July 2025 - 12:11
Рейтинг@Mail.ru


Страница сгенерированна за 0.01492 секунд с 7
ELECTRONIX ©2004-2016