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

Хорошие RTOS-ы (MQX) имеют спец опции для управления объемом сохраняемого контекста.

 

 

 

Не забываем про поддержку очень старого оборудования.

Например в RTOS NuttX штатно идет эмулятор команд Z80.

 

А причем здесь ртос?? Это задача компилятора...

 

"Не забываем про поддержку очень старого оборудования. " - можно тупой вопрос, все-таки зачем это ?? В те времена и на тех процах писалось довольно примитивное по нынешним меркам ПО, зачем его "гонять" на новых процах в эмуляторах?? Проще переписать заново, даже, если нет исходников. Сам так делал, когда переписывал ЧПУшки с 80186 на СТМ32.

Поделиться сообщением


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

Только что на сайте Atmel появился интереснейший документик:

Migrating from the SAM4E to SAM E70 Microcontroller

 

А интересен он тем, что очень наглядно демонстрирует отличия M7 (SAM E70) от своего предшественика M4 (SAM4E), с которым они совместимы по цоколевке. Т.е. с упором на то, чтобы проапгрейдить платы, ранее уже разработанные для SAM4E, новым контроллером. А что для этого надо поправить в программе, как раз и сообщается в этом документе.

 

P.S. Впрочем, кое-какие минорные различия в назначении выводов я в этом документе уже углядела, но сходу не соображу, мешает это замене один в один, или же потребует каких-то изменений в монтаже. Тогда как ранее компания обещала, что такая замена будет возможна.

Поделиться сообщением


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

Это вялое разжигание указанных войн

:biggrin:

Нет. Я не указал свою позицию в этих войнах.

но неплохой вброс для следующей.

:biggrin: простите не задумался об этом ...

У меня больше времени уходит на архитектуру. А при хорошей архитектуре отладка занимает мизерное время. Дольше тратиться на написание стандартных тестов, проверки функциональности устройства.

 

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

 

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

Я поддерживаю.

Пишу медленно. Долго осмысливаю - строю приложение. Опыт позволяет, поэтому осмысливаю и предусматриваю почти всё. Пишу определённым образом. Я называю это кубиками. В принципе подсмотрел на ПЛК. (Писал пару крупных линий на сименсе). При разработке архитектуры, главное - архитектура данных, а не программ. Обмен осуществляю через данные. Так пишу даже если нет РТОС.

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

Тестирование занимает очень большое время. Я его перепоручаю другим людям ... ))))

Ошибок делаю очень мало и их устранение занимает небольшое время. Как правило ничего не задевает, если это не ошибки архитектуры, о которых писал выше. Тогда наоборот - задевает значительную часть. Для меня это чп. ))

То есть всё примерно тоже что и у Вас. ))

Поделиться сообщением


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

P.S. Впрочем, кое-какие минорные различия в назначении выводов я в этом документе уже углядела, но сходу не соображу, мешает это замене один в один, или же потребует каких-то изменений в монтаже. Тогда как ранее компания обещала, что такая замена будет возможна.

Я думаю, что счастья ждать не стоит:

Table 3-3. LQFP100 Pinout Differences

Pin SAM4E__ SAM E70

39_ PD23___ VDDCORE

76_ PD29___ VDDCORE

81_ PA6____ VDDIO

86_ VDDCORE VDDPLL

90_ PA29___ VDDPLLUSB

93_ VDDIO__ VDDUTMII

94_ PB10___ HSDM

95_ PB11___ HSDP

96_ VDDPLL_ VDDUTMIC

97_ PB14___ VBG

Часть PIO занята под питание...

 

Поделиться сообщением


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

P.S. Впрочем, кое-какие минорные различия ...

Обратил внимание, что bitbanding порезали благополучно ... ))

Привет всем которые пользуются "расширенными возможностями" камней. В очередной раз...

Я вроде как тоже хотел, потом решил не заморачиваться.

Поделиться сообщением


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

Интересно.. интересно.... Битбандинг во всех кортексах порезали или только в атмеловских? Он вроде не является частью ядра..

 

