Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Симуляция п/п в Keil
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Все остальные микроконтроллеры > MCS51
IF_P
Основная программа и большинство подпрограмм находятся в одном файле. К нему по директиве # include подключаются дополнительные файлы с п/п. При симуляции п/п, которые находятся в дополнительных файлах программа не выводит их в исходниках. Приходится вставлять эти п/п в основной файл. Тогда все нормально. Может есть другой вариант симуляции п/п?
aaarrr
Цитата(IF_P @ Dec 27 2008, 19:31) *
Может есть другой вариант симуляции п/п?

А другого варианта писать программу нет? Я бы в #include ничего кроме инлайновых функций класть бы не стал, или речь как раз о них?
IF_P
Цитата(aaarrr @ Dec 27 2008, 18:48) *
А другого варианта писать программу нет? Я бы в #include ничего кроме инлайновых функций класть бы не стал, или речь как раз о них?

Я выше писал, что можно все п/п залить в один файл. Но мне удобно было размещать эти п/п в отдельных файлах. Например "com_port.c" - все, что связано с COM-портом, "display.c" - для работы с LCD дисплеем, "diag.с" - подключаю только для диагностики и т.д. Сейчас я вставляю эти файлы в основной файл, если требуется пошаговое слежение за ними ли подключаю по "include" для простой компиляции.
aaarrr
Цитата(IF_P @ Dec 27 2008, 20:45) *
Сейчас я вставляю эти файлы в основной файл, если требуется пошаговое слежение за ними ли подключаю по "include" для простой компиляции.

Зачем цеплять при помощи #include C-файлы? Чем extern не устраивает?
IF_P
Цитата(aaarrr @ Dec 27 2008, 20:34) *
Зачем цеплять при помощи #include C-файлы? Чем extern не устраивает?

На ассемблере так и делал. Транслировал отдельные модули и потом объектные файлы цеплял Linker'ом. А с Keil я только начал разбираться. поэтому много чего не знаю. Вот смотрел документацию и не нашел как это сделать в Keil.
Попутно возник еще вопрос - Как симулировать COM-порт. В Proview32 я просто вводил байт в окне Serial, нажимал ENTER и программа сразу обрабатывала его. Здесь в документации есть р-ры для симуляции, но пока их не нашел.
aaarrr
Цитата(IF_P @ Dec 28 2008, 00:14) *
Вот смотрел документацию и не нашел как это сделать в Keil.

Найдите любую книжку по "С", так как вопрос к Keil'у непосредственно не относится.
IF_P
Цитата(aaarrr @ Dec 27 2008, 23:39) *
Найдите любую книжку по "С", так как вопрос к Keil'у непосредственно не относится.

А что касается симуляции COM-порта?
aaarrr
Цитата(IF_P @ Dec 28 2008, 00:58) *
А что касается симуляции COM-порта?

Про COM-порт ничего не подскажу, но, ИМХО, железо лучше и отлаживать в железе, а не в симуляторе.
IF_P
Цитата(aaarrr @ Dec 28 2008, 00:06) *
Про COM-порт ничего не подскажу, но, ИМХО, железо лучше и отлаживать в железе, а не в симуляторе.

Да вот железо лежит передо мной и я его отлаживаю. COM-порт работает с комп'ютером. Но возник вопрос измерения времени работы п/п обработки команд от COM-порта. Вот и обратился к симулятору.
toweroff
В Keil можно было описывать отладочные функции и подключать дополнительные DLL, попробуйте посмотреть тут

PS

Полазил сам по этим ссылкам, половина битая sad.gif
Но в любом случае, содание DLL описано у Keil здесь, пример кода здесь.

Описание создания отладочных функций где-то было у меня в doc-файле (на русском), постараюсь найти и выложить

ЗЫЫ

По функциям читаем здесь
rezident
Цитата(IF_P @ Dec 28 2008, 03:18) *
Но возник вопрос измерения времени работы п/п обработки команд от COM-порта. Вот и обратился к симулятору.
Не нужно симулятор, если есть осциллограф. Используйте любой свободный пин МК. В начале п/п выводите на него лог.1., а в конце п/п (перед выходом из нее) сбрасывайте состояние пина в 0. Осциллографом смотрите время выполнения п/п по длительности импульса на этом пине wink.gif
IF_P
Цитата(toweroff @ Dec 28 2008, 01:08) *
В Keil можно было описывать отладочные функции и подключать дополнительные DLL, попробуйте посмотреть тут

