поток изначально родился для того, чтобы унифицировать последовательный обмен данными. позже (а может, и одновременно) появился термин "файл", и в настоящее время эти термины очень похожи по смыслу. я не могу точно сказать, почему они до сих пор не слились в один термин, но по сути это одно и то же, за одним исключением: поток - это механизм ОБМЕНА данными, а файл - это механизм ХРАНЕНИЯ данных. т.е. разница между ними в том, что поток не может существовать без работы программы, а файл - может. а в остальном (чтение, запись, управление и т.п.) это одно и то же.
ну, в принципе, есть еще одно отличие, несущественное для ардуинки и большинства МК: файл допускает множественный произвольный доступ, а поток, даже если допускает произвольный доступ, как правило, не допускает множественного доступа. это значит, что файл могут открыть разные процессы и читать из него данные по-разному: один с начала, а другой - с середины, а поток такой возможности, как правило, не допускает: с потоком работает либо только один процесс, либо много, но все в с одной и той же последовательностью данных.
чтобы лучше это понять, надо вспомнить разницу между чтением/записью в последовательный порт и чтением/записью файла.
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
Есть отличающееся мнение - поясните в чем суть "ахинеи".
Как бы не понятно о чём шла речь. Мне показалось что вы говорили об Ардуино, верно? А если так, то нет там никакого хекс-парсинга. Загрузчик этим не занимается. Он общается с программатором по протоколу STK500 и получает от него бинарные данные для записи и верификации.
ARV хорошее дополнение к тому чего уже насобиралось... Я ж по старой привычке ищу аналогию приемов ассемблера - и как-то совсем пока в расстройстве - одним приемом "поток" не вписать, а комплект из нескольких - это уже вроде не прием, а совокупность набора подпрограмм...
Ну да пускай пока отлежится - не "жизненная необходимость", позже еще разок грызну.
OKF писал(а):
... Как бы не понятно о чём шла речь. Мне показалось что вы говорили об Ардуино, верно? А если так, то нет там никакого хекс-парсинга. Загрузчик этим не занимается. Он общается с программатором по протоколу STK500 и получает от него бинарные данные для записи и верификации.
Как раз парсинг в адуринке есть... Даже напрямую заявлен. Но речь не о загрузчике адуринки - я его начинку не знаю, а о самом термине - в общем сводящемся к методу поиска/выборки данных. Теперь к адуринье... Раздел оффлайн хэлпа (есть на любом ПК без подключения к инету) file:///C:/Program%20Files/Arduino/reference/www.arduino.cc/en/Reference/Serial.html смотрим функции:
Код:
parseFloat() parseInt()
Далее они же встречаются в Stream. Ну и ессно не столь явно поиск и выделение на главной вкладке хэлпа:
Добавлено after 6 hours 43 seconds: Чуток от теории к практике... Последнее время наблюдается интерес к конструкциям, у которых интерактивная часть (дисплей с кнопами ввода данных) не имеет постоянного подключения. К примеру - прицепил к системе ввода (автономный коробок, прожка в ПК или еще чего), ввел необходимые настройки/изменения режимов и отключился. Далее устройство работает самостоятельно (максимум с кнопами оперативного управления)... А понадобилось в кое время перенастроить - снова подцепился с соответствующего пультика, выполнил нужные операции и снова устройство в "автономном режиме"... Это к примеру ночничек-будильничек с разноцветиками... Или прикладная таймерюга для теплички/аквариума.... Или ешшо чаво...
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Загрузчик КОТУИНКО обрабатывает "поток данных" побайтово "на лету"... Плюс буфер размером в одну строку *.hex файла для последующего прикладного размещения в ОЗУ ВПД/ВПП. Т.е. один реальный входной поток по RS232 на скорости 9600 совмещенный с анализом и преобразованием для последующего размещения в оперативном буфере и второй - сброс данных в соответстви с указанными для них адресами в ВПП/ВПД... Неуж-то и "поток" и "парсинг" уже в дальнем прошлом изучен...?... Правда под ассемблером... Чтой-то не особо в то верится... Гдей-то ПОДВОХ...
Именно на это у меня был ответ.
Касательно термина parsing - в МК это синтаксический разбор строки или строк, преобразование их из текстового в цифровой формат. Поэтому название методов parseInt и parseFloat вполне логично - они преобразуют строку в цифру. Или парсинг командной строки отладочного монитора. Или парсинг строк исходного текста компилятором, разбивка их на логические части, с тем что бы можно было манипулировать в дальнейшем. Ну и в интернете парсинг сплошь и рядом. А вот загрузчик Ардуино никаким парсингом строк не занимается. Да, команды от AvrDude он принимает и выполняет, но это совсем не парсинг.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Последнее время наблюдается интерес к конструкциям, у которых интерактивная часть (дисплей с кнопами ввода данных) не имеет постоянного подключения
давно уже этот интерес сконструирован, удобно очень смартфон в виде "дисплей с кнопами ввода данных". Осторожно там есть ссылки на проект с тревожного сайта, который XP не любит:
Загрузчик КОТУИНКО обрабатывает "поток данных" побайтово "на лету"... Плюс буфер размером в одну строку *.hex файла для последующего прикладного размещения в ОЗУ ВПД/ВПП. Т.е. один реальный входной поток по RS232 на скорости 9600 совмещенный с анализом и преобразованием для последующего размещения в оперативном буфере и второй - сброс данных в соответстви с указанными для них адресами в ВПП/ВПД... Неуж-то и "поток" и "парсинг" уже в дальнем прошлом изучен...?... Правда под ассемблером... Чтой-то не особо в то верится... Гдей-то ПОДВОХ...
Именно на это у меня был ответ.
Касательно термина parsing - в МК это синтаксический разбор строки или строк, преобразование их из текстового в цифровой формат. Поэтому название методов parseInt и parseFloat вполне логично - они преобразуют строку в цифру. Или парсинг командной строки отладочного монитора. Или парсинг строк исходного текста компилятором, разбивка их на логические части, с тем что бы можно было манипулировать в дальнейшем. Ну и в интернете парсинг сплошь и рядом. А вот загрузчик Ардуино никаким парсингом строк не занимается. Да, команды от AvrDude он принимает и выполняет, но это совсем не парсинг.
Так речь-то там шла не о загрузчике ардуинки, а о загрузчике КОТУИНКИ (ардуинка и котуинко это принципиально РАЗНЫЕ по бутлоадеру устройства https://radiokot.ru/forum/viewtopic.php ... 7#p3167597 и https://radiokot.ru/forum/viewtopic.php ... 1#p3435971 ну и там далее...) - там как раз полный анализ символьной строки intel hex8 делается да еще и с некоторыми "добавками" вида предобработки и перемещения согласно указанным в строке адресам. Неуж-то таки "ахинея"?
А... Ну, тогда звиняйте! Только название Ардуино (и производные от него) - это торговая марка, и подразумевает совместимость с другими платами Ардуино. Т.е. используются скетчи, IDE, загрузчики... У вас же только одно, сбивающее с толку, название.
А копирование и не предполагалось с самого начала. Естественно имеются и общие свойства - блочно-модульное построение и упрощенная загрузка с помощью начального загрузчика. Второе - использование в конструкции смеси из МК разных семейств, в том числе и блоков от ардуиноподобных (включая как "DIPмикросборки" типа ардуино нано/про-мини, так и модули расширения разнообразной переферии). Но это свойственно сегодня не только адуринкам - подобные методы применяются во многих устройствах.
Так то прежде чем орать об "ахинее" типа https://radiokot.ru/forum/viewtopic.php ... 4#p3929014 не мешает сначала с имеющимся ранее материалом ознакомиться (хотя бы обзорно - ибо различных "побочных размышлений" в теме таки весьма моного накидано).
Да, да, именно "побочных размышлений", типа сам с собою, 2 года и 63 страницы. Я уже и забыл начало, т.к. не так часто сюда захожу.( Не обижайтесь, я не со зла, чисто заради критики. По теме. Офигенно общие свойства - только загрузчик и всё в себе. Вон люди лепят для х51: https://github.com/DeqingSun/ch55xduino. Но, плюсового компилятора нет, а значит библиотеки придётся кроить. Но хоть задатки какой-то универсализации.
Так кому чего удобнее. Там именно копия с ардуино по принципу. У меня совершенно иной вариант на основе использования совмещенной памяти программ/данных и для иных целей - порт расширитель под самоделки ПК. При условии минимальной сложности для связной программы в ПК. Помимо прочего - проект под свободно-бесплатным атмелевским ассемблером (С51ASM) и с открытым исходником. Кто хочет - тот свое дописывать может под собственные итересы. Была бы задача дубль для mcs51 "в рамках ардуино" - тогда уж надо или на СИЛАБСАХ или на продукции STC устройство мутить. Ведь в 51-й не так много широкораспространенных кристаллов с самопрограммированием. Да с влазить в дебри Си на том же уровне, что и в ассемблер - уж слишком жестко. Тем более, что для 51й из свободнобесплатных не GCC, а SDCC... В принципе - КОТУИНКО проект открытый - ежли кому туда Си приткнуть удастся - не вопрос. Загрузчику то все равно, под чем *.hex файл делался.
Кстати... ардуиноподобные из ПИКовых пошли своим путем (вплоть до IDE) - видимо на то свои причины.
Смысл зацикливаться на "фанатизьме" в отношении каких-либо семейств/компиляторов ежли гораздо удобнее потихоньку изучая еще не изученное и используя лучшее из уже имеющегося "в запасе" делать гибридные проекты?
Но, плюсового компилятора нет, а значит библиотеки придётся кроить
clang люди для 51 приспособили, костыль конечно но...
Цитата:
Большинство библиотек для Arduino так или иначе используют C++, а точнее некоторые его синтаксические конструкции. Как уже упоминалось, компилировать C++ SDCC не умеет. Но многие библиотеки Arduino используют классы, наследия и полиморфизм. Мы перепробовали разные варианты, начиная со старого-доброго cfront и заканчивая новомодным clang. После долгого раздумья было решено взять clang и использовать его для синтаксического разбора пользовательского кода с последующим созданием чистейшего C-кода, который уже будет собираться SDCC. Таким образом, мы используем clang как транслятор С++ кода в Си, а не как полноценный компилятор.
Я ж когда-то предлагал - "может кто из знатоков самой ардуино IDE в смысле описания особенностей компиляторов займется?"... Как к примеру те же статьи от ARV по АВРстудио.... Никто так и не заинтересовался... Был бы там в основе "чистый ассемблер" - это одно, а с Си/С++ (и тем более с другими, применяемыми в ардуиноIDE компиляторами ЯВУ) я лишь на "продвинутого пользователя" выйти пытаюсь.
oleg110592 По вопросу использования "сторонних библиотек"... Я придерживаюсь позиции не в абсолютном отказе от их применения, а в более целесообразным ограничении такого использования до разумного минимума при одновременной наработке навыков самостоятельного создания необходимых в конкретной ситуации библиотек ("внешних файлов") под документацию компонентов и схемотехнику конкретных проектов. Иначе при работе по копипасту можно совсем мозгами шевелить разучиться.
Узрел отличнейшую штуку для ардунщиков, особенно для старых ПК (виндовс линукс иос), ардуино из командной строки Arduino CLI. Проверил в линуксе - работает. Главное не мусорит по разным папкам компьютера - все чинно в одной папочке накапливает. Легко настраивается, легко подключать новые либы ядра:
брал ночную сборку - там сам экзешник arduino-cli и файл лицензии. На сайте прекрасно оформлена документация, чего еще надо человеку с нормальным монитором. Есть на гитхабе в виде отдельных файлов в формате Markdown, значит можно в pdf сконвертить https://github.com/arduino/arduino-cli папка docs Linux ARM есть и исходники есть - значит можно работать на электрочайнике с линукс
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 29
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения