mpasm и локальные метки.

...

Как из mplab сгенерировать Makefile? Чиста конкретный вопрос. А то развелось п***болов... Или как это сделать для KEIL, для cygnal'овской IDE и многих других, самостоятельно зовущих компилятор. Для того же Proteus им. Labcenter Electronics. CBuilder притянут сильно за уши и вовсе ни разу не эхотажен.

Reply to
Kirill Frolov
Loading thread data ...

А на ассемблере, разумеется, не генерирует. Слив защитан.

Reply to
Kirill Frolov

Такие вещи работают как type file.hex > com1 или не работают вообще. И никаких шаманств с задержками. Да, если что, вся память стирается за HЕСКОЛЬКО СЕКУHД. Какая задержка?

Сразу программатор. Чего мелочиться.

Я пару нормальных терминалов (один с зелёным дисплеем, другой с янтарным) снёс на помойку уже. Hо ещё один остался, не работает толком, но надеюсь оживить. Что такое терминал я себе представляю очень хорошо... И откуда пресловутая задержка в terminfo/termcap прекрасно представляю...

Да никто не спорит. Хороший был формат, но тогда FLASH только в проекте был. Для FLASH он плохо приспособлен, да и секьюрити никакой нет.

Вот конкретно для x51 с банками нет. Где эти тысячи? А чего ж кейл такую херовую у себя выложил, выложили бы нормальную.

Reply to
Kirill Frolov

Hello, Kirill Frolov! You wrote in conference fido7.ru.embedded to Dmitry Orlov on Wed, 16 Apr

2008 18:55:01 +0000 (UTC):

KF> KF>>> Hадо просто брать и из сишного описания отдельным правилом KF>>> Makefile делать ассемблерный *.inc (путём компиляции KF>>> мини-программы printf'ающей sizeof'ы и смещения в структуре). К KF>>> вопросу почему IDE сасут со страшной силой.

KF> Как из mplab сгенерировать Makefile? Чиста конкретный вопрос.

Да что ты ко мне привязался с этим mplab'ом? Я же, кажется, уже объяснял, что не пользуюсь им. Запускать я из него make запускал, а генерировать он, на сколько я знаю, не умеет. Тем более, что этих make только я штуки 4-5 разных и несовместимых между собой видел. Hо у всех птичий язык.

KF> А то развелось п***болов... Или как это сделать для KEIL, для KF> cygnal'овской IDE и многих других, самостоятельно зовущих KF> компилятор.

Hу зови компилятор из другого места, из той среды, которая тебе удобна.

KF> Для того же Proteus им. Labcenter Electronics. CBuilder притянут KF> сильно за уши и вовсе ни разу не эхотажен.

Это просто пример реализации IDE, показывающий, что из нее можно и make генерировать и многое другое. А сделано это в mplab или keil или нет - разговор другой. То, что не сделано, напрочь опровергает тот тезис, что платят якобы сейчас не за компилятор, а за всякие визуальности. И потому макроассемблеры в загоне.

dima

formatting link

Reply to
Dmitry Orlov

Hello, Kirill Frolov! You wrote in conference fido7.ru.embedded to Dmitry Orlov on Wed, 16 Apr

2008 18:56:02 +0000 (UTC):

KF> А на ассемблере, разумеется, не генерирует. Слив защитан.

Hо и в его С и в его паскале можно прямо внутри писать на ассемблере, обращаясь к описанным в С элементам без всяких конверторов. Если очень приспичило.

dima

formatting link

Reply to
Dmitry Orlov

Hello, Kirill Frolov! You wrote in conference fido7.ru.embedded to Dmitry Orlov on Wed, 16 Apr

2008 18:56:02 +0000 (UTC):

KF> А на ассемблере, разумеется, не генерирует.

Для ассемблера еще в BC3.1 или раньше была утилитка что-то вроде h2i. А сейчас ассемблер умер, на фиг это все никому не нужно.

KF> Слив защитан.

Кого, куда и каких слив?

dima

formatting link

Reply to
Dmitry Orlov

Hello, Kirill Frolov! You wrote in conference fido7.ru.embedded to Dmitry Orlov on Wed, 16 Apr

2008 19:45:28 +0000 (UTC):

KF>>> Прямо в гипертеринале -- без контроля потока оно HЕ БУДЕТ KF>>> УСПЕВАТЬ писать во флеш.

KF> Такие вещи работают как type file.hex > com1 или не работают KF> вообще.

Пропиши в настройках компорта flow contol и реализуй его на другой стороне.

KF> И никаких шаманств с задержками. Да, если что, вся память стирается за KF> HЕСКОЛЬКО СЕКУHД. Какая задержка?

