Archive for oktober, 2010

sista veckan i oktober

oktober 31, 2010

Det har varit en relativt lugn arbetsvecka…efter tisdagen i alla fall, då vi färdigställde den nya mjukvaran för den modifierade hårdvaran. Jag jobbade inte mest i mjukvarogruppen men det blev lite övertid ändå. Onsdag till fredag har jag arbetat med att sätta ihop ett förslag för hur vi ska använda grenar i vårat revisionshanteringssystem (subversion) och gjort ett gäng experiment-grenar för faktisk utvecklingskod. Jag har bland annat arbetat med att lägga in en uppsättning callback-funktioner. Det har varit väldigt intressant och nästan avslappnande.

På kvällarna har jag hållit på med Aikido Helsingborgs nya webb-plats. Den är baserad på drupal och jag måste säga att det var väldigt lätt att komma igång med ramverket. Jag har installerat moduler (bla wysiwyg-editor och datum-paketet) och skapat innehållstyper för att lägga till träningar i ett schema. Just nu slåss jag mot besynnerligheter i datumen, av någon anledning är alla tider förskjutna tre timmar. Efter datumen är fixade skall temat modifieras för att passa ordentligt och resterande information ska kopieras från den gamla hemsidan.

I helgen var det tänkt att det skulle vara Aikido-läger med Jorma Lyly men han fick tyvärr problem med ryggen under resan ner hit så en hel massa ledig tid dök upp. Jag har gjort väldigt lite, lite tråkiga hushålls-sysslor (ta ut återvinning och städa kylskåpet), uppdaterat mina debian-system, fixat så att både min Nintendo 8-bitars kontroll och min Nintendo 16-bitars kontroll fungerar till mitt media-system (nån som vill spela Snake rattle’n’roll eller Bubble Bobble?), fotat kyrkogården i mörkret och sett på den helt fantastiska filmen Ghost World.

Kyrkogården

Kyrkogård nattetid.

It’s amazingly smooth

oktober 25, 2010
Doctor Pepper Cherry

Att dricka Doctor Pepper Cherry var en sämre idé än väntat.

Jag har goda förhoppningar om Mountain Dew, alla amerikanska ungdomar på film dricker Mountain Dew. De kan väl inte ha fel? Väl?

Embedded Conference Scandinavia 2010

oktober 24, 2010

Tisdagen och onsdagen den 19,20/10 (det vill säga i tisdags och onsdags) gick Embedded Conference Scandinavia av stapeln på stockholmsmässan. Jag hade privilegiet att närvara, lyssna, lära, äta gratis mat och plocka på mig en och annan gratispryl.

Conference innebär i dessa kretsar en uppsättning seminarier av olika karaktär, allt ifrån verktyg för effektiv programmering för inbyggda system till framtidens lösningar för datacentra.

Nedan har jag sammanfattat det som jag tyckte var intressant från de seminarier jag deltog i. (Varning för Buzz-words och facktermer!)

Wireless Embedded on GSM/GPRS modules with RTOS, Petri Loumala, Peter Folkesson (COLMEO AB)
AT-kommandon gäller lika mycket nu som när jag var tonåring och spelade Quake över modem, skillnaden är att idag används de mest för att styra GSM-moduler. Vanligtvis används GSM-modulen tillsammans med en ARM-processor som gör själva applikationsarbetet. En modern GSM-modul innehåller en 100 MHz CPU, 4 MB Flash-minne och 1 MB RAM vilket lämnar mycket utrymme till att utföra arbete utöver att telefonera. Föreläsaren argumenterade för att utnyttja denna processorkraft istället för att ha en extern processor. Fördelarna är att systemet är testat och har standardverktyg tillgängliga. Det som talar emot är att dessa moduler arbetar med OS som varierar från modul till modul och detta kan göra att portabiliteten för applikationen minskar ifall den körs i modulen.