На самом деле, тема asm это не off. Потому что как только доходит до понимания того, что ты делаешь, до знания архитектуры и принципов работы камня, эффективности и скорости кода, его чистоты и устойчивости, так слово ASM, произнесённое в любой ветке, вызывает бурю эмоций. Потому что если программист знает архитектуру и любит камушек, ему и в голову не придёт писать на чём-то ещё, кроме ASM. А это значит, что сразу начинают лететь стулья в любителей ассемблера.

 

Чем плохи суррогатные языки - вообще непонятно, что и когда делает камень, что там внутри происходит? Это всё за гранью понимания даже для тех, кто эти языки придумывает.

 

Кстати, и сами кристаллы так же разрабатываются. Никто их на уровне межтарнзисторных соединений не проектирует, к сожалению.....

 

Xenia

На самом деле, у атмела кортексы невкусные.. Это авр-ки у них вкусные. Да что и говорить, многие ждут возможностей класса А в младших кортексах. Хоть бы графику какую-нить приделали, как в Vybrid. Да документацию ей открытую дали. А ещё память DDR. И побольше мигагерцев :)

 

Неужели STM так и оставит в серии эту каракатицу?

Поделиться сообщением


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

Потому что если программист знает архитектуру и любит камушек, ему и в голову не придёт писать на чём-то ещё, кроме ASM.

Это к вопросу у вреде любви к камням? :laugh:

Поделиться сообщением


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

Xenia

На самом деле, у атмела кортексы невкусные.. Это авр-ки у них вкусные. Да что и говорить, многие ждут возможностей класса А в младших кортексах. Хоть бы графику какую-нить приделали, как в Vybrid. Да документацию ей открытую дали. А ещё память DDR. И побольше мигагерцев :)

 

Неужели STM так и оставит в серии эту каракатицу?

 

А у кого же они вкусные? :) Atmel забраковали, STM назвали каракатицей. А альтернатива-то им вам видится какая?

 

Поделиться сообщением


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

На самом деле, тема asm это не off. Потому что как только доходит до понимания того, что ты делаешь, до знания архитектуры и принципов работы камня, эффективности и скорости кода, его чистоты и устойчивости, так слово ASM, произнесённое в любой ветке, вызывает бурю эмоций. Потому что если программист знает архитектуру и любит камушек, ему и в голову не придёт писать на чём-то ещё, кроме ASM. А это значит, что сразу начинают лететь стулья в любителей ассемблера.

 

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

 

 

 

STM делает отличные ARM. Но сейчас под видом M7 лежит какая-то каракатица :wacko:

 

Конечно, хотелось бы видеть что-то поболее, чем просто смена ядра...

 

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

 

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

К тому же убивает этот RGB, давно уже пора lvds вводить везде.

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

Поделиться сообщением


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

Думаю беда с LVDS - что он пока не стандарт, по факту да у всех почти одно и тоже, но пока не стандарт. Но кроме LVDS уже и MIPI или как там его появился, на большие экраны и опять все по новой... Пока кто-то не возьмет на себя труд описать стандарт с возможностью расширения аля USB все будет RGB... и доп чипы преобразования... ИМХО

 

 

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

Повторяю свой вопрос, зачем вам ASM? почему вы не пишите в машинных кодах? Вы что недостаточно любите камень? Вы не хотите проникнуть прямо в его сердце и душу говоря не то что на его языке, а прямо на языке его крови? Менять так сказать его гены!?

 

 

Блин я вот сейчас смотрю на нашу 6 осевую программируемую синхронную систему, которую мы за 3 месяца сделали прототип и через 7 месяцев были первые пред серийные образцы. А в ходе своей жизни за 2 года она претерпела уже 3 ревизии с наращение функционала и нашла отклики в других продуктах в виде реюзинга ее кода. В ней АРМ и ПЛИС, для плис мне тоже предлагали луты руками расставлять и соединять - это аля ассемблер или даже ближе к машинным кодам.

 

