Перейти к содержанию

Язык СИ для микроконтроллеров


Рекомендуемые сообщения

Только что, my504 сказал:

Мы то обсуждали якобы "стандарт", а он оказывается никакого отношения к ПРИМЕНЕНИЮ языка не имеет, являясь лишь указанием  писателям самого компилятора

Писатели компилятора и "применители" компилятора должны мыслить одними категориями, чтобы не возникало разночтений. Разве не так? Разночтения - это ведь потенциальный источник больших проблем!

Только что, my504 сказал:

Еще раз для глухих. Перебьетесь.

Когда у меня возникнет неразрешимый вопрос, я его задам лично Вам. Обещаю

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

Если забанить всех, кто набрался смелости думать независимо, здорово будет на форуме - как на кладбище: тишина, птички поют...

Ссылка на комментарий
Поделиться на другие сайты

1 минуту назад, ARV сказал:

Писатели компилятора и "применители" компилятора должны мыслить одними категориями, чтобы не возникало разночтений. Разве не так? Разночтения - это ведь потенциальный источник больших проблем!

Нет, не так. У них принципиально разные задачи. Поэтому пользователь должен читать мануал на КОНКРЕТНЫЙ компилятор.

戦う前に相手のベルトの色に注目

Ссылка на комментарий
Поделиться на другие сайты

Только что, my504 сказал:

Поэтому пользователь должен читать мануал на КОНКРЕТНЫЙ компилятор.

Чтение мануала потому и необходимо, что создатели компилятора не все требования стандарта выполняют, или не так выполняют. То есть следует знать, где и что не так, как описано в стандарте.

И в мануале на конкретный компилятор не сказано (поправьте доказательно, если я ошибся) про то, как и какой ассемблерный код генерируется на те или иные выверты программиста. Так что ваш выпад мимо цели.

Самое смешное, что вопреки вашим заявлениям, a += b < c; одинаково работает на любых компиляторах :) чего как бы и быть не должно - ведь у логического выражения нет "осязаемого" результата...

Если забанить всех, кто набрался смелости думать независимо, здорово будет на форуме - как на кладбище: тишина, птички поют...

Ссылка на комментарий
Поделиться на другие сайты

Сравнительное тестирование аккумуляторов EVE Energy и Samsung типоразмера 18650

Инженеры КОМПЭЛ провели сравнительное тестирование аккумуляторов EVE и Samsung популярного для бытовых и индустриальных применений типоразмера 18650. 

Для теста были выбраны аккумуляторы литий-никельмарганцевой системы: по два образца одного наименования каждого производителя – и протестированы на двух значениях тока разряда: 0,5 А и 2,5 А. Испытания проводились в нормальных условиях на электронной нагрузке EBD-USB от ZKEtech, а зарядка осуществлялась от лабораторного источника питания в режиме CC+CV в соответствии с рекомендациями в даташите на определенную модель. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

2 минуты назад, ARV сказал:

И в мануале на конкретный компилятор не сказано (поправьте доказательно, если я ошибся) про то, как и какой ассемблерный код генерируется на те или иные выверты программиста. Так что ваш выпад мимо цели.

Еще как сказано. Целые приложения чуть ли не на половину мануала.

Я уже не говорю о разного рода методах позволяющих заставить компилятор генерировать требуемый код.

Изменено пользователем my504

戦う前に相手のベルトの色に注目

Ссылка на комментарий
Поделиться на другие сайты

Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. 

Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств. Подробнее параметры и результаты тестов новой серии PLM по ссылке.

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

18 минут назад, my504 сказал:

Что то с русским языком - Вы не находите?  Арифметическую команду (вероятно Вы имели ввиду выражение) можно записать на АСМе. Если Вы  ДАЛЕЕ используете численный  результат  - то логический (их кстати несколько) исчезает (то есть его в общем и не было - ибо какая разница что там делает ядро, если Вы игнорируете результат). То есть в результате логической или арифметической операции на АСМе нет никаких нуля-единицы в качестве логического результата. Они появятся лишь после того, как логическое выражение станет частью численного.

Так и арифметический результат также пропадет если его не использовать сразу, если выйти из асемблерной вставки!!! Что это доказывает???

