Отговори на тема  [ 18 мнения ]  Отиди на страница 1, 2  Следваща
Е ли възможно PIC да изпълнява само по една инструкция? 
Автор Съобщение
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Сря Юли 04, 2012 1:51 pm
Мнения: 44
Местоположение: София
Мнение Е ли възможно PIC да изпълнява само по една инструкция?
Бих искал да изясня дали е възможно да накарам PIC да работи, като се движи не от осцилатора, а от единични импулси, подавани на CLKIN, примерно чрез бутон. Целта ми е да вкарам контролера в режим TRACE. Ако това е реално, поучете ме по какъв начин да конфигурирам осцилатора.

_________________
Бай Цветан


Сря Юли 04, 2012 7:07 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Яну 01, 2012 8:04 pm
Мнения: 2663
Местоположение: София / Велико Търново
Мнение Re: Е ли възможно PIC да изпълнява само по една инструкция?
Aми с външен клок ExtClk и подаваш със бутон. Само че на ботона трябва да сложиш някакъв кондензатор или тригер на шмит за да не се получи както се пее в една песен на AC/DC "Flick of the switch"

_________________
https://github.com/slav4ocom/


Сря Юли 04, 2012 9:39 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Ное 12, 2004 3:38 pm
Мнения: 9103
Местоположение: Chicago, IL
Мнение Re: Е ли възможно PIC да изпълнява само по една инструкция?
Не казваш за кой точно PIC става въпрос, но виж какво пише за PIC18F4555 - Operating frequency DC – 48 MHz. Демек теоретично би трябвало и на 0.1Hz да може да работи, пък ако ще и от бутон. Само имай предвид, че един импулс не значи един цикъл, нито пък инструкция, която се изпълнява за един цикъл значи, че ще се изпълни за един импулс. Има фази на извличане, декодиране, изпълнение и т.н. та сметката с импулсите ще е малко по-сложна от това "цък->инструкция, цък->инструкция" :D .


Сря Юли 04, 2012 10:21 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пон Сеп 27, 2004 9:22 am
Мнения: 15501
Местоположение: София
Мнение Re: Е ли възможно PIC да изпълнява само по една инструкция?
По скоро ще е "цък, цък, цък, цък - инструкция".

Е освен ако не планира да пусне PLL умножителя с бутон, което вече ще е тотално извращение :)

Във всеки случай и на мен ми е интересен такъв следствен експеримент - може ли да цъка до DC 8)

_________________
"Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.


Сря Юли 04, 2012 10:36 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Юни 10, 2007 2:22 pm
Мнения: 6492
Местоположение: София
Мнение Re: Е ли възможно PIC да изпълнява само по една инструкция?
По-дребните чипове може и да могат, и то не всички. Вече не е като през 70-те,
когато бяха динамични отвътре и никак не ставаше, ама пак току съм виждал разни
минимални честоти та не е ясно кога на какви ефекти за какво разчитат. Ама контролери,
които имат "стоп" режим със спрени клоци е доста вероятно да го могат все пак.

Интересно извращение (не това с PLL-а, това си е перверзия без перспектива да се
случи нещо интересно :D ), ама с MCU няма да се види много. Аз имам май някъде
някой-друг 6309 процесор - CMOS 6809, самият 6809 беше динамичен та не може - с такъв
ще е по-забавно, предполагам :D . Или с някое HC11, то нали може да се пусне и
с външен бъс.

_________________
-------------------
www.tgi-sci.com
-------------------
http://www.flickr.com/photos/didi_tgi/


Сря Юли 04, 2012 11:06 pm
Профил WWW
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Сря Юли 04, 2012 1:51 pm
Мнения: 44
Местоположение: София
Мнение Re: Е ли възможно PIC да изпълнява само по една инструкция?
За моя изненада виждам мнения, че това може и да стане. Ще го опитам на PIC16F628A, ако нещо стане, ще се обадя и ще пусна нова тема - Ръчен дебъгер за всеки чип. Имам съмнения обаче...много...силни.
Натискаш бутон - цък-цък-цък-цък - и гледаш светодиодчетата дали отговарят на асемблера... Може да му направя захранването с динамо от колело , със 7805. Името ще стане "Универсален ръчно-крачен дебъгер". Само не знам дали ще е лесно да караш колелото и да четеш кода. Ще видим

_________________
Бай Цветан


