-
L’Arduino Uno R3 e’ una famosa scheda basata sul chip microcontroller ATMega328P. Abbiamo parlato di Arduino gia’ innumerevoli volte, ma qui vorrei concentrarmi sulle similitudini tra l’ATMega328p e il MOS6502. Il MOS6592 nato a fine anni ‘70 e’ stato il cuore del C/64 e dell’Apple ][, oltre che di altri innumerevoli console di videogiochi (incluso il Nintendo NES).
Gia’ molti hanno osservato che il MOS6502, con la sua architettura ortogonale a 8bit e una notevole velocità di picco di esecuzioni delle istruzioni era piu’ simile ad un microcontrollore che ad un processore per (micro)computer.
Il MOS6502 inoltre indirizzava con particolare efficacia i primi 256 byte di memoria, rendondoli di fatto altri 256 registri “virtuali”, benche’ un pelino piu’ lenti.
L’ATMega328p condivide molte delle caratteristiche del MOS6502, vediamole assieme.
Innanzitutto e’ un micro controllore a 8bit, con 32 registri base indirizzabili anche a word da 16 bit. E’ estremamente performante, e quasi tutte le istruzioni tra registri vengono eseguite in 1 ciclo di clock (es addizioni, sottrazioni). Le istruzioni che coinvolgo l’accesso alla memoria vengono eseguite mediamente in 2 cicli di clock (es Store e Load), esattamente come nel 6502 che pero’ non e’ cosi’ performante sulle operazioni aritmetiche ne’ e’ in grado di fare moltiplicazioni o divisioni.
Read More -
Arduino dispone di parecchi timer interni, che l'API pero' non valorizza adeguatamente. Per tale ragione si finisce sempre per leggere codice criptico basato sull'hacking dei registri ATMega, spesso con spiegazioni sommarie.
Scrivo questo articolo perche' sembra oramai impossibile trovare spiegazioni chiare e decenti su questo argomento, senza che siano zeppe di pubblicita', anche se qualche sito si salva.
Come sapete, su Gioorgi.com l'unica pubblicita' che vedrete sono i rari box dei prodotti Amazon, che pubblicizzo piu' che altro per fornirvi un 'servizio' che per guadagnarci qualche cosa con le relative commissioni, e i link ai mei pochi libri/prodotti.
Andiamo ad iniziare. -
A small update to Stereo Sid:
- Fix lack of LICENSE (merge from original Cyberernesto upstream)
- Fix library.properties and arduino lint pass, to be able to be included inside arduino library manager
- New professional CHANGELOG file
https://github.com/daitangio/sid-arduino-lib
Read More -
I am playing to Divinity: Original Sin II (D:OS2) which is the game done before Baldur’s Gate 3 (BG3) by Larian Studios
BG3 is a success despite its launch was anticipated in August to avoid head-to-head competition Starfield. If we compare the success of BG3 with CyberPunk2077 launch failure, I think we can learn something about software developing PLANNING.
Divinity games are a tactical game with a lot of freedom, you can take things, combine them, and solve quests with different approaches (brute forces, talks with different paths, etc). For instance you can try to open a door with a key, with a burglar kit, or bashing it until it is destroyed (more long but feasible).
Read More -
Con un annuncio su YouTube, commander X16 è ufficialmente in vendita, con il suo secondo batch in arrivo per il 2024.
Read More -
Sento continuamente il ministro Salvini (e non solo) parlare di come ‘ai suoi tempi’, ‘quando era giovane lui’, ‘quando c’era la naia’….era tutto meglio.
Read More -
Federico Crosta era il grande vecchio. In redazione lo conoscevano tutti. Era il vicedirettore da cosi’ tanto tempo che nessuno sapeva dirlo con precisione: cinquanta, sessant’anni?
Read More -
There is very handy feature of SpringBoot which is called Dev tools. Dev tools enable hot reloading of spring-boot- based application every time your IDE recompile the code.
Read More -
Context: Spring microservice application to be deployed on K8s via helm + boring Friday
In this scenario, you end up writing the SAME configuration string in a lot of places:
- On at least 2 application.properties (main and test)
- On the final, helm-generated application properties (or in the relevant environment variable if you use them in place (1))
- On the default K8s values.yaml used by helm. Possibly on other yaml file too, all documented a bit to be kindly with the K8s SRE.
- On the relevant Java code, as a @Value annotation to finally use that damn config.
Read More