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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Симулятор
Cahes
сообщение Jan 25 2018, 13:27
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 34
Регистрация: 17-05-13
Пользователь №: 76 870



Начал изучение программирования STM32F103 с System Workbench + STM32CubeMX, и по обучающим материалам составил мнение - что каждый раз при экспериментах надо прошивать (читай - насиловать и изнашивать) микроконтроллер, что вообще не оправдано (кроме последнего случая). На предмет симуляции контроллера для данной системы (Eclipse) нашёл следующее: Программный симулятор микроконтроллеров ARM в Eclipse, с чего понятно - что по простачку симулировать можно из командной строки, если встраивать в систему - куча всего всякого, и в конце концов - получаем текст с содержимым регистров. - Так что-ли понимается симуляция у программистов? Я ожидал некое схематическое изображение светодиодов, аналоги вывода на дисплей, какие-то сообщения об частоте, выводе единиц на контакты, индикацию процессов в АЦП и т.п. Чёрт ногу сломит. Это обычное дело? Стоит остановиться на этом? Или есть нечто более удобное для новичка? Может в других системах?

Сообщение отредактировал Cahes - Jan 25 2018, 13:30
Go to the top of the page
 
+Quote Post
scifi
сообщение Jan 25 2018, 13:36
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(Cahes @ Jan 25 2018, 16:27) *
каждый раз при экспериментах надо прошивать (читай - насиловать и изнашивать) микроконтроллер, что вообще не оправдано

Что там изнашивать? 10000 циклов перезаписи флеш гарантируется. Вы поседеете раньше biggrin.gif

В Кейле симулятор вроде бы позволяет хоть что-то, похожее на реальную прошивку, отлаживать местами. Но вообще сами понимаете, условные лампочки у всех разные, на все случаи жизни можно разве что оставить пользователю возможность прикручивать к симулятору скрипты и рисовать свои лампочки самостоятельно. Возможно, там даже что-то такое есть, не интересовался.
Так что для новичка и не только проще всё-таки прошивать и отлаживать внутрисхемно.
Ещё есть такая штука, как модульное тестирование, но это вроде бы не для новичнов.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Jan 25 2018, 14:07
Сообщение #3


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Сам не видел, люди говорят, есть Proteus, он лампочки в процессоре симулирует.
Go to the top of the page
 
+Quote Post
Baser
сообщение Jan 25 2018, 14:27
Сообщение #4


Просто Che
*****

Группа: Свой
Сообщений: 1 567
Регистрация: 22-05-07
Из: ExUSSR
Пользователь №: 27 881



Цитата(Cahes @ Jan 25 2018, 15:27) *
Начал изучение программирования STM32F103 с System Workbench + STM32CubeMX, и по обучающим материалам составил мнение - что каждый раз при экспериментах надо прошивать (читай - насиловать и изнашивать) микроконтроллер, что вообще не оправдано ...

Купите себе плату NUCLEO-F103RB за 11 Евро, уже с встроенным программатором-дебаггером, и ни в чем себе не отказывайте в плане "насилия и изнашивания" микроконтроллера. Еще ни разу не встречал отказа флеша МК на отладочной плате из-за частой перепрошивки. Есть тестовые платы, которые я периодически "мучаю" по несколько раз в год оччень плотно, уже лет по десять, и ничего.

Цитата
Так что-ли понимается симуляция у программистов? Я ожидал некое схематическое изображение светодиодов, аналоги вывода на дисплей, какие-то сообщения об частоте, выводе единиц на контакты, индикацию процессов в АЦП и т.п.

Тоже слышал про Протеус, но только как "для начинающих" и "для обучения". Сам не видел и вряд ли ...

Программная симуляция больше подразумевает симуляцию работы ядра МК и ЧАСТИЧНО периферии.
Я в симуляторе отлаживаю только какие-то небольшие вычислительные алгоритмы.
Симулировать внешнюю обвязку своей платы - просто замучаетесь - хотя это в принципе возможно, но по трудоемкости огромно.
Поэтому это никто не делает, и все сейчас отлаживаются на целевой плате.
Go to the top of the page
 
+Quote Post
twix
сообщение Jan 25 2018, 15:10
Сообщение #5


Местный
***

Группа: Участник
Сообщений: 326
Регистрация: 4-11-15
Пользователь №: 89 174



Цитата(Cahes @ Jan 25 2018, 13:27) *
Начал изучение программирования ...