Я же написал (ну может не достаточно акцентированно) что сразу надо использовать, какая разница значения каких регистров мы используем: общего назначения или состояния, как можно строить аргументацию на этой разнице?

Значение может занимать бит регистра, может целый регистр, но и инструкции есть для доступа к отдельным битам или к специальным регистрам, что это  доказывает?

Вообще нафига нужно это разделение на логические или арифметические операции, все они битовые только с разным количеством битов на уровне ассемблера, цель должна быть когда вводим терминологию!

У Вас получается цель выделить тип операций и доказать что их не существует- ну глупость какая-то получается!

В этом разделении и есть ограниченность по моему.

Можно сделать все! Но чем больше можно, тем больше нельзя!

Ссылка на комментарий
Поделиться на другие сайты

Литиевые батарейки и аккумуляторы от мирового лидера  EVE в Компэл

Компания Компэл, официальный дистрибьютор EVE Energy, бренда №1 по производству химических источников тока (ХИТ) в мире, предлагает продукцию EVE как со склада, так и под заказ. Компания EVE широко известна в странах Европы, Америки и Юго-Восточной Азии уже более 20 лет. Недавно EVE была объявлена поставщиком новых аккумуляторных элементов круглого формата для электрических моделей «нового класса» компании BMW.

Продукция EVE предназначена для самого широкого спектра применений – от бытового до промышленного. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Только что, my504 сказал:

Еще как сказано.

Процитируйте, пожалуйста - это ведь не секретная инфа?

Если забанить всех, кто набрался смелости думать независимо, здорово будет на форуме - как на кладбище: тишина, птички поют...

Ссылка на комментарий
Поделиться на другие сайты

1 минуту назад, ruhi сказал:

Вообще нафига нужно это разделение на логические или арифметические операции, все они битовые только с разным количеством битов на уровне ассемблера, цель должна быть когда вводим терминологию!

Разделение нужно ровно потому, что  ЕДИНСТВЕННЫМ назначением логического результата является управление ветвлением. А то, что в Си принято, что логический результат преобразуется в число - это особенность языка,  которая может быть реализована ТОЛЬКО ПОСЛЕДОВАТЕЛЬНОСТЬЮ КОМАНД. То есть численный результат, даже если он был получен параллельно с логическим НЕ ПРИГОДЕН для Си. Его нужно преобразовать в 0 или 1.

5 минут назад, ARV сказал:

Процитируйте, пожалуйста - это ведь не секретная инфа?

Открываете мануал на XC16 и читаете сами. Это несекретный мануал, есличо.

戦う前に相手のベルトの色に注目

Ссылка на комментарий
Поделиться на другие сайты

Только что, my504 сказал:

Его нужно преобразовать в 0 или 1

Не нужно - он уже int, и его можно спокойно использовать

Только что, my504 сказал:

особенность языка,  которая может быть реализована ТОЛЬКО ПОСЛЕДОВАТЕЛЬНОСТЬЮ КОМАНД

Эта часть вашей фразы верна  для любой конструкции языка Си. Вообще любой, любого оператора, любой функции, любого действия (кроме обработки комментариев). Так что вы сказали "масло масляное", полезного в вашей фразе ровно ноль. Любая особенность языка реализуется последовательностью (из нуля или более) ассемблерных команд :)

Только что, my504 сказал:

ЕДИНСТВЕННЫМ назначением логического результата является управление ветвлением

Мне жаль, что вы так ограничены... и вам не знакома логика... Например, задачка про волка, козу и капусту - это логическая задачка, которая может быть решена средствами булевой алгебры, т.е. при помощи логических выражений БЕЗ ВЕТВЛЕНИЙ. И при этом все результаты логических выражений где-то "промежуточно" надо хранить, а затем повторно использовать...

 

Если забанить всех, кто набрался смелости думать независимо, здорово будет на форуме - как на кладбище: тишина, птички поют...

Ссылка на комментарий
Поделиться на другие сайты

4 минуты назад, ARV сказал:

Эта часть вашей фразы верна  для любой конструкции языка Си. Вообще любой, любого оператора, любой функции, любого действия (кроме обработки комментариев).