Crypto Key Lengths, when size matters, Joachim Strömbergson (Informasic)
”Krypto” är förenklat en metod för att transformera meddelande till något oläsligt men på ett sätt så att rätt mottagare kan reversera processen. Krypto används för Konfidentialitet, Integritet och Autenticitet (Confidentiality, Integrity, Authenticity – CIA modellen) även om de flesta bara tänker på Konfidentialitetsbiten. Krypto kan delas in i symmetrisk (mottagare och sändare byter en hemlig nyckel innan kommunikationen) och asymmetrisk krypto (en (publik) nyckel för att kryptera och en (privat) för att dekryptera). Asymmetrisk kryptering är generellt säkrare men mycket mer CPU och minnes-krävande (1000x symmetrisk). Kryptering i inbyggda system har ofta problem med prestanda och att ifall systemet knäcks är det svårt att uppgradera.
De största felen utvecklare gör är att välja för korta nyckellängder, lämna hårdvaran övervakningsbar (via t.ex JTAG) väljer egna propertiäära algoritmer istället för öppna verifierade varianter. Man bör också ta hänsyn till hur länge en nyckel skall användas (hinner man knäcka nyckeln medan den fortfarande är i bruk) och vem som skulle ha intresse av att hacka enheten i fråga (konkurrenter, hobby-hackers eller virusmakare).
Inom EU ger organisationen Ecrypt (II) rekommendationer om algoritmer som bör användas. För inbyggda system finns ett par implementationer som är välfungerande t.ex Grain och Trivium.

M2M – What is inside and why, Jacob Norrby (Prevas)
M2M (Machine to Machine) är apparater som är uppkopplade med andra apparater i ett nätverk där mätvärden överförs, bearbetas och sammanställs. Ett vanligt exempel är de moderna elmätarna som periodiskt rapporterar förbrukad el till en central dator.
M2M-tekniken har funnits i testanläggningar sedan tidigt 90-tal men har på senare år spridit sig allt snabbare i och med att uppkopplingsmöjligheterna ökat. Tekniken är inte knuten till något visst medie utan kan använda GSM eller ethernet lika gärna som långvågsradio.

Secure Networking: isolating multiple networks on a single node, Urban Sandertek (Green Hills Software)
Föreläsningen tog upp ”the separation kernel” (SK) ett system som bygger på mikro-kernel-konceptet, dvs. alla drivrutiner ses som normala applikationer. I SK-systemet separeras säkerhets nivåerna i samma maskin genom att ha en drivrutin och en TCP/IP-stack per säkerhetsnivå och på det viset skapas separerade nät. SK kräver en MMU för att kunna garantera att de olika drivrutinerna inte inkräktar på minne som ägs av en annan säkerhetsnivå. Detta åstakomms genom att lägga omappat minne mellan processerna, detta genererar då ett undantag ifall en process skulle skriva utanför slutet på sitt minnesområde. Mikro-kernel-strukturen gör koden så pass moduliserad att varje modul är överskådlig och kan individuellt verifieras och bevisas, och på detta sätt kan hela systemet bevisas.

Keynote: A view of software engineering and a way forward, Anders Caspár (Ericsson)
Ericsson har transformerats till ett företag där 80% av forskningsbudgeten går till mjukvaruforskning. Speciellt framtagen hårdvara byts mot kommersiell dito med specialiserad mjukvara. Mjukvaru-industrin är fortfarande i kraftig förändring och vi kan ännu inte slappna av utan måste utvecklas vidare. Vi måste bli mer produktiva/effektiva för att hänga med. detta kan göras på många olika sätt, t.ex utökade samarbeten med universitet, nya affärsmodeller, användande av öppen källkod, modellbaserade kodgeneratorer samt klassiska koncept som standardiserade gränssnitt.

Intel ATOM Tunnel creek, Robert Hanselius (Data Respons)
Intels utveckling av (kodnamn) Tunnel Creek CPUn tillsammans med Queensbay chipset har pågått ett tag och kommer snart att lanseras. Processorn är designad för en låg effektförbrukning samt för att ha goda möjligheter till viritualisering, den ska inte dra mer än 3.6 W vid 1.6 GHz.

Trends in the evolution of COM module formfactors, Patrik Björklund (Hectronic)
COM står för Computer on Module, vilket innebär ett litet kretskort med samtliga nödvändiga komponenter för att processorn skall kunna arbeta (RAM, nordbrygga etc.) samt gott om I/O-kontakter. Fördelen med dessa moduler är att eftersom de är väldigt integrerade går det snabbt att färdigställa ett projekt, de är lätta att skala (byta ut mot en liknande modul fast med t.ex mer ram), färre design risker, mindre kablage.
COM-korten finns i ett antal olika standarder, de som börjar vara aktuella idag är COM-express-standarden COM.0 som endast använder lågvolts-gränssnitt (SATA, Gbit Ethernet, etc.). Dessa kort har standardiserade värmelösningar, moduler som direkt på kortet eller att kortet monteras så det ligger emot chassi.
En annan aktuell standard är Q7 som är inriktad mot UMPC-applikationer. Det intressanta med denna standard är att CPU:n inte är låst till Intel utan det finns planer för att även kunna använda ARM-processorer.