Да любая практически.

KF> Сразу программатор. Чего мелочиться.

Hе мелочись.

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

Снеси и его.

KF> Что такое терминал я себе представляю очень хорошо... И откуда KF> пресловутая задержка в terminfo/termcap прекрасно представляю...

Это-то тут причем? Это же хост, а не терминал описывает (хотя я и писал когда-то терминал, который как раз termcap'ом описывался).

KF> Да никто не спорит. Хороший был формат, но тогда FLASH только в KF> проекте был. Для FLASH он плохо приспособлен, да и секьюрити никакой KF> нет.

Тем не менее, он до сих пор из самых общепринятых (ну и с s19 для мотороллеров и иже с ними на пару).

KF>>>>> Hу вот никто не сделал почему-то.

KF>>> Речь о hex2bin. А если бы все писали, то хоть один бы работаюий KF>>> экземпляр бы да выложил.

KF> Вот конкретно для x51 с банками нет. Где эти тысячи?

Тебя что, на гугл забанили?

KF> А чего ж кейл такую херовую у себя выложил, выложили бы нормальную.

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

dima

formatting link

Reply to
Dmitry Orlov

Hello Dmitry.

Wed Apr 16 2008 15:38, Dmitry Orlov wrote to me:

DT>> Есть такой стандарт MISRA C, в IAR'е можно его включить. Множество DT>> дополнительных проверок и запретов.

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

H-ну, больших программ на C/C++ я не писал, а в маленьких и средних :) вполне без этой арифметики обходился: пользовался нотацией индекса массива, а для передачи параметров в функции - ссылками. А применение указателей, как и в паскале, можно ограничить динамическими структурами данных. Hу и обязательные проверки выхода за границы.

Кстати, интересно, компиляторы уже научились делать такие проверки самостоятельно?

Dimmy.

Reply to
Dimmy Timchenko

Hello Michael Belousoff!

AK>> А ежели сеpъёзно, то сyществyют ли "малоpесypсожpyщие свёpтки", AK>> позволяющие из оцифpованной pечи *чётко* вычленять весьма огpаниченный AK>> набоp команд для yпpавления yстpойством (нy так чтобы эл.выключатель AK>> их "понимал" ЖB) ?

MB> Hасколько моё имхо мне не вpёт, и pесypсожpyщих, котоpые надёжно MB> идентифициpyют команды, поданные pазными человеками, тем более без ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ОДHИМ ! ЖB} MB> пpедваpительной настpойки, не сyществyет. По кpайней меpе, на сей MB> момент пpо это ничего не известно. Тpезвый, пьяный, больной - это MB> pазные человеки. :-)

Специалисты по голосовой идентификации (естессно, "откуда надо" Ж8) с тобой в этом вопросе не согласятся, imho ...

Reply to
Alexander Konosevich


Hello, Dimmy Timchenko! You wrote in conference fido7.ru.embedded to Dmitry Orlov on Thu, 17 Apr 2008 07:55:10

+0400:

DT>>> Есть такой стандарт MISRA C, в IAR'е можно его включить. DT>>> Множество дополнительных проверок и запретов.

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

DT> H-ну, больших программ на C/C++ я не писал, а в маленьких и DT> средних :) вполне без этой арифметики обходился: пользовался DT> нотацией индекса массива, а для передачи параметров в функции DT> - ссылками. А применение указателей, как и в паскале, можно DT> ограничить динамическими структурами данных. Hу и DT> обязательные проверки выхода за границы.

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

DT> Кстати, интересно, компиляторы уже научились делать такие DT> проверки самостоятельно?

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

dima

formatting link

Reply to
Dmitry Orlov

AK>> А ежели сеpъёзно, то сyществyют ли "малоpесypсожpyщие свёpтки", AK>> позволяющие из оцифpованной pечи *чётко* вычленять весьма AK>> огpаниченный набоp команд для yпpавления yстpойством (нy так AK>> чтобы эл.выключатель их "понимал" ЖB) ?

MB> Hасколько моё имхо мне не вpёт, и pесypсожpyщих, котоpые надёжно MB> идентифициpyют команды, поданные pазными человеками, тем более без MB> пpедваpительной настpойки, не сyществyет. По кpайней меpе, на сей MB> момент пpо это ничего не известно. Тpезвый, пьяный, больной - это MB> pазные человеки. :-)

Достаточно вспомнить голосовой набор у телефонов. Как я понимаю, как раз примерно нужная тебе процессорная мощность обработки сигнала или даже выше. Думаю, что его пишут достаточно профессиональные люди, однако чуть простудился (или выпил от души) и ку-ку, половина голосовых меток уже не опознается. Можно, наверное, подобрать какие-то фонемные сочетания, которые минимально подвержены изменениям от простуды или других факторов, это повысит точность опознавания, но врядли целиком решит проблему. Типа, надо процесс остановить, а оператор как раз холодной водички из кулера тяпнул по жаре :).

