|
Виж темите без отговор | Виж активните теми
Дата и час: Пон Юли 27, 2026 9:59 pm
Е ли възможно PIC да изпълнява само по една инструкция?
| Автор |
Съобщение |
|
peast
Ранг: Минаващ
Регистриран на: Сря Юли 04, 2012 1:51 pm Мнения: 44 Местоположение: София
|
 Е ли възможно PIC да изпълнява само по една инструкция?
Бих искал да изясня дали е възможно да накарам PIC да работи, като се движи не от осцилатора, а от единични импулси, подавани на CLKIN, примерно чрез бутон. Целта ми е да вкарам контролера в режим TRACE. Ако това е реално, поучете ме по какъв начин да конфигурирам осцилатора.
_________________ Бай Цветан
|
| Сря Юли 04, 2012 7:07 pm |
|
 |
|
slav4o.com
Ранг: Форумен бог
Регистриран на: Нед Яну 01, 2012 8:04 pm Мнения: 2663 Местоположение: София / Велико Търново
|
 Re: Е ли възможно PIC да изпълнява само по една инструкция?
Aми с външен клок ExtClk и подаваш със бутон. Само че на ботона трябва да сложиш някакъв кондензатор или тригер на шмит за да не се получи както се пее в една песен на AC/DC "Flick of the switch"
|
| Сря Юли 04, 2012 9:39 pm |
|
 |
|
Dimitar
Ранг: Форумен бог
Регистриран на: Пет Ное 12, 2004 3:38 pm Мнения: 9103 Местоположение: Chicago, IL
|
 Re: Е ли възможно PIC да изпълнява само по една инструкция?
Не казваш за кой точно PIC става въпрос, но виж какво пише за PIC18F4555 - Operating frequency DC – 48 MHz. Демек теоретично би трябвало и на 0.1Hz да може да работи, пък ако ще и от бутон. Само имай предвид, че един импулс не значи един цикъл, нито пък инструкция, която се изпълнява за един цикъл значи, че ще се изпълни за един импулс. Има фази на извличане, декодиране, изпълнение и т.н. та сметката с импулсите ще е малко по-сложна от това "цък->инструкция, цък->инструкция"  .
|
| Сря Юли 04, 2012 10:21 pm |
|
 |
|
Цецо
Ранг: Форумен бог
Регистриран на: Пон Сеп 27, 2004 9:22 am Мнения: 15501 Местоположение: София
|
 Re: Е ли възможно PIC да изпълнява само по една инструкция?
По скоро ще е "цък, цък, цък, цък - инструкция". Е освен ако не планира да пусне PLL умножителя с бутон, което вече ще е тотално извращение  Във всеки случай и на мен ми е интересен такъв следствен експеримент - може ли да цъка до DC 
_________________ "Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.
|
| Сря Юли 04, 2012 10:36 pm |
|
 |
|
tgi
Ранг: Форумен бог
Регистриран на: Нед Юни 10, 2007 2:22 pm Мнения: 6492 Местоположение: София
|
 Re: Е ли възможно PIC да изпълнява само по една инструкция?
По-дребните чипове може и да могат, и то не всички. Вече не е като през 70-те, когато бяха динамични отвътре и никак не ставаше, ама пак току съм виждал разни минимални честоти та не е ясно кога на какви ефекти за какво разчитат. Ама контролери, които имат "стоп" режим със спрени клоци е доста вероятно да го могат все пак. Интересно извращение (не това с PLL-а, това си е перверзия без перспектива да се случи нещо интересно  ), ама с MCU няма да се види много. Аз имам май някъде някой-друг 6309 процесор - CMOS 6809, самият 6809 беше динамичен та не може - с такъв ще е по-забавно, предполагам  . Или с някое HC11, то нали може да се пусне и с външен бъс.
_________________------------------- www.tgi-sci.com------------------- http://www.flickr.com/photos/didi_tgi/
|
| Сря Юли 04, 2012 11:06 pm |
|
 |
|
peast
Ранг: Минаващ
Регистриран на: Сря Юли 04, 2012 1:51 pm Мнения: 44 Местоположение: София
|
 Re: Е ли възможно PIC да изпълнява само по една инструкция?