PS

Полазил сам по этим ссылкам, половина битая sad.gif
Но в любом случае, содание DLL описано у Keil здесь, пример кода здесь.

Описание создания отладочных функций где-то было у меня в doc-файле (на русском), постараюсь найти и выложить

ЗЫЫ

По функциям читаем здесь

Вот на сайте Keil нашел информацию:
"So, if you have configured a serial port, the following commands (typed in the debugger's Command Window) input a value into the serial stream. Note that you may also use the Serial Window in the µVision Debugger to input characters for the serial port.
Но у меня не работает.



Цитата(rezident @ Dec 28 2008, 01:35) *
Не нужно симулятор, если есть осциллограф. Используйте любой свободный пин МК. В начале п/п выводите на него лог.1., а в конце п/п (перед выходом из нее) сбрасывайте состояние пина в 0. Осциллографом смотрите время выполнения п/п по длительности импульса на этом пине wink.gif

С осциллографом то ясно. Но он есть на работе, а дома нет.
toweroff
Цитата(IF_P @ Dec 28 2008, 02:44) *
Вот на сайте Keil нашел информацию:
"So, if you have configured a serial port, the following commands (typed in the debugger's Command Window) input a value into the serial stream. Note that you may also use the Serial Window in the µVision Debugger to input characters for the serial port.
Но у меня не работает.


По-идее должно... может настройки где не такие. По крайней мере ВЫХОД с uart в окне отображался... когда-то пробовал, еще в uVision2

Но, если необходимо еще анализировать время выполнения п/п, без написания дебажных функций, похоже, вряд ли обойтись
Палыч
Цитата(IF_P @ Dec 28 2008, 00:14) *
Как симулировать COM-порт. В Proview32 я просто вводил байт в окне Serial, нажимал ENTER и программа сразу обрабатывала его. Здесь в документации есть р-ры для симуляции, но пока их не нашел.
В Кeil тоже есть окно Serial, доступное при отладке. Вот только отображается в нём только то, что выводится из МК. Если потребуется увидеть свой ввод, то необходимо реализовать со стороны МК поддержку эха.
P.S. При симуляции СОМ-порт компьютера можно "прикрутить" к ногам UART симулируемого микроконтроллера (команды MODE и ASSIGN) - очень удобно отлаживать взаимодействие программы МК с внешним устройством.
toweroff
Цитата(Палыч @ Dec 28 2008, 12:32) *
При симуляции СОМ-порт компьютера можно "прикрутить" к ногам UART симулируемого микроконтроллера (команды MODE и ASSIGN) - очень удобно отлаживать взаимодействие программы МК с внешним устройством.


можно по-подробнее?
Палыч
Цитата(toweroff @ Dec 30 2008, 02:02) *
можно по-подробнее?
Не знаю: что тут подробнее объяснять? В help'е на указанные команды всё вроде понятно... Эти две команды позволяют получить выход UART симумируемого МК за пределами симулятора: на СОМ-порте компьютера. К нему (СОМ-порту) можно подключить СОМ-порт другого компьютера, на котором отлаживается программа, взаимодействующая с МК. У меня - всё на одном компьютере: вывод UART прикручен к виртуальному СОМ-порту, который в свою очередь "соединен" с другим виртуальным СОМ-портом, с которым взаимодействует отлаживаемая программа связи с МК...
toweroff
Цитата(Палыч @ Jan 5 2009, 14:04) *
Не знаю: что тут подробнее объяснять? В help'е на указанные команды всё вроде понятно... Эти две команды позволяют получить выход UART симумируемого МК за пределами симулятора: на СОМ-порте компьютера. К нему (СОМ-порту) можно подключить СОМ-порт другого компьютера, на котором отлаживается программа, взаимодействующая с МК. У меня - всё на одном компьютере: вывод UART прикручен к виртуальному СОМ-порту, который в свою очередь "соединен" с другим виртуальным СОМ-портом, с которым взаимодействует отлаживаемая программа связи с МК...


все, увидел, нашел smile.gif

а я что-то грешным делом подумал про команды DOS 07.gif biggrin.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.