Автор |
Съобщение |
Grubi
Ранг: Форумен бог
Регистриран на: Чет Мар 16, 2006 8:42 am Мнения: 10892 Местоположение: Гьотеборг
|
Хардуерен breakpoint / freeze
Задавам поредния глупав въпрос - има ли начин хардуерно да се спре изпълнението на текущата програма и всички портове да "замръзнат" в състоянието което са, и съоветно след това всичко да тръгне оттам където е спряло.
Без да използваме външен дебъгер и т.н. Примерно с обикнове PIC/Atmel, в краен случай ARM.
Може да развържа осцилатора/генератора?
В смисъл все едно имам някакъв глупав кръгов брояч с индикация, спирам такта и индикацията замръзва в съоветното състояние. Пускам такта и това продължава оттам откъдето е спряло.
|
Сря Апр 03, 2019 8:10 pm |
|
|
MYXATA
Ранг: Форумен бог
Регистриран на: Пон Юни 05, 2006 12:48 pm Мнения: 4393 Местоположение: където небето среща земята, ракията е Jameson, а бирата Guinness
|
Re: Хардуерен breakpoint / freeze
повечето цпу-та имат hibernate powerdown mode и може а се укаже data retention коя част ор рама да се пази повреме на хибернация - демек е горе долу каквото ти трябва.
_________________ ... ако трети ден не ти се работи... това означава, че е сряда !
|
Сря Апр 03, 2019 8:31 pm |
|
|
palavrov
Ранг: Форумен бог
Регистриран на: Вто Окт 11, 2011 10:53 pm Мнения: 4174 Местоположение: Brussels / Пловдив
|
Re: Хардуерен breakpoint / freeze
Първосигнално ми минава през акъла, че може и да може през JTAG интерфейса да се блокира процесора ... но ще трябва някой спец по темата да каже дали ще стане.
_________________ Мразя да мразя ...
|
Сря Апр 03, 2019 8:34 pm |
|
|
Grubi
Ранг: Форумен бог
Регистриран на: Чет Мар 16, 2006 8:42 am Мнения: 10892 Местоположение: Гьотеборг
|
Re: Хардуерен breakpoint / freeze
понеже ми трябва глупаво време закъснение - т.е. имам един канал включен за 1 сек., после включвам втори за 1 сек и първия го има и т.н., и после ги изключвам всичките заедно, се сещам че може би кръгов брояч ще е най-добре (дори без контролер) и ако му спра на това клока, то просто ще замръзне в състоянието което е.
|
Чет Апр 04, 2019 1:07 am |
|
|
ToHu
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 8:21 pm Мнения: 27949 Местоположение: София
|
Re: Хардуерен breakpoint / freeze
Най-глупавото, ако си с външен клока, за малки гадове, би трябвало да работи.
|
Чет Апр 04, 2019 3:02 am |
|
|
miro_atc
Ранг: Форумен бог
Регистриран на: Нед Фев 26, 2006 5:52 pm Мнения: 10356 Местоположение: Добрич
|
Re: Хардуерен breakpoint / freeze
Ако се правят още такива, може би някой ПИК... при почти всички нови вътре са няколко клок домейна и спирането/пускането на даден домейн не проста работа. Да не говорим, че почти винаги външните осцилатори/източници са със защита. Спрат ли, автоматично се превключва вътрешно RC и се генерира прекъсване. С JTAG/SWD/BDM става да се спира ядрото (каквото и да е то), както и определени други домейни (някои периферии може да спрат, докато трае дебъга, други да си бачкат). Някои емулатори (като тоя дето имам) имат копчета, които може да се програмират, да кажем - halt/continue. Но като цяло нещо не ми се вижда смислено.... Така като гледам проблемът си е софтуерен, по-добре някой да драсне няколко реда код, отколкото софтуерен проблем да се решава с хардуерни средства
|
Чет Апр 04, 2019 8:08 am |
|
|
ig_ivanov
Ранг: Напреднал
Регистриран на: Съб Май 21, 2016 8:47 pm Мнения: 472 Местоположение: Бургас
|
Re: Хардуерен breakpoint / freeze
На новите PIC16 не знам, но на по-старите (84, 877, 193х) в чаршафа им пише, че бачкат от DC до хх МХц. Пробвал съм на F84 с външен клок- като го спра и чипа замръзва и при възстановяне си продължава. Трябва само да се види разните вътрешни таймери откъде вземат сигнал, а при някои има и Fail-Safe Clock Monitor- трябва да се бръкнат и неговите настройки.
|
Чет Апр 04, 2019 8:53 am |
|
|
Grubi
Ранг: Форумен бог
Регистриран на: Чет Мар 16, 2006 8:42 am Мнения: 10892 Местоположение: Гьотеборг
|
Re: Хардуерен breakpoint / freeze
Добре, може и с външно прекъсване - т.е. натискаш бутона и то спира там където е. Пускаш го - и то продължава. Процесите ми са доволно бавни, за да има влияние времето за прекъсване. Може би грешно започнах, че хардуерно ще е по-лесно. Вероятно е било, но вече не
|
Чет Апр 04, 2019 9:43 am |
|
|
ToHu
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 8:21 pm Мнения: 27949 Местоположение: София
|
Re: Хардуерен breakpoint / freeze
На всички малки пикове би тябвало да става, има еидн източник на клок, по него се генерират няколк сигнла, Q1 -4 по които с еклати цялата история, няма динамични памети или нещо друго което да иска да го пасеш, наглеждаш. За новите не знам, старите могат без клок и нищо не става стоят си там където са били, може и клок по клок да ги караш. Та с някоя 16-ка е възможно, съвем друг въпрос е има ли смисъл
|
Пет Апр 05, 2019 3:10 am |
|
|
stoyanoff
Ранг: Форумен бог
Регистриран на: Чет Юни 25, 2009 12:01 pm Мнения: 2201
|
Re: Хардуерен breakpoint / freeze
Нещо не мога да ти схвана логиката! Защо ти е изобщпо да блокираш целия контролер? В общия случай ти имаш една програма, което си върти вътре и управлява изходите, както си ѝ дал! Избираш си един пин, даже за прости неща не ти трябва прекъсване. Казваш на контролера като се вдигне пина да започне да изпълнява основната програма, а като слезе в 0 - да спре. И толкова. Фрийзваш си програмно, каквото ти трябва и т.н. Това може с всеки контролер да стане и е въпрос на някоко реда код. Защо за Каспичан трябва да минаваш за по-пряко през луната?
_________________www.elkran.com
|
Съб Апр 06, 2019 11:24 am |
|
|
syscop
Ранг: Форумен бог
Регистриран на: Пет Юни 03, 2005 8:39 pm Мнения: 1954
|
Re: Хардуерен breakpoint / freeze
Май трябва се отдели особено внимание на първите думи...
_________________ Определянето стойността на дадена величина се нарича ИЗМЕРВАНЕ!
|
Съб Апр 06, 2019 11:59 am |
|
|
TheWizard
Ранг: Форумен бог
Регистриран на: Сря Апр 27, 2005 11:48 am Мнения: 4671
|
Re: Хардуерен breakpoint / freeze
глупав е щото не е обяснил какво точно иска да прави
софтуерни халтове за PIC
PIC32 __asm__ volatile (" sdbbp 0")
PIC24 __asm__ volatile (" .pword 0xDA4000");
PIC18 _asm TRAP _endasm
или __builtin_software_breakpoint()
на 90% от пиковете ако му спреш осцилатора генерира трап - Миро го е обяснил по горе...
_________________ main[-1u]={1};
|
Съб Апр 06, 2019 2:18 pm |
|
|
stoyanoff
Ранг: Форумен бог
Регистриран на: Чет Юни 25, 2009 12:01 pm Мнения: 2201
|
Re: Хардуерен breakpoint / freeze
Чакай малко! Ти да не правиш reverse engineering? Ако нямаш достъп до програмата не знам как можеш да го постигнеш! Както ти обясниха, ако опиташ да подаваш тактовите импулси по-бавно, ще се включи защита и ще премине на вътрешен осцилатор... А ресет-а ще ти ресетва контролер. Няма вариант там да зависне...
_________________www.elkran.com
|
Съб Апр 06, 2019 6:41 pm |
|
|
slav4o.com
Ранг: Форумен бог
Регистриран на: Нед Яну 01, 2012 7:04 pm Мнения: 2581 Местоположение: Велико Търново / София
|
Re: Хардуерен breakpoint / freeze
Е чак ривърс инджиниринг, на PIC Не, че сигналите не може с някакъв лог. анализатор или бърз осцилоскоп да се запишат.
|
Пон Апр 08, 2019 6:58 pm |
|
|
bongo_x2
Ранг: Форумен бог
Регистриран на: Вто Яну 20, 2009 10:54 pm Мнения: 11338 Местоположение: "Занзибар"
|
Re: Хардуерен breakpoint / freeze
Спомням си как на едни масови италЯнски "програматори" старателно бяха изшкурили надисите върху CMOS-ките - като че ли можеш да ги объркаш. Всеки луд с номера си.
|
Пон Апр 08, 2019 7:55 pm |
|
|