За моя изненада виждам мнения, че това може и да стане. Ще го опитам на PIC16F628A, ако нещо стане, ще се обадя и ще пусна нова тема - Ръчен дебъгер за всеки чип. Имам съмнения обаче...много...силни. Натискаш бутон - цък-цък-цък-цък - и гледаш светодиодчетата дали отговарят на асемблера... Може да му направя захранването с динамо от колело , със 7805. Името ще стане "Универсален ръчно-крачен дебъгер". Само не знам дали ще е лесно да караш колелото и да четеш кода. Ще видим
_________________ Бай Цветан
|
| Чет Юли 05, 2012 12:44 am |
|
 |
|
tgi
Ранг: Форумен бог
Регистриран на: Нед Юни 10, 2007 2:22 pm Мнения: 6492 Местоположение: София
|
 Re: Е ли възможно PIC да изпълнява само по една инструкция?
А, за дебъгер няма да стане. Което не значи, че в дадена отчаяна ситуация баш това няма да се окаже единствен начин човек да провери нещо, ама за дебъгер в дори малко по-общ смисъл няма да стане. Освен ако имаш достъп до адресите, данните и контролните сигнали на процесора, тогава става. То така са и правени преди сигурно немалко. Самите процесори имаха "halt" вход който спираше на края на текущата инструкция (без да му спираш клока, това беше и по времето, когато бяха динамични). Те вътре и сега го имат де, през разните BDM и т.н. как да го направят. С едното клокоцъкане ще падне голямо пуйчене коя инструкция колко цикъла беше и къде отиде сега  . Преди не ми се иска да броя колко години съм правил и по-откачени неща - нямах терминал за първата си процесорна платка и скалъпих едно нещо с 8 LED-a да вижда символ по символ какво излиза през ACIA-то... Че и да набера символ и да го пратя го бях докарал. Е, после си направих терминал  .
_________________------------------- www.tgi-sci.com------------------- http://www.flickr.com/photos/didi_tgi/
|
| Чет Юли 05, 2012 1:11 am |
|
 |
|
¶
Ранг: Форумен бог
Регистриран на: Пет Фев 25, 2005 1:58 pm Мнения: 4585 Местоположение: US
|
 Re: Е ли възможно PIC да изпълнява само по една инструкция?
Преди време някой постна линк на един руснак, разработил AVR емулатор за ARM, при което си стартира Linux върху AVR процесор. Можеш да преработиш кода за PIC и ще можеш да си качиш и да дебъгваш дори Linux  ( GDB, GCC и т.н. ) Един чех си беше направил вграден асемблер с елементарен текстов редактор за PIC16. Закачил си дисплейче с клавиатурка, въвежда си asm инструкците, програмката му в PIC16 интерпретира инструкциите и ги изпълнява постъпково Според мен вържи един мултивибратор към бутона да може с едно натискане на бутона да се генерират 4-ри импулса, а когато имаш call/goto трябва по 8. През 2001г. използвах тази възможност на Z80 за да трейсна програмата на едни австрийски покер машини  , потока от инструкции и данни ги вкарвах в 245 буфери и оттам на паралелния порт на ПК, оттам семпла програмка конвертираше hex числата до asm. След ден-два кьорене в asm/hex кода колегата свали алгоритъма на месене на числата. Тоз пич винаги ме е кефил, дотолкова беше закоравял с 8051, че ако му се налагаше да прави елементарни промени в програмите си директно отваряше hex файла и си дописваше каквото му трябваше.
_________________ Ето аз дишам, работя, живея и програми пиша тъй както умея, с проца под вежди се гледаме строго и боря се с него доколкото мога....
|
| Чет Юли 05, 2012 3:18 am |
|
 |
|
tgi
Ранг: Форумен бог
Регистриран на: Нед Юни 10, 2007 2:22 pm Мнения: 6492 Местоположение: София
|
 Re: Е ли възможно PIC да изпълнява само по една инструкция?
Аз това го можех само за 6800 (е оттам и отчасти за HC11 ама за него не съм го правил). За 6809 е подобно ама не става, доста е усложнено (поне аз никога не съм го могъл де, не ми се е налагало, имах асемблер  ). И сега - почти 30 години по-късно - бих могъл да направя доста по памет.
_________________------------------- www.tgi-sci.com------------------- http://www.flickr.com/photos/didi_tgi/
|
| Чет Юли 05, 2012 3:59 am |
|
 |
