Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Вопрос по Keil uVision
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Все остальные микроконтроллеры
lexa12
Можно ли в кейле создавать тест бенчи, т.е. тестовые программы?
Мне нужно протестировать проект, а в нем на один порт выводится некий код, а с другого считывается реакция системы на первый код.
Таких битовых "векторов" довольно много и набивать вручную их в окошке отладчика практически не возможно.
Возможно ли этот процесс автоматизировать и как это сделать?
_NB
Смотрите в сторону AGSI-dll.
toweroff
Да, там можно создавать кучу внешних событий. В том числе и свои окошки с кнопочками, по нажатию на которые выполняются написанные функции. Давно не копался, но там очень много возможностей. По-моему, минимальный квант времени - 1 такт указанной в Target частоты кварца
редактор
Есть еще DebugFunctions. Из оболочки отладчика выполняется
Kolia
Цитата(lexa12 @ Apr 12 2012, 19:49) *
Мне нужно протестировать проект, а в нем на один порт выводится некий код, а с другого считывается реакция системы на первый код.

Чтоб не заморачиваться проще заменить порты на указатели таблицы со всеми возможными значениями и прогнать программу в симуляторе...
uriy
Спрошу тут же чтобы не плодить темы.
Можно ли в режиме дебаггера загонять данные из определенного регистра в файл на компе. Нужно сливать в файл отсчеты с АЦП для анализа их на компе. Такая возможность есть в VisualDSP, хотел бы тут тоже самое.
Палыч
Цитата(uriy @ Apr 27 2012, 13:52) *
Можно ли в режиме дебаггера загонять данные из определенного регистра в файл на компе.

Да, можно.
1. Menu->Debug->Breakpoint
2. В "Expression" задаете место в программе, при выполнении которого, Вам требуется вывод в файл
3. В "Command" задаете вывод нужного регистра. Например: printf("%d\n", r0);
4. Нажимаете "Define"
5. Перенаправляете вывод лога в файл: в окне команд отладчика выдаете команду, например: LOG >c:\temp\log.txt
6. Запускаем выполнение программы: Menu->Debug->Run/Step/Step Over/... При выполнении строки с такой точкой останова - вместо останова выполнится команда отладчика, которая запишет в лог-файл значение регистра.
uriy
Уже близко. Но в таком режиме получается что будет загонять в файл только после каждого останова. Мне не надо чтобы программа встала на брекпойнте. У меня есть прерывания от таймера на частоте 8КГц. В них считываю значения с АЦП. Нужно чтобы прерывание по-прежнему отрабатывало на 8КГц и писало эти отсчеты в файл.
Палыч
Цитата(uriy @ Apr 28 2012, 16:27) *
Но в таком режиме получается что будет загонять в файл только после каждого останова.

Читайте внимательно: "... вместо останова выполнится команда отладчика...". Чтобы на таком breakpoint`е прервалось выполнение программы в команду breakpoint`а нужно добавить присвоение ненулевого значения системной переменной _break_. Если эту переменную - не трогать, то на точке останова с командами "внутри" останов выполнения программы не осуществляется.

Цитата(uriy @ Apr 28 2012, 16:27) *
Нужно чтобы прерывание по-прежнему отрабатывало на 8КГц и писало эти отсчеты в файл.
А, используемые Вами отладочные средства/монитор/ресурсы МК смогут это обеспечить?
rusian_vodka
Здравствуйте возник вопросик.
Буду ра очень ответу.
Возможно ли сделать то же самое только наоборот.
Тоесть у меня есть тхт файлик с кучей значений, хочу их передавать через унит тест кейла в программу. подскажите как сие реализовать.
Палыч
Цитата(rusian_vodka @ Feb 26 2013, 11:23) *
Возможно ли сделать то же самое только наоборот.

Как такое сделать "руками" описано в Menu -> Help -> uVision Help -> µVision4 User's Guide -> Simulation -> Digital Input

Если "руками" это делать проблематично (хотите автоматизировать процесс), то можно использовать AGSI - Advanced Generic Simulator Interface (cм. AppNote 154). Однако, AGSI - очень "мощная" штука, и использование этого интерфейса - процесс отнюдь не тривиальный...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.