И думаю, пошел бы я по этому пути, учитывая объем кода и функционала я бы наверное первые прототипы сделал месяцев через 10, до серии мы бы ее довели месяцев через 30. А когда поступила бы идея все переделать для другого функционала я бы просто застрелился бы, наверное....

То есть на одной чаще весов недостаточная любовь к камню и 4.5 продукта за 2 года на другой пред серийный образец за примерно то же время, зато наполненный лубовью к камню...

 

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

 

Ассемблер - долго, непереносимо, трудно поддерживаем, и вызывает метание стульев остальных членов команды, БЛИН как надо любить камень чтобы это все терпеть?

Может уже пора подумать, может не зря в вас кидают камни:)?

Поделиться сообщением


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

На самом деле, тема asm это не off. Потому что как только доходит до понимания того, что ты делаешь, до знания архитектуры и принципов работы камня, эффективности и скорости кода, его чистоты и устойчивости, так слово ASM, произнесённое в любой ветке, вызывает бурю эмоций.

Можно взглянуть на это с разных точек зрения. И соответственно получить в плечи кучу возражений.

Можно рассматривать программирование как ремесло и как искусство.

Давайте начнём с ремесла. В этом случае надо выбрать критерии оценки своей деятельности. Как правило это: скорость написания проекта, стабильность работы, возможность развития. Стабильность работы не противоречит написанию на Си. По остальным критериям Си явно выигрывает.

Рассмотрим программирование, как искусство. Здесь вообще критериев нет. Индивидуальность подхода - вот главный критерий. Можно красиво написать на ассемблере. Можно красиво написать на Си. Можно на плюсах. И этому есть масса примеров. И у каждого будет масса поклонников.

Но искусство сложно сделать ремеслом. Нельзя поставить картины на поток. Как только проект будет содержать несколько тысяч строк - красоту оценят единицы. Точнее вру. Да никто не оценит. Остаётся только самолюбование.

Поделиться сообщением


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

Интересно.. интересно.... Битбандинг во всех кортексах порезали или только в атмеловских? Он вроде не является частью ядра..

Попробуйте почитать документацию, не только в части ассемблерных команд. Я вам уже советовал изучить прекрасную архитектуру Cortex-M.

Bit-banding - это часть ядра. По сути, это несколько фиксированных регионов памяти.

Другой вопрос, что он реализован не во всех ядрах.

Под "порезали" иногда стоит понимать, что некая периферия (например, GPIO в новых STM) на находится в соответствующих регионах памяти.

 

На самом деле, тема asm это не off. Потому что как только доходит до понимания того, что ты делаешь, до знания архитектуры и принципов работы камня, эффективности и скорости кода, его чистоты и устойчивости, так слово ASM, произнесённое в любой ветке, вызывает бурю эмоций. Потому что если программист знает архитектуру и любит камушек, ему и в голову не придёт писать на чём-то ещё, кроме ASM. А это значит, что сразу начинают лететь стулья в любителей ассемблера.

Не пытайтесь убедить людей, что знание asm автоматически гарантирует описанное выше превосходное знание предмета.

Писать "светодиодные мигалки" с использованием asm-инструкций, не доказывает чью-либо "крутость" и "маньячность", а скорее наоборот, показывает непрофессионализм: для мигалки светодиодом есть 555-таймер, архитектура Cortex выбрана с огромным избытком, использование asm ничем не обосновано, ни увеличения быстродействия, ни уменьшения вероятности недостатка памяти нет.

У вас на сейте есть простейших проект на asm, как раз мигалка.

Стоило ли писать на asm, чтобы потом делать ожидание в цикле? Это наглядная иллюстрация того, что ничего кроме факта asm-инструкций в той и большинстве аналогичных asm-программ нет.

 

Если есть "маньяки", которые профессионально кодят на asm, то они:

- используют архитектурные особенности и периферийные модули в МК;

- продумывают архитектуру и модульность программы;

- не используют "магический чисел" в коде;

- и т.п.

 

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

Мега крутой код на asm не нужен заказчику, заказчику важны функционал, разумные сроки, сопровождаемость.

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