Вы неправильно расставляете приоритеты. Главное в деле работы с микроконтроллерами Ваше время. И оно улетает тоннами когда начинаете работать с процессорами.
Прямая работа с микропроцессором позволяет наступать на огромное количество ошибок и граблей только один раз. Как нашли решение, оно будет работать и дальше.
А вот симулятор мало того что плохо делает симуляцию периферии, не дает никакой гарантии работоспособности железа.
Хуже всего то, что очень часто тестирование программы, точнее время тестирования улетает в бесконечность.
Потому что Вы сделали тест, получили результат, поправили, сделали второй, поправили, и вот в третий раз вроде все должно работать и тут бац...
и процессор выдает результат который никак не относится к предыдущим тестам.
Поэтому работа с микропроцессроми это всегда борьба за время, борьба за то, чтобы время разработки софта или устройства из бесконечности
перевести в разумные сроки. Повторюсь время уходит тоннами, Вы не заметите как годы улетят на простые устройства.
В такой ситуации не жалко и тонны микропроцессоров, даже если придется их выбрасывать после 10 перепрошивок. А у них не 10, а десять тысяч.

Короче берите реальную плату и работайте с реальным железом. И да перепрошивается весь софт при изменении одной переменной.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Jan 25 2018, 16:07
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(Cahes @ Jan 25 2018, 15:27) *
Стоит остановиться на этом?

Не стоит. Как Вам тут уже неоднократно сказали. Тем более что STM32F103 - один из самых дешёвых, если работаете с отладочной платой - купите их несколько раз так боитесь изнасиловать wink.gif Если с реальным устройством - скорее новую плату переразведёте (для правки схемотехники) и всё равно там будет новый МК.
Ну или возьмите более мощный МК, где больше ОЗУ, и насилуйте его ОЗУ вашей программой сколько угодно. laughing.gif

Цитата(twix @ Jan 25 2018, 17:10) *
Короче берите реальную плату и работайте с реальным железом. И да перепрошивается весь софт при изменении одной переменной.

Да время - самое главное. Скорее даже поэтому, а не из-за экономии ресурса флеша, я стараюсь отлаживать ПО по возможности в ОЗУ, ибо перепрошивка флеша - это в разы медленнее.
Go to the top of the page
 
+Quote Post
DASM
сообщение Jan 25 2018, 16:44
Сообщение #7


Гуру
******

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



Эх молодежь пошла.. вот помню Z80 как центральный проц, ПЗУ с УФ стиранием.. прогу пишешь, потом стираешь ПЗУ под лампой ДРЛ 20 минут, потом шьешь его.. ресурс - 25 циклов. Новая стоит денег дохрена, брали в Автово.. вот это было программирование.. Пишешь конечно на ассемблере, а не на этих ваших новомодных Сях, на офигительном компе с 2.5 МГц тактовой и 48 кбайт ОЗУ с монитором из ЧБ телевизора.. А щас что.. чем ошибки в коде искать - проще залить и смотреть - пашет-не пашет ))) Всех на Колыму!! Потом at90s1200 появился и at89c2051 c флешем - такой оргазм был... !

Цитата(jcxz @ Jan 25 2018, 19:07) *
Не стоит. Как Вам тут уже неоднократно сказали. Тем более что STM32F103 - один из самых дешёвых, если работаете с отладочной платой - купите их несколько раз так боитесь изнасиловать wink.gif Если с реальным устройством - скорее новую плату переразведёте (для правки схемотехники) и всё равно там будет новый МК.
Ну или возьмите более мощный МК, где больше ОЗУ, и насилуйте его ОЗУ вашей программой сколько угодно. laughing.gif


Да время - самое главное. Скорее даже поэтому, а не из-за экономии ресурса флеша, я стараюсь отлаживать ПО по возможности в ОЗУ, ибо перепрошивка флеша - это в разы медленнее.

Вы прикалываетесь? Сколько этот ваш проц шьется? У меня 60 кил в EFR32 заливаются секунды 4.. Я в день на курению трачу времени больше, чем yf 900 рперепрошивок
Go to the top of the page
 
+Quote Post
jcxz
сообщение Jan 25 2018, 16:56
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(DASM @ Jan 25 2018, 18:44) *
Эх молодежь пошла.. вот помню Z80 как центральный проц, ПЗУ с УФ стиранием.. прогу пишешь, потом стираешь ПЗУ под лампой ДРЛ 20 минут, потом шьешь его.. ресурс - 25 циклов.

