 Overview › Requirements › Proof of Principal › Issues … › First Step – Wrap Altera NIOS2 GNU Tools › Next Step – Build RTEMS/NIOS GNU Tools › Future.

Slides:



Advertisements
Similar presentations
Configuration management
Advertisements

Configuration management
Program Development Tools The GNU (GNU’s Not Unix) Toolchain The GNU toolchain has played a vital role in the development of the Linux kernel, BSD, and.
Chapter 3 Loaders and Linkers
Seismic Octave Programming for Analog/Digital Converters Michael W. Siekman Electrical and Computer Engineering Senior Capstone Design Project 2007 Advisor:
Embedded Systems Programming Introduction to cross development techniques.
1 Web Server Administration Chapter 3 Installing the Server.
The Xilinx EDK Toolset: Xilinx Platform Studio (XPS) Building a base system platform.
1 Real-Time System Design Developing a Cross Compiler and libraries for a target system.
Embedded Real time System Design Introduction to the course.
Using FPGAs with Embedded Processors for Complete Hardware and Software Systems Jonah Weber May 2, 2006.
Software Development and Software Loading in Embedded Systems.
Embedded Systems Programming Introduction to the course.
Types of software. Sonam Dema..
1 THE ARCHITECTURE FOR THE DIGITAL WORLD TM THE ARCHITECTURE FOR THE DIGITAL WORLD Embedded Linux for ARM Architecture.
Introduction to The Linaro Toolchain Embedded Processors Training Multicore Software Applications Literature Number: SPRPXXX 1.
1 Introduction to Tool chains. 2 Tool chain for the Sitara Family (but it is true for other ARM based devices as well) A tool chain is a collection of.
Unit VI. Keil µVision3/4 IDE for 8051 Tool for embedded firmware development Steps for using keil.
Lab 3 Department of Computer Science and Information Engineering National Taiwan University Lab3 - Cross Tools 2014/10/7/ 20 1.
Linux Operations and Administration
Introduction Purpose This training course introduces the free GNU tools that can be used for debugging embedded system application software in the Renesas.
Input/Output Controller (IOC) Overview Andrew Johnson Computer Scientist, AES Controls Group.
Introduction Purpose This training course covers debugging an application on an SH target in the Renesas HEW (High-performance Embedded Workshop) development.
Trilinos 101: Getting Started with Trilinos November 7, :30-9:30 a.m. Mike Heroux Jim Willenbring.
Enabling the ARM Learning in INDIA ARM DEVELOPMENT TOOL SETUP.
RTEMS overview W. Eric Norum Introduction RTEMS is a tool designed specifically for real-time embedded systems The RTEMS product is an executive.
 To explain the importance of software configuration management (CM)  To describe key CM activities namely CM planning, change management, version management.