Чет Юли 05, 2012 12:44 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Юни 10, 2007 2:22 pm
Мнения: 6492
Местоположение: София
Мнение Re: Е ли възможно PIC да изпълнява само по една инструкция?
А, за дебъгер няма да стане. Което не значи, че в дадена отчаяна ситуация баш
това няма да се окаже единствен начин човек да провери нещо, ама за дебъгер
в дори малко по-общ смисъл няма да стане. Освен ако имаш достъп до адресите,
данните и контролните сигнали на процесора, тогава става. То така са и правени
преди сигурно немалко. Самите процесори имаха "halt" вход който спираше
на края на текущата инструкция (без да му спираш клока, това беше и по времето,
когато бяха динамични). Те вътре и сега го имат де, през разните BDM и т.н.
как да го направят.
С едното клокоцъкане ще падне голямо пуйчене коя инструкция колко цикъла
беше и къде отиде сега :D . Преди не ми се иска да броя колко години съм правил
и по-откачени неща - нямах терминал за първата си процесорна платка и скалъпих
едно нещо с 8 LED-a да вижда символ по символ какво излиза през ACIA-то...
Че и да набера символ и да го пратя го бях докарал. Е, после си направих
терминал :D .

_________________
-------------------
www.tgi-sci.com
-------------------
http://www.flickr.com/photos/didi_tgi/


Чет Юли 05, 2012 1:11 am
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Фев 25, 2005 1:58 pm
Мнения: 4585
Местоположение: US
Мнение Re: Е ли възможно PIC да изпълнява само по една инструкция?
Преди време някой постна линк на един руснак, разработил AVR емулатор за ARM, при което си стартира Linux върху AVR процесор. Можеш да преработиш кода за PIC и ще можеш да си качиш и да дебъгваш дори Linux 8) ( GDB, GCC и т.н. )

Един чех си беше направил вграден асемблер с елементарен текстов редактор за PIC16. Закачил си дисплейче с клавиатурка, въвежда си asm инструкците, програмката му в PIC16 интерпретира инструкциите и ги изпълнява постъпково 8)

Според мен вържи един мултивибратор към бутона да може с едно натискане на бутона да се генерират 4-ри импулса, а когато имаш call/goto трябва по 8.

tgi написа:
Самите процесори имаха "halt" вход който спираше
на края на текущата инструкция (без да му спираш клока, това беше и по времето,
когато бяха динамични).

През 2001г. използвах тази възможност на Z80 за да трейсна програмата на едни австрийски покер машини :-) , потока от инструкции и данни ги вкарвах в 245 буфери и оттам на паралелния порт на ПК, оттам семпла програмка конвертираше hex числата до asm. След ден-два кьорене в asm/hex кода колегата свали алгоритъма на месене на числата. Тоз пич винаги ме е кефил, дотолкова беше закоравял с 8051, че ако му се налагаше да прави елементарни промени в програмите си директно отваряше hex файла и си дописваше каквото му трябваше.

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


Чет Юли 05, 2012 3:18 am
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Юни 10, 2007 2:22 pm
Мнения: 6492
Местоположение: София
Мнение Re: Е ли възможно PIC да изпълнява само по една инструкция?
¶ написа:
...
Тоз пич винаги ме е кефил, дотолкова беше закоравял с 8051, че ако му се налагаше да прави елементарни промени в програмите си директно отваряше hex файла и си дописваше каквото му трябваше.


Аз това го можех само за 6800 (е оттам и отчасти за HC11 ама за него не съм го правил).
За 6809 е подобно ама не става, доста е усложнено (поне аз никога не съм го могъл де,
не ми се е налагало, имах асемблер :-) ). И сега - почти 30 години по-късно - бих могъл
да направя доста по памет.

_________________
-------------------
www.tgi-sci.com
-------------------
http://www.flickr.com/photos/didi_tgi/


Чет Юли 05, 2012 3:59 am
Профил WWW
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Сря Юли 04, 2012 1:51 pm
Мнения: 44
Местоположение: София
Мнение Re: Е ли възможно PIC да изпълнява само по една инструкция?
Това за мултивибратора го имах предвид. Благодаря на всички за коментарите.

_________________
Бай Цветан


Чет Юли 05, 2012 8:23 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Чет Юни 25, 2009 1:01 pm
Мнения: 2251
Мнение Re: Е ли възможно PIC да изпълнява само по една инструкция?
Само да отбележа, че дори чипа да не може да работи на ниски честоти има вариант да го накараш да работи инструкция по инструкция. Прави се с две прекъсвания. От едното се влиза в другото и така инструкциите се изпълняват една по една и се избягва момента с това, че трябват няколко такта, за да се изпълни една инструкция. С бутона реално вдигаш прекъсването.