Consumer Technology in Embedded Systems, Hans Christian Lønstad (Data Respons)
ARM håller på att komma ikapp Intel på CPU-marknaden, ett ARM-baserat system drar i regel inte mer än 2 W och prestandamässigt börjar ARM komma ikapp. I den nära framtiden kommer ARM-baserade servrar och det uppskattas att ca 50% av NetBook-datorerna kommer använda ARM.
Priset på ARM-processorer är mycket lägre än Intels eftersom ARM är en licensierad teknik med många tillverkare.
När man utvecklar ett ARM-baserat system bör man tänka på att komponenterna livscykel inte är längre än 3 år, SoC-system kräver mycket mjukvara eftersom, vissa av varianterna är reserverade för de stora företagen.
Dock finns en del fördelar som balanserar nackdelarna: liten formfaktor, låg effekt, billig, inga fläktar krävs.

Many Core programming models, a case for task-centric programming, Karl-Filip Faxén (SICS)
I framtiden kommer vi arbeta med mer avancerade processor-arkitekturer, med fler kärnor, mer skillnader mellan kärnorna, mer integrerade finesser.
De modeller som finns för parallellisering är egentligen oberoende av programmeringsspråk dock finns inte alla modeller implementerade för samtliga programmeringsspråk.
Task-parallell programmering är en slimmad parallellisering utan allt för mycket special-kommandon. Tasks är ”lätta” (dvs tar inte särskilt många CPU-cykler för att skapa och växla till/från) och synkronisering mellan tasks sker via att två tasks slås samman vid slutet av exekvering. Programstrukturen för detta blir väldigt likt sekventiell programmering.
Wool är ett bibliotek för task-parallell programmering för C skapat av SICS (Swedish Institute of Computer Science). Wool är relativt enkelt och effektivt och finns fritt tillgängligt under GPL för de som är intresserade av att testa.

Interprocess Communication with MCAPI, Collin Walls (Mentor Embedded)
MCAPI står för Multi Core API och är ett gränssnitt för kommunikation mellan processorkärnor med mål att vara kodkompatibel över olika OS. Idagsläget har API:t ett litet foot-print, hög prestanda och kan köras på OS i ett hypervisor eller i en bare-metal-lösning (CPU utan OS). MCAPI hanterar multipla datakanaler, datakanalerna bygger på något som kallas noder som kan vara en processor, OS eller accellerator). När man kommunicerar öppnas i dessa noder Endpoints som beter sig ungefär som Sockets. Standardimplementationen av MCAPI bygger på delat minne men den kan modifieras för vilken kommunikationskanal som helst.

Istället för ett riktigt inlägg

oktober 15, 2010

Istället för ett ordentligt inlägg med faktiskt innehåll erbjuder jag en kort statusuppdatering.

I omvänd kronologisk ordning:

Nu: på ett tåg på väg mot Stockholm. hastigheten är inte helt imponerande.

Igår: Go Cart med jobbet och middag. Tiden från beställning till mat var imponerande lång.

I söndags: Bröllop med dans. Vals, foxtrot och bugg slängde jag mig runt i. De som känner mig borde vara imponerade.

Lördags: Svensexa med trekamp middag och bad i havet. Jag höll mig vaken, vilket var imponerande.

Fredag: Front Line Assembly spelade på Kulturbolaget, spelningen var riktigt roligt och låtvalet var blandat med både låtar som kändes igen och sådana som var nya för mig. Deras nya platta kommer nog imponera på mig.

Långa dagar

oktober 6, 2010

I veckan har arbetsdagarna varit långa men resultatet har varit gott. Vi har bytt ett minne mot en annan liknande typ. jag skriver liknande kursivt eftersom ju mer man arbetade med minnena desto mer olika verkade dom. I slutändan var det i princip bara busstypen som var rätt. Jag kan inte säga att jag ogillar att behöva jobba över för att möta en deadline,det ger en viss skärpa och påtvingar koncentration men det är skönt att det fungerar nu och man kan slappna av lite. Deadlines kan vara olika hårda, denna var av slaget som skulle innebära produktionsstopp ifall vi inte blev klara i tid vilket innebär en hårdhetsgrad som inte är diamant men väl keramik.

Ikväll har jag som avslappningsövning försökt knyta min fluga. Det var mer frustrerande än avslappnande, men efter många försök var resultatet godtagbart ( även om jag inte hundra på att den blev helt rätt).

Något som liknar en fluga

Första försöket som såg ut ungefär som en fluga ska se ut, klicka för att förstora.