Merci de info, mesterika, dar da-mi voie sa te contrazic cu "informatia stocata in procesor". Un lucru e sigur: in niciun document al procesorului sau al nucleului la care eu am avut acces nu apare notiunea de "memorie interna nevolatila" in oricare dintre traducerile ei am cauta (flash, rom, eeprom, nor, nand). Asta e procesor, nu microcontroller. Si eu am lucrat cu microcontrollere (pic16 si pic18) si e diferenta intre asta (procesor de sine statator, fara pic de memorie nevolatila) si microcontroller (care are ram, flash, etc.). Asta n-are nici ram, nici flash si tocmai de-asta sunt cele doua memorii externe, un RAM si un ROM. Probabil ca are niste fuzibili programati prin jtag, dar doar producatorul stie care-i rolul lor. Datasheet-ul flash-ului il am in fata. Este un S29GL064N, un flash de 64Mb, 16 biti, produs de Spansion. Pe asta, daca l-as scoate de pe placa, l-as putea programa separat. Asta i-au facut si lui burleanu: i-au scos memoria si au programat-o separat si tot in felul asta e si clipsul de care zici tu. Eu vreau sa-i dau aceste comenzi folosind pinii procesorului. Procesorul are din fabrica facilitatea de Boundary Scan (asta e una dintre facilitatile JTAG) si e obligatoriu sa functioneze in acelasi mod la toate dispozitivele compatibile IEEE 1149.1. Procesorul asta e compatibil cu standardul, astfel incat pot da comenzile de programare programand pinii procesorului in stari bine definite de catre mine. Asta e drumul pe care merg acum. Procesorul mai suporta si alte functii prin JTAG, insa acestea nu sunt documentate (STMicro a scris in datasheet ca restul instructiunilor in afara de Bypass, Extest si Sample/Preload nu sunt publice). Probabil ca cu ajutorul acelor instructiuni nepublice se poate programa mult mai usor flash-ul, dar daca n-avem acces la ele, mergem pe calea lunga. Iar calea lunga inseamna:
- programarea liniilor de adrese si date pentru memorie impreuna cu #WE, #WP, #CS, #OE, #Reset si #Byte
- punerea ceasului pe 1 cat timp liniile astea raman neschimbate
- coborarea ceasului pe 0
- si asa mai departe de 256 de mii de ori (flash-ul si procesorul pot comunica pe 16 biti, deci 512Kbytes de informatie inseamna 256k de "words").
Fiecare din liniile de mai sus inseamna incarcarea a 595 de biti in registrul BSR, cel la care am reusit sa am acces. Oricum, nu trec mai departe pana cand nu identific pozitia fiecarui pin de pe procesor in sirul asta lung de 595 de biti. Hai, nu chiar fiecare pin, ci numai vreo 40 de care am nevoie. Unii pini au un bit, altii 2 biti, altii 3 biti alocati in BSR. Nu le stiu ordinea si nici lungimea fiecaruia. Deocamdata m-am blocat la stadiul asta. In primul si in primul rand va trebui sa reusesc sa tin procesorul cu pinii intr-o stare stabila pentru o perioada de timp oricat de lunga vreau eu si asta n-am reusit pana acum cu A0, cel pe care am pus acul de seringa ce duce la sonda TLL. Adevarul e ca nici nu prea am timp, dar mai incerc printre picaturi.
Iar despre softuri JTAG existente, as vrea sa vad si eu gramada aia de softuri care merg pe procesorul STi7111 montat pe o placa de baza MB618 impreuna cu un flash S29GL064N... Aaa, ca exista o gramada de softuri care merg pe o alta gramada de placi, sunt de acord. Dar in cazul meu particular am nevoie de un soft care sa mearga pe ce am scris mai sus.