_________________
www.elkran.com


Чет Юли 05, 2012 6:10 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Юни 10, 2007 2:22 pm
Мнения: 6492
Местоположение: София
Мнение Re: Е ли възможно PIC да изпълнява само по една инструкция?
Освен ако прекъсването е маскирано :) .

За това от 6800 насам (за мене, другите и те имат де) има NMI, немаскируемо
прекъсване. За да трасира човек стъпка по стъпка се пускаше един таймер
(някакъв, според системата) да изгенерира NMI след като процесорът е почнал
да изпълнява RTI (return from interrupt) и още малко, така че тамън да изпълни
една инструкция след като се върне от прекъсването (в user кода) и пак да
се нахендри на него - откъдето дебъг мониторът го поема, показва регистри и т.н.

А от 68000 насам, както и в power, си има T бит който прави цялата тая работа,
вкарва го в прекъсване след една инструкция.

В HC11 беше малко по-странно някак, че там имаше едно XIRQ с някакви особености
ама не ми пречеше, стана си пак както с NMI да си върша работата (е, тоя монитор
за 11 съм го писал преди 20-ина години, а тия за 6800 и 09 преди не ща да смятам
колко).

В 5420 DSP на TI пак го магерих някак с таймери и т.н., стана но не помня баш
какво правех, имаше ли маскируемо или го пусках за една инструкция непременно
отмаскиран, ама и то ми вършеше работа (леле и от това има над 10 години...).

_________________
-------------------
www.tgi-sci.com
-------------------
http://www.flickr.com/photos/didi_tgi/


Чет Юли 05, 2012 6:33 pm
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Вто Юли 31, 2007 2:55 pm
Мнения: 1792
Местоположение: София
Мнение Re: Е ли възможно PIC да изпълнява само по една инструкция?
tgi написа:
В 5420 DSP на TI пак го магерих някак с таймери и т.н., стана но не помня баш
какво правех, имаше ли маскируемо или го пусках за една инструкция непременно
отмаскиран, ама и то ми вършеше работа (леле и от това има над 10 години...).

За 54xx тия постъпкови магарии през прекъсване не работят като цяло, заради незащитения конвейр.
Получава се най-готиното за плашене на новобранци - постъпково като минаваш си "работи" и излизат желаните резултати, като го пуснеш обаче истински и ... евентуално нищо общо. :)

Та там единственото решение за постъпково е JTAG/ICE, за който може да си го позволи. И на всичкото отгоре това което трасираш е влизането на инструкциите в конвейра, а ефектите от тях си ги чакаш няколко клока след това - според учебника.


Чет Юли 05, 2012 9:21 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Юни 10, 2007 2:22 pm
Мнения: 6492
Местоположение: София
Мнение Re: Е ли възможно PIC да изпълнява само по една инструкция?
О не, нямах подобен проблем. То прекъсването много пъти има сериализиращ
ефект, не помня там как беше де. Във всеки случай не съм имал подобни
ситуации, то постъпково като трасираш конвеерът ти е последната грижа,
няма как да гониш скорости - а дебъг мониторът има грижата да не останеш
прекаран нещо.

Помня обаче как дни наред гоних нещо, оказа се бъг в силиция - май беше нещо
свързано с модифициране на програмен сегмент дето "не фащаше", някаква
подобна боза беше. Беше си документирано ама не в документите, дето аз
имах в началото :D .

_________________
-------------------
www.tgi-sci.com
-------------------
http://www.flickr.com/photos/didi_tgi/


Чет Юли 05, 2012 9:38 pm
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Вто Юли 31, 2007 2:55 pm
Мнения: 1792
Местоположение: София
Мнение Re: Е ли възможно PIC да изпълнява само по една инструкция?
Минал си метър, освен да почерпиш. :)

Точно че прекъсването сериализира, и всякакви конфликти по конвейра изчезват - т.е. можеш да си редиш инструкциите както душа иска, и проблеми няма да се виждат докато минаваш постъпково.

Например следната последователност (дано не съм я объркал):
Код:
STLM A, BRC
NOP
RPTB ...

Без NOP-а ще си минава постъпково, обаче в реално изпълнение цикълът ще се върти загадъчен брой пъти.


Чет Юли 05, 2012 10:22 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 18 мнения ]  Отиди на страница 1, 2  Следваща

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 15 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни