Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

Хардуерен breakpoint / freeze
http://mcu-bg.com/mcu_site/viewtopic.php?f=2&t=16451
Страница 1 от 2

Автор:  Grubi [ Сря Апр 03, 2019 9:10 pm ]
Заглавие:  Хардуерен breakpoint / freeze

Задавам поредния глупав въпрос - има ли начин хардуерно да се спре
изпълнението на текущата програма и всички портове да "замръзнат" в състоянието
което са, и съоветно след това всичко да тръгне оттам където е спряло.

Без да използваме външен дебъгер и т.н. Примерно с обикнове PIC/Atmel, в краен случай ARM.

Може да развържа осцилатора/генератора?

В смисъл все едно имам някакъв глупав кръгов брояч с индикация, спирам такта и индикацията замръзва в съоветното състояние. Пускам такта и това продължава оттам откъдето е спряло.

Автор:  MYXATA [ Сря Апр 03, 2019 9:31 pm ]
Заглавие:  Re: Хардуерен breakpoint / freeze

повечето цпу-та имат hibernate powerdown mode и може а се укаже data retention коя част ор рама да се пази повреме на хибернация - демек е горе долу каквото ти трябва.

Автор:  palavrov [ Сря Апр 03, 2019 9:34 pm ]
Заглавие:  Re: Хардуерен breakpoint / freeze

Първосигнално ми минава през акъла, че може и да може през JTAG интерфейса да се блокира процесора ... но ще трябва някой спец по темата да каже дали ще стане.

Автор:  Grubi [ Чет Апр 04, 2019 2:07 am ]
Заглавие:  Re: Хардуерен breakpoint / freeze

понеже ми трябва глупаво време закъснение - т.е. имам един канал включен за 1 сек., после включвам втори за 1 сек и първия го има и т.н., и после ги изключвам всичките заедно, се сещам че може би кръгов брояч ще е най-добре (дори без контролер) и ако му спра на това клока, то просто ще замръзне в състоянието което е.

Автор:  ToHu [ Чет Апр 04, 2019 4:02 am ]
Заглавие:  Re: Хардуерен breakpoint / freeze

Най-глупавото, ако си с външен клока, за малки гадове, би трябвало да работи.

Автор:  miro_atc [ Чет Апр 04, 2019 9:08 am ]
Заглавие:  Re: Хардуерен breakpoint / freeze

ToHu написа:
Най-глупавото, ако си с външен клока, за малки гадове, би трябвало да работи.


Ако се правят още такива, може би някой ПИК... при почти всички нови вътре са няколко клок домейна и спирането/пускането на даден домейн не проста работа. Да не говорим, че почти винаги външните осцилатори/източници са със защита. Спрат ли, автоматично се превключва вътрешно RC и се генерира прекъсване.
С JTAG/SWD/BDM става да се спира ядрото (каквото и да е то), както и определени други домейни (някои периферии може да спрат, докато трае дебъга, други да си бачкат). Някои емулатори (като тоя дето имам) имат копчета, които може да се програмират, да кажем - halt/continue. Но като цяло нещо не ми се вижда смислено....
Така като гледам проблемът си е софтуерен, по-добре някой да драсне няколко реда код, отколкото софтуерен проблем да се решава с хардуерни средства ;-)

Автор:  ig_ivanov [ Чет Апр 04, 2019 9:53 am ]
Заглавие:  Re: Хардуерен breakpoint / freeze

На новите PIC16 не знам, но на по-старите (84, 877, 193х) в чаршафа им пише, че бачкат от DC до хх МХц. Пробвал съм на F84 с външен клок- като го спра и чипа замръзва и при възстановяне си продължава. Трябва само да се види разните вътрешни таймери откъде вземат сигнал, а при някои има и Fail-Safe Clock Monitor- трябва да се бръкнат и неговите настройки.

Автор:  Grubi [ Чет Апр 04, 2019 10:43 am ]
Заглавие:  Re: Хардуерен breakpoint / freeze

Добре, може и с външно прекъсване - т.е. натискаш бутона и то спира там където е.
Пускаш го - и то продължава. Процесите ми са доволно бавни, за да има влияние времето за прекъсване.

Може би грешно започнах, че хардуерно ще е по-лесно. Вероятно е било, но вече не :)

Автор:  ToHu [ Пет Апр 05, 2019 4:10 am ]
Заглавие:  Re: Хардуерен breakpoint / freeze

На всички малки пикове би тябвало да става, има еидн източник на клок, по него се генерират няколк сигнла, Q1 -4 по които с еклати цялата история, няма динамични памети или нещо друго което да иска да го пасеш, наглеждаш. За новите не знам, старите могат без клок и нищо не става стоят си там където са били, може и клок по клок да ги караш. Та с някоя 16-ка е възможно, съвем друг въпрос е има ли смисъл :)

Автор:  stoyanoff [ Съб Апр 06, 2019 12:24 pm ]
Заглавие:  Re: Хардуерен breakpoint / freeze

Нещо не мога да ти схвана логиката! Защо ти е изобщпо да блокираш целия контролер? В общия случай ти имаш една програма, което си върти вътре и управлява изходите, както си ѝ дал! Избираш си един пин, даже за прости неща не ти трябва прекъсване. Казваш на контролера като се вдигне пина да започне да изпълнява основната програма, а като слезе в 0 - да спре. И толкова. Фрийзваш си програмно, каквото ти трябва и т.н. Това може с всеки контролер да стане и е въпрос на някоко реда код. Защо за Каспичан трябва да минаваш за по-пряко през луната?

Автор:  syscop [ Съб Апр 06, 2019 12:59 pm ]
Заглавие:  Re: Хардуерен breakpoint / freeze

Grubi написа:
Задавам поредния глупав въпрос...

Май трябва се отдели особено внимание на първите думи... :)

Автор:  TheWizard [ Съб Апр 06, 2019 3:18 pm ]
Заглавие:  Re: Хардуерен breakpoint / freeze

глупав е щото не е обяснил какво точно иска да прави

софтуерни халтове за PIC

PIC32
__asm__ volatile (" sdbbp 0")

PIC24
__asm__ volatile (" .pword 0xDA4000");

PIC18
_asm TRAP _endasm

или
__builtin_software_breakpoint()

на 90% от пиковете ако му спреш осцилатора генерира трап - Миро го е обяснил по горе...

Автор:  stoyanoff [ Съб Апр 06, 2019 7:41 pm ]
Заглавие:  Re: Хардуерен breakpoint / freeze

Чакай малко! Ти да не правиш reverse engineering? Ако нямаш достъп до програмата не знам как можеш да го постигнеш! Както ти обясниха, ако опиташ да подаваш тактовите импулси по-бавно, ще се включи защита и ще премине на вътрешен осцилатор... А ресет-а ще ти ресетва контролер. Няма вариант там да зависне...

Автор:  slav4o.com [ Пон Апр 08, 2019 7:58 pm ]
Заглавие:  Re: Хардуерен breakpoint / freeze

Е чак ривърс инджиниринг, на PIC :roll:
Не, че сигналите не може с някакъв лог. анализатор или бърз осцилоскоп да се запишат.

Автор:  bongo_x2 [ Пон Апр 08, 2019 8:55 pm ]
Заглавие:  Re: Хардуерен breakpoint / freeze

Спомням си как на едни масови италЯнски "програматори" старателно бяха изшкурили надисите върху CMOS-ките - като че ли можеш да ги объркаш. Всеки луд с номера си.

Страница 1 от 2 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/