---
layout: post
status: publish
published: true
title: Arduino 1.0 rc2 (+ patch)
author:
display_name: Siv
login: admin
email: alessandro.sivieri@gmail.com
url: https://launchpad.net/~scattino
author_login: admin
author_email: alessandro.sivieri@gmail.com
author_url: https://launchpad.net/~scattino
excerpt: 'E’ uscita da qualche settimana (un paio se non ho visto male) la seconda
release candidate di Arduino 1.0 (scaricabile da qui), ma per poter utilizzare il
layer di rete su Ubuntu 11.10 รจ necessario patchare il file w5100.h, che si trova
sotto /libraries/Ethernet/utility; alla riga 271 va modificata la seguente define:
static uint16_t read##name(SOCKET [...]
'
wordpress_id: 2805
wordpress_url: http://sivieri.wordpress.com/?p=2011
date: '2011-11-21 22:02:53 +0000'
date_gmt: '2011-11-21 21:02:53 +0000'
categories:
- PlanetPOuL
tags: []
comments: []
---
E’ uscita da qualche settimana (un paio se non ho visto male) la seconda release candidate di Arduino 1.0 (scaricabile da qui), ma per poter utilizzare il layer di rete su Ubuntu 11.10 è necessario patchare il file w5100.h, che si trova sotto /libraries/Ethernet/utility; alla riga 271 va modificata la seguente define:
static uint16_t read##name(SOCKET _s) { \
uint16_t res = readSn(_s, address); \
res = (res << 8) + readSn(_s, address + 1); \
return res; \
}
in questo modo:
static uint16_t read##name(SOCKET _s) { \
uint16_t res = readSn(_s, address); \
uint16_t res2 = readSn(_s, address+1); \
res = (res << 8); \
res2 = res2 & 0xFF; \
res = res | res2; \
return res; \
}
GCC-AVR in Oneiric, infatti, per qualche motivo (che non sto ad indagare) non digerisce l’altra definizione, e rende inutilizzabili i socket aperti (esperimenti con Wireshark infatti mostrano pacchetti malformati). Questa modifica peraltro vale anche per le versioni precedenti di Arduino, eccetto quelle pacchettizzate, che già includono la patch (ma chi usa Arduino pacchettizzato…).