ruhi

Members
  • Content count

    380
  • Joined

  • Last visited

Community Reputation

39 Обычный

About ruhi

  • Rank
    Постоялец

Информация

  • Пол
    Мужчина
  • Город
    Дзержинск

Электроника

  • Стаж в электронике
    10-20 лет
  • Сфера радиоэлектроники
    радиотехника, программирование
  • Оборудование
    радиотехника, цифровая обработка сигналов, управление, любые процессоры и их обвязка

Recent Profile Visitors

946 profile views
  1. вход таймера можно использовать - его тоже можно сконфигурировать на отлов фронтов, но придется исхитриться, хотя может получиться даже лучше чем на простых INT-ах, зависит от специфики задачи. Compare там есть?
  2. Только не для компиляторов, а для ассемблеров. Про компилятор которым это что то было скомпилировано и слинковано, оно знать ни чего и не должна в общем то.
  3. программа уже может. Я недавно пытался разбираться с дизасемблированным в С-код бинарником одного аудиокодека. Не получилось потому что код использовал внешние таблицы не доступные дизасемблеру, с хитрой навигацией по ним, а так ничего сложного ! Там получается один файл в моем случае 60 тысяч строчек кода, вот такого (если интересно): //----- (0040B690) -------------------------------------------------------- signed int __cdecl sub_40B690(int a1) { signed int result; // eax@2 signed int v2; // eax@3 _DWORD *v3; // ecx@3 int v4; // esi@8 int v5; // ST0C_4@8 int v6; // ST08_4@8 if ( a1 ) { v2 = 0; v3 = (_DWORD *)(a1 + 12); do { if ( !*v3 ) break; ++v2; v3 += 14; } while ( v2 < 31 ); if ( v2 == 31 ) { result = -1; } else { v4 = a1 + 56 * v2; *(_DWORD *)(v4 + 16) = 0x2000000; v5 = *(_BYTE *)(v4 + 18); v6 = *(_BYTE *)(v4 + 19); *(_DWORD *)(v4 + 12) = 5; sub_402010((char *)(v4 + 24), aD_D_D_0, v6, v5, 0); *(_DWORD *)(v4 + 4) = aJun262012_0; *(_DWORD *)(v4 + 8) = a145950; ...
  4. у @my504 там получалось что надо значение регистра по приходу слова копировать в ячейку памяти по ДМА (видимо по событию прерывания от SPI), Cоотв-ств-но, что бы там не было с алгоритмом использования этого значения, нужно обязательно успеть вычитать это значение из этой ячейки памяти до того как оно затрется следующим значением! - в этом и заключается синхронизация в данном случае - во первых не пропустить момент обновления; во вторых успеть (прочитать значение) до следующего момента обновления (за время СПИ-айного байта значит, понятно что если СПИ-ай медленный -это во-ще не проблема - пиши как хочешь, то есть задача становится реальной только при определенных условиях, скорость СПИ-ай в данном случае является таким условием актуальности задачи). Другими словами: основная проблема здесь это наличие вот этого периода разрешенного чтения, за который надо успеть вычитать вновь пришедшее значение!!! Так вот, если вы используете ДМА, в данном случае, этот период разрешенного чтения сокращается (из регистра еще надо скопировать и только потом можно читать!!!), может быть совсем чуть чуть сокращается, но опять же, повторю: задача становится реальной только при определенных условиях, скорость СПИ-ай в данном случае является таким условием актуальности задачи по мне так все это очевидно, но такое разжевывание помогает в том числе себя проверить, что тоже ни когда не вредно !!! Вот человек который все знает/понимает на основании этого давит авторитетом, но разжевать не умеет, скорее всего что то все таки не знает и не понимает опыт показывает!!! Есть и другие проблемы, в СПИ-ай должен быть бит (флаг) переполнения буфера чтения - как раз для отслеживания ситуации с затиранием не прочитанного значения, и при использовании ДМА его не получится использовать!
  5. тут получается что вы подменили понятия, потому что я имел ввиду четко определенную синхронизацию, из определения которой происходит требование ее наличия. но это совсем сложно, не заморачивайтесь
  6. Действительно не убирается !!! синхронизация с чем???
  7. Что: "синхронизация алгоритма использования значения из регистра, с моментом появления (обновления) этого значения в регистре" тоже не убирается в мозговой оперативной памяти? Читайте выше еще раз, там было про прием и передачу (в память / из памяти):
  8. Да, осталось только выяснить какую проблему решает копирование значения регистра в память посредством ДМА, при том что можно это значение прочитать непосредственно из регистра. Ведь, тогда основная проблема это синхронизация алгоритма использования значения из регистра, с моментом появления (обновления) этого значения в регистре, и ДМА здесь ничем помочь не может, а будет лишней операцией, потому что алгоритм будет читать значение не из регистра, а из памяти ПОСЛЕ копирования этого значения в ЭТУ память из РЕГИСТРА через ДМА. Да! вот так вот сложно, и похоже эта сложность не позволяет вам заметить избыточность применения ДМА здесь, о которой вам и пытался растолковать @BARS_ на сколько я понимаю
  9. Это ж элементарно, извиняюсь, без запуска (и, значит, без остановки) он у вас бесконечно будет приходящие данные сохранять КУДА??? Бесконечной памяти не существует, остается только циклический буфер, В серии ATSAMXXXX для этих целей определен linked list of descriptors, например. Что ж вы, элементарных вещей не знаете, а беретесь рассуждать о высоких материях .
  10. Начинающим С Нуля (Pic)

    Дизассемблер он и в Африке дизасемблер проще ассемблера ничего не бывает, ну если только перфокарты ! Да он наверно в единственном экземпляре, в ПИКовской среде разработки надо искать, если по аналогии с АВР-ми рассуждать попробуйте в их среде найти возможность запустить в симуляторе считанный файл hex, elf, ... какой там он у вас.
  11. Да, только тогда требуется ДМА канал с циклическим буфером, и работает это только на прием, кстати, как вы одиночную передачу запускать собираетесь, по какому, нафик, таймеру??? оно должно запускаться, обычно в произвольный момент времени, когда данные появились из произвольного источника! А при наличии циклического буфера о: лучше не вспоминать! Прямо как одна известная звезда
  12. Вы уж бред какой то тут пишите- заговариваетесь. В вашем примере реквестом должна быть запись данных в вашу переменную, а если что то пишется в переменную то почему это что то сразу не записать в регистр? Поэтому запись в память и не предусмотрена нигде в качестве активатора ДМА канала.
  13. Дисплей ILI9486 и STM32f103c8t6

    А где вопрос то? Ты хочешь что бы тебе гайд написали по лепке(портированию) либы?
  14. Ну да! Типа делаем утюг, получается холодильник! Все же нормально - получилось ЖЕ (чо ТА) ! Можно только позавидовать веселости вашего бытия!