F00-17 (1041601), страница 15
Текст из файла (страница 15)
Эта возможность позволяет использовать память программ длядолговременного хранения данных, а также обновлять программный код под управлением программы.Встроенные аппаратные средства отладки позволяют осуществлять внутрисхемную отладку врежиме реального времени, при этом возможны расстановка точек останова и временных меток, запуск,остановка и пошаговое исполнение программы (включая процедуры обработки прерываний), проверкапрограммного стека, чтение/запись содержимого регистров и памяти.
Это метод отладки является неразрушающим, не требует вмешательства в структуру отлаживаемой системы и использования внутреннихресурсов МК (например, ОЗУ, стека, памяти и др.).CIP-51 поддерживается аппаратными и программными средствами разработки от фирмы Cygnal идругих фирм. Фирма Cygnal предлагает интегрированную среду проектирования (IDE), которая включает всебя редактор, макроассемблер, отладчик и программатор.
Отладчик и программатор, входящие в состав IDE,взаимодействуют с CIP-51 посредством JTAG интерфейса, что позволяет осуществлять быстрое иэффективное программирование МК и его отладку. Доступны также макроассемблеры и С-компиляторынезависимых фирм-производителей.10.1. СИСТЕМА КОМАНДСистема команд CIP-51 полностью совместима с системой команд MCS-51™, поэтому разработкапрограммного обеспечения может осуществляться с использованием средств проектирования длястандартной архитектуры 8051.
Все команды CIP-51 являются двоичным и функциональным эквивалентоманалогичных команд MCS-51™, включая коды операций, режимы адресации и изменение флагов состояния.Однако, по времени выполнения команды отличаются.10.1.1. Команды и тактированиеВо многих МК с архитектурой 8051 существует различие между машинным циклом и цикломтактирования, при этом машинный цикл длится от 2 до 12 циклов тактирования. Однако, CIP-51 основанисключительно на синхронизации тактовым сигналом и все временные параметры команд приводятся наоснове циклов тактирования.Благодаря конвейерной архитектуре CIP-51, количество тактовых циклов, требуемых длявыполнения большинства команд, равно количеству байтов в команде.
Команды условных переходовтребуют для завершения на один цикл меньше, если переход не происходит (по сравнению с тем случаем,когда переход происходит). Система команд CIP-51 приведена в таблице 10.1, которая содержит мнемонику,количество байтов и количество тактовых циклов для каждой команды.10.1.2. Команда MOVX и память программКоманда MOVX обычно используется для доступа к внешней памяти данных. В CIP-51 командаMOVX может обращаться к встроенной памяти программ, реализованной как перепрограммируемая Flashпамять, используя управляющие биты в регистре PSCTL (см.
рис. 11.1). Это позволяет ядру CIP-51 обновлятьпрограммный код и использовать область памяти программ для долговременного хранения данных. Для МК сОЗУ, отображенным на внешнюю память данных (C8051F005/06/07/15/16/17), команда MOVX используетсятакже для чтения/записи этой памяти с помощью регистра PSCTL, настроенного на доступ к внешней памятиданных.
Подробная информация об использовании Flash-памяти приведена в разделе 11.4.2002; Rev. 1.4CYGNAL Integrated Products, Inc. 2002Page 63C8051F000/1/2/5/6/7C8051F010/1/2/5/6/7Таблица 10.1. Система команд CIP-51МнемоникакомандыADD A,RnADD A,directADD A,@RiADD A,#dataADDC A,RnADDC A,directADDC A,@RiADDC A,#dataSUBB A,RnSUBB A,directSUBB A,@RiSUBB A,#dataINC AINC RnINC directINC @RiDEC ADEC RnDEC directDEC @RiINC DPTRMUL ABDIV ABDA AANL A,RnANL A,directANL A,@RiANL A,#dataANL direct,AANL direct,#dataORL A,RnORL A,directORL A,@RiORL A,#dataORL direct,AORL direct,#dataXRL A,RnXRL A,directXRL A,@RiXRL A,#dataXRL direct,AXRL direct,#dataCLR ACPL ARL ARLC APage 64ОписаниеАРИФМЕТИЧЕСКИЕ ОПЕРАЦИИСложение аккумулятора с регистром (n = 0…7)Сложение аккумулятора с прямо-адресуемым байтомСложение аккумулятора с косвенно-адресуемым байтом ОЗУСложение аккумулятора с константойСложение аккумулятора с регистром и переносомСложение аккумулятора с прямо-адресуемым байтом и переносомСложение аккумулятора с косвенно-адресуемым байтом ОЗУ и переносомСложение аккумулятора с константой и переносомВычитание из аккумулятора регистра и заемаВычитание из аккумулятора прямо-адресуемого байта и заемаВычитание из аккумулятора косвенно-адресуемого байта ОЗУ и заемаВычитание из аккумулятора константы и заемаИнкремент аккумулятораИнкремент регистраИнкремент прямо-адресуемого байтаИнкремент косвенно-адресуемого байта ОЗУДекремент аккумулятораДекремент регистраДекремент прямо-адресуемого байтаДекремент косвенно-адресуемого байта ОЗУИнкремент указателя данныхУмножение аккумулятора на регистр ВДеление аккумулятора на регистр ВДесятичная коррекция аккумулятораЛОГИЧЕСКИЕ ОПЕРАЦИИЛогическое И аккумулятора и регистраЛогическое И аккумулятора и прямо-адресуемого байтаЛогическое И аккумулятора и косвенно-адресуемого байта ОЗУЛогическое И аккумулятора и константыЛогическое И прямо-адресуемого байта и аккумулятораЛогическое И прямо-адресуемого байта и константыЛогическое ИЛИ аккумулятора и регистраЛогическое ИЛИ аккумулятора и прямо-адресуемого байтаЛогическое ИЛИ аккумулятора и косвенно-адресуемого байта ОЗУЛогическое ИЛИ аккумулятора и константыЛогическое ИЛИ прямо-адресуемого байта и аккумулятораЛогическое ИЛИ прямо-адресуемого байта и константыИсключающее ИЛИ аккумулятора и регистраИсключающее ИЛИ аккумулятора и прямо-адресуемого байтаИсключающее ИЛИ аккумулятора и косвенно-адресуемого байта ОЗУИсключающее ИЛИ аккумулятора и константыИсключающее ИЛИ прямо-адресуемого байта и аккумулятораИсключающее ИЛИ прямо-адресуемого байта и константыСброс аккумулятораИнверсия аккумулятораСдвиг аккумулятора влево циклическийСдвиг аккумулятора влево через переносCYGNAL Integrated Products, Inc.
2002БайтыЦиклы121212121212112111211111122212221222112211221481121223121223121223111112222312222312222311114.2002; Rev. 1.4C8051F000/1/2/5/6/7C8051F010/1/2/5/6/7МнемоникакомандыRR ARRC ASWAP AMOV A,RnMOV A,directMOV A,@RiMOV A,#dataMOV Rn,AMOV Rn,directMOV Rn,#dataMOV direct,AMOV direct,RnMOV direct,directMOV direct,@RiMOV direct,#dataMOV @Ri,AMOV @Ri,directMOV @Ri,#dataMOV DPTR,#data16MOVC A,@A+DPTRMOVC A,@A+PCMOVX A,@RiMOVX @Ri,AMOVX A,@DPTRMOVX @DPTR,APUSH directPOP directXCH A,RnXCH A,directXCH A,@RiXCHD A,@RiCLR CCLR bitSETB CSETB bitCPL CCPL bitANL C,bitANL C,/bitORL C,bitORL C,/bitMOV C,bitMOV bit,CJC rel4.2002; Rev. 1.4ОписаниеБайтыЦиклыСдвиг аккумулятора вправо циклическийСдвиг аккумулятора вправо через переносОбмен местами тетрад в аккумулятореКОМАНДЫ ПЕРЕДАЧИ ДАННЫХПересылка в аккумулятор из регистра (n = 0…7)Пересылка в аккумулятор прямо-адресуемого байтаПересылка в аккумулятор косвенно-адресуемого байта ОЗУЗагрузка в аккумулятор константыПересылка в регистр из аккумулятораПересылка в регистр прямо-адресуемого байтаЗагрузка в регистр константыПересылка по прямому адресу аккумулятораПересылка по прямому адресу регистраПересылка прямо-адресуемого байта по прямому адресуПересылка косвенно-адресуемого байта ОЗУ по прямому адресуПересылка по прямому адресу константыПересылка в косвенно-адресуемую ячейку ОЗУ аккумулятораПересылка в косвенно-адресуемую ячейку ОЗУ прямо-адресуемогобайтаПересылка в косвенно-адресуемую ячейку ОЗУ константыЗагрузка указателя данныхПересылка в аккумулятор байта из памяти программПересылка в аккумулятор байта из памяти программПересылка в аккумулятор байта из внешней памяти данныхПересылка байта из аккумулятора во внешнюю память данныхПересылка в аккумулятор из расширенной внешней памяти данныхПересылка из аккумулятора в расширенную внешнюю память данныхЗагрузка в стекИзвлечение из стекаОбмен аккумулятора с регистромОбмен аккумулятора с прямо-адресуемым байтомОбмен аккумулятора с косвенно-адресуемым байтом ОЗУОбмен младшей тетрады аккумулятора с младшей тетрадойкосвенно-адресуемого байта ОЗУОПЕРАЦИИ С БИТАМИСброс переносаСброс битаУстановка переносаУстановка битаИнверсия переносаИнверсия битаЛогическое И бита и переносаЛогическое И инверсии бита и переносаЛогическое ИЛИ бита и переносаЛогическое ИЛИ инверсии бита и переносаПересылка бита в переносПересылка переноса в битПереход, если перенос равен единице1111111212122223231122212222323222231111112212123333333221221212121222222221212122222222/3CYGNAL Integrated Products, Inc.
2002Page 65C8051F000/1/2/5/6/7C8051F010/1/2/5/6/7МнемоникакомандыJNC relJB bit,relJNB bit,relJBC bit,relACALL addr11LCALL addr16RETRETIAJMP addr11LJMP addr16SJMP relJMP @A+DPTRJZ relJNZ relCJNE A,direct,relCJNE A,#data,relCJNE Rn,#data,relCJNE@Ri,#data,relDJNZ Rn,relDJNZ direct,relNOPОписаниеБайтыЦиклыПереход, если перенос равен нулюПереход, если бит равен единицеПереход, если бит равен нулюПереход, если бит установлен, с последующим сбросом битаПРОГРАММНЫЕ ПЕРЕХОДЫАбсолютный вызов подпрограммы в пределах страницы в 2 КбайтаДлинный вызов подпрограммыВозврат из подпрограммыВозврат из подпрограммы обработки прерыванияАбсолютный переход внутри страницы в 2 КбайтаДлинный переход в полном объеме памяти программКороткий относительный переход внутри страницы в 256 байтКосвенный относительный переходПереход, если аккумулятор равен нулюПереход, если аккумулятор не равен нулюСравнение аккумулятора с прямо-адресуемым байтом и переход,если не равноСравнение аккумулятора с константой и переход, если не равноСравнение регистра с константой и переход, если не равноСравнение косвенно-адресуемого байта ОЗУ с константой ипереход, если не равноДекремент регистра и переход, если не нульДекремент прямо-адресуемого байта и переход, если не нульХолостая команда23332/33/43/43/42311232122345534332/32/333/4333/43/434/52312/33/41Условные обозначения:Rn - Регистр R0-R7 выбранного банка регистров.@Ri – Ячейка ОЗУ данных, адресуемая косвенно через регистры R0-R1rel - 8-битное смещение со знаком (в дополнительном коде) относительно первого байта следующейкоманды.