Сб окт 13, 2018 14:25:02
Сб окт 13, 2018 14:28:25
Сб окт 13, 2018 14:41:00
Вс окт 14, 2018 18:51:37
Вт окт 16, 2018 22:05:50
Вт окт 16, 2018 22:40:59
Т. е. научившись кататься на мотоцикле, на велосипеде уже не смогут научится?vacvvm писал(а):Если дети поймут принцип, то перейти на более продвинутую технику смогут легко, а вот наоборот - уже нет.
Он вам надо? Конечно если возьмете тиньку с 1 КБ флеша и 64 байта ОЗУ, придется писать на асме, а если возьмете стмку, асм не нужен. Можно без напряга писать на ЯВУ.vacvvm писал(а):При том, что я ассемблером реально не владею
Сначала определитесь под что (МК) на чем (язык) и в чем (IDE) писать хотите.vacvvm писал(а):Поэтому начать придется с готовых несложных проектов с готовой прошивкой и пошаговым объяснением, как все это писалось, компилировалось и прошивалось, с разбором типичных ошибок.
Вт окт 16, 2018 23:52:30
Мурик
Сначала определитесь под что (МК) на чем (язык) и в чем (IDE) писать будете.
Ср окт 17, 2018 07:53:21
Т. е. научившись кататься на мотоцикле, на велосипеде уже не смогут научится?vacvvm писал(а):Если дети поймут принцип, то перейти на более продвинутую технику смогут легко, а вот наоборот - уже нет.
Ср окт 17, 2018 09:54:48
не фактМурик писал(а):если возьмете тиньку с 1 КБ флеша и 64 байта ОЗУ, придется писать на асме
не фактМурик писал(а):Поддержка аппаратной отладки будет как раз кстати
и при этом полностью изменяет взаимодействие с перифериейМурик писал(а):Но при этом используется аппаратный отладчик, который подключается к МК и полностью контролирует его работу
Ср окт 17, 2018 11:07:34
Факт.ARV писал(а):не факт
Нет. В зависимости от ситуации можно настроить поведение периферии при отладке. Например даже если МК остановлен отладчиком, USB продолжает работать и отсылает хосту NACK тем самым поддерживая связь. Т. е. USB можно вполне нормально отлаживать. С остальной периферией так же. Это относится к STM32. В МК других производителей все может быть по другому.ARV писал(а):и при этом полностью изменяет взаимодействие с периферией
Ср окт 17, 2018 11:31:30
сможете доказать?Мурик писал(а):Факт
то есть поведение ОСТАНОВЛЕННОГО микроконтроллера не соответствует истине. ШИМ тоже можно генерировать "по тактам счетчика"? практически вся периферия в любом МК при отладке ведет себя НЕ ТАК, как при обычной работе. то, что можно настроить что-то как-то, не меняет сути.Мурик писал(а):Например даже если МК остановлен отладчиком, USB продолжает работать и отсылает хосту NACK тем самым поддерживая связь
Ср окт 17, 2018 12:09:26
Сначала вы докажите обратное.ARV писал(а):сможете доказать?
Как раз соответствует. NACK сообщает компу что конечная точка не готова к приему или передаче и требуется повторить запрос позже, т. е. обмена по USB нет, но и соединение сохраняется. Пакеты данных предназначенные для МК находятся в очереди на отправку и как только конечные точки будут готовы к работе, комп их отправит в МК. Т. е. ничего не теряется и отладка не мешает работе USB.ARV писал(а):то есть поведение ОСТАНОВЛЕННОГО микроконтроллера не соответствует истине.
Зависит от настроек. Если периферии разрешено работать когда МК остановлен отладчиком, она будет работать.ARV писал(а):ШИМ тоже можно генерировать "по тактам счетчика"?
/**
* @brief Configures the specified peripheral and low power mode behavior
* when the MCU under Debug mode.
* @param DBGMCU_Periph: specifies the peripheral and low power mode.
* This parameter can be any combination of the following values:
* @arg DBGMCU_SLEEP: Keep debugger connection during SLEEP mode
* @arg DBGMCU_STOP: Keep debugger connection during STOP mode
* @arg DBGMCU_STANDBY: Keep debugger connection during STANDBY mode
* @arg DBGMCU_IWDG_STOP: Debug IWDG stopped when Core is halted
* @arg DBGMCU_WWDG_STOP: Debug WWDG stopped when Core is halted
* @arg DBGMCU_TIM1_STOP: TIM1 counter stopped when Core is halted
* @arg DBGMCU_TIM2_STOP: TIM2 counter stopped when Core is halted
* @arg DBGMCU_TIM3_STOP: TIM3 counter stopped when Core is halted
* @arg DBGMCU_TIM4_STOP: TIM4 counter stopped when Core is halted
* @arg DBGMCU_CAN1_STOP: Debug CAN2 stopped when Core is halted
* @arg DBGMCU_I2C1_SMBUS_TIMEOUT: I2C1 SMBUS timeout mode stopped when Core is halted
* @arg DBGMCU_I2C2_SMBUS_TIMEOUT: I2C2 SMBUS timeout mode stopped when Core is halted
* @arg DBGMCU_TIM5_STOP: TIM5 counter stopped when Core is halted
* @arg DBGMCU_TIM6_STOP: TIM6 counter stopped when Core is halted
* @arg DBGMCU_TIM7_STOP: TIM7 counter stopped when Core is halted
* @arg DBGMCU_TIM8_STOP: TIM8 counter stopped when Core is halted
* @arg DBGMCU_CAN2_STOP: Debug CAN2 stopped when Core is halted
* @arg DBGMCU_TIM15_STOP: TIM15 counter stopped when Core is halted
* @arg DBGMCU_TIM16_STOP: TIM16 counter stopped when Core is halted
* @arg DBGMCU_TIM17_STOP: TIM17 counter stopped when Core is halted
* @arg DBGMCU_TIM9_STOP: TIM9 counter stopped when Core is halted
* @arg DBGMCU_TIM10_STOP: TIM10 counter stopped when Core is halted
* @arg DBGMCU_TIM11_STOP: TIM11 counter stopped when Core is halted
* @arg DBGMCU_TIM12_STOP: TIM12 counter stopped when Core is halted
* @arg DBGMCU_TIM13_STOP: TIM13 counter stopped when Core is halted
* @arg DBGMCU_TIM14_STOP: TIM14 counter stopped when Core is halted
* @param NewState: new state of the specified peripheral in Debug mode.
* This parameter can be: ENABLE or DISABLE.
* @retval None
*/
void DBGMCU_Config(uint32_t DBGMCU_Periph, FunctionalState NewState)
{
/* Check the parameters */
assert_param(IS_DBGMCU_PERIPH(DBGMCU_Periph));
assert_param(IS_FUNCTIONAL_STATE(NewState));
if (NewState != DISABLE)
{
DBGMCU->CR |= DBGMCU_Periph;
}
else
{
DBGMCU->CR &= ~DBGMCU_Periph;
}
}
Ср окт 17, 2018 14:04:48
личный примерпрактический опыт для вас достаточное доказательство?Мурик писал(а):Сначала вы докажите обратное
то есть если у МК с USB отключить тактирование, именно так и будет вести себя программа? если поведение МК определяется тем, как вы настроили отклонения от нормы, это именно то, о чем я говорю.Мурик писал(а):Как раз соответствует.
Ср окт 17, 2018 14:33:33
Опыт является достаточным доказательством что отладчиком нужно пользоваться, т. к. он значительно облегчает разработку. Есть конечно нюансы, но это не повод отказываться от отладки.ARV писал(а):личный практический опыт для вас достаточное доказательство?
Зачем отключать тактирование? Или вы думаете что отладка это все равно что отключение тактирования? Судя по всему USB продолжает работать даже если МК остановлен отладчиком. Если конечная точка готова к приему или передаче, модуль USB примет/передаст хосту пакет, иначе отправит NACK.ARV писал(а):то есть если у МК с USB отключить тактирование, именно так и будет вести себя программа?
Не всегда нужно держать программу постоянно остановленной или пошагово выполнять. Бывает нужно остановить когда будет выполнена определенная строка кода или когда в переменой или регистре будет определенное значение. Т. е. при определенном условии. Пока условие не наступило, программа выполняется в штатном режиме. Иногда и вовсе не нужно останавливать программу. Достаточно наблюдать за значением нескольких переменных или регистров. Короче, все зависит от ситуации.ARV писал(а):конечно, мы говорим о состоянии приостановки программы для наблюдения за её состоянием.
Примерно тоже самое. Чтение отладчиком мало чем отличается от чтения программной с точки зрения железа МК.ARV писал(а):например, в AVR есть регистры, состояние которых меняется при чтении/записи других регистров. например, чтение регистра данных USART меняет флаги регистра состояния
Ср окт 17, 2018 14:50:56
речь шла об опыте написания программ на Си для attiny13 (64 байта ОЗУ и 1К flash).Мурик писал(а):Опыт является достаточным доказательством что отладчиком нужно пользоваться
я не думаю, у меня вполне богатый опыт "железной" отладки, так что я знаю, о чем говорю. с точки зрения программы под отладчиком в точке останова МК остановлен полностью. именно тот факт, что это не так, и позволяет мне утверждать то, с чем вы спорите. симулятор в этом плане гораздо адекватнее (если симулятор, конечно, сам по себе адеквтный)Мурик писал(а):Или вы думаете что отладка
именно поэтому я и сказал "не факт" на ваше утверждение, что аппаратная отладка поможет ребенку освоить программирование МК.Мурик писал(а):Короче, все зависит от ситуации
считаете, это на самом деле поможет ребенку лучше разобраться в том, как оно там копошится внутри?Мурик писал(а):Примерно тоже самое.
не факт "можно" не эквивалентно "нужно"Мурик писал(а):отладчиком нужно пользоваться
Ср окт 17, 2018 15:01:40
Ср окт 17, 2018 15:13:38
Такую мелочь не использую. Если говорить об AVR, то минимум Mega8, а еще лучше Mega328.ARV писал(а):речь шла об опыте написания программ на Си для attiny13 (64 байта ОЗУ и 1К flash).
Вы наверное имеете в виду процессорное ядро? Потому что периферия может продолжать работать дальше.ARV писал(а):с точки зрения программы под отладчиком в точке останова МК остановлен полностью.
Она поможет своими глазами увидеть как программа выполняется в МК, как при этом изменяется содержимое переменных, регистров и т. д. Как говорится, лучше один раз увидеть, чем сто раз услышать о якобы выполняющейся программы в такой-то последовательности.ARV писал(а):именно поэтому я и сказал "не факт" на ваше утверждение, что аппаратная отладка поможет ребенку освоить программирование МК.
За это отвечает USB драйвер. Он должен доставить посылку и если устройство сообщило что не готово принять, он произведет попытку позже.КРАМ писал(а):Вообще то ПО определяет повторяемость запросов.
Ср окт 17, 2018 15:16:42
Ср окт 17, 2018 15:22:15
да слышали, в курсе! сколько можно рекламировать?!Мурик писал(а):Стоимость МК с нормальной...
по-моему, я вполне конкретно оисал, что я имею ввиду. отладчик позволяет отладить ПРОГРАММУ, а в момент остановки ПРОГРАММА стоит, что с её точки зрения полностью эквивалентно отсутствию любой деятельности и "замороженному" состоянию всех регистров. если в это время что-то где-то продолжает работать, то это в данном контектсе нонсенс и не помогает, а осложняет ОТЛАДКУ ПРОГРАММЫ.Мурик писал(а):Вы наверное имеете в виду процессорное ядро?
все это ЕЩЕ ЛУЧШЕ поможет увидеть симулятор.Мурик писал(а):Она поможет своими глазами увидеть
Ср окт 17, 2018 15:38:17
И будет обнаружено неизвестное устройство. Если не отвечать в процессе работы, хост решит что устройство неактивно с соответствующим результатом с его стороны.КРАМ писал(а):От девайса не требуется никаких ответов. Только правильная подтяжка на линиях, что бы хост вообще видел подключение.
Не во всех случаях программу нужно останавливать. Она может выполняться под управлением отладчика с наблюдением за ее работой.ARV писал(а):в момент остановки ПРОГРАММА стоит, что с её точки зрения полностью эквивалентно отсутствию любой деятельности
Если в вашей практике такого не было, это не значит что это недопустимо.ARV писал(а):если в это время что-то где-то продолжает работать, то это в данном контектсе нонсенс
Так до резиновой женцины можно дойти. Ученики должны видеть весь процесс, что к МК подключен отладчик что выполняется программа, что при выполнении определенной строки начинает светить светодиод - реальный, а не виртуальный на экране компа.ARV писал(а):все это ЕЩЕ ЛУЧШЕ поможет увидеть симулятор.