Мне доводилось хорошее слышать о cutmaster.ru и m-drives.ru
А вообще сейчас в станкостроении сложилась уникальная ситуация: электроника для управления появляется размером в одну микросхему, можно легко свои печатные платы делать, а не покупать эти коробки со step/dir интерфейсом. Механические комплектующие и расходники (фрезы, свёрла) для бюджетных вариантов торгуются на алике по скромным ценам по сравнению с тем, сколько мы тратим например, на поход в кафе… И сейчас, мне кажется, решает удобный софт верхнего уровня. А такой софт часто стоит сопоставимо со станком
Объясните неумному:
установил для своего ARM64 приложение из apt. У меня есть поддержка NEON, а вот приложение из apt собрано с поддержкой NEON? Наверное нет, а ведь есть ещё куча менее распиаренных расширений (cx16, SSSE3 и др), получается, надо бы всё пересобирать из исходников на целевую машину? Звучит утопично...
goto хорошо накладывается на asm, а defer? defer накапливает вызовы в стеке, при этом defer вы используете для освобождения ресурсов. Что будет при переполнении стека? Кстати одной из проблем Си является невозможность функции видеть собственный стек...
/* объявление функции без аргументов */
int no_args();
/* тоже объявление функции без аргументов */
int no_args(void);
Первый вариант означает, что тип и кол-во аргументов не определены (можно писать no_args(1,2,3)), второй вариант означает, что аргументов у функции нет. Первый вариант можно отнести к быдлокоду, он ещё жив, полагаю, для совместимости...
Увы и ах. Я вот жалею, что на avr-gcc _Atomic не описан толком как работает… На Cortex'ах бы тоже _Atomic пригодился. Причём и для использования с прерываниями, и когда у тебя ОСРВ.
Кто-нибудь знает что-то о работе _Atomic в микроконтроллерах?
Про адекватный printf fixed point кто-нибудь сможет прокомментировать?
По пункту 4. Как правильно и разъяснили palukeVlK, (void)0 можно кастовать ещё куда-то
(uint64_t)(int)(void)0 — пожалуйста, лишь бы псевдоним не прибежал на -O3 Причём кастоваться он может неявно — вот в этом вся боль. А nullptr нельзя закастовать никуда...
Вызываю пояснительную бригаду!
"Если пример вам ни о чём не говорит, то загляните в документацию для Linux по адресу man 3 exec, там будет пояснение." Читаем про эту функцию: The list of arguments must be terminated by a NULL pointer, and, since these are variadic functions, this pointer must be cast (char ) NULL
Но при этом известно, что "Константа нулевого указателя, приведённая к любому типу указателей, является нулевым указателем." Как так? Ну есть у нас функция с переменным количеством аргументов (как printf), да, к последнему именованному аргументу этой функции и всем неименованным применяется default argument promotion… Ну и что? Разве приведение к (char) отменяют default argument promotion? Всё равно ведь отправится указатель не на 1 байт, а на sizeof(int) 4 байта, нет?
Скачать из git без веба не получится таким макаром:
perl init-repository --no-webkit
Теперь нужно писать
perl init-repository --module-subset=default,-qtwebengine
В мире встраиваемых систем есть и местная минималистичная ОС реального времени FreeRTOS. Настолько минималистичная, что собирается вместе с разрабатываемым софтом в единый hex.
Спустя 6 лет после выхода статьи нашёл всего 1 беспроводную зарядку на расстоянии (TX91503) и за бешеные деньги… Зато сколько пустых слов в интернетах…
Мне доводилось хорошее слышать о cutmaster.ru и m-drives.ru
А вообще сейчас в станкостроении сложилась уникальная ситуация: электроника для управления появляется размером в одну микросхему, можно легко свои печатные платы делать, а не покупать эти коробки со step/dir интерфейсом. Механические комплектующие и расходники (фрезы, свёрла) для бюджетных вариантов торгуются на алике по скромным ценам по сравнению с тем, сколько мы тратим например, на поход в кафе… И сейчас, мне кажется, решает удобный софт верхнего уровня. А такой софт часто стоит сопоставимо со станком
не рассмотрены юридические ограничения на виртуализацию!
Тут обсуждают многие мейнстримовые мессенджеры, но мне интересен опыт использования Tox… Поделитесь!
Объясните неумному:
установил для своего ARM64 приложение из apt. У меня есть поддержка NEON, а вот приложение из apt собрано с поддержкой NEON? Наверное нет, а ведь есть ещё куча менее распиаренных расширений (cx16, SSSE3 и др), получается, надо бы всё пересобирать из исходников на целевую машину? Звучит утопично...
Тем временем Ангстем-Т никому и не передали, всё также банкротят… А время идёт...
goto хорошо накладывается на asm, а defer? defer накапливает вызовы в стеке, при этом defer вы используете для освобождения ресурсов. Что будет при переполнении стека? Кстати одной из проблем Си является невозможность функции видеть собственный стек...
Первый вариант означает, что тип и кол-во аргументов не определены (можно писать no_args(1,2,3)), второй вариант означает, что аргументов у функции нет. Первый вариант можно отнести к быдлокоду, он ещё жив, полагаю, для совместимости...
Поговорим о платформе, где язык Си является абсолютным доминантом — ARM. ARM Ltd выпускает среду программирования для архитектуры ARM:
из файла
/ stddef.h: ANSI 'C' (X3J11 Oct 88) library header, section 4.1.4 /
/* Copyright © ARM Ltd., 1999
...
define NULL 0
Что ж, ARM Ltd желает удачной отладки, коллега!
volatile uint8_t однозначно не является атомарным на avr. На avr есть от производителя компилятор XC8, к нему есть описание MPLAB XC8 C Compiler User’s Guide for AVR® MCU На тему атомарности единственно что есть — отсылка к какому-то atomic.h.
По теме работы fixed point в реальных компиляторах ожидается пояснительная бригада!
Увы и ах. Я вот жалею, что на avr-gcc _Atomic не описан толком как работает… На Cortex'ах бы тоже _Atomic пригодился. Причём и для использования с прерываниями, и когда у тебя ОСРВ.
Кто-нибудь знает что-то о работе _Atomic в микроконтроллерах?
Про адекватный printf fixed point кто-нибудь сможет прокомментировать?
По пункту 4. Как правильно и разъяснили paluke VlK, (void)0 можно кастовать ещё куда-то
(uint64_t)(int)(void)0 — пожалуйста, лишь бы псевдоним не прибежал на -O3 Причём кастоваться он может неявно — вот в этом вся боль. А nullptr нельзя закастовать никуда...
Вызываю пояснительную бригаду!
"Если пример вам ни о чём не говорит, то загляните в документацию для Linux по адресу man 3 exec, там будет пояснение."
Читаем про эту функцию: The list of arguments must be terminated by a NULL pointer, and, since these are variadic functions, this pointer must be cast (char ) NULL
Но при этом известно, что "Константа нулевого указателя, приведённая к любому типу указателей, является нулевым указателем." Как так? Ну есть у нас функция с переменным количеством аргументов (как printf), да, к последнему именованному аргументу этой функции и всем неименованным применяется default argument promotion… Ну и что? Разве приведение к (char) отменяют default argument promotion? Всё равно ведь отправится указатель не на 1 байт, а на sizeof(int)
4 байта, нет?perl init-repository --no-webkit
Теперь нужно писать
perl init-repository --module-subset=default,-qtwebengine
Вечная слава Эндрю Тенинбауму!