GCCSDK 29 mei 2010 John Tytgat v1.02.

Slides:



Advertisements
Verwante presentaties
KINN 2010 •OOP •O Object •O Georiënteerd •P Programmeren.
Advertisements

Downloaden: Ad-aware. Downloaden bestaat uit 3 delen: •1. Zoeken naar de plek waar je het bestand kan vinden op het internet •2. Het nemen van een kopie.
UNILEVER BELGIUM Aandelenoptieplan.
Bepalen van een productstrategie ten aanzien van 64-bits computing ISV Community Day Schiphol-Rijk, Andreas de Ruiter Developer & Platform Group.
ADOBE PRESENTER Willem vanden Berg Dienst Onderwijsondersteuning en –ontwikkeling KaHo Sint-Lieven 1.
Workshop Nieuwe begroting
Mobiele telefonie in films
16-bit besturingssystemen enkel een grafische gebruikersinterface bovenop MS-DOS MS-DOS levert essentiële diensten zoals toegang tot de harde schijf.
Kennismaking met Ubuntu Linux
Inzet van docenten: planning, overzicht en kwaliteit
Gary Kildall ?. Pc met randapparatuur Computerprogramma’s.
Geschiedenis van DOS en Windows
Ronde (Sport & Spel) Quiz Night !
Arduino project.
Inleiding programmeren in C++ Life Science & Technology 19 januari Universiteit Leiden.
ICT Infrastructuur.
© BeSite B.V www.besite.nl Feit: In 2007 is 58% van de organisaties goed vindbaar op internet, terwijl in 2006 slechts 32% goed vindbaar.
Linux Workshop 1 Introductie. Geschiedenis  1969: UNIX  Simpel en elegant  Geschreven in C  Mogelijk om code opnieuw te gebruiken  1991: Linux 
Greenfoot Workshop Bobby - Snake.
Beoordelen van docenten loont de moeite!
Uitbouw expertisecentrum voor webgebaseerde testing pag. 1 Webbased testing wordt steeds belangrijker Nu werkt elke onderzoeker met eigen middelen: versnippering.
Mastercourse Klimaatverandering en Verwoestijning
Programma Open Standaarden en Open Source Software voor de Overheid dinsdag 6 april 2004 Open Source Software en Open Standaarden Standaards in samenwerking,
1 Minor Digital World. Social networking en lectoraat Digital World Social Networking: de digitale communicatiemiddelen via internet, met elkaar, met.
Vermelding onderdeel organisatie WO Sprint Kennissystemen bij IO en 3ME OC Focus – Lunchseminar 15 Gerald Wisse, Anton Heidweiller, Eric.
Richard J. Boucherie – Het antwoord of de vraag10 mei Het antwoord of de vraag.
Opleiding ICT © J.W. Jonker Dia 1/32 Systemen Besturingssoftware Windows XP Mark van Heck.
Visual Basic .NET voor studenten
INFORMATICA ACADEMIE >> Opleidingen ism VERA. INFORMATICA ACADEMIE Voor informatici... CNAP (cursus netwerkbeheerder) volgende sessie start in januari.
Onderwijsconferentie
Dia 1 Politiewerk in de Toekomst Kan technologie “ons” helpen om het veiliger te maken?
Hogeschool van Utrecht1 LEERPLAN V2GDSY3 Februari 2010 – August 2010
2009 Tevredenheidsenquête Resultaten Opleidingsinstellingen.
PLAYBOY Kalender 2006 Dit is wat mannen boeit!.
Oudere software op een nieuwe PC De andere manier is het gebruik van virtual p.c. Het gebruik van virtual pc heeft als voor/nadeel het standaard operatings-
Power PC Assembler. Assembler toolkit bevat Assembler zelf Linkerlibrarian.
Looking at Code Size and Performance Kevin Muys.  Hoe efficiënt is C++ vergeleken met C  Hoe beïnvloed C++ het benodigde geheugen  Oplossingen voor.
Operating Systems Informatica.
Deel XXI 1 Internetapplicaties Internetprogrammeren Capita Selecta.
Presentatie Stageplaats Roose Ben 7IC Inhoud -Bedrijf -Functie in het bedrijf -Stage activiteiten -Project/opdrachten bespreking : - Assemblage.
Open Standaarden in het onderwijs Holland Open Netwerk Borrel 19 december 2006 Jan Kees Meindersma
ECHT ONGELOOFLIJK. Lees alle getallen. langzaam en rij voor rij
2 januari 2009Nieuwjaarsreceptie "Meule wal straete" 1 Nieuwjaarsreceptie 2 januari 2009 Eerste bijeenkomst van de bewoners van de “Meule wal straete”
KINN 2010 OOP O Object O Georiënteerd P Programmeren.
Leerlingen ontwikkelen apps
Visual Basic.NET voor studenten De VB- ontwikkelomgeving Hoofdstuk 2.
De financiële functie: Integrale bedrijfsanalyse©
Samen-bouwen … over paneelbouw en de rest!
1 Zie ook identiteit.pdf willen denkenvoelen 5 Zie ook identiteit.pdf.
1 Nieuwe Staten Nieuwe begroting Wat & hoe. © PP in taal 2 Programma Aanleiding nieuwe begroting De SWBC en de geschiedenis van de cyclus Wat: de formats.
ZijActief Koningslust
BIOS en Opstarten.
Win XP alternatieven Nieuwe Laptop of PC Win 8 installeren op oude computer Tablet of i-pad Apple Macintosh Blijven werken met Win XP Linux.
Tto: de laatste ontwikkelingen
1 Introductie next MCT - Programmeren 2 © S. Walcarius Waarom java? programma machinetaal (.exe) compilen platformspecifiek Een exe programma.
1 XSLT processing & control Datamodellering 2006.
© imec 2000 © imec 2001 MAX+PLUS II Installatieprocedure.
Cegeka & TenForce Ronde tafel 17/06/2014 Doelstellingenmanagement VO.
VPEMSY1, D3ECPT2 : ARM Assembler 1 Hogeschool Utrecht / Electrical Engineering & Design 1  Herhaling: CMP, CMN,
Module 3 – Hoofdstuk 2 Systeemsoftware.
EMSE 20 oktober 2015 Verlichting, het Internet of Things en ARM mbed 3.0 Klaas de Waal.
C++ Les 1: introductie. Programmeren Programma’s scripts Websites libraries (Sound, GUI, netwerking…)
Virtualisatie 29 sept 2012 Een wegwerpcomputer met VirtualBox
Sylvia van Os Licentie: Creative Commons Attribution Share-Alike 4.0
Hoe te gebruiken 1 Verwijder de lijnen en tekst die u niet nodig hebt
Besturingssysteem.
Planning 2019 – 2020 (1/2) Dec Jan Feb Mar Apr Mei Jun Jul Aug Sep Oct
Transcript van de presentatie:

GCCSDK 29 mei John Tytgat v1.02

Wat ? Alles wat je nodig hebt qua tools om te programmeren in C/C++ voor RISC OS  ARM assembler, disassembler  C/C++ compiler (gcc, clang, lcc)  CMunge (nodig voor RISC OS modules te maken)  mkresfs (om RISC OS Resource:$ datablobs aan te maken)  Make (tool om sources te bouwen)

Wat ?  Gratis tegenhanger van Acorn C/C++ (en… meer & beter ?  )  Sources van alle tools zijn beschikbaar (Open Source)  Tools draaien op RISC OS zelf maar ook op niet RISC OS platformen

Geschiedenis  1990 ish : ports van Perl, Ada en GCC  April 1997 : port van GCC , Nick Burrett  Mid 1999 “The GCC for RISC OS initiative” (Steffen Huber)  24 Sep 1999 : GCC Pre-release 1  16 Nov 1999 : GCC Pre-release 2

Geschiedenis  5 Jan 2003 : GCC Release 3  18 Apr 2004 : GCC Pre-release 2  5 Oct 2004 : GCC Release 1  25 Dec 2004 : GCC Release 1  6 May 2005 : GCC Release 2  15 Feb 2006 : GCC Release 1  16 Jun 2006 : GCC Release 1

Geschiedenis  17 Sep 2006 : GCC Release 2  17 Jul 2007 : GCC Release 3  17 Nov 2007 : GCC Pre-release 1  23 Dec 2008 : GCC Release 1  27 Dec 2009 : GCC Release 2

Geheim wapen : UnixLib  Een “runtime library” zoals SharedCLibrary maar ‘meer’ dan dat alleen  Voorziet standaard C library functies (C90, C99), zo goed mogelijk POSIX compliant  Voorziet threading mogelijkheid  Kan automatisch vertalen tussen Unix en RISC OS file paden  Kan subprocessen opstarten

Geheim wapen : UnixLib Kortom: ideale basis library om te gebruiken bij RISC OS ports van Unix (gebaseerde) programma’s ! Geschiedenis:  Ontwikkeling gestart in 1989 voor NetHack (gereleased op 30 Oct 1990)  UnixLib 2.0 : Eerste officiele release was 18 Jan 1991.

Nieuw in GCC  GCC compiler : significante verbetering  Intermediaire object code en finale binary is ELF, en niet meer AOF / AIF  Elf2aif  Shared libraries

Hoe bouw je een compiler ?  Compiler = code transformator, b.v. van C naar ARM code  Een compiler die loopt op processor XYZ hoeft niet noodzakelijk code te produceren voor die processor XYZ Indien wel: “native compiler” Indien niet: “cross compiler”  Probleem: we hebben een platform waar geen compiler voor bestaat. Wat kan je doen ?

Hoe bouw je een compiler ?  Je hebt nodig : op platform XYZ een werkende C compiler die code produceert voor processor XYZ “C code” → “C platform XYZ met output XYZ” → “XYZ code”  Op platform XYZ: “C sources van C compiler + beschrijving van ARM processor” → “C platform XYZ met output XYZ” → “C platform XYZ die ARM output genereert”  We hebben nu een cross compiler gemaakt

Hoe bouw je een compiler ?  Op platform XYZ: “C sources van C compiler + beschrijving van ARM processor” → “C platform XYZ met output ARM” (= cross compiler) → “C platform ARM die ARM output genereert”  We hebben nu een native compiler gemaakt

GCCSDK : praktisch  Ofwel download je RISC OS native compiler en gebruik je die op RISC OS  Ofwel bouw je de cross compiler op een niet RISC OS platform naar keuze  Kies: Linux (Ubuntu), Cygwin (Windows), etc  Installeer Subversion en download GCCSDK  “./build-world”

GCCSDK : praktisch Hoe gebruik je de cross-compiler ?  Vanuit RISC OS inloggen via Nettle sources accesseren via Sunfish (NFS)  Installeer syslogd op RISC OS $ export THROWBACK_HOST=riscos_machine_naam $ arm-unknown-riscos-gcc -mthrowback -o file.o -c file.c

Autobuilder  Build systeem om ports te automatiseren en met minimale moeite te onderhouden  Gestart als "Unix Porting Project" door Peter Naulls  Maakte in 2005 mogelijk om de eerste Firefox port te doen (met verschillende updates nadien)  Meer dan 350 projecten/ports gedefinieerd maar een klein deel is recentelijk gebuild en gepubliceerd.  Enorm potentieel maar... onderbenut  Geinteresseerde vrijwillers om te helpen ?

GCCSDK successen  Autobuilder : Firefox & andere ports (cvs, Subversion, games,...)  RISC OS GCC compiler zelf (met alle tools hierrond)  PostScript 3 printer driver Nabije toekomst ?  Gebruik van de cross compiler voor ROOL

Toekomst  C++ & netwerk support voor SharedCLibrary programma's (incl modules)  Binutils 2.20 : full support voor NEON & VFP ARM instructies (Cortex A8)  GCC 4.5/4.6 port : support voor NEON & VFP  clang  Open Source compiler gebaseerd op LLVM  Vooral door Apple ontwikkeld (en gebruikt in Apple XCode, iPhone, iPad SDKs)  Moderne architectuur  Sneller, vrij goede code generatie, extreem gebruiksvriendelijke fout meldingen

Toekomst  Switch van APCS-32 naar EABI ?  Verdere ontwikkeling van remote debugger  Verdere ontwikkeling van asasm : ObjAsm syntax ARM assembler met AOF/ELF output, essentieel voor ROOL builds  Autobuilder gebruiken !

Konklusie Als je C/C++ programmeur bent:  Gebruik deze tools.  Laat je ervaring (goed & minder goed) weten op de mailing list en help/participeer mee in de ontwikkeling hiervan.  Overweeg om je programma's te ontwikkelen via cross compilatie (kan je veel tijd besparen).