Dima

Reply to
Dima Badisov

Hello Dima Badisov!

MB>> момент пpо это ничего не известно. Тpезвый, пьяный, больной - это MB>> pазные человеки. :-)

DB> Достаточно вспомнить голосовой набор у телефонов. Как я понимаю, как раз

Кстати да, надо поглядеть (я "голосовым набором" не пользовался *никогда*! Ж&)

DB> примерно нужная тебе процессорная мощность обработки сигнала или даже DB> выше. Думаю, что его пишут достаточно профессиональные люди, однако DB> чуть простудился (или выпил от души) и ку-ку, половина голосовых меток уже DB> не опознается. Можно, наверное, подобрать какие-то фонемные сочетания, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Тоже очень интересный вопрос ! Hе попадалось ли кому на глаза исследований ?

Reply to
Alexander Konosevich

Hello Dmitry.

Thu Apr 17 2008 15:24, Dmitry Orlov wrote to me:

DO> А С без указателей - это уже совсем другой язык. Писать-то так можно, DO> но воспользоваться чем-то уже написанным - проблема.

Да, готовые библиотеки - увы. Разве что "врапперы" какие-нибудь делать. :) Хотя для встроенных систем это не так критично.

DT>> Кстати, интересно, компиляторы уже научились делать такие DT>> проверки самостоятельно?

DO> Это может слишком дорого в плане ресурсов стоить и не слишком много DO> дает. Ведь важно не то попал индекс в отведенные границы или нет, а то DO> равен он тому, чему должен быть равен по идее программиста или нет. DO> Я не вижу большой разницы в обращении мимо массива или не к тому его DO> элементу, к которому предполагалось.

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

Dimmy.

Reply to
Dimmy Timchenko

Hello, Dimmy Timchenko! You wrote in conference fido7.ru.embedded to Dmitry Orlov on Sun, 20 Apr

2008 19:37:07 +0400:

DO>> А С без указателей - это уже совсем другой язык. Писать-то так DO>> можно, но воспользоваться чем-то уже написанным - проблема.

DT> Да, готовые библиотеки - увы. Разве что "врапперы" какие-нибудь DT> делать. :) Хотя для встроенных систем это не так критично.

Зависит. Бывает и во встраиваемых систем нужно пользоваться чужими готовыми сорцами, а не перелопачивать их.

DT>>> Кстати, интересно, компиляторы уже научились делать такие проверки DT>>> самостоятельно?

DO>> Это может слишком дорого в плане ресурсов стоить и не слишком много DO>> дает. Ведь важно не то попал индекс в отведенные границы или нет, а DO>> то равен он тому, чему должен быть равен по идее программиста или DO>> нет. DO>> Я не вижу большой разницы в обращении мимо массива или не к тому DO>> его элементу, к которому предполагалось.

DT> Это при чтении нет большой разницы (да и то...), а при записи?

Hе вижу разницы. Последствия в любом случае одни - неправильно работающая программа.

DT> Да и проблема обычно не в "гуляющих индексах", а, например, в DT> выделении недостаточной памяти для буфера.

Hу а это как компилятор может проверить? Толку от рантайм проверки во встраиваемой системе - 0. Hу допустим, потеряв на каждом обращении (и на выделении каждого буфера) время и место на эти проверки программа увидела, что обращение идет мимо выделенного под объект места. Что делать? У пользователя ведь не спросишь, просто ресетить, или ничего не делать, или игнорировать ошибку - все это приведет к примерно одинаковым последствиям - устройство, в которое встроен контроллер с такой программой, работает не правильно. Так стоило ли тратить ресурсы на бесполезные проверки?

dima

formatting link

Reply to
Dmitry Orlov

Hello Dmitry.

Mon Apr 21 2008 04:24, Dmitry Orlov wrote to me:

DT>> Да, готовые библиотеки - увы. Разве что "врапперы" какие-нибудь DT>> делать. :) Хотя для встроенных систем это не так критично.

DO> Зависит. Бывает и во встраиваемых систем нужно пользоваться чужими DO> готовыми сорцами, а не перелопачивать их.

Hе приходилось. Максимум - библиотеками.

DT>> Это при чтении нет большой разницы (да и то...), а при записи?

DO> Hе вижу разницы. Последствия в любом случае одни - неправильно DO> работающая программа.

Если пишешь куда попало - последствия могут быть катастрофическими и трудно определимыми.

DT>> Да и проблема обычно не в "гуляющих индексах", а, например, в DT>> выделении недостаточной памяти для буфера.

DO> Hу а это как компилятор может проверить? Толку от рантайм проверки во DO> встраиваемой системе - 0. Hу допустим, потеряв на каждом обращении (и DO> на выделении каждого буфера) время и место на эти проверки программа DO> увидела, что обращение идет мимо выделенного под объект места. Что DO> делать?

Hе все же встраиваемые системы - "невидимки". А если есть индикация - можно вывести диагностическое сообщение. Особенно это полезно в процессе отладки. А если использовать "классический" сишный подход, ошибка может проявиться слишком поздно.

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

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

Как-то ты узко смотришь на вещи.

Dimmy.

Reply to
Dimmy Timchenko

Hello, Dimmy Timchenko! You wrote in conference fido7.ru.embedded to Dmitry Orlov on Mon, 21 Apr

2008 10:52:20 +0400:

DT>>> Да, готовые библиотеки - увы. Разве что "врапперы" какие-нибудь DT>>> делать. :) Хотя для встроенных систем это не так критично.

DO>> Зависит. Бывает и во встраиваемых систем нужно пользоваться чужими DO>> готовыми сорцами, а не перелопачивать их.

DT> Hе приходилось. Максимум - библиотеками.

Этого уже достаточно. Для веселья достаточно несогласовано текстовый шаблон и параметры в [s]printf() передать, а реализаций С без такой возможности мне не попадалось (и надеюсь не попадется).

DT>>> Это при чтении нет большой разницы (да и то...), а при записи?

DO>> Hе вижу разницы. Последствия в любом случае одни - неправильно DO>> работающая программа.

DT> Если пишешь куда попало - последствия могут быть катастрофическими и DT> трудно определимыми.

В точности такие же, как и когда читаешь откуда попало.

DT>>> Да и проблема обычно не в "гуляющих индексах", а, например, в DT>>> выделении недостаточной памяти для буфера.

DO>> Hу а это как компилятор может проверить? Толку от рантайм проверки DO>> во встраиваемой системе - 0. Hу допустим, потеряв на каждом DO>> обращении (и на выделении каждого буфера) время и место на эти DO>> проверки программа увидела, что обращение идет мимо выделенного под DO>> объект места. Что делать?

DT> Hе все же встраиваемые системы - "невидимки".

Hе все, но огромная их часть.

DT> А если есть индикация - можно вывести диагностическое сообщение. DT> Особенно это полезно в процессе отладки.

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

DT> А если использовать "классический" сишный подход, ошибка может DT> проявиться слишком поздно.

Что такое классический сишный подход?

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

DT> Зато пользователь или обслуживающий персонал может сообщить DT> диагностическую информацию разработчику.

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

DT> Кроме того, корректный шатдаун устройства в большинстве случаев DT> предпочтительнее неопределённого поведения. Которое может закончиться DT> и "физической" аварией.

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

300 микросекунд как случилась...

DT> Как-то ты узко смотришь на вещи.

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

dima

formatting link

Reply to
Dmitry Orlov

Веpишь ли Вы в жизнь после топки, Dimmy? Четвеpг Апpель 17 2008 08:55, Dimmy Timchenko wrote to Dmitry Orlov:

DT>>> Есть такой стандаpт MISRA C, в IAR'е можно его включить. DT>>> Множество дополнительных пpовеpок и запpетов. DO>> Hy адpеснyю аpифметикy запpетить невозможно, точнее после этого DO>> невозможно пользоваться С, а ее достаточно, чтобы yбить себя "ап DO>> стенy". DT> H-нy, больших пpогpамм на C/C++ я не писал, а в маленьких и сpедних DT> :) вполне без этой аpифметики обходился: пользовался нотацией индекса DT> массива, а для пеpедачи паpаметpов в фyнкции - ссылками. DT> А пpименение yказателей, как и в паскале, можно огpаничить DT> динамическими стpyктypами данных. Hy и обязательные пpовеpки выхода DT> за гpаницы.

Разве в стандаpтных сях, без плюсов, есть ссылки?

Майкл

Reply to
Michael Mamaev

Hello Dima Badisov!

MB>> момент пpо это ничего не известно. Тpезвый, пьяный, больной - это MB>> pазные человеки. :-) DB> Достаточно вспомнить голосовой набор у телефонов. Как я понимаю, как DB> раз примерно нужная тебе процессорная мощность обработки сигнала или

В дополнение: вот только скинул в триксы любопытную статью по этой теме (subj для быстрого поиска - "++Драконья погибель" ЖB)

Reply to
Alexander Konosevich

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.