<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel>
        <title>[MK4Duo + Marlin2] Nuovo compilatore Arduino di serie in IDE 1.8.10, dà problemi</title>
        <description> Nella nuova IDE c&#039;è di serie il pacchetto AVR 1.8.1 (che comunque vi verrà proposto come upgrade pure se tenete l&#039;IDE 1.8.9 che invece esce di serie con pacchetto AVR 1.6.22 mi pare).

Tale pacchetto contiene GCC 7.3.0  (prima era GCC 4.9.2 se con AVR 1.6.21 o GCC 5.4.0 se con AVR 1.6.22 e 23) ed i firmware per stampanti hanno problemi con esso.

Marlin 2.0 non compila neanche più (errori: non-constant condition for static assertion + reinterpret_cast from integer to pointer), mentre MK4Duo compila ma poi ha problemi di grafica corrotta sul GLCD.

Anche chiedere un downgrade a pacchetto AVR 1.6.23 non risolve perché poi fallisce (su MK4Duo) la fase di linking con errore:
lto1.exe: fatal error: bytecode stream generated with LTO version 6.0 instead of the expected 4.1
Ma questo deve essere un errore come quello qui descritto (ed un bug del downgrade fatto dall&#039;ide): [github.com]</description>
        <link>https://reprap.org/forum/read.php?361,860190,860190#msg-860190</link>
        <lastBuildDate>Wed, 13 May 2026 08:38:39 -0400</lastBuildDate>
        <generator>Phorum 5.2.23</generator>
        <item>
            <guid>https://reprap.org/forum/read.php?361,860190,862645#msg-862645</guid>
            <title>Re: [MK4Duo + Marlin2] Nuovo compilatore Arduino di serie in IDE 1.8.10, dà problemi</title>
            <link>https://reprap.org/forum/read.php?361,860190,862645#msg-862645</link>
            <description><![CDATA[ Grazie per la segnalazione.. Devo indagare... Se avete soluzioni o qualsiasi altro suggerimento postate cosi vedo e magari aggiusto se non dovessi trovare da solo la soluzione...<br />
<br />
Per quanto riguarda i warning, quello che ho suggerito, cioè di toglierli in fase di compilazione è per gli utenti, io invece ce li ho proprio per verificare se ci sono warning seri e di errore di programmazione, ma una volta verificati che sono solo avvertimenti inutili o che possono essere bypassati allora li tolgo per portare a termine la compilazione...]]></description>
            <dc:creator>MagoKimbra</dc:creator>
            <category>GCODE, Software e Firmware</category>
            <pubDate>Sun, 17 Nov 2019 15:08:41 -0500</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?361,860190,862641#msg-862641</guid>
            <title>Re: [MK4Duo + Marlin2] Nuovo compilatore Arduino di serie in IDE 1.8.10, dà problemi</title>
            <link>https://reprap.org/forum/read.php?361,860190,862641#msg-862641</link>
            <description><![CDATA[ Secondo me senza specifiche non c'erano Delay ma tanto si contava sul fatto che AVR era comunque abbastanza lento da non creare il problema.<br />
<br />
Su altre guide, questa volta per AVR, anni fa si indicava che se si avevano problemi di corruzione LCD bisognava decommentare il codice<br />
<pre class="bbcode">
//#define ST7920_DELAY_1 DELAY_0_NOP
//#define ST7920_DELAY_2 DELAY_0_NOP
//#define ST7920_DELAY_3 DELAY_0_NOP</pre>
che in realtà non è più presente nei config (e va scritto da zero) e sperimentare con i valori DELAY_0_NOP, DELAY_1_NOP, DELAY_2_NOP, DELAY_3_NOP, DELAY_4_NOP, finché si risolveva.<br />
<br />
Io non ho provato i valori in NOP e lasciato quelli in nanosec dei processori 32bit (dove alcuni consigliano 65ns, altri 125ns e alcuni pure 200ns).]]></description>
            <dc:creator>FabryR</dc:creator>
            <category>GCODE, Software e Firmware</category>
            <pubDate>Sun, 17 Nov 2019 13:55:57 -0500</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?361,860190,862630#msg-862630</guid>
            <title>Re: [MK4Duo + Marlin2] Nuovo compilatore Arduino di serie in IDE 1.8.10, dà problemi</title>
            <link>https://reprap.org/forum/read.php?361,860190,862630#msg-862630</link>
            <description><![CDATA[ Bisogna vedere come vengono eseguiti delay, se si usa il timer interno in teoria dovrebbero dipendere solo dalla velocità del processore, e in nessuna parte dal compilatore, se invece sono emulati via software, a questo punto dipende dall'emulazione se ad esempio erano calcolati a "manina" su un compilatore, non è mica detto che su un altra versione del compilatore, (diversa, anche più vecchia o più nuova), i timing siano identici.<br />
<br />
Per risolvere bisognerebbe identificare:<br />
<br />
- quale parte del codice calcola i delay, magari la libreria dell'LCD e vedere se facendo un "bug report"  allo sviluppatore si ottiene qualche lume.<br />
- se non sia possibile usare ad esempio in fase di init alcuni workaround:<br />
--  ai vecchi tempi avevo visto che alcune emulazioni seriali usavano un trucco in fase di inizializzazione, di impostare un timer fisico e calcolare quanti cicli venivano eseguiti di una istruzione ragionevole e calcolarsi in runtime il tempo necessario per ottenere un certo timing.<br />
-- altri modi potrebbero essere quello di impostare un timer interno ogni 100 ms ad esempio e poi impostare con un interrupt ogni tot e incrementare una variabile che poi viene letta periodicamente da tutte le parti del programma per avere una sincronizzazione precisa, un po' come le variabili di tempo di "rete", se io leggo che un certo messaggio è stato spedito 1234567890 secondi dopo una certa epoca e ora sono 1234567900 secondi vuol dire che è stato spedito 10 secondi fa.<br />
<br />
Solo qualche idea a riguardo.<br />
<br />
Saluti<br />
<br />
Carlo D.]]></description>
            <dc:creator>onekk</dc:creator>
            <category>GCODE, Software e Firmware</category>
            <pubDate>Sun, 17 Nov 2019 11:26:31 -0500</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?361,860190,862594#msg-862594</guid>
            <title>Re: [MK4Duo + Marlin2] Nuovo compilatore Arduino di serie in IDE 1.8.10, dà problemi</title>
            <link>https://reprap.org/forum/read.php?361,860190,862594#msg-862594</link>
            <description><![CDATA[ <blockquote class="bbcode"><div><small>Quote<br /></small><strong>FabryR</strong><br />
Gli errori per Marlin2 (ma anche Marlin1) sono esattamente questi:<br />
<br />
<b>reinterpret_cast from integer to pointer</b> sul frammento<br />
<pre class="bbcode">
#define digitalPinToPCICR(p)    ( WITHIN(p, 10, 15) || \
                                    WITHIN(p, 50, 53) || \
                                    WITHIN(p, 62, 69) ? &amp;PCICR : nullptr )</pre>
Non piace il <b>&amp;PCICR</b><br />
<br />
Poi c'è un altro frammento che il compilatore potrebbe segnalare con lo stesso errore (ma probabilmente si ferma al primo errore per tipo)<br />
<br />
<b>non-constant condition for static assertion</b> sul frammento<br />
<pre class="bbcode">
#if HAS_X_MAX
    #if (digitalPinToInterrupt(X_MAX_PIN) != NOT_AN_INTERRUPT)
      _ATTACH(X_MAX_PIN);
    #else
      static_assert(digitalPinToPCICR(X_MAX_PIN), "X_MAX_PIN is not interrupt-capable");
      pciSetup(X_MAX_PIN);
    #endif
  #endif</pre>
dice che il contenuto passato alla funzione static_assert non è costante e questo non è ammesso (forse in passato erano warning ora sono error).<br />
<br />
Di questi frammenti (il compilatore segnala solo il primo) ce ne sono decine (Min_Pin e Max_Pin per ogni asse, spesso asse doppio tipo X e X2 se non triplo più Z_Min_Probe) ed alcuni utenti per risolvere in passato si limitavano a commentare il blocco.<br />
<br />
Ora magari qualcuno (se glielo risegnalano ancora) lo sistemerà prima o poi.<br />
Però purtroppo esce solo a quelli che attivano gli IRQ per gli endstop, sennò passa inosservato il problema.</div></blockquote>
<br />
Questi errori sono stati corretti in Marlin a partire dal commit 35b1149d... del 30 Ottobre.<br />
<br />
Ora il firmware Marlin 2.0 compila correttamente con il nuovo compilatore GCC 7.3 (anche con gli EndStop Irq).<br />
<br />
Rimane però il problema della corruzione grafica.<br />
Per quello nessuno ha segnalato nulla relativo al nuovo Ide Arduino (mi sa che ormai molti lo compilano con Platformio) però ci sono errori simili se non identici su alcune CPU a 32 bit (in particolare LPC1768) ed il tutto sembra dovuto a problemi di Timings.<br />
Ho provato il workaround proposto anche su AVR 8bit + gcc 7.3 ed in effetti risolve il problema e lo schermo LCD 128x64 torna ad essere disegnato correttamente.<br />
<br />
Il workaround consiste nel mettere dei Delay aggiungendo sotto a <br />
<pre class="bbcode">
#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER</pre>
che trovate in Configuration.h in Marlin e Configuration_Overall.h in Mk4Duo, il codice <br />
<pre class="bbcode">
#define ST7920_DELAY_1 DELAY_NS(125) //these help keep the display from being weird
#define ST7920_DELAY_2 DELAY_NS(125)
#define ST7920_DELAY_3 DELAY_NS(125)</pre>
<b>I valori dei delay probabilmente non sono ottimizzati (altri utenti consigliano valori diversi sia più bassi che più alti o si limitano a specificare solo ST7920_DELAY_3) e sono pure quelli consigliati per un processore a 32 bit, in ogni caso funzionano sia su Marlin 2.0 che su Mk4Duo 4.3.9 e non ho perso tempo a provare altri valori.</b><br />
<br />
A questo punto suppongo che il nuovo GCC ottimizzi meglio certe parti di codice rendendole troppo veloci anche su AVR.<br />
<br />
In ogni caso adesso (beh già da un po' di tempo) il nuovo compilatore si può usare (se non verranno trovati altri problemi)!]]></description>
            <dc:creator>FabryR</dc:creator>
            <category>GCODE, Software e Firmware</category>
            <pubDate>Sat, 16 Nov 2019 13:24:30 -0500</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?361,860190,860325#msg-860325</guid>
            <title>Re: [MK4Duo + Marlin2] Nuovo compilatore Arduino di serie in IDE 1.8.10, dà problemi</title>
            <link>https://reprap.org/forum/read.php?361,860190,860325#msg-860325</link>
            <description><![CDATA[ Mago, hai ragione, però per gli errori segnalati presumo che un'occhiata ai casting dei tipi in generale farebbe bene, lo so che è un lavoro lungo e noioso, ma da programmatore a programmatore, va fatto prima o poi.<br />
<br />
Specie se vuoi passare a compilatori diversi da quelli che usi che magari sono più "pedanti" su errori di questo tipo.<br />
<br />
Il problema però rimane sempre la "genesi" del codice, cioè quando fatto "a molte mani" le scelte di style o sono lasciate ad un unico soggetto che "detta le regole" e revisiona ogni linea di codice oppure incappi spesso in questi errori.<br />
<br />
E' una rogna comunque, ma alcune cose si potrebbe fare con appositi programmi di refactorig di codice, in genere gli IDE hanno qualcosa di rudimentale nei "code check" "validate code" o nomi simili, e sono dei delli aiuti, anche se è scoraggiante vedere che ti segnalano 1000 errori di cui 500 perché non hai messo lo spazio dopo la virgola, o perché la riga è più lunga di 80 caratteri.<br />
<br />
A volte basta quello per evitare problemi grossolani e grattacapi a non finire per un casting eseguito "male" oppure per una divisione oppure un check di variabile = 0 quando poi il risultato è float che quello 0 può essere -0.000001 oppure 0.000001 è quell'uguaglianza non si verifica mai, in genere in quei casi è meglio mettere &lt; 0.9 e &gt;0.9 per 1 oppure forchette simili per altri check, ma a volte se non puoi salvare i dati in altri modi che in float questi artifizi ti emplificano la vita, io uso un parser di file INI in C# che ahime non ammette valori interi e boleani ma necessità di passare solo float, ovviamente cercando meglio magari avrei trovato una libreria migliore, ma tant'è devi convivere con quello che hai, o che ti puoi permettere (io in genere uso solo strumenti Open Source, per ovvi motivi di "costo").<br />
<br />
Ho appena finito di discutere su un forum dove il programmatore principale usa solo Windows, e raramente Linux, cosa che io uso regolarmente, un paio dei miei consigli li hanno fatto comodo, ma sai il punto di vista di due persone a volte permette di raggiungere una visione più "corretta" del problema, semplicemente perché "l'angolo di visione" diventa più ampio.<br />
<br />
Saluti<br />
<br />
Carlo D.]]></description>
            <dc:creator>onekk</dc:creator>
            <category>GCODE, Software e Firmware</category>
            <pubDate>Fri, 04 Oct 2019 07:11:12 -0400</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?361,860190,860301#msg-860301</guid>
            <title>Re: [MK4Duo + Marlin2] Nuovo compilatore Arduino di serie in IDE 1.8.10, dà problemi</title>
            <link>https://reprap.org/forum/read.php?361,860190,860301#msg-860301</link>
            <description><![CDATA[ Onekk tu hai ragione i warning sono solo degli avvertimenti che il compilatore ti da per segnalarti qualcosa che secondo lui non va... Ma sono a volte informazioni inutili che io conosco e che l'utente invece no e si spaventa.<br />
Faccio un esempio, creo una funzione<br />
<br />
void test(int var) { print var; }<br />
<br />
Questa funzione non viene usata mai nel software a meno che non si abilita un #define PROVA_COMANDO_M123 che userà quella funzione... Ecco che il warning mi avvisa che il void test non viene usato da nessuna parte e non lo compila. E per me va bene cosi in questo modo c'è sempre e lo uso solo quando mi serve.<br />
Tu mi dirai mettici un #ifdef PROVA_COMANDO_M123  prima del void cosi quando PROVA_COMANDO_M123  non è abilitato non compila il void, ma immaginiamo che io lo uso per decine di #define diversi dovrei metterci una serie infiniti di controlli tipo<br />
#if define PROVA_COMANDO_M123 || define PROVA_COMANDO_M456 || define PROVA_COMANDO_M789 per attivare il void test...<br />
Invece lo lascio li c'è ma non viene compilato e chissene frega del warning....]]></description>
            <dc:creator>MagoKimbra</dc:creator>
            <category>GCODE, Software e Firmware</category>
            <pubDate>Thu, 03 Oct 2019 14:50:12 -0400</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?361,860190,860276#msg-860276</guid>
            <title>Re: [MK4Duo + Marlin2] Nuovo compilatore Arduino di serie in IDE 1.8.10, dà problemi</title>
            <link>https://reprap.org/forum/read.php?361,860190,860276#msg-860276</link>
            <description><![CDATA[ Gli errori per Marlin2 (ma anche Marlin1) sono esattamente questi:<br />
<br />
<b>reinterpret_cast from integer to pointer</b> sul frammento<br />
<pre class="bbcode">
#define digitalPinToPCICR(p)    ( WITHIN(p, 10, 15) || \
                                    WITHIN(p, 50, 53) || \
                                    WITHIN(p, 62, 69) ? &amp;PCICR : nullptr )</pre>
Non piace il <b>&amp;PCICR</b><br />
<br />
Poi c'è un altro frammento che il compilatore potrebbe segnalare con lo stesso errore (ma probabilmente si ferma al primo errore per tipo)<br />
<br />
<b>non-constant condition for static assertion</b> sul frammento<br />
<pre class="bbcode">
#if HAS_X_MAX
    #if (digitalPinToInterrupt(X_MAX_PIN) != NOT_AN_INTERRUPT)
      _ATTACH(X_MAX_PIN);
    #else
      static_assert(digitalPinToPCICR(X_MAX_PIN), "X_MAX_PIN is not interrupt-capable");
      pciSetup(X_MAX_PIN);
    #endif
  #endif</pre>
dice che il contenuto passato alla funzione static_assert non è costante e questo non è ammesso (forse in passato erano warning ora sono error).<br />
<br />
Di questi frammenti (il compilatore segnala solo il primo) ce ne sono decine (Min_Pin e Max_Pin per ogni asse, spesso asse doppio tipo X e X2 se non triplo più Z_Min_Probe) ed alcuni utenti per risolvere in passato si limitavano a commentare il blocco.<br />
<br />
Ora magari qualcuno (se glielo risegnalano ancora) lo sistemerà prima o poi.<br />
Però purtroppo esce solo a quelli che attivano gli IRQ per gli endstop, sennò passa inosservato il problema.]]></description>
            <dc:creator>FabryR</dc:creator>
            <category>GCODE, Software e Firmware</category>
            <pubDate>Thu, 03 Oct 2019 08:31:56 -0400</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?361,860190,860270#msg-860270</guid>
            <title>Re: [MK4Duo + Marlin2] Nuovo compilatore Arduino di serie in IDE 1.8.10, dà problemi</title>
            <link>https://reprap.org/forum/read.php?361,860190,860270#msg-860270</link>
            <description><![CDATA[ Probabilmente gli errori del GCC sono delle cose più serie e legate alla compilazione del codice, o meglio alle conversioni implicite che vengono fatte tra tipi di dati, <br />
<br />
Una piccola ricerca mi porta a pensare che almeno il secondo errore sia legato al cast di un pointer da un formato di integer sbagliato.<br />
<br />
<pre class="bbcode">
Pointers are 16 bits wide but you are using a 32-bit value like a pointer. That's worth a warning because 16 bits will be lost.</pre>
<br />
Probabilmente con i vecchi compilatori questi emettevano solo dei warning (che in genere veniva detto a tutti di ignorare) che avvertivano che stavi facendo "cose strane" e che nelle future versioni del compilatore queste "cose strane" sarebbero diventati errori.<br />
<br />
MA i warning in genere sono messi perché si sta commettendo qualcosa di "sbagliato" o che può portare ad errori.<br />
<br />
Probabilmente nelle istruzioni che generano l'errore si sta assegando un numero ad un puntatore facendo magari "indirizzo locazione di memoria" del tipo int16 sommato ad un numero int32 ma il risultato può portare a degli indirizzi di memoria "non validi" o al peggio "maliziosi" per cui ad esempio se dai ad un puntatore di memoria un indirizzo int32 il compilatore non lo accetta più, magari prima lo troncava ai primi 16bit emettendo un warning.<br />
<br />
In soldoni sono la conseguenza di parti di codice che fanno "qualcosa di strano" tipo mutare i tipi in modo implicito e cose simili.<br />
<br />
Saluti<br />
<br />
Carlo D.]]></description>
            <dc:creator>onekk</dc:creator>
            <category>GCODE, Software e Firmware</category>
            <pubDate>Thu, 03 Oct 2019 07:49:27 -0400</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?361,860190,860231#msg-860231</guid>
            <title>Re: [MK4Duo + Marlin2] Nuovo compilatore Arduino di serie in IDE 1.8.10, dà problemi</title>
            <link>https://reprap.org/forum/read.php?361,860190,860231#msg-860231</link>
            <description><![CDATA[ Grazie... Pensavo fosse la nuova versione 4.4.0 che dava problemi alla grafica del display. Visto che però ci sto ancora lavorando l'avevo messa come cose da fare...<br />
Bisogna capire cosa hanno aggiunto o tolto per dargli problemi...]]></description>
            <dc:creator>MagoKimbra</dc:creator>
            <category>GCODE, Software e Firmware</category>
            <pubDate>Wed, 02 Oct 2019 14:32:06 -0400</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?361,860190,860205#msg-860205</guid>
            <title>Re: [MK4Duo + Marlin2] Nuovo compilatore Arduino di serie in IDE 1.8.10, dà problemi</title>
            <link>https://reprap.org/forum/read.php?361,860190,860205#msg-860205</link>
            <description><![CDATA[ Ok il problema di linking è dovuto al file  core_arduino_avr_mega_cpu_atmega2560_cca835c6296db4eb3f4b5500ec929c80.a che la compilazione di MK4 genera e che poi ricicla tra le varie build anche quando viene cambiato il compilatore.<br />
Risultato quando cambiate versione di GCC vi trovate in linking un file fatto da un compilatore diverso che non può essere usato.<br />
<br />
Basta cancellare quel file (sta nella cartella arduino_cache_numero6cifre che viene creata nella cartella temp, di solito roba tipo C:\Users\VsUtente\AppData\Local\Temp) per farlo rigenerare ed il downgrade (o l'upgrade) di compilatore poi è possibile.<br />
<br />
Rimane però il problema che il firmware MK4Duo generato con il nuovo compilatore 7.3.0 ha la grafica LCD corrotta (e chissà che altro, ovviamente non provato seriamente, anche se da seriale sembra funzionare OK nei pochi test di movimento fatti).<br />
<br />
Per Marlin rimane (anche con i sorgenti di oggi) il problema di compilazione.<br />
I due errori (cast a ptr da int senza dichiarare reinterpret_cast e static_assert usato con condizione non statica) sono nel file endstop_interrupts.h (dentro cartella HAL_AVR) e sono già stati segnalati anni fa più volte da chi aveva provato a compilare con GCC più recenti (ma mai corretti dato che con il GCC ufficiale funzionava).<br />
Forse ora che il GCC v7 è il default di Arduino 1.8.10 prima o poi proveranno a sistemare, anche se non ci conto molto perché il problema ce l'hanno solo quelli che usano ENDSTOP_INTERRUPTS_FEATURE.<br />
<br />
Disattivando gli IRQ per gli endstop, anche Marlin2 compila correttamente con il nuovo compilatore ed anche lui mostra grafica LCD corrotta<br />
<br />
<b>Quindi per ora bisogna rimanere al compilatore del package AVR 1.6.23, facendo downgrade (e cancellando le varie cache dentro le cartelle temp) se si installa IDE 1.8.10</b>]]></description>
            <dc:creator>FabryR</dc:creator>
            <category>GCODE, Software e Firmware</category>
            <pubDate>Wed, 02 Oct 2019 07:34:50 -0400</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?361,860190,860190#msg-860190</guid>
            <title>[MK4Duo + Marlin2] Nuovo compilatore Arduino di serie in IDE 1.8.10, dà problemi</title>
            <link>https://reprap.org/forum/read.php?361,860190,860190#msg-860190</link>
            <description><![CDATA[ Nella nuova IDE c'è di serie il pacchetto AVR 1.8.1 (che comunque vi verrà proposto come upgrade pure se tenete l'IDE 1.8.9 che invece esce di serie con pacchetto AVR 1.6.22 mi pare).<br />
<br />
Tale pacchetto contiene GCC 7.3.0  (prima era GCC 4.9.2 se con AVR 1.6.21 o GCC 5.4.0 se con AVR 1.6.22 e 23) ed i firmware per stampanti hanno problemi con esso.<br />
<br />
Marlin 2.0 non compila neanche più (errori: <i>non-constant condition for static assertion</i> + <i>reinterpret_cast from integer to pointer</i>), mentre MK4Duo compila ma poi ha problemi di grafica corrotta sul GLCD.<br />
<br />
Anche chiedere un downgrade a pacchetto AVR 1.6.23 non risolve perché poi fallisce (su MK4Duo) la fase di linking con errore:<br />
<i>lto1.exe: fatal error: bytecode stream generated with LTO version 6.0 instead of the expected 4.1</i><br />
Ma questo deve essere un errore come quello qui descritto (ed un bug del downgrade fatto dall'ide): [<a href="https://github.com/arduino/Arduino/issues/7973" target="_blank"  rel="nofollow">github.com</a>]]]></description>
            <dc:creator>FabryR</dc:creator>
            <category>GCODE, Software e Firmware</category>
            <pubDate>Tue, 01 Oct 2019 21:12:11 -0400</pubDate>
        </item>
    </channel>
</rss>
