Jūs esate neprisijungęs lankytojas. Norint dalyvauti diskusijose, būtina užsiregistruoti ir prisijungti prie forumo.
Prisijungę galėsite kurti naujas temas, atsakyti į kitų užduotus klausimus, balsuoti forumo apklausose.
Administracija pasilieka teisę pašalinti pasisakymus bei dalyvius,
kurie nesilaiko forumo taisyklių.
Pastebėjus nusižengimus, prašome pranešti.
Dabar yra 2025 05 02, 23:39. Visos datos yra GMT + 2 valandos.
Jūs negalite rašyti naujų pranešimų į šį forumą Jūs negalite atsakinėti į pranešimus šiame forume Jūs negalite redaguoti savo pranešimų šiame forume Jūs negalite ištrinti savo pranešimų šiame forume Jūs negalite dalyvauti apklausose šiame forume
Toks kietas Unixistas, o DEC EV7 pamirso...
Kad ir tas pats Z80 turejo duble register bank, kas leido pakankamai efektyviai tvarkytis su daznais pertraukimais (vien persijungiant tarp registru banku).
Tais laikais, kai teko UNIX "čiupinėti", jis dar vadinosi ЮНИКС (rusai vengė naudoti UNIX, nes tai keldavo komunistinę santvarką griaunančias aliuzijas - "уних есть операционная система, а что у нас?") ir sukosi ant procesoriaus, kurio pavadinimą dabar nebent užkietėję muziejininkai atsimena: СМ2620. Kuris, savo ruožtu, užėmė visą stalčių, spintų komplekse СМ1600
O apie DEC EV7 tik dabar sužinojau, bet kai paskaičiau internete, nieko keisto, tai buvo DEC "gulbės giesmė", nepadariusi rinkai jokios ženklesnės įtakos.
AlgisL rašo:
Kad ir tas pats Z80 turejo duble register bank, kas leido pakankamai efektyviai tvarkytis su daznais pertraukimais (vien persijungiant tarp registru banku).
Na va, dabar jau ir pats pripažįsti, kad visai neblogą preemtive multitasking galima ir ant vieno procesoriaus paleisti. Tik kritikai teigia, jog didžiausias Z80 trūkumas - protected memory nebuvimas. Pas Intel tai atsirado nuo 80286. Bet apie ką mes čia diskutuojam?
Skaitau paskaitą apie tai, ką ir pats internete gali rasti
As dar is tu neisdvesusiu dinozauru, kurie yra mate gyvai veikiancias kolektyvinio naudojimo skaiciavimo masinas "ant K155 serijos", kuriu HDD pakelti reikia minimum dvieju tokiu gerai atsertu dinozauru
Nu gal aš tų dinozaurų...
AlgisL ką siūlai...
Variantas su wait funkcija visai nepatraukus....
Wait, delejų turi nebut, nebent nuėjimas į pertaukimą užima daugiau nei reikia...
Grįžtant prie jtag projekto.
šiandien išėjo straipsniukas (rusų k.),gal sudomins temos autorių
http://we.easyelectronics.ru/teplofizik/cmsis-dap-na-stm32f4discovery.html
Komentarų dar nėra,bet turėtų užvirti diskusija...
Pridėtuose failuose duotas Hex, o source_uose kai kur yra nuorodos į šaltinius...
Toks įspūdis, kad 21 amžius, be jtago negali būti....
Ir vėl jo prireikė, teks užbaigti šį projektą...
Kaip visi žinot TAP kontroleris atrodo sekančiaiL
Kad pasivaikščioti po TAP reikia dviejų signalų, tai TMS ir TCK.
TAP tai 16 padėčių valdymo automatas.
Būseną Test-Logic-Reset, galima pasiekti keliais būdais...
Tai signalu TRST arba TMS =1 ir keli taktiniai signalai TCK 4 ar 5...
Jei bus ir daugiau TCK impulsų, nieko baisaus. Papuolęs į būseną Test-Logic-Reset, išeit iš jos gali tik su TMS=0;
Yra TAPe du registrai, ar būsenos tai Capture-IR, Capture-DR, pirmame komandos antrame duomenys..
Capture-IR po reseto gali rastis komanda IDCODE arba BYPASS, priklauso nuo įrenginio...
Kadangi Tape viskas veikia SPI principu, tai visą valdymą galimėtų padaryti mygtukų pagalba, tik be drebezgo....
Kadangi jau esam mokyti, tai mygtukais nedarysim...
Pirmiausia pradėsim nuo ID nuskaitymo, kaip tai padaryti?
Tarkim bus Atmega16, tai komanda nuskaityti ID bus IDCODE = 0001 bitais 1 jauniausia. Tai 0001 reikia įrašyti į Capture-IR... , jei pažiūrėsit į TAP diagramą, ten automato nesustabdysi, jis prašoks. Būsenoje Shift-IR sustoja, ji mums ir reikalinga.
Lyrinis nukrypimas:
Kadangi kojos TDI ir TDO turi tuos pačius vardus kaip debugeryje ir device, tai reikia pasitikrinti kuri in kuri out, visko gali būti...
TDI device yra inputas, tai iš Jtago pusės bus outputas.
Tai, kad nuskaityti ID reikia.
Patekti į Shift-IR būseną su TMS ir TCK pagalba, tada TDI ir TCK įrašot komandą, per TDO galit tuo pačiu metu skaityti kokia komanda buvo. Tik nepamiršti, kad paskutinis bitas įsirašo kartu su TMS signalu.
Ir tada einama į Shift-DR būseną, neužeinant į Test-Logic-Reset būseną, nes nuresetins. Shift-DR būsena išstums ID kodą į koją TDO, čia ir paskutinis bitas kartu su TMS signalu....
Pabandysiu papaišyti...
Lyrinis nukrypimas:
Esant būsenose Shift-IR ir Shift-DR stumdyti bitukus galit kiek norit. Shift-IR išeinant liks tik 3+1 paskutiniai. Kituose procesoriuose Capture-IR turi daugiau skilčių. Capture-DR skilčių kiekis priklauso nuo komandos...
Gal ir ne viską papaišiau, bet esmę tikriausia supratot...
Atmega16 bsdl failo pvz.
Kodas:
------------------------------------------------------------------------
-- A T M E L A V R M I C R O C O N T R O L L E R S --
------------------------------------------------------------------------
-- BSDL file
-- File Name: ATMEGA16.BSD
-- File Revision: 1.2
-- Date created: 2004-10-26
-- Created by: Atmel Corporation
-- Support: avr@atmel.com
--
-- Device: ATmega16
-- rev I
-- Package: 40 pin PDIP
-- 44 pin TQFP (default)
-- 44 pin MLF
--
-- Visit http://www.atmel.com for a updated list of BSDL files.
--
--
------------------------------------------------------------------------
-- Syntax and Semantics are checked against the IEEE 1149.1 standard. --
-- The logical functioning of the standard Boundary-Scan instructions --
-- and of the associated bypass, idcode and boundary-scan register --
-- described in this BSDL file has been verified against its related --
-- silicon by JTAG Technologies B.V. --
------------------------------------------------------------------------
--
-- Notes:
-- 1. The behavior of the Oscillator Boundary Scan cells are dependant
-- on the Oscillator Fuse settings, and are therefore described as
-- "internal".
-- 2. The Boundary Scan cells for controlling the analog features ADC,
-- Comparator and pin pull-ups are described as "internal".
-- Note that this feature is in addition to the (digital) cells on
-- each pin. For information on accessing the pull-up function of the
-- pins, please read the device data sheet.
--
entity ATmega16 is
generic (PHYSICAL_PIN_MAP : string := " TQFP ") ;
port (
RESET : in bit ;
VCC : linkage bit ;
VCC1 : linkage bit ;
VCC2 : linkage bit ;
GND : linkage bit ;
GND1 : linkage bit ;
GND2 : linkage bit ;
GND3 : linkage bit ;
XTAL1 : linkage bit ;
XTAL2 : linkage bit ;
PA : inout bit_vector(0 to 7) ;
PB : inout bit_vector(0 to 7) ;
PC0 : inout bit ;
PC1 : inout bit ;
TCK : in bit ;
TMS : in bit ;
TDO : out bit ;
TDI : in bit ;
PC6 : inout bit ;
PC7 : inout bit ;
PD : inout bit_vector(0 to 7) ;
AREF : linkage bit ;
AVCC : linkage bit
);
use STD_1149_1_1994.all ;
attribute COMPONENT_CONFORMANCE of ATmega16 : entity is
" STD_1149_1_1993 ";
attribute PIN_MAP of ATmega16 : entity is PHYSICAL_PIN_MAP ;
attribute TAP_SCAN_IN of TDI : signal is true ;
attribute TAP_SCAN_OUT of TDO : signal is true ;
attribute TAP_SCAN_MODE of TMS : signal is true ;
attribute TAP_SCAN_CLOCK of TCK : signal is (8.0e6, BOTH) ;
attribute INSTRUCTION_LENGTH of ATmega16 : entity is 4 ;
Kaip matot, čia gamintojo duotas failas. Ir ten sėdi tokios komandos, kaip private, jos gamintojo nepaaiškintos. Jei dar įvertinus, kad gal būti 16 komandų, o yra tik 9, kas po likusiomis paslėpta....
Tai pavyzdys kaip nereikia programuoti. Programavimo kalbos skirtos zmonems, o ne irenginio registrams. Nebent padarei kazkokia biblioteka bet nori apsunkint priesams gyvenima