Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Forth, za one sa razlčitim rasporedom vijuga...
Reply
Evo i mene da se javim. Nisam stao sa Forth-om. Radim i dalje na njemu. Svakodnevne obveze i pokretanje vlastitog posla je sve nekako postavilo na čekanje, ali i dalje radim na njemu.

Samo ću napisati što sam proučavanjem doznao.

Forth i nije tako mrtav kao što se misli. Trenutno jako malo ljudi radi na njemu, ali zajednica je i dalje živa. 
Trenutno najbolji Forth “OS-ovi” za mikrokontrolere su po meni FlashForth i Mecrisp. Oba se razvijaju i dalje, od kojih je Mecrisp zajednica življa nego FlashForth.

Mecrisp \ ********************************************************************
Pisan za više mikrokontrolera, čitav popis je kad se skine Mecrisp-stellaris datoteka u kojoj se nalazi i source kod koji je namijenjen STM32 mikrokontrolerima.
Čisti Mecrisp je pisan za Texas Instruments MSP430 mikrokontrolere

Za početnike i napredne, neslužbena dokumentacija za Mecrisp-stellaris, autor je Terry Porter:
https://mecrisp-stellaris-folkdoc.sourceforge.io/

Sadržaj je poprilično velik i pun primjera, razrađeno je puno toga, ja ću navesti samo neke od primjera.

Za totalne početnike doslovna procedura na blue pill da se dobije funkcionalan Forth na blue pill:
https://mecrisp-stellaris-folkdoc.source...lue%20pill

Na linku iznad ima sve, direktno se može skinuti hex, pripremljeni programčići za učitati itd….

Koliko čitam, većina koristi Mecrisp za TI MSP430.


Terry-jeva demonstracija rada sa step motorom :

https://www.youtube.com/watch?v=0gGkwmRNnGA


Od mog zadnjeg posta ovdje, jedan programer je napisao SWDCOM koji dozvoljava upload datoteke, odnosno programa pri brzinama većim od ekvivalentno 460800 bauda! preko terminala koristeći jeftini SWD-USB. Može se naći na prvom linku ovog posta.


Jedan od Terry-jevih programa za pomoć pri razvoju je Svd2forth-v3. Pisan je prema CMSIS-SVD standardu u kojem svi registri imaju jednaka imena bez obzira na jezgru i registre (ako sam dobro pokopčao). Ukoliko ukucaš RCC_CR dobije se ispis svakog pojedinog bita sa njegovim nazivom.
Terry-jev program automatski imenuje registre.
Primjer ispisa je:
Code:
RCC_CR2 () $00006780
                                                          H H
                                                          S S H
                                                          I I S
                                                          1 1 I
                                                          4 4 1
                               |HSICAL         |HSI14    |D R 4
                               |7:6:5:4:3:2:1:0|TRIM     |I|D|O
                               |1|1|1|1|1|1|   |4:3:2:1:0|S|Y|N
~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|5|4|3|2|1|0|9|8|7|6|5|4|3|2|1|0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 1 1 0 0 0 0 0 0 0


Više o tome na linku ispod:
https://mecrisp-stellaris-folkdoc.source...th-v3.html


Ti njegovi programčići su za kompletno cijeli spektar Arm jezgri, dakle potrebno je prije toga zakomentirati registre “template” koje tvoj mikrokontroler ima kako bi ti ostalo što više mjesta za program. Na linku za totalne početnike se niti to ne mora.
Nakon toga se automatski generira file koji treba ubaciti umjesto jednog defaultnog. Probao sam nije komplicirano samo zahtijeva vremena. Ja neću pisati kompletnu proceduru, koga bude zanimalo morati će pročitati manual ili pitati mene pa ću pomoći.

Ako neko bude htio probati, bitno je da se programi učitavaju točnim redosljedom! Znači prvo 1b.fs pa memmap.fs......
Terry Porter radi u unixu pa malo je možda za win korisnike teže, ali meni na linuxu sve radi na prvu.

Osim te stranice postoje dva IRC kanala na kojem se vodi rasprava svaki dan. Na Mecrisp kanalu se može komunicirati izravno s Terry-jem itd….bude svaki dan hehe. Meni je IRC na serveru pa ako mi se netko i javi ostaje mi poruka.

Toliko o Mecrisp-u. Pišem ovo za one koji bi probali, a da ne lutaju okolo po internetu

Sve ostalo o Forth-u je napisano ranije
Reply
Da nastavim….

FlashForth \ ****************************************

Da se sad malo vratimo na FlashForth, radim na njemu 11 dana povremeno, uzeo sam jedini PLC  kojim upravlja Arduino Atmega2560, a to je i ujedno jedini PLC za koji znam da ima mikrokontroler u koji je moguće upisati Forth. U tih 11 dana, u potpunosti sam savladao upravljanje ulazima, izlazima, adc konverzija, stack manipulacija, for-next petlja (nije u standardima ali FF ih je preuzeo iz gforth), definiranje novih riječi, konstante, varijable.
Čitava logika se vodi oko stack-a koji nije potrebno pamtiti jer ga ionako ispisuje na terminalu.
U početku dok sam krenuo s Forthom teško mi je bilo pohvatati kako to sve funkcionira, ali kad sam prošao određeni broj sati rada na Forthu, kao kad stisneš prekidač najednom sve postaje jasno kako to sve funkcionira. Svaka komanda se izvršava odmah nakon poziva i/ili pritiska tipke enter. Logika čitanja riječi odnosno funkcija koje su navedene u wordsAll.txt i što ona radi je zapravo vrlo jednostavna.
Za razliku od C-jezika, ovdje moraš znati što koji registar radi i što je potrebno pripremiti da se željena operacija izvrši.
Ovo je prvi put da radim s Atmega serijom mikrokontrolera. I zapravo nije mi previše bitno koji je mikrokontroler (dok netko ne ukaže na drugačije), ovaj ima ono što mi trenutno treba.