Грубо говоря: один раз написал - сто раз продал. Asm в сравнении с C тут не инструмент.

 

Чем плохи суррогатные языки - вообще непонятно, что и когда делает камень, что там внутри происходит? Это всё за гранью понимания даже для тех, кто эти языки придумывает.

Чтоб помигать светодиодом нужно так углубляться?

Программисту важно что будет сделано, а не как это будет сделано.

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

 

Кстати, и сами кристаллы так же разрабатываются. Никто их на уровне межтарнзисторных соединений не проектирует, к сожалению.....

Дык, зачем жалеть: есть много проектов, в который сейчас делают АЛУ и целые компы на транзисторах. Советую погуглить, может для вас 4-битный проц со своей системой команд были бы верхом наслаждения.

Поделиться сообщением


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

"Многие вещи нам непонятны не потому, что наши понятия слабы; но потому, что сии вещи не входят в круг наших понятий." ©

 

Писать "светодиодные мигалки" с использованием asm-инструкций, не доказывает чью-либо "крутость" и "маньячность", а скорее наоборот, показывает непрофессионализм

 

 

Просто вы видимо не в курсе специфики многих применений микроконтроллеров и asm-а.

Поинтересуйтесь enea ose® epsilon

 

 

 

 

Поделиться сообщением


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

"Многие вещи нам непонятны не потому, что наши понятия слабы; но потому, что сии вещи не входят в круг наших понятий." ©

Просто вы видимо не в курсе специфики многих применений микроконтроллеров и asm-а.

Поинтересуйтесь enea ose® epsilon[/url]

А же никого не отговариваю. Есть задачи, где C лучше; есть задачи, где без asm сложно.

Но конкретно с фразой

ему и в голову не придёт писать на чём-то ещё, кроме ASM
не соглашусь. Автор фразы погорячился, а примеры применения asm на его сайте не доказывают преимуществ применения asm именно в той задаче. Вероятно, если бы пример был интересным, вопрос стоил бы обсуждения.

 

Иллюстрация

//---------------------------------------------
//    fpu_iir
//---------------------------------------------
    .thumb
    .thumb_func
    .global    fpu_iir
    .type fpu_iir, %function
fpu_iir:
    .cfi_startproc
    cbnz    r1, fpu_iir_load
    bx        lr
fpu_iir_load:
    push                    {r0-r4, lr}
    VPUSH                    {s0-s7}
    // load f
    VLDR.F32            s1, [r3, #0]        // G
    VLDR.F32            s2, [r3, #4]        // a1
    VLDR.F32            s3, [r3, #8]        // a2
    VLDR.F32            s4, [r3, #12]        // b
    VLDR.F32            s5, [r3, #16]        // tn-1
    VLDR.F32            s6, [r3, #20]        // tn-2
fpu_iir_loop:
    // load
    ldr                        r4, [r0], #4
    // s0 <- x
    VMOV.F32            s0, r4
    // calc tn
    VMUL.F32            s7, s1, s0            // G * x
    VFMS.F32            s7, s2, s5            // -a1 * tn-1
    VFMS.F32            s7, s3, s6            // -a2 * tn-2
    // calc y
    VADD.F32            s0, s7, s6            // tn-2
    VFMA.F32            s0, s4, s5            // b * tn-1
    // save t
    VMOV.F32            s6, s5                    // tn-2
    VMOV.F32            s5, s7                    // tn-1
    // y -> r0
    VMOV.F32            r4, s0
    // store
    str                        r4, [r2], #4    
    subs                    r1, #1
    bne                        fpu_iir_loop
    VSTR.F32            s5, [r3, #16]        // tn-1
    VSTR.F32            s6, [r3, #20]        // tn-2
    VPOP                    {s0-s7}
    pop                        {r0-r4, pc}
    .size    fpu_iir, .-fpu_iir
    .cfi_endproc

 

Цифровой фильтр на asm с использованием FPU. Попробуйте переделать на С.

Поделиться сообщением


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

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

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

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

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

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

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

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