Вы прикалываетесь? Неужто так и стирали по 20 минут? А работали когда? Или просто надо было время на перекуры оправдать? smile3046.gif
Сам когда-то давно отлаживал ПО в устройствах на i8080 и хранивших его штатно в РФ-ах. РФ шил только тогда, когда надо было на стенд ставить или заказчику отправлять.
А для отладки были статические ОЗУ, по пинам совместимые с РФ. Их и ставили в колодки. Никто 20 минут на перешивку не ждал.
Да и для прошивок в РФ у меня их не одна штука была, а пачка. И если нужно - брал следующую из пачки. А потом всю пачку стирал.

Цитата(DASM @ Jan 25 2018, 18:44) *
Вы прикалываетесь? Сколько этот ваш проц шьется? У меня 60 кил в EFR32 заливаются секунды 4.. Я в день на курению трачу времени больше, чем yf 900 рперепрошивок

А я не курю. laughing.gif
Мой МК только один сектор и только стирает до 5.5сек + прошивка. И прошивка у меня гораздо больше 60 кил.
И сидеть ждать по 10 секунд (а то и больше) при каждом небольшом изменении ПО меня напрягает. И сбивает с рабочего ритма.
А в ОЗУ всё грузится за ~секунду.
Go to the top of the page
 
+Quote Post
DASM
сообщение Jan 25 2018, 17:17
Сообщение #9


Гуру
******

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



20 минут. ДРЛ-250 со снятой колбой.
Ну раз 10 секунд напрягает то звиняйте.. я над кодом думаю дольше значительно обычно, 10 секнду никак не напрягают
Go to the top of the page
 
+Quote Post
jcxz
сообщение Jan 25 2018, 17:23
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(DASM @ Jan 25 2018, 19:17) *
Ну раз 10 секунд напрягает то звиняйте.. я над кодом думаю дольше значительно обычно, 10 секнду никак не напрягают

Когда надо думать над кодом - это одно.
А когда разбираться с новым периферийным блоком МК, имеющим несколько десятков регистров да ещё очень плохо описанных - это совсем другое. И тогда приходится очень много раз перешивать МК.
Речь конечно не об STM32, где регистров в периферии - раз два и обчёлся....
Go to the top of the page
 
+Quote Post
DASM
сообщение Jan 25 2018, 17:24
Сообщение #11


Гуру
******

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



"STM32, где регистров в периферии - раз два и обчёлся...." я бы так не сказал... а в каком не обчелся тогда?
Go to the top of the page
 
+Quote Post
jcxz
сообщение Jan 25 2018, 17:25
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(DASM @ Jan 25 2018, 19:24) *
"STM32, где регистров в периферии - раз два и обчёлся...." я бы так не сказал... а в каком не обчелся тогда?

Infineon XMC4xxx например.
Go to the top of the page
 
+Quote Post
DASM
сообщение Jan 25 2018, 17:34
Сообщение #13


Гуру
******

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



По описанию их перифирии - тож самое. Странно тогда. Ну да ладно
Go to the top of the page
 
+Quote Post
jcxz
сообщение Jan 25 2018, 17:37
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(DASM @ Jan 25 2018, 19:34) *
По описанию их перифирии - тож самое. Странно тогда. Ну да ладно

Странно вы как-то описание читаете....
Например UART в STM32F4: 7 регистров, в каждом используется не более 16 бит.
Аналогичный последовательный порт (USIC) в XMC4700: регистров под 4 десятка, используются биты 0...31.
Разница в несколько раз это "тож самое" ?
Go to the top of the page
 
+Quote Post
twix
сообщение Jan 25 2018, 18:42
Сообщение #15


Местный
***

Группа: Участник
Сообщений: 326
Регистрация: 4-11-15
Пользователь №: 89 174



Цитата(DASM @ Jan 25 2018, 16:44) *
Эх молодежь пошла.. вот помню Z80 как центральный проц...

Что за бред. Я на них сколько игрушек адаптировал, вся работа на ассемблере в памяти. Берете картинку, убираете ее из игры, область памяти зачищаете, пишете туда свой код.
Там же отлаживаете. И когда все готово прошиваете ультрафиолетом. Ассмблер, компилятор, все как положено.
Помню точно, прошивка в ПЗУ это только финальный вариант, а так вся работа не поверите, в памяти и на магнитной ленте. Елы палы как вообще мы тогда работали....

Сообщение отредактировал twix - Jan 25 2018, 18:42
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 19th April 2024 - 21:02
Рейтинг@Mail.ru


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