Поставил CooCox посмотреть что оно такое. В целом есть положительные моменты и даже очень хорошо для бесплатной среды. Однако хотелось бы видеть переменные по ходу отладки во время выполнения программы а не после ее остановки. Это как-то делается? Спасибо.
Integro
Sep 29 2014, 15:15
Цитата(smk @ Sep 29 2014, 13:34)

хотелось бы видеть переменные по ходу отладки во время выполнения программы а не после ее остановки.
Не понял, видеть содержимое прям на лету? или вы о вводе отладочных cсообщений через jtag?
Golikov A.
Sep 29 2014, 18:25
думаю что-то типа автоапдейта значения переменных в кейле интересует.
Использовал CooCox 1.7.5 - в нем такой возможности не было. Думаю, что просмотр переменных на лету через jtag, во время выполнения программы, как в keil'e, может влиять на выполнение самой программы. Поэтому это и не реализовано.
Цитата(Golikov A. @ Sep 29 2014, 21:25)

думаю что-то типа автоапдейта значения переменных в кейле интересует.
Да, именно это.
Вот GDB отладчик, GDB сервер, C/C++ GDB Hardware Debugging plugin это предоставляет такую возможность?
ELEKTROS
Oct 13 2014, 12:03
Тоже бьюсь над проблемой отладки Real-time в CooCox с помощью ST-link, на одном форуме ответили что в Keil эта возможность есть, то есть смотреть переменные (но думаю и их редактировать) без останова программы, а вот братья китайцы похоже еще не научились это делать. Есть вариант STMStudio, но еще не пробывал ей пользоваться не ставиться на Win7 x64.
Можно во время дебагинга просто наводить курсор на переменую в коде, должно значение показываться. Или Вы о другом?
ELEKTROS
Oct 13 2014, 14:02
BvDV, да ну, никогда такого не было, нужно паузу жать чтоб такое работало, как Вы написали.
ELEKTROS
Oct 14 2014, 13:53
Установил всё же STMStudio, работает через файл *.elf, но не все переменные передаёт бывает, если используем структуру, то обрезанные переменные (т.е. типа uint8 tmp:1;), вбиваем вручную, в *.elf их нету почему-то.
В кейле и стмстудии все работает. Вот в кокосе видно только после останова. Если в кокосе можно прочитать после останова то и на лету это сделать тоже не должно быть проблемой. Житаг он что при останове что на лету всеравно житаг.
объясните фишку - на лету-то зачем значения смотреть? )))
Golikov A.
Oct 15 2014, 05:04
ну есть у вас какой-то счетчик который как-то считает, и вас интересует что будет в его старших частях. Вы запускаете программу на работу и смотрите как счетчик тикает. Не надо каждый раз останавливаться и проверять значение, оно меняется сразу по ходу дела.
Это конечно такая функция... обычно переменные меняются так быстро что следить за ними в риал тайм трудно. Но можно придумать случай, когда хорошо так поглядеть не останавливая время от времени программу. Как поля меняет интерфейс работы с компьютером, например, то есть программа крутиться, вы команды шлете и смотрите все ли поля адекватно меняются, это удобнее чем ставить и снимать брек поинт.
Как вы сами понимаете это сделано просто тупым опросом. В кокосе переменные обновляются на каждой остановке (это подходит 99% людей), в кейле они сделали просто таймер внутри кейла, который запрашивает переменные периодически (интервал задается в настройках вроде бы). То есть это не технические ограничения, а просто в кокосе ребята не подумали что так может кому то понадобится и все. И нечего убиваться, нет такой функции вроде как и все...
Кстати в иаре был режим непрерывного запуска после брекпоинта. То есть программа доходила до брека, останавливалась, обновляла поля, и запускалась сразу же дальше. Нет ли чего подобного в кокосе, это решило бы данную проблему
ELEKTROS
Oct 15 2014, 05:04
smk, может и так только я ST-link использую

.
Aaron, а как по другому то софт отлаживать, объясните, если ПИД регулятор крутиться с частотой 50кГц и надо его настраивать в динамике например, а подключить SCI, CAN, USB нету возможности, да или просто не хочу писать софт на ПК для этой цели?
Тоже ST-Link V2. Так он от этого житагом быть не перестает.
Golikov A.
Oct 15 2014, 12:53
да о чем вы все?
значение переменных показывает не жетаг а среда. Среда запрашивает их значения и выводит на экран. Какая разница через что? Если сама среда не считает нужным их обновлять периодически, а только по остановке, вы к ней хоть золотой жетаг подключите не увидите переменных, хоть на коленях ползайте...
Цитата(Golikov A. @ Oct 15 2014, 15:53)

да о чем вы все?
значение переменных показывает не жетаг а среда. Среда запрашивает их значения и выводит на экран. Какая разница через что? Если сама среда не считает нужным их обновлять периодически, а только по остановке, вы к ней хоть золотой жетаг подключите не увидите переменных, хоть на коленях ползайте...
Так вот и вопрос в том как эту среду научить обновлять. Ну хоть раз в секунду. Много раз нужно было отследить работу программы в течение длительного времени. Если видишь изменения в значениях, которые вызывают интерес, то можно вбить новую переменную чтобы понять откуда изменения растут ну и т.п. Особенно актуально когда контроллер работает с аналоговой частью схемы (например меряет-вычисляет что-то по нескольким параметрам).
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.