реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Симуляция п/п в Keil
IF_P
сообщение Dec 27 2008, 16:31
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 136
Регистрация: 2-01-06
Пользователь №: 12 772



Основная программа и большинство подпрограмм находятся в одном файле. К нему по директиве # include подключаются дополнительные файлы с п/п. При симуляции п/п, которые находятся в дополнительных файлах программа не выводит их в исходниках. Приходится вставлять эти п/п в основной файл. Тогда все нормально. Может есть другой вариант симуляции п/п?

Сообщение отредактировал IF_P - Dec 27 2008, 16:32
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Dec 27 2008, 16:48
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(IF_P @ Dec 27 2008, 19:31) *
Может есть другой вариант симуляции п/п?

А другого варианта писать программу нет? Я бы в #include ничего кроме инлайновых функций класть бы не стал, или речь как раз о них?
Go to the top of the page
 
+Quote Post
IF_P
сообщение Dec 27 2008, 17:45
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 136
Регистрация: 2-01-06
Пользователь №: 12 772



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

Я выше писал, что можно все п/п залить в один файл. Но мне удобно было размещать эти п/п в отдельных файлах. Например "com_port.c" - все, что связано с COM-портом, "display.c" - для работы с LCD дисплеем, "diag.с" - подключаю только для диагностики и т.д. Сейчас я вставляю эти файлы в основной файл, если требуется пошаговое слежение за ними ли подключаю по "include" для простой компиляции.

Сообщение отредактировал IF_P - Dec 27 2008, 17:46
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Dec 27 2008, 18:34
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(IF_P @ Dec 27 2008, 20:45) *
Сейчас я вставляю эти файлы в основной файл, если требуется пошаговое слежение за ними ли подключаю по "include" для простой компиляции.

Зачем цеплять при помощи #include C-файлы? Чем extern не устраивает?
Go to the top of the page
 
+Quote Post
IF_P
сообщение Dec 27 2008, 21:14
Сообщение #5


Частый гость
**

Группа: Участник
Сообщений: 136
Регистрация: 2-01-06
Пользователь №: 12 772



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

На ассемблере так и делал. Транслировал отдельные модули и потом объектные файлы цеплял Linker'ом. А с Keil я только начал разбираться. поэтому много чего не знаю. Вот смотрел документацию и не нашел как это сделать в Keil.
Попутно возник еще вопрос - Как симулировать COM-порт. В Proview32 я просто вводил байт в окне Serial, нажимал ENTER и программа сразу обрабатывала его. Здесь в документации есть р-ры для симуляции, но пока их не нашел.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Dec 27 2008, 21:39
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(IF_P @ Dec 28 2008, 00:14) *
Вот смотрел документацию и не нашел как это сделать в Keil.

Найдите любую книжку по "С", так как вопрос к Keil'у непосредственно не относится.
Go to the top of the page
 
+Quote Post
IF_P
сообщение Dec 27 2008, 21:58
Сообщение #7


Частый гость
**

Группа: Участник
Сообщений: 136
Регистрация: 2-01-06
Пользователь №: 12 772



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

А что касается симуляции COM-порта?
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Dec 27 2008, 22:06
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



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

Про COM-порт ничего не подскажу, но, ИМХО, железо лучше и отлаживать в железе, а не в симуляторе.
Go to the top of the page
 
+Quote Post
IF_P
сообщение Dec 27 2008, 22:18
Сообщение #9


Частый гость
**

Группа: Участник
Сообщений: 136
Регистрация: 2-01-06
Пользователь №: 12 772



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

Да вот железо лежит передо мной и я его отлаживаю. COM-порт работает с комп'ютером. Но возник вопрос измерения времени работы п/п обработки команд от COM-порта. Вот и обратился к симулятору.
Go to the top of the page
 
+Quote Post
toweroff
сообщение Dec 27 2008, 23:08
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



В Keil можно было описывать отладочные функции и подключать дополнительные DLL, попробуйте посмотреть тут

PS

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

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

ЗЫЫ

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

Сообщение отредактировал toweroff - Dec 27 2008, 23:24
Go to the top of the page
 
+Quote Post
rezident
сообщение Dec 27 2008, 23:35
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(IF_P @ Dec 28 2008, 03:18) *
Но возник вопрос измерения времени работы п/п обработки команд от COM-порта. Вот и обратился к симулятору.
Не нужно симулятор, если есть осциллограф. Используйте любой свободный пин МК. В начале п/п выводите на него лог.1., а в конце п/п (перед выходом из нее) сбрасывайте состояние пина в 0. Осциллографом смотрите время выполнения п/п по длительности импульса на этом пине wink.gif
Go to the top of the page
 
+Quote Post
IF_P
сообщение Dec 27 2008, 23:47
Сообщение #12


Частый гость
**

Группа: Участник
Сообщений: 136
Регистрация: 2-01-06
Пользователь №: 12 772



Цитата(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

С осциллографом то ясно. Но он есть на работе, а дома нет.
Go to the top of the page
 
+Quote Post
toweroff
сообщение Dec 27 2008, 23:50
Сообщение #13


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Цитата(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

Но, если необходимо еще анализировать время выполнения п/п, без написания дебажных функций, похоже, вряд ли обойтись
Go to the top of the page
 
+Quote Post
Палыч
сообщение Dec 28 2008, 09:32
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Цитата(IF_P @ Dec 28 2008, 00:14) *
Как симулировать COM-порт. В Proview32 я просто вводил байт в окне Serial, нажимал ENTER и программа сразу обрабатывала его. Здесь в документации есть р-ры для симуляции, но пока их не нашел.
В Кeil тоже есть окно Serial, доступное при отладке. Вот только отображается в нём только то, что выводится из МК. Если потребуется увидеть свой ввод, то необходимо реализовать со стороны МК поддержку эха.
P.S. При симуляции СОМ-порт компьютера можно "прикрутить" к ногам UART симулируемого микроконтроллера (команды MODE и ASSIGN) - очень удобно отлаживать взаимодействие программы МК с внешним устройством.
Go to the top of the page
 
+Quote Post
toweroff
сообщение Dec 29 2008, 23:02
Сообщение #15


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Цитата(Палыч @ Dec 28 2008, 12:32) *
При симуляции СОМ-порт компьютера можно "прикрутить" к ногам UART симулируемого микроконтроллера (команды MODE и ASSIGN) - очень удобно отлаживать взаимодействие программы МК с внешним устройством.


можно по-подробнее?
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 27th July 2025 - 20:23
Рейтинг@Mail.ru


Страница сгенерированна за 0.01492 секунд с 7
ELECTRONIX ©2004-2016