ICS – Software Engineering Group 1 Cross Compiling vxWorks on Linux EPICS Collaboration Meeting l May 2002 at BESSY, Germany May 2002 at BESSY,
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 29 Slide 1 Configuration management.
BLU-ICE and the Distributed Control System Constraints for Software Development Strategies Timothy M. McPhillips Stanford Synchrotron Radiation Laboratory.
Xenomai’s Porting on processor NIOS II Professor : P. Kadionik Authors : Bassi Vincent Louati Azza Mirault Raphael Polette Simon.
Status: EPICS on Xilinx FGPAs Peter Zumbruch GSI.
Cross-Compiler Issues EPICS Meeting, May 2001 Markus Janousch (SLS)
Running EPICS on NI CompactRIO Initial Experience Eric Björklund (LA-UR )
Chapter 14 Part II: Architectural Adaptation BY: AARON MCKAY.
Chapter 1 : The Linux System Part 1 Lecture 1 10/21/
How to configure, build and install Trilinos November 2, :30-9:30 a.m. Jim Willenbring Mike Phenow.
@ For more details visit : Opportunities for participation Modular Architecture Trace JIT compiler Interpreter Memory manager.
NIOS II Ethernet Communication Final Presentation
1 / 22 AliRoot and AliEn Build Integration and Testing System.
Porting Linux Linux onto the Puppeteer SA1110. The Puppeteer board –SA1110 CPU –SMSC LAN91C96I ethernet –8 Mb Flash Intel 28F320C3 Boot block flash –32.
Presentation Name / 1 Visual C++ Builds and External Dependencies NAME.
SONIC-3: Creating Large Scale Installations & Deployments Andrew S. Neumann Principal Engineer Progress Sonic.
Dissecting the Windows CE Build Process James Y. Wilson Principal Engineer, Windows Embedded MVP CalAmp, Inc. James Y. Wilson Principal Engineer, Windows.
EPICS DIAMOND EPICS Meeting, EPICS base 3.14 OSI: Operating System Independent Support Marty Kraimer.
Getting Started with Trilinos October 14, :30-10:30 a.m. Jim Willenbring.
Implementation of Embedded OS Lab3 Porting μC/OS-II.
An Overview of Support of Small Embedded Systems with Some Recommendations Controls Working Group April 14, 2004 T. Meyer, D. Peterson.
Performed By: Itamar Niddam and Lior Motorin Instructor: Inna Rivkin Bi-Semesterial. Winter 2012/2013 3/12/2012.
Content Project Goals. Workflow Background. System configuration. Working environment. System simulation. System synthesis. Benchmark. Multicore.
Silberschatz, Galvin and Gagne ©2011 Operating System Concepts Essentials – 8 th Edition Chapter 2: The Linux System Part 1.
How to configure, build and install Trilinos November 2, :30-9:30 a.m. Jim Willenbring.
Embedded Systems Design with Qsys and Altera Monitor Program
From VME/RTEMS to Industrial PC/LinuxRT: A Migration Story Mitch D’Ewart May EPICS Collaboration Meeting May 2015.
Introduction to SimpleScalar Tool Set CPEG323 Tutorial Long Chen September, 2005.
Embedded C- Language Lets Learn fundamentals !!. An Embedded system is combination of computer hardware and software, and perhaps additional mechanical.
Monitoring Dynamic IOC Installations Using the alive Record Dohn Arms Beamline Controls & Data Acquisition Group Advanced Photon Source.
Building programs LinuxChix-KE. What happens in your CPU? ● It executes a small set of instructions called "machine code" ● Each instruction is just a.
Linux on ARM7TDMI or Nothing is as easy as it looks Helicon technologies Ltd. How to run uClinux on NXP LPC22xx.
Introduction to Operating Systems Concepts
Benefits of a Virtual SIL
Selected topic in computer science (1)
NetCDF 3.6: What’s New Russ Rew
Development of Embedded EPICS on F3RP61-2L
BIND 10 Packaging & Distribution
Using FPGAs with Processors in YOUR Designs
Serial Data Hub (Proj Dec13-13).
Chapter 2: The Linux System Part 1
“All Lawson, All the Time!”
Computer System Laboratory
Presentation transcript:

 Overview › Requirements › Proof of Principal › Issues … › First Step – Wrap Altera NIOS2 GNU Tools › Next Step – Build RTEMS/NIOS GNU Tools › Future Plans

 Requirements for EPICS IOCs, LANSCE RF system upgrade › Must be deterministically synchronized with the timing system  Binding of captured waveforms with beam flavor attributes obtained from the timing system  Modal behavior changes of low level RF controls depending on the flavor of beam › Must move captured waveforms from FPGA, into the IOC, and out to Ethernet

 Traditional VME/cPCI backplanes › Now they are becoming a bottleneck  There are Altera IP cores for › System processor › Ethernet interface  Can we distribute the solution? › One IOC on each cPCI RF board › Stream data directly, FPGA to Ethernet  A proof of principal is needed

 Third party FPGA intellectual property libraries for ARM, MIPS, etc › Are well supported by the GNU tools › However, use of these IP modules involves licensing expense  Which our RF group prefers to avoid

 Hardware › Altera NIOS Embedded Evaluation Kit  NIOS II Reference Platform on FPGA  Software › GNU Cross Development Tools › RTEMS OS › EPICS IOC

 Altera does › Provide source code for their nios2 enhancements to binutils / gcc/newlib › Modern version now available  FSF binutils 2.20 for nios2  FSF gcc 4.1 for nios2  FSF newlib 1.16 for nios2  Altera doesn't feed back their nios2 enhancements into the asynchronous FSF releases of binutils / gcc/newlib

 RTEMS does feed their enhancements back into the asynchronous FSF releases of binutils / gcc/newlib  RTEMS does depend on these enhancements › RTEMS 4.10 appears to require a recent release of gnu gcc and newlib

 RTEMS doesn’t supply it’s nios2 support files in any production release, but › These files can be obtained by fetching the main development trunk out of CVS  In summary, bringing all of the players together can be somewhat complicated …

 Various components independently maintained but working closely together › Binutils  Loader, assembler, and others … › Newlib  C runtime library for embedded systems › GCC  We use …  C and C++ compilers  Proper runtime support for C++ is essential  Various support libraries

 I tried the instructions available at › Create wrapper script for altera-built gnu cross compiler binaries › Build newlib, and then rtems  Very helpful tutorials at this site › See details about creating rtems bsp using output from Altera’s nios2-bsp tool  Unfortunately, some insurmountable issues with this specific approach › The Altera built gnu cross compiler…  Configured with –disable-threads  Compiler’s c++ runtime isn't using rtems primitives for synchronization

 Altera enhanced sources for binutils / gcc/newlib are available  Perhaps we can configure and build them specifically for RTEMS › Configuring RTEMS thread model › Configuring RTEMS BSP startup libraries to be implicitly linked in

 RTEMS main trunk is currently incompatible with newlib 1.16  Two options 1. Back annotate rtems nios2 support files from main trunk into earlier RTEMS release compatible with Altera’s newlib Forward annotate newlib nios2 support files from Altera modified FSF newlib 1.16 to FSF newlib 1.18  Currently I am concentrating on 2, but expect to eventually use a combination of 1 and 2 in production systems

 Typical steps when installing a GNU package from source › Obtain source › Patch source › Run autoconf in the source › Configure the source › Build the package › Install the package

 “cat../gcc rtems diff | patch -p1”  “find. -name "*.rej" –print”  Sometimes we have to fix by hand what is found in *.rej

 Need autoconf and automake › Always run first autoreconf in source tree if patches apply to *.am, *.ac, *.in, … › Maybe running autoconf isn't enough › Different packages need different versions of these tools › Sometimes the exact same version is needed › Sometimes the same or newer version is needed? › Different components have different requirements

 Need gnu libgmp, libppl, libelf…   But in practice, the uninitiated may iterate a few times as follows…  Run gnu “configure”  Look in config.log for “error”  If there are errors install missing packages  Run configure again …

 Altera Nios enhanced FSF source code › ftp://ftp.altera.com/outgoing/download/sup port/ip/processors/nios2/gnu/ › I used nios2_gnu_gcc4_11.0.tgz  Apply RTEMS patches › ftp://ftp.rtems.com/pub/rtems/SOURCES/4.10/ › ftp://ftp.rtems.com/pub/rtems/SOURCES/4.7

 Added gcc/config/nios2/rtems.h  Added gcc/config/nios2/t-rtems  Added new case in gcc/config.gcc  Added symbolic link to gcc/newlib

 › Altera’s newlib 1.16  Incompatible with RTEMS  Transplanting NIOS2 specific code from Altera’s Newlib 1.16 wasn't too daunting › Applied RTEMS 4.10 patches  Patch file “newlib rtems ” › Some RTEMS modifications for nios2

 Modified › newlib/include/machine/setjmp.h › newlib/libc/sys/rtems/machine/_types.h › newlib/libc/sys/rtems/crt0.c

 Run autoconf in gcc source tree  “mkdir b-gcc”  “cd b-gcc”  Run configure../gcc/altera-gcc-4.1-patched/configure --target=nios2-rtems --enable-threads --with-gnu-as --with-gnu-ld --with-newlib --verbose --disable-libstdcxx-pch --enable-multilib --enable-languages="c,c++" --prefix=$(INSTALL_RTEMS)  “make all” followed by “make install”

 I used RTEMS › But, nios2 support isn't included in any public rtems release › I obtained from anonymous CVS  In the cvs trunk, nios2 support is bundled

 “mkdir b-rtems”  “cd b-rtems” ../rtems-4.11-/rtems/configure --target=nios2-rtems --enable-posix --enable-networking --enable-rtbg --enable-cxx --disable-tests --enable-rtemsbsp=neek --prefix=$(INSTALL_RTEMS)

 The g++ appears to expect c++ header are in a different location than where they are actually installed.  Still working in this issue  Have booted RTEMS on NIOS, but not with C++ code.

 Altera Triple-Speed-Ethernet driver › Port Linux Ethernet driver to RTEMS  Regression Tests  Performance tests

   /xgcc.html