Вы пытаетесь комментировать чужую беседу. Потрудитесь сначала понять ее (беседы) логику.

6 минут назад, ARV сказал:

Например, задачка про волка, козу и капусту - это логическая задачка, которая может быть решена средствами булевой алгебры, т.е. при помощи логических выражений БЕЗ ВЕТВЛЕНИЙ. И при этом все результаты логических выражений где-то "промежуточно" надо хранить, а затем повторно использовать...

А Вы реализуйте эту задачу средствами процессора и мы посмотрим потребуется ветвление или нет. 

Какое отношение булева алгебра имеет к обсуждаемому вопросу? Мы рассматривали жесткую логику?

В огороде бузина, а в Киеве дядька.

戦う前に相手のベルトの色に注目

Ссылка на комментарий
Поделиться на другие сайты

25 минут назад, my504 сказал:

Разделение нужно ровно потому, что  ЕДИНСТВЕННЫМ назначением логического результата является управление ветвлением. А то, что в Си принято, что логический результат преобразуется в число - это особенность языка,  которая может быть реализована ТОЛЬКО ПОСЛЕДОВАТЕЛЬНОСТЬЮ КОМАНД. То есть численный результат, даже если он был получен параллельно с логическим НЕ ПРИГОДЕН для Си. Его нужно преобразовать в 0 или 1.

Вроде начали писать про С, а, потом, незаметно:

ТОЛЬКО ПОСЛЕДОВАТЕЛЬНОСТЬЮ КОМАНД - ассемблерных наверно???

перескочили на уровень ассемблера, какая разница как это на уровне ассемблера реализовано с точки зрения разработки С программ, может там регистр специальный выделили для флага сравнения???.

Да, конечно, на новых процессорах (соответственно, с новой реализацией GCC, например) компилятор приходится проверять, никуда от этого не деться, будь то арифметические, логические, адресные... операции!

По мне, так это Вы так решили себя ограничить при разработке Вашего кода(ну ради бога!), я например для себя вполне допускаю использование логических выражений в арифметических в Си и в ассемблерных вставках, и я Вас уверяю, я всегда знаю зачем и почему я это делаю.

И еще раз повторяю практически любая С-операция требует ТОЛЬКО ПОСЛЕДОВАТЕЛЬНОСТи КОМАНД в ассемблере, это ничего не доказывает!!! Можете писать хоть по две буквы на одну:)!

Изменено пользователем ruhi

Можно сделать все! Но чем больше можно, тем больше нельзя!

Ссылка на комментарий
Поделиться на другие сайты

Только что, my504 сказал:

Открываете мануал на XC16 и читаете сами. Это несекретный мануал, есличо

Открыл вот этот документ http://ww1.microchip.com/downloads/en/DeviceDoc/50002071F.pdf

Просмотрел более 390 страниц - ассемблерные команды встретились только в разделах "ассемблерные вставки", "использование модулей на ассемблере" и еще в паре мест - про передачу параметров через стек. Всё.

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

Только что, my504 сказал:

Какое отношение булева алгебра имеет к обсуждаемому вопросу?

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

Только что, my504 сказал:

Вы пытаетесь комментировать чужую беседу. Потрудитесь сначала понять ее (беседы) логику

Беседа публичная, во-первых. А во-вторых, логика ясна, вашего оппонента я вполне поддерживаю, хотя он и пытается убеждать вас вашими же методами, без ссылок на стандарт.

Изменено пользователем ARV

Если забанить всех, кто набрался смелости думать независимо, здорово будет на форуме - как на кладбище: тишина, птички поют...

Ссылка на комментарий
Поделиться на другие сайты

20 минут назад, ruhi сказал:

Вроде начали писать про С, а, потом, незаметно:

ТОЛЬКО ПОСЛЕДОВАТЕЛЬНОСТЬЮ КОМАНД - ассемблерных наверно???

перескочили на уровень ассемблера, какая разница как это на уровне ассемблера реализовано с точки зрения разработки С программ, может там регистр специальный выделили для флага сравнения???.

Вообще то это Вы перевели разговор на АСМ. Именно Вы начали мне говорить, что в результате АСМ команд арифметики получается так же логический результат.