Za one koje zanima ff, ima par trikova koje je potrebno znati. U folderu se nalazi shell programčić koji radi malo drugačije nego klasični serijski programi.
Prvi put je potrebno upisati hex na mikrokontroler, u mom slučaju je to bio 2560-16MHz-38400.hex. Može se to napraviti preko jeftinog usbasp.
Nakon toga u folderu se nalazi mapa “shell” koja u sebi ima ff-shell.py pisan u pyton-u.
Arduino Mega2560 komunicira preko usb-a, ali radi kao da je spojen preko serijskog porta. Nisam puno istraživao kako…
E sad jedna možda najbitnija stvar, jako bitno je skužiti kako podesiti 200ms pauzu nakon učitavanja linije koda. Dakle, kad želite poslati nekakav program upisan u nekoj datoteci npr. File.txt, treba svaki put da program pauzira 200ms nakon svake linije, jer nekad kompajler ne uspije završiti, a kompjuter šalje naredbe. Pa onda dobijete one upitnike “?”
Za razliku od Mecrispa, Flashforth radi na brzinama od 38400 baud-a. U interaktivnom načinu rada, ja nisam primjetio nikakvu razliku u brzini. To što će tekstualnu datoteku učitavati 20 sek mi ne smeta.

Za Flashforth postoji stranica sa primjerima, a uskoro i videima koji demonstriraju programčić:

https://arduino-forth.com treba odabrati engleski jezik

Jedan korisni link s organiziranim pregledom Forth naredbi, memorijske mape....itd :

https://flashforth.com/ff5-sheet.pdf

I naravno na početnoj stranici samog ff se nalaze sve bitne razlike od standardnog Forth-a. 


U sljedećem postu ću objaviti nešto o moćnom 8-jezgrenom mikrokontroleru koji ima već upisan Forth u ROM.
Reply
Što se tiče mikrokontorelra, na tržištu postoji vrlo moćan 8-jezgreni procesor 32-bit koji se može kupiti sa upisanim FORTH-om u ROM-u. Kaže mi tražilica da ga još nije nitko spominjao ovdje na forumu pa evo malo informacija o njemu.
To je Propeller Parallax ( P2 koliko razumijem druga generacija ) koji je dizajniran za robotiku. Ima ga u FPGA implementaciji. Svaka jezgra ima svoju memoriju i jednu zajedničku. Svaka jezgra ima pristup svim 64 I/O pinovima. Svaka radi svoj posao neovisno o drugim jezgrama

I sve to u 100 pin TQFP kućištu!


Više na linkovima, jer previše ima toga da sad kopiram ovdje:

https://www.parallax.com/propeller-2/?fb...jfpSwce8aU

https://www.parallax.com/product/propell...ller-chip/


Njegova jedinstvena arhitektura:
[Image: propeller-block-large.jpg]
Slika je od prve generacije, ima duplo manje izlaza, ali poanta je u funkcioniranju.
Tko želi može direktno pročitati na linku:

http://www.hughneve.com/parallax-propeller.html

Jedna od stvari je da su svi pinovi Smart I/O pins, pa onda u čemu je stvar kod ovog mikrokontrolera koji nema serijski port? 

Kvaka je u tome što postoje za njega već postojeće datoteke za ubaciti ono što vam treba. Npr, serijski port izabereš library i eto serijski port.
To znači da nema nepotrebnih komada hardwera u samom mikrokontroleru. Naravno da se ovo neće svima svidjeti, ali meni se ta ideja jako sviđa.

Svaka od jezgri ili kako ga kreator naziva "cogs" je sposobna generirati TV/VGA video!

Kako je Forth sam po sebi jedinstven i kako ne slijedi pravila, kao niti ovaj procesor...čini mi se da su ovdje tek bezgranične mogućnosti i sposobnosti da se izvrši neki zadatak.

Jedan od Forth programa je Tachyon Forth. Neke od postavki i sadržaja:
     Default baud rate je 921600 ! i ne treba nikakva pauza u slanju podataka ! 
     Clock 20Mhz
     Nije potreban niti programator da se ubaci Forth, boota se sa SD kartice ( Fat32 )
     VGA bitmap text i grafika
     Wiznet W5500 ethernet driveri uključujući Telnet, FTP, HTTP server
     TAQOZ single op instructions <100ns
Reply
Hvala ti na jako korisnim informacijama, kako za foth tako i za ovaj parallax propeller.
Zanimljiv mi je propeller koncept čak mi se čini da ima dosta sličnosti sa RPi Pico. Problem kod ovog Propeller PII je što trenutno možeš poručiti samo uzorke a i cena mu je previsoka (15$).
Reply
Ma nema na čemu @gorankg. Ta cijena je samo za mikronkontroler. Razvojna ploča je 150$
Reply
MyFFshell (google.com)
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)