|
peast
Ранг: Минаващ
Регистриран на: Сря Юли 04, 2012 1:51 pm Мнения: 44 Местоположение: София
|
 Re: Е ли възможно PIC да изпълнява само по една инструкция?
Това за мултивибратора го имах предвид. Благодаря на всички за коментарите.
_________________ Бай Цветан
|
| Чет Юли 05, 2012 8:23 am |
|
 |
|
stoyanoff
Ранг: Форумен бог
Регистриран на: Чет Юни 25, 2009 1:01 pm Мнения: 2251
|
 Re: Е ли възможно PIC да изпълнява само по една инструкция?
Само да отбележа, че дори чипа да не може да работи на ниски честоти има вариант да го накараш да работи инструкция по инструкция. Прави се с две прекъсвания. От едното се влиза в другото и така инструкциите се изпълняват една по една и се избягва момента с това, че трябват няколко такта, за да се изпълни една инструкция. С бутона реално вдигаш прекъсването.
_________________www.elkran.com
|
| Чет Юли 05, 2012 6:10 pm |
|
 |
|
tgi
Ранг: Форумен бог
Регистриран на: Нед Юни 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 |
|
 |
|
woody
Ранг: Форумен бог
Регистриран на: Вто Юли 31, 2007 2:55 pm Мнения: 1792 Местоположение: София
|
 Re: Е ли възможно PIC да изпълнява само по една инструкция?
За 54xx тия постъпкови магарии през прекъсване не работят като цяло, заради незащитения конвейр. Получава се най-готиното за плашене на новобранци - постъпково като минаваш си "работи" и излизат желаните резултати, като го пуснеш обаче истински и ... евентуално нищо общо.  Та там единственото решение за постъпково е JTAG/ICE, за който може да си го позволи. И на всичкото отгоре това което трасираш е влизането на инструкциите в конвейра, а ефектите от тях си ги чакаш няколко клока след това - според учебника.
|
| Чет Юли 05, 2012 9:21 pm |
|
 |
|
tgi
Ранг: Форумен бог
Регистриран на: Нед Юни 10, 2007 2:22 pm Мнения: 6492 Местоположение: София
|
 Re: Е ли възможно PIC да изпълнява само по една инструкция?
О не, нямах подобен проблем. То прекъсването много пъти има сериализиращ ефект, не помня там как беше де. Във всеки случай не съм имал подобни ситуации, то постъпково като трасираш конвеерът ти е последната грижа, няма как да гониш скорости - а дебъг мониторът има грижата да не останеш прекаран нещо. Помня обаче как дни наред гоних нещо, оказа се бъг в силиция - май беше нещо свързано с модифициране на програмен сегмент дето "не фащаше", някаква подобна боза беше. Беше си документирано ама не в документите, дето аз имах в началото  .
_________________------------------- www.tgi-sci.com------------------- http://www.flickr.com/photos/didi_tgi/
|
| Чет Юли 05, 2012 9:38 pm |
|
 |
|
woody
Ранг: Форумен бог
Регистриран на: Вто Юли 31, 2007 2:55 pm Мнения: 1792 Местоположение: София
|
 Re: Е ли възможно PIC да изпълнява само по една инструкция?
Минал си метър, освен да почерпиш.  Точно че прекъсването сериализира, и всякакви конфликти по конвейра изчезват - т.е. можеш да си редиш инструкциите както душа иска, и проблеми няма да се виждат докато минаваш постъпково. Например следната последователност (дано не съм я объркал): Без NOP-а ще си минава постъпково, обаче в реално изпълнение цикълът ще се върти загадъчен брой пъти.
|
| Чет Юли 05, 2012 10:22 pm |
|
|
Кой е на линия |
Потребители разглеждащи този форум: 0 регистрирани и 15 госта |
|
Вие не можете да пускате нови теми Вие не можете да отговаряте на теми Вие не можете да променяте собственото си мнение Вие не можете да изтривате собствените си мнения Вие не можете да прикачвате файл
|
|