[uanog] об индусах и программировании, или о том почему всё глючит...
Alexander V Soroka
alex at euro.net.ua
Mon Apr 16 14:32:35 EEST 2018
Привет !
Второй такой-же "грамотный" индус нашелся....
https://forum.43oh.com/topic/1528-about-dma-on-adc12/?page=2&tab=comments#comment-13765
тушите свет...
бля - решил человек проблему со сьемом 15 каналов одновременно
(рука-лицо). Смотрим в код - все 15 каналов описал... (рука-лицо = 2раза)
а до этого спрашивал как ускорить - через DMA данные перегонять в
память после АЦП... ему дали советов - но он "справился" по-своему.
(рука-лицо).
...просто слов нет!
...это все из области "как на ноль помножить всё быстродействие УМЕЛЫМ
написанием программы"...
Friday, April 13, 2018, 1:16:12 PM, Alexander V Soroka alex at euro.net.ua you wrote:
AVS> Friday, April 13, 2018, 1:00:28 PM, Alexandr Baryshnyev abb at abbon.net you wrote:
AB>> та ладно так уж переживать-то. Индус поставленую задачу небось выполнил?
AVS> раком но выполнил.
AVS> Только вот вопрос: ЗАЧЕМ ему тогда MSP430 ? камень-то не зря появился,
AVS> значит кто-то умный читал про камень, и решил выиграть за счет камня
AVS> свои дела в бизнесе? А индус "помог"...
AB>> Ну и по поводу ARM32 против MSP430 тоже хочется сказать вкратце. Да,
AB>> очень эстетичный малопотребляющий камешек MSP430, только он производится
AB>> единственной компанией в мире и ни с чем несовместим, ну кроме как с
AB>> PDP-11 (ага, это было круто 35лет назад, СМ-4, Электроника-125,
AB>> Электроника-60, ДВК, помним детство золотое). Не страшно все яйца в
AB>> одну-то корзинку складывать? Ведь камешек не новый, а ну как перестанут
AB>> выпускать? Или фирма-изготовитель например того, прекратит так сказать
AB>> существование, поглотится/обакротится? И как там со средствами
AB>> разработки/отладки?
AVS> Во первых MSP430 это семейство , целая "среда обитания" :-) там много
AVS> разных камней, и каждый имеет похожесть в философии.
AVS> Я до того как лезть - все внимательно читал и взвешивал.
AVS> ТехасИнструменты - фирма не первого года, с историей хорошей и своими
AVS> наработками, Университетом рядом, в котором и для которого решения
AVS> откатываются.
AVS> В росийские счетчики электроэнергии загляните - там чипы MSP стоят :)
AVS> ( и не только в росийские, в наших тоже)
AVS> миллионными тиражами выпускается и продается, и не один год.
AVS> Банкротить? :) с какого перепугу? это не Эпл, это не "мождный
AVS> разработчик прикладух" - там индустрия - микросхемы, транзисторы, МК и
AVS> прочее. Почитай на досуге - что такое Техас Инструментс.
AVS> ...и кроме MSP430 есть MSP432 и ССХХХХХХХ и то что с TMS
AVS> начинается - загляни в свой жесткий диск - там TMS контроллеры не
AVS> редкость .
AVS> И выбирал я не по ностальгии - а по тому что только у них есть.
AVS> и не год есть а лет 10 минимум как есть.
AVS> в отличие от STM, который вылез на рынок недавно , и решил всех
AVS> пересадить на себя подкупив низкой ценой.
AVS> Пример еще почему? почитай про FRAM память имени MSP430 .
AVS> А потом найди хоть что-то подобное у других производителей. Вперед!
AVS> :))
AVS> Средство разработки - очень развесистое, с ГУИ интерфейсом, Сями
AVS> всех видов, с поддержкой фирменной - БЕСПЛАТНО.
AVS> скачал и пользуйся - обновляться не забывай только.
AB>> А вот ARM32 как ядро заложен много кое где, причем диапазон возможностей
AB>> при копеечных ценах реально впечатляет.
AVS> меня не впечатляет.
AVS> STM в реалтайм системах, как и сам АРМ по философии, не может
AVS> гарантировать время выполнения операций, в том числе по "сложить в
AVS> стек" и по DMA, о чем все молчаливо умалчивают.
AVS> Разработчиков "спасает" только то что производительность заранее
AVS> ставят высокую, запредельную для задач, в надежде что "с запасом
AVS> хватит".
AVS> Именно для таких вот "индусов-программистов".
AVS> печально это.
AVS> И ваши мобилки тормозят и глючат именно из-за этого.
AB>> но ведь стоит копейки и изучать надо только одну платформу.
AVS> ну да... Виндовс тоже хотел всех на себя пересадить - как-то не вышло
AVS> :)
AB>> 13.04.2018 12:00, Alexander V Soroka пишет:
>>> ну вообще-то ЛЮБОЕ начинание с программированием надо начинать с
>>> "профайлинга", т.е. "а что мы хотим получить в итоге и как это должно
>>> рабоать", а уже потом под "это" подбирается железо-микроконтроллер.
>>> А уже потом составляется блок-схемы и общая философия "как ЭТО тут
>>> будет работать". А уже потом - начинается кодинг :)
>>>
>>> А если вот так как индус - то это видно что он "слезал" с чего-то
>>> совсем простого типа Атмела или PICа, где нет такой красивой
>>> архитектуры и поддержки в железе. Но ПОНЯТЬ новую философию не пытался
>>> - тупо решил вопрос так как уже решал на простом железе :-((
>>>
>>> Я сознательно переползаю на MSP430 а не на "модные нынче" STM,
>>> именно из-за красивости архитектуры при хорошей цене и возможностях
>>> "на вырост". И не понимаю "модных писателей кода" которые лезут на STM
>>> микроконтроллеры, при этом выбирают 8-и битные модели а пишут на С++ с
>>> разными заковыками - когда после них видишь ассемблерный код - то
>>> рука-лицо и хочется такого писателя убить, чтобы не портил своим
>>> генофоном население Земли.
>>>
>>> Обычно народ не парится: как начал на Атмега8 так потом просто более
>>> мощные чипы подсовывает - не понимая что смена философии в мозгах это
>>> и смена философии в железе.
>>>
>>> Но все равно грустно...
>>>
>>> Friday, April 13, 2018, 10:04:12 AM, Vladimir Sharun vladimir.sharun at ukr.net you wrote:
>>> VS> Сильно депендс от отрасли. У нас был эксперимент и так и так.
>>> VS> Оказалось, что корректное програмирование
>>> VS> в среднесрочной уже перспективе - экономически выгоднее. Провели
>>> VS> эксперимент "давайте задавим железом",
>>> VS> а когда под конец операции "задавим железом" посмотрели на
>>> VS> сколько было потрачено - тут же поменяли вектор
>>> VS> на давайте писать по концепции: написали "как есть", профайлинг, "как надо".
>>> VS> В людей инвестировать правильнее. В творческих - в квадрате правильнее.
>>> VS> PS: с первого раза правильно написать код весьма сложно, т.к. у
>>> VS> нас профайлера нет в голове, только общие
>>> VS> базисы "правильно это написать так".
>>>
>>>
>>> VS> 13 квітня 2018, 09:42:28, від "Volodymyr Litovka" <doka.ua at gmail.com>:
>>> VS> Саша, по нынешним временам писать код быстро экономически более выгодно,
>>> VS> чем писать хорошо. Не всегда, но во многих случаях.
>>>
>>> VS> Ведь когда закончится чип 7х7мм, можно поставить второй такой, а не ещё
>>> VS> два стола :) А пока "красавцы" вылизывают свой код, "дятлы" уже продают
>>> VS> решение.
>>>
>>> VS> On 4/13/18 9:29 AM, Alexander V Soroka wrote:
>>>>> Привет !
>>>>>
>>>>> Преамбула.
>>>>> Я занимаюсь программированием микроконтроллеров, вот уже лет 20 как.
>>>>> и давно присматривался к MSP430FRxxxx, от Техас Инструментс.
>>>>> По сути это PDP-11 в размере 7 на 7мм !
>>>>> то что у меня в 1986 году занимало два стола - сейчас занимает один
>>>>> чип 7 на 7мм!!! Это волшебство :)
>>>>> Изучаю MSP430 - уже перерыл многое и понимать стал какая КРАСИВАЯ(!!!)
>>>>> архитектура построения! Техасцы просто гении :)
>>>>> Это песня просто для мультизадачных вещей !!!
>>>>>
>>>>> Пока рыл примеры - нарвался на индуса, он задавал вопрос на саппорт:
>>>>> https://e2e.ti.com/support/microcontrollers/msp430/f/166/t/602194
>>>>>
>>>>> Суть кратко: индусу надо запустить АЦП так чтобы оно сделало три
>>>>> измерения с разных каналов, и прервалось по факту когда АЦП будет
>>>>> записывать третье(с третьего канала) значение в память.
>>>>>
>>>>> АЦП там умное! ему можно сказать: "замеряй с канала номер Х до канала
>>>>> номер У и записывай само в память, МИНУЯ ПРОЦЕССОР! "
>>>>> Причем ! какие каналы после каких мерять - ЗАПИСЫВАЕМ(!) в
>>>>> регистры, т.е. нет тупого 1-2-3... а можно сделать любое: 2-1-5-8...
>>>>>
>>>>> А что сделал Индус?
>>>>> он сделал так что АЦП меряет по кругу три канала, но он вписал что
>>>>> после каждого записи в память(!) готового значения АЦП будет
>>>>> вызываться прерывание!
>>>>> НАХУЯ ??? А для того - всего-то - чтобы переписать , прикинь
>>>>> ПЕРЕПИСАТЬ !!! значение из МЕМ-ячейки АЦП в "глобальную переменную"!
>>>>> бля мудак...
>>>>> вот потому и глючит всё вокруг ! бо такие пидарасы пишут проги! :((((
>>>>>
>>>>> из его текста:
>>>>> ADCValue1 = ADC12MEM1 ;
>>>>>
>>>>> ADCValue1 - это его "глобальная переменная".
>>>>> ADC12MEM1 - это ГЛОБАЛЬНОЕ(!) расположение ячейки 16 бит куда пишется
>>>>> с АЦП значение че намеряло АЦП на том канале который ему сказали в эту
>>>>> ячейку ложить. повторяю: ГОЛОБАЛЬНОЕ! т.е. доступное из проги на С в
>>>>> любом месте и в любое время!
>>>>>
>>>>> Ну не мудак?
>>>>> Ведь зачем прерываться по готовности данных АЦП если его спецом
>>>>> сделали чтобы оно само по себе работало! БЕЗ проца и прерываний!
>>>>> тупо сам модуль по кругу(как настроишь) идет в канал, меряет,
>>>>> записывает в память, потом идет на новый канал и т.п.
>>>>>
>>>>> а ячейка ADC12MEM1 - это и так ГЛОБАЛЬНОЕ место - оно отовсюду из
>>>>> твоей проги доступное! Это прибитое гвоздями место в микросхеме!
>>>>>
>>>>> и еще мудак сделал в майн процедуре
>>>>> __delay_cycles(5000); // Delay between conversions
>>>>> верх маразма !
>>>>> теперь мы еще процессором ждем АЦП !
>>>>>
>>>>> Нахуя тогда инженеры ТехасИнструментс старались и строили такую
>>>>> архитектуру??? чтобы индус вот так разом помножил на ноль
>>>>> ПРОИЗВОДИТЕЛЬНОСТЬ чипа???
>>>>>
>>>>> Мозгов его не хватило сделать философию проще:
>>>>> 1) пусть АЦП там само по кругу, и пишет само в память - МИНУЯ проц!
>>>>> никаких прерываний работы проца вообще!
>>>>>
>>>>> 2) когда нам потребуется результат из этого канала АЦП - мы просто
>>>>> делаем в любом месте нашей проги, НЕ В ПРЕРЫВАНИИ:
>>>>> ADCValue1 = ADC12MEM1 ;
>>>>>
>>>>> и ВСЁ!!!!!!!!!!!!!!!!!
>>>>> и далее бегаем уже со своим ADCValue1 и везде с ним считаем, то что
>>>>> нам надо - не отрывая проц на постоянные(!) прерывания и укладывание в
>>>>> память 14 циклов всего в стек, чтобы потом поднимать 14 циклов из
>>>>> стека, и так с частотой считывания АЦП умножить на три канала!
>>>>>
>>>>> Ну не мудаки-же такие программеры???
>>>>>
>>>>> Бля......... я теперь понимаю почему всё глючит и лагает...
>>>>>
>>>>>
>>>
>>>
>>>
--
Best regards,
Alexander V Soroka http://www.svr.ua/
AS106-RIPE
mailto:alex at euro.net.ua
More information about the uanog
mailing list