Собственно арифметические выражения в нативной разрядности не используют флагов за исключением флага переноса, который суть и есть переносимый разряд.

То есть код сгенерированный Си из арифметических выражений содержит одну-две команды, не считая команд связанных с загрузкой-выгрузкой операндов. 

В результате  преобразования языком логических операций  в АСМ не может быть получено никакого результата соответствующего стандарту Си.  Мы естественно говорим не о поразрядной логической арифметике, а об операциях сравнения. Что бы получить соответствие стандарту нужно сгенерировать дополнительный код присвоения 0 или 1 соответствующей регистровой переменной.  Это справедливо для ЛЮБОЙ процессорной архитектуры.  Причем, если даже система команд требует  для сравнения операндов произвести арифметическую операцию, то и тогда результат этой операции не соответствует стандарту Си.

 

26 минут назад, ARV сказал:

Просмотрел более 390 страниц - ассемблерные команды встретились только в разделах "ассемблерные вставки", "использование модулей на ассемблере" и еще в паре мест - про передачу параметров через стек. Всё.

Приложение G. 

G.2 BUILT-IN FUNCTION DESCRIPTIONS.

戦う前に相手のベルトの色に注目

Ссылка на комментарий
Поделиться на другие сайты

1 минуту назад, my504 сказал:

... говорим не о поразрядной логической арифметике, а об операциях сравнения. Что бы получить соответствие стандарту нужно сгенерировать дополнительный код присвоения 0 или 1 соответствующей регистровой переменной.  Это справедливо для ЛЮБОЙ процессорной архитектуры.  Причем, если даже система команд требует  для сравнения операндов произвести арифметическую операцию, то и тогда результат этой операции не соответствует стандарту Си.

 

К чему эти нелепые отсылки к стандарту теперь!

Я говорю что Вы используете негодные аргументы, и что:

И еще раз повторяю практически любая С-операция требует ТОЛЬКО ПОСЛЕДОВАТЕЛЬНОСТи КОМАНД в ассемблере, это ничего не доказывает!!! Можете писать хоть по две буквы на одну:)!

Вот на это ответьте!

Можно сделать все! Но чем больше можно, тем больше нельзя!

Ссылка на комментарий
Поделиться на другие сайты

29 минут назад, ARV сказал:

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

Я предложил решить задачу булевой алгебры на  процессоре. Вы можете ее решить без ветвлений или нет?

戦う前に相手のベルトの色に注目

Ссылка на комментарий
Поделиться на другие сайты

Только что, my504 сказал:

Вы можете ее решить без ветвлений или нет?

Отвечу вашими словами: перебьётесь.

Если забанить всех, кто набрался смелости думать независимо, здорово будет на форуме - как на кладбище: тишина, птички поют...

Ссылка на комментарий
Поделиться на другие сайты

Только что, ruhi сказал:

К чему эти нелепые отсылки к стандарту теперь!

Я говорю что Вы используете негодные аргументы, и что:

И еще раз повторяю практически любая С-операция требует ТОЛЬКО ПОСЛЕДОВАТЕЛЬНОСТи КОМАНД в ассемблере, это ничего не доказывает!!! Можете писать хоть по две буквы на одну:)!

Вот на это ответьте!

Вы не понимаете о чем я написал? Вам перевести на другой язык? Вы пытаетесь изменить логику спора?

戦う前に相手のベルトの色に注目

Ссылка на комментарий
Поделиться на другие сайты

Только что, my504 сказал:

Приложение G. 

G.2 BUILT-IN FUNCTION DESCRIPTIONS.

Ну и? посмотрел... Что я там должен был увидеть? Что раскрыт ряд нюансов встроенных функций? Мы же говорим об особенностях кодогенерации того, что написал программист! Например, что будет сгенерировано в результате a+b и что в результате a<b... А там такого нет. Как я и ожидал.

Если забанить всех, кто набрался смелости думать независимо, здорово будет на форуме - как на кладбище: тишина, птички поют...

Ссылка на комментарий
Поделиться на другие сайты

Только что, ARV сказал:

Отвечу вашими словами: перебьётесь.

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

 

