======Запускаем отладку многопроцессорной системы====== В данной статье мы рассмотрим как настроить среду CM-LYNX, чтобы выполнить отладку сразу нескольких процессоров 1967ВНxx. Связь отладчика с процессором осуществляется посредством JTAG интерфейса, поэтому чтобы в режиме отладки иметь доступ сразу к нескольким процессорам, необходимо объединить процессоры в JTAG цепочку. В нашем проекте мы будем использовать [[http://ic.milandr.ru/products/programmno_otladochnye_sredstva/otladochnye_komplekty/otladochnyy_komplekt_dlya_protsessora_tsifrovoy_obrabotki_signalov_1967vn028/|отладочный комплект для процессора цифровой обработки сигналов 1967ВН028]], на отладочной плате которого уже реализовано соединение двух процессоров 1967ВН028 в JTAG цепочку. ===== Особенности JTAG цепочки на отладочной плате для 1967ВН028 ===== Подключение процессоров 1967ВН028 к отладчику по интерфейсу JTAG может быть настроено с помощью перемычек XP3-XP5. В зависимости от установленного положения на XP3-XP5 могут быть использованы следующие режимы: ^Режим подключения отладчика к процессорам^Положение XP3^Положение XP4^Положение XP5^ |Подключён только процессор D5 |1-2|не установлена|1-2| |Подключён только процессор D6 |2-3|не установлена|2-3| |Подключены оба процессора: JTAG цепочка D6-D5 |2-3|установлена|1-2| Рисунок, наглядно демонстрирующий различные режимы подключения отладчика к процессорам. {{dsp:multicore:JTAG_Chain_1967VN028.png}} Для использования многопроцессорной отладки нам необходимо объединить процессоры в JTAG цепочку, поэтому устанавливаем перемычки на XP3-XP5 для режима с подключением двух процессоров. ===== Настройка проекта ===== В качестве тестового примера для отладки мы будем использовать проект Hello World, описанный в статье [[https://startmilandr.ru/doku.php/prog:spec:proj_codemaster-lynx |Создаем проект в среде CM-LYNX]]. По статье выполняем все пункты по созданию проекта до настроек режима Debug, т.е. указываем новый workspace, создаём в нём проект для 1967ВН028 и добавляем файл main.c с кодом мигания светодиодами. Далее настройка режима Debug будет несколько отличаться от стандартной. Обратите внимание, что в [[https://startmilandr.ru/doku.php/prog:spec:multicore_debug|старой версии статьи]] для CM-LYNX 1.06.** настройка отладки нескольких ядер выполнялась абсолютно иначе и гораздо сложнее. С версии CM-LYNX 1.07.00 процесс многоядерной отладки стал настраиваться гораздо проще, о чем приводится информация далее. Создаём отладочную конфигурацию. Для этого нажимаем на стрелку у значка жука и переходим в Debug configurations. {{dsp:multicore:debug1.png}} Так как у нас выбран тулчейн LLVM, то в открывшемся окне слева выбираем тип Milandr DSP1967 (LLDB) и выбираем иконку "New". {{dsp:multicore:debug_2.png}} Создастся конфигурация {Name_project} Debug. Теперь во вкладке main необходимо указать количество ядер, то есть 2, а далее, в столбце Program, указать для каждого ядра проект для отладки. Обратите внимание, что в нашем случае оба проекта одинаковые, и оба ядра будут работать с одним проектом. {{dsp:multicore:debug3.png}} Теперь нажимаем на кнопку «Debug», после чего среда автоматически загрузит во все процессоры копию программы в соответствии с отладочной информацией о многопроцессорной конфигурации, хранящейся в "dxe"-файле, и запустится режим отладки. ===== Режим Debug ===== Теперь после запуска режима Debug в отладочной сессии будет отображаться два потока, по одному потоку на каждый процессор. {{dsp:multicore:debug4.png}} Выбрав соответствующий поток, можно по отдельности запускать выполнение программы на разных процессорах. Чтобы запустить выполнение программы одновременно на двух процессорах, воспользуемся функцией «Multisession Commands Mode». {{dsp:multicore:multicore.png}} Когда данная функция активирована, отладочные команды (Resume, Suspend, Terminate, Step Into, Step Over, Step Return) выполняются одновременно для всех активных процессоров. {{dsp:multicore:plata.jpg}} ----- * Старая версия статьи для CM-LYNX 1.06.* доступна здесь [[https://startmilandr.ru/doku.php/prog:spec:multicore_debug|Запускаем отладку многопроцессорной системы]]. * Старая версия статьи для CM-LYNX 1.05.04 доступна здесь: [[https://startmilandr.ru/doku.php/prog:spec:interprocessor_exchange|Тестирование совместной работы двух процессоров 1967ВН028]].