戦う前に相手のベルトの色に注目

Ссылка на комментарий
Поделиться на другие сайты

Только что, my504 сказал:

То есть не можете.

Вы не можете код приводить, я тоже не могу. Или я обязан ради вас стараться, а вы будете игнорировать мои просьбы? Не хорошо...

 

Только что, my504 сказал:

Но  причем тут Си?

При том, что Си содержит достаточно инструментов для решения таких задач. В соответствии со стандартом.

Если забанить всех, кто набрался смелости думать независимо, здорово будет на форуме - как на кладбище: тишина, птички поют...

Ссылка на комментарий
Поделиться на другие сайты

Только что, ARV сказал:

Ну и? посмотрел... Что я там должен был увидеть? Что раскрыт ряд нюансов встроенных функций? Мы же говорим об особенностях кодогенерации того, что написал программист! Например, что будет сгенерировано в результате a+b и что в результате a<b... А там такого нет. Как я и ожидал.

Я не знаю чего Вы ожидали. Я лишь написал о том, что мануал на компилятор приводит сгенерированный на Си код. Естественно, что в особых случаях. 

Смешно говорить о генерации из  a+b. 

戦う前に相手のベルトの色に注目

Ссылка на комментарий
Поделиться на другие сайты

Только что, my504 сказал:

Я лишь написал о том, что мануал на компилятор приводит сгенерированный на Си код

Не сгенерированный, а сделанный в виде встроенных функций. Эти функции не компилируются по исходнику, они уже встроены в генератор кода на уровне ассемблера. Вы же крутой спец по ассемблеру - неужели не понимаете разницу?!

Если забанить всех, кто набрался смелости думать независимо, здорово будет на форуме - как на кладбище: тишина, птички поют...

Ссылка на комментарий
Поделиться на другие сайты

Только что, ARV сказал:

1. Вы не можете код приводить, я тоже не могу. Или я обязан ради вас стараться, а вы будете игнорировать мои просьбы? Не хорошо...

 

2. При том, что Си содержит достаточно инструментов для решения таких задач. В соответствии со стандартом.

1. А я не просил приводить код. Я просил лишь рассказать каким образом в процессоре можно реализовать булеву алгебру без ветвлений? Впрочем, можно использовать поразрядную арифметику, только это не будет операцией сравнения.

2. Не важно что есть в Си. В Си многое что есть. Важно во что Си это превращает.

戦う前に相手のベルトの色に注目

Ссылка на комментарий
Поделиться на другие сайты

6 минут назад, my504 сказал:

Вы не понимаете о чем я написал? Вам перевести на другой язык? Вы пытаетесь изменить логику спора?

Вы отказываетесь от своего аргумента написанного БОЛЬШИМИ БУКВАМИ???

Это Вы пытаетесь изменить логику спора к той, когда Вы всегда правы, а теперь так не получается, уж извините.

Можно сделать все! Но чем больше можно, тем больше нельзя!

Ссылка на комментарий
Поделиться на другие сайты

Только что, ruhi сказал:

Я говорю что Вы используете негодные аргументы

В том-то и дело, что аргумент - это объективно демонстрируемый факт, а тов.@my504 факты не показывает, уходит под любым предлогом. 

Только что, my504 сказал:

Важно во что Си это превращает.

Согласен. И стандарт нам рассказывает, во что.

А булева алгебра, если вы забыли, это не только "сравнение". Это, например, и операции && || ^ ! - и их комбинациями можно составлять выражения-уравнения, которые можно вычислять/решать средствами Си.

Если забанить всех, кто набрался смелости думать независимо, здорово будет на форуме - как на кладбище: тишина, птички поют...

Ссылка на комментарий
Поделиться на другие сайты

2 минуты назад, ARV сказал:

Не сгенерированный, а сделанный в виде встроенных функций. Эти функции не компилируются по исходнику, они уже встроены в генератор кода на уровне ассемблера. Вы же крутой спец по ассемблеру - неужели не понимаете разницу?!

Кто превращает текстовую строку (встроенную функцию) на Си в  АСМ команду? Не компилятор? 

戦う前に相手のベルトの色に注目

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы публикуете как гость. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...