Digital and Analog Circuit Simulation with Ksimus

I took a Computer Logic Design class in college, so when I stumbled upon the Ksimus Circuit Simulator, I was intrigued. At the risk of waxing nostalgic, I remember what it was like to build circuits in school. We'd spend hours the night before the lab designing our circuit, being careful to list each interconnection. We had to keep track of which pin numbers on each chip were to be connected. Then, we took our design and our box of parts to the lab. When we got to the lab, we were given a breadboard and a power supply. Then began the tedium of connecting everything up.

I will admit to miswiring at least one circuit and burning up a chip or two. Those little buggers can get hot! Then, there were times when our original design just simply didn't work. In those cases, we had to redesign our project and get it built in time to be graded. Even though the class was fun, the labs were very stressful. Fortunately, we have better tools now.

Ksimus is a circuit simulator that allows you to build digital and analog circuits with discrete components and simulate them in real time. Ksimus does have its limitations though. Ksimus doesn't supply any of the larger circuits like addressable memory or 8-bit adders, but you can build one for yourself and package it up as a Ksimus module. Also, because Ksimus provides only discrete logic components, you're probably not going to be designing a quad-core microprocessor or anything moderately complex. That said, you certainly can use Ksimus to learn about computer logic design, and you even can use it to simulate basic logic circuits. But, best of all, it's just fun to play with!

Ksimus' user interface is fairly straightforward. You have a list of components on the left side of the window and a canvas on the right side. To place a component on the canvas, you click on the component and then click on the canvas where you want the component to appear. Making a connection between two devices is also intuitive. You place your cursor on the first pin, and you'll notice that the cursor changes. Then, you hold the left mouse button down and drag the cursor to the second pin and release the button. I had been playing with Ksimus for some time before I realized what the cursor was changing to when I made an interconnection; it was turning into a tiny wire wrap tool! Ksimus is smart enough not to let you connect two inputs or two outputs, so you don't need to worry about burning up your virtual logic gates!

When you've built a design you want to test, you can start the simulation from the menu bar at the top.

The Ksimus program is easy to use, and there are lots of components available for use in your designs. Obviously, any digital logic simulator will have the typical AND, OR, NOT and XOR gates.

Many of the components are configurable. For example, the counter component can be configured to be anything from a 3-bit counter to a 16-bit counter. There also is a variety of Flip Flops included in Ksimus, including JK, RS and D Flip Flops. In fact, there are two different D Flip Flops: one is a single gate, and the other is a module with anywhere between 1 and 26 gates. With the addition of some extra addressing logic, which is included with Ksimus, you can build your own addressable memory almost trivially. Ksimus also provides both a variable size Muliplexer as well as a Demultiplexer.

Ksimus allows you to provide input for your circuits from various sources. One of the most basic input sources is the clock generator. The clock generator allows you to configure initial startup delay as well as on-time and off-time duty cycle. You also can include buttons that can be “pushed” by the user during simulation. Ksimus includes both a momentary contact/disconnect switch and a latching switch, and these switches don't bounce like real switches do! Of course, there also are the boolean true and false values that can be provided as constant inputs to your circuit.

Logic circuits wouldn't be any fun if they didn't produce any output, and Ksimus provides users with the LED output as well as a 7 Segment Display, with built-in decoder. To use the 7-Segment Display, you simply provide the appropriate binary value on its four input lines, and it displays the appropriate number. You also can use the Data Recorder and Text Recorder as outputs for your circuit. The Data Recorder is essentially a multi-channel logic probe. You simply add (and connect) input channels to the Recorder and run your simulation. Then, you can open up the probe's graph and watch the display in real time. The Text Recorder performs the same function, except that it logs to an external file for later analysis.


Figure 1 shows a simple circuit I built in just a couple minutes. This circuit uses a clock signal to drive a counter. The output of the counter is used as an address for a demultiplexer that simply drives a row of LEDs. The circuit simply strobes the LEDs in order—a simple but effective demonstration.

So far, you've seen a pretty detailed rundown on the digital capabilities of Ksimus, but the program also has quite a few floating-point or analog capabilities. Using the wave-form generator and various arithmetic operators, I was able to build up some fairly complex wave-forms to supply to my circuit. Using these functions would let you create a model of a physical phenomenon and interface it with your digital circuit for simulation.

The floating-point arithmetic components include adders, subtractors, dividers and multipliers. You also can use exponential, log and trigonometric functions in your simulation.

The floating-point comparison components allow you to compare two analog signals and output an appropriate digital logic level. The Data Selector component lets you use a digital address to select one of many analog signals. You also can create inputs that have a constant analog value. From these components, it's easy to see how you could build an Analog-to-Digital converter or a Digital-to-Analog converter.

The only variable input I found useful for analog input was the Slider. The Slider allows you to vary the output voltage manually during the simulation. You can configure the upper and lower limits of the output too.


As you can see, Ksimus' analog capabilities are fairly complete. Figure 2 shows an analog circuit I built to demonstrate the Slider input as well as the Data Recorder. In this circuit, I have a sine wave and an analog slider that ranges from -1 to 1. I send these two outputs into the two comparison operators and get a digital output that I use to drive a couple LEDs. I've also included a label that displays the actual value being output by the slider. Finally, you can see the various wave forms and logic states in the graph windows. When the simulation is running, I can adjust the slider to change the relative duty cycle of the two LEDs.

So, there you have it. Ksimus is a great laboratory for exploring digital logic as well as analog interfacing problems. And like I said earlier, it's a lot of fun to play with!

Release of Windows Embedded POSReady Goes into Action

Microsoft announced the availability of its next generation of Windows operating system for Point of Service. The National Retail Federation (NRF) Annual Convention & Expo, acted as the stage where the Redmond company revealed that Windows Embedded POSReady 2009 would go into action via an enterprise-wide deployment by Douglas, a top fragrance and cosmetics retailer in Europe. Jeroen Timmer, director of IT at Douglas, indicated that the retailer planned to introduce Windows Embedded POSReady 2009 in its newer stores first.

“The new POS platform provides us with a viable solution for meeting present and future business needs,” Timmer said.

“As we look to move toward diskless hardware platforms, we saw a long-term opportunity with Windows Embedded POSReady 2009, which supports flash and other data storage technologies. With fewer moving hardware parts, we expect higher levels of reliability and longer system life cycles, which will save us money over time.”

The platform, with Windows Embedded POSReady 2009 at its heart, which Douglas will deploy, is built by Wincor Nixdorf, and will feature a touch-screen interface designed to streamline the process of customer service. Through the latest iteration of Windows OS for Point of Service, Microsoft is offering customers security on par with Windows XP SP3, technologies such as .NET Framework 3.5 and a fully customizable OS.

“The Windows Embedded team is committed to providing our partners and customers with an innovative POS operating system that enhances POS function and enables retailers to offer a differentiated user experience,” Ilya Bukshteyn, senior director of Windows Embedded Marketing at Microsoft, added.

“Using familiar Windows technologies, Windows Embedded POSReady 2009 enables a connected, rich experience at the checkout counter, which leads to meeting and exceeding shopper expectations and driving customer loyalty.

IBM offers FOSS implementation of Open Firmware standard

IBM is offering a free open source implementation of the IEEE-1275 Open Firmware standard. Slimline Open Firmware (SLOF) can be used by software engineers developing boot firmware, operating systems, or applications for PowerPC, or by hardware engineers interested in fast bring-up of PowerPC-based systems, according to IBM's DeveloperWorks website. More information about Open Firmware can be found via Google, or at the IEEE 1275 website. More details about SLOF can be found here .

The nice thing about Open Firmware is that it allows one plug-in PCI card to be used in any chassis that understands Open Firmware, with very little concern for the host machine architecture. The combination of Open Firmware and IBM's SLOF announcement is a potential windfall for embedded systems with pluggable PCI busses, because it opens the door to the use of commodity PC hardware (and their aggressive price points) for embedded applications. The downside to Open Firmware is that PCI cards designed for Wintel boxes don't use Open Firmware; they use a ghastly technique where actual x86 machine instructions are stored in a dedicated memory area in the card itself (whose idea was *that*?!). There are a lot of nifty chipsets on PCI cards that I wish were available in affordable OEM-friendly packages, i.e. just the chips. Graphics controllers come to mind, as do gigabit ethernet controllers and GSM adapters.

Considering the PCI cards available for Sun and Apple machines, what sorts of embedded applications could YOU now realize?

Embedded FOSS projects

List Of Projects

Accelerometer based Wireless navigator

Embedded Linux - Accelerometer based Wireless navigator

Heart Beat Wave Monitor Using PHOENIX Kit

Embedded System -Using Microcontroller ,Python,Embedded C

Mobile Applications Using Nokia's Open C

Mobile Applications Using Nokia's Open C

GPS Navigation System

Implementation of GPS Navigation system in Linux

Autopilot Airplane

Developing an Autopilot Airplane Using RTLinux

LANTalk

Talk over Local Area Network between two persons

RTOS Project >>Source code uploaded<<

On Embedded System- Appliance control using RTLinux

others

RTL-Democos

RTL-Democos (Real Time Linux Device Monitoring and Control System)

Community group

Open Source Embedded systems community group

Embedded Programming with FOSS Tools

If you are building an embedded system you can pay a lot for a development toolchain or you can roll your own. This can vary from easy, if support for your processor is available in the tools, to hard, if you need to write the support for your target platform into binutils and GCC. Generally with any new piece of hardware a Board Support Package (BSP) needs to be written so the common features of libc can be made available and a feature rich BSP can ease debugging buy creating simple debugging mechanisms such as a console. I’d like to share my experiances with the ARM processor and hear what others have to say about their own systems. We can touch on topics like building the toolchain, creating a BSP, interacting with the toolchain community, simple hardware to get beginners started or creating libraries to be used between multiple platforms to just name a few.

Setting Up A PXE Install Server For Ubuntu

This tutorial shows how to set up a PXE (short for preboot execution environment) install server with Ubuntu 6.10 (Edgy Eft). A PXE install server allows your client computers to boot and install a Linux distribution over the network, without the need of burning Linux iso images onto a CD/DVD, boot floppy images, etc. This is handy if your client computers don't have CD or floppy drives, or if you want to set up multiple computers at the same time (e.g. in a large enterprise), or simply because you want to save the money for the CDs/DVDs. In this article I show how to configure a PXE server that allows you to boot multiple distributions: Ubuntu Edgy/Dapper, Debian Etch/Sarge, Fedora Core 6, CentOS 4.4, OpenSuSE 10.2, and Mandriva 2007.

I want to say first that this is not the only way of setting up such a system. There are many ways of achieving this goal but this is the way I take. I do not issue any guarantee that this will work for you!

1 Preliminary Note

It is important that you have a decent internet connection because your client computers will fetch all needed packages from the repositories in the internet (I tested this on a 16MBit ADSL2+ connection which seems to be fast enough. ;-)). It is possible to store all packages on the PXE server as well so that you don't need an internet connection (just the LAN connection to the PXE server), but then you need a lot of storage space on the PXE server (remember, it will serve multiple distributions), so I don't cover this here.

And the most important thing is that your client computers support booting over the network. You should check each computer's BIOS for this option.

On our system that should serve as the PXE server you should have already set up a basic Ubuntu 6.10 server system, for example as shown on pages 1 - 3 of this tutorial: http://www.howtoforge.com/perfect_setup_ubuntu_6.10

I prefer to do all the steps here as the root user. So if you haven't already created a root login, you should do so now:

sudo passwd root

Afterwards, log in as root:

su

If you would like to work as a normal user instead of root, remember to put sudo in front of all the commands shown in this tutorial. So when I run

apt-get update

you should run

sudo apt-get update

instead, etc.

2 Install All Necessary Packages

First we update our packages database by running

apt-get update

We need to install the packages netkit-inetd, tftpd-hpa, dhcp3-server, and lftp, so we run

apt-get install netkit-inetd tftpd-hpa dhcp3-server lftp

Afterwards run

netstat -uap

and check if you see something like this:

root@server1:~# netstat -uap
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name

If you don't see the tftp line, please open /etc/inetd.conf and make sure you find the following in it:

vi /etc/inetd.conf

[...]
#:BOOT: Tftp service is provided primarily for booting. Most sites
# run this only on machines acting as "boot servers."
tftp dgram udp wait root /usr/sbin/in.tftpd /usr/sbin/in.tftpd -s /var/lib/tftpboot
[...]

Then restart inetd:

/etc/init.d/inetd restart

3 Configure The DHCP Server

We need a DHCP server in our local network. If there's no DHCP server in your local network, just configure and use the one on your future PXE server. Simply edit /etc/dhcp3/dhcpd.conf:

cp /etc/dhcp3/dhcpd.conf /etc/dhcp3/dhcpd.conf_orig
cat /dev/null > /etc/dhcp3/dhcpd.conf

vi /etc/dhcp3/dhcpd.conf

option domain-name-servers 145.253.2.75, 193.174.32.18;

default-lease-time 86400;
max-lease-time 604800;

authoritative;

subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.10 192.168.0.49;
filename "pxelinux.0";
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.0.255;
option routers 192.168.0.1;
}

This will dynamically assign IP addresses from the range 192.168.0.10 to 192.168.0.49 to your client computers; the gateway is 192.168.0.1. Of course, you must adjust this configuration to your own environment!

It is important that you have the line

filename "pxelinux.0";

in your configuration!

Then restart your DHCP server:

/etc/init.d/dhcp3-server restart

If you already have a DHCP server in your network, you must modify its configuration. Let's assume you have something like

subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.10 192.168.0.49;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.0.255;
option routers 192.168.0.1;
}

in the configuration. You must add

filename "pxelinux.0";
next-server 192.168.0.100;

to it (where 192.168.0.100 is the IP address of our Ubuntu PXE server) so that it looks like this:

subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.10 192.168.0.49;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.0.255;
option routers 192.168.0.1;
filename "pxelinux.0";
next-server 192.168.0.100;
}

Then restart your DHCP server.

Installing Fedora Using PXE Images

Booting grub with the Fedora PXE vmlinuz/initrd images allows you to perform a network installation of Fedora over any existing linux distro, should you not be able to write to or boot from the conventional CD/DVD install media. A PXE netinstall can both be done locally, and with extra care, remotely using VNC. Both methods are explained in this HOWTO.

Applicable to Fedora Versions

  • All

Requirements

In order to use this installation method you must already have a linux distro installed which successfully boots using the grub bootloader. A network connection and a network device that anaconda can configure is also required (which rules out some wireless-only installations).

Doing the Work

NOTE: the grub "PXE" image installation method described here is not the same as a conventional PXE installation where the network card supports PXE netbooting of the images on a remotely configured tftp/dhcp server. In this case we're taking advantage of a system with a pre-existing bootloader by telling it to bootstrap the images directly on disk.

Summary of steps below: 1) put the pxe images in /boot; 2) configure grub.conf for a local or (advanced) remote vnc install; 3) point of no return: double-check & backup, backup, backup. 4) reboot and start the netinstall from a known mirror.

  1. Download the vmlinuz and initrd.img PXE images for the OS version and architecture you want to install, into your /boot directory. If you already have image filenames by those generic names in your /boot directory, download them to a temp directory instead, rename them to something unique and identifiable (such as vmlinuz.f10.pxe and initrd.img.f10.pxe), and then copy or move them to /boot/. (note: grub doesn't care about selinux or file permissions)
    cd /boot/
    wget 'http://download.fedora.redhat.com/pub/fedora/linux/releases/10/Fedora/i386/os/images/pxeboot/vmlinuz'
    wget 'http://download.fedora.redhat.com/pub/fedora/linux/releases/10/Fedora/i386/os/images/pxeboot/initrd.img'
  2. Configure grub to boot the PXE Images

      Installing From the localhost

    1. For a LOCAL install, add the following example grub entry to your /etc/grub.conf
      title Install Fedora (PXE)
      root (hd0,0)
      kernel /vmlinuz
      initrd /initrd.img

      NOTE: The above assumes you have your /boot on a separate partition from the root partition, which is the default. If /boot was on the same device as your '/' root partition you would use, for example: "/boot/vmlinuz", instead.

      SKIP TO STEP 3 IF DOING A LOCAL INSTALL


    2. Installing from a Remote Location using VNC

    3. For a REMOTE install, the grub.conf and VNC setup is more involved.

      You will need to configure your boot loader for the new PXE images. At this point you will need information about the existing server and network. This is key to the success of the reboot. You must know that the PXE images will boot your hardware. Specifically hard disk drives and network interface cards are needed to do the install. The best way to check this is read (TODO:missing link) about it or test it. You must also know what your network adapter will show up as it is passed to the kernel at boot. Again, you have been warned. Also, it is good to make backups of your boot loader configs. As another note, please 'append' this information into your configs. Do not replace what you have, just add to it.

      For this example we will use the following network settings. You must adjust them to your own network (or rely upon DHCP instead - see further below):

      IP: 192.168.1.2
      Netmask: 255.255.255.0
      Gateway: 192.168.1.1
      DNS: 192.168.1.1
      Server Network Interface: eth0

      Workstation Machine: 192.168.1.23
      Hostname: test.mydomain.com
      VNC Password: yourPass

      Note: Make sure your password is between 6-11 characters in length.

      The following are example kernel configs for grub:

      This is an example grub config section with our example static IP config:

      title Install Fedora (PXE) - static. we connect to vnc server.
      root (hd0,0)
      kernel /vmlinuz vnc vncpassword=yourPass headless ip=192.168.1.2 noipv6 netmask=255.255.255.0 gateway=192.168.1.1 dns=192.168.1.1 hostname=test.mydomain.com ksdevice=eth0 method=http://download.fedora.redhat.com/pub/fedora/linux/releases/10/Fedora/i386/os/ lang=en_US keymap=us
      initrd /initrd.img

      Another way to run with a static network config, using vncconnect instead, which tells the installer to connect back to our listening VNC client:

      title Install Fedora (PXE) - static. vnc server connects to us.
      root (hd0,0)
      kernel /vmlinuz vnc vncconnect=192.168.1.23 headless ip=192.168.1.2 noipv6 netmask=255.255.255.0 gateway=192.168.1.1 dns=192.168.1.1 hostname=test.mydomain.com ksdevice=eth0 method=http://download.fedora.redhat.com/pub/fedora/linux/releases/10/Fedora/i386/os/ lang=en_US keymap=us
      initrd /initrd.img

      You may also use DHCP, but you must make sure you will know the assigned IP address when the server reboots:

      title Install Fedora (PXE) - dhcp. we connect to the vnc server.
      root (hd0,0)
      kernel /vmlinuz vnc vncpassword=yourPass headless ip=dhcp noipv6 ksdevice=eth0 method=http://download.fedora.redhat.com/pub/fedora/linux/releases/10/Fedora/i386/os/ lang=en_US keymap=us
      initrd /initrd.img

      Yet another way to use DHCP. This might be the best option if you do not know what the IP will be:

      title Install Fedora (PXE) - dhcp. vnc server connects to us.
      root (hd0,0)
      kernel /vmlinuz vnc vncconnect=192.168.1.23 headless ip=dhcp noipv6 ksdevice=eth0 method=http://download.fedora.redhat.com/pub/fedora/linux/releases/10/Fedora/i386/os/ lang=en_US keymap=us
      initrd /initrd.img

      Adapt one of the above examples to your environment, add it to your grub.conf, and change the "default=N" line to refer to it, where N equals the position of the new entry, counting from the top, starting at zero (e.g. if it was the 3rd entry, use "default=2").

    4. Configure Grub to boot once-only, then Fallback, in case Bootup Fails

      If your new PXE grub config fails to boot and start the installation correctly the very first time, you are stuck, unless you have some way to recover. There are two ways to do so:

      1. Your server has an emergency IP KVM, or virtual ssh console of some kind. If you've got this kind of access you can fix the grub problem as if you were physically in front of the server. Even in this case, you can save time with a fallback setup as described below.
      2. Your server has a simple remote "reboot" facility provided via a web control panel of some sort. If you can AT LEAST reboot your server, or call a remote tech to do it manually, then you can setup grub to boot the PXE kernel once, and on the next boot fallback to the last used working kernel. If you can't reboot your server, then you probably shouldn't be attempting a remote install unless you have the experience to KNOW it will work the first time.

      To configure grub to only boot an entry once, then fallback, you need to switch grub.conf from using the fixed "default=N" index number, to using "default=saved". You must then to tell grub which entry will be the saved default by putting "savedefault" in the good grub.conf entry, and by immediately saving it on the command line (see below). Finally, you tell grub to save a default entry that it will only boot once, afterwhich it will boot the previous savedefault until told otherwise.

      See the example grub.conf below. The WORKING kernel entry is (#0) the one at the very top (yours should be as well), and the PXE VNC grub entry we want to boot next is the 3rd one down (#2).

      default=saved
      timeout=5
      splashimage=(hd0,0)/boot/grub/splash.xpm.gz
      hiddenmenu
      title #0 - Fedora (2.6.21-1.3228.fc7)
      root (hd0,0)
      kernel /vmlinuz-2.6.21-1.3228.fc7 ro root=/dev/VolGroup00/LogVol00
      initrd /initrd-2.6.21-1.3228.fc7.img
      savedefault

      title #1 - Fedora (2.6.21-1.3194.fc7)
      root (hd0,0)
      kernel /vmlinuz-2.6.21-1.3194.fc7 ro root=/dev/VolGroup00/LogVol00
      initrd /initrd-2.6.21-1.3194.fc7.img

      title #2 - Install Fedora (PXE) - dhcp. vnc server connects to us.
      root (hd0,0)
      kernel /vmlinuz vnc vncconnect=192.168.1.23 headless ip=dhcp noipv6 ksdevice=eth0 method=http://download.fedora.redhat.com/pub/fedora/linux/releases/10/Fedora/i386/os/ lang=en_US keymap=us
      initrd /initrd.img

      First we need to initialize the "main fallback" saved default by telling grub to save the first (#0th) entry with the following command:

      echo 'savedefault --default=0' | grub --batch

      And finally, we need to tell grub which entry to attempt booting only once before rebooting to the saved fallback entry above. In this example, we want to boot #2 once

      echo 'savedefault --default=2 --once' | grub --batch
    5. Setup your Workstation to Listen for the VNC Install to Start

      This step is only needed if you choose to use vncconnect to tell the installer to connect back to your waiting VNC viewer, rather than you initiating a connection with the waiting VNC server. Having the installer connect back to your VNC client is very convenient, especially if its DHCP IP is dynamic, or in the case where it's easier to open a hole for VNC on your side of the firewall, or if you would just rather have the VNC install start when it's ready rather than you having to poll the server to see if it's ready yet. If you choose not to use this method, be sure to set a vncpassword so that no random hacker can connect to the VNC server before you do.

      To be able to use vncconnect you must setup a vncviewer to listen and wait for the server to boot. Run the following on your workstation:

      vncviewer --listen

      This will setup vncviewer to listen on port 5500 by default. Other VNC clients may use a different port; see their documentation. Use netstat on your workstation to check to see if it is listening:

      # netstat -panl | grep 5500
      tcp 0 0 0.0.0.0:5500 0.0.0.0:* LISTEN 28370/vncviewer

      Finally, and most importantly, you must make sure that the server can connect to your client. You can do this from the server with the following netcat command:

      # nc -vz 192.168.1.23 5500
      Connection to 192.168.1.23 5500 port [tcp/fcp-addr-srvr1] succeeded!

      If you don't see "succeeded", and instead see "No route to host" or "Connection refused", then a firewall is mostly likely blocking the connection and you need to do one or both of the following: 1) open port 5500 on your workstation's firewall. 2) if you have a NAT router, and you're remotely installing to a server that's outside your local LAN, then you'll need to setup a port forward mapping from the external port 5500, to your workstation's internal 192.168.1.21:5500

  3. Double-check your grub.conf to make sure that it is set to load the correct PXE image files (no typos) upon reboot. Nearing the point of no return here, so make sure you have a backup of all your important data in case installation fails.
  4. Reboot to Begin the Network Installation.

    IMPORTANT NOTE ABOUT NETWORK MIRROR PATHS: During the installation you will be prompted for the "site name" and the "Fedora directory" of the network mirror you want to install from - you need to know this before-hand, so write a few down. You can either setup and use your own local mirror, or use one of the many geographically close public mirrors that are listed here: http://mirrors.fedoraproject.org/publiclist

    When using a public mirror, you need to make sure to use the full, correct directory path, or it won't be found - the directory should end with "/os/". Using the example mirror of "http://mirror.cc.vt.edu/pub/fedora/linux", the "Web site name" part would be "mirror.cc.vt.edu", but the directory would *not* only be "/pub/fedora/linux". You have to drill down the mirror directories to find the correct full path with "/os/" at the end, and in this example it happens to be "pub/fedora/linux/releases/10/Fedora/i386/os". Note also that the mirror arch path you install from needs to match the PXE image arch that you're booting from: i386 or x86_64.

  5. Once installation is complete, reboot into the newly installed OS and continue with post-installation configuration as usual.

Troubleshooting

How to test

For local installations: if you added the PXE images correctly, you should still be able to boot back to the old kernel by simply selecting it from the grub menu. Do this and try again. You must know if your boot loader expects /boot or not, which should be easy to infer from the pre-existing entries in grub.conf.

For remote installations: if the PXE images failed to boot and connect to your VNC client in a reasonable amount of time, something probably went wrong and you'll need a way to reboot the server. If you setup grub correctly to only boot the PXE entry --once, it will automatically fallback to the previously saved default after you reboot. If it doesn't, you may be in trouble, unless you have an emergency IP KVM, virtual console, or onsite tech support.

Common problems and fixes

N/A

More Information

Disclaimer

We test this stuff on our own machines, really we do. But you may run into problems, if you do, come to #fedora on irc.freenode.net

Added Reading

Flite - a small text to speech for embedded systems

Last time I wrote about Festival: Text to Speech on Linux. Now I found a derived version of them, it called Flite. Flite (festival-lite) is a small, fast run-time synthesis engine developed at CMU and primarily designed for small embedded machines and/or large servers. Flite is designed as an alternative synthesis engine to Festival for voices built using the FestVox suite of voice building tools. To enable it on Ubuntu (8.04), you just type:

Eclipse for SDCC


Although I use MIDE-51 as a major IDE, I still seek for the best (free) IDE for developing Microcontroller Programming. The combination of Eclipse, CDT and SDCC is an alternation tools for 8051 Microcontroller C Programming.

Eclipse is an open source community whose projects are focused on building an open development platform comprised of extensible frameworks, tools and runtimes for building, deploying and managing software across the lifecycle. Eclipse is used for Enterprise Development, Embedded and Device Development, Rich Client Platform, Application Frameworks and Language IDE.

The CDT is Eclipse's C/C++ Development Tooling project. It is an industrial strength C/C++ IDE that also serves as a platform for others to provide value added tooling for C/C++ developers.

The eclipseSDCC project aims to provide full support for the open source Small Device C Compiler (SDCC) from within the eclipse/CDT development environment. This allows embedded 'C' applications for 8051 and Z80 devices to be developed using the fully featured eclipse IDE. EclipseSDCC supports CDT managed make projects. In managed make projects CDT manages the build process by creating and maintaining the underlaying makefiles. CDT keeps track of source dependencies and can automatically rebuild the target when needed.

To install (for Windows)

  1. It requires Java Runtime Environment (JRE), I download only JRE not SDK and install it.
  2. Downlaod Eclipse SDK 3.2.1 for Windows (120 MB) and extract it to c:/eclipse. In the directory it contains eclipse.exe which is an executable.
  3. Download CDT 3.1.1 (September 29, 2006) and extract it c:/eclipse, this will prompt to replace plugins and features directory.
  4. If you have already installed SDCC for Window, skip this step. If you have no SDCC installed, read this first.
  5. Download eclipseSDCC-1.0.0, when you extract the file, it contains plugins and features directory. Copy the two direct to c:\eclipse.
Now the installation have been completed and you can find its manual in c:/eclipse/plugins/net.sourceforge.eclipsesdcc_1.0.0/help/index.html.

Eclipse for SDCC is quite large when compared it MIDE-51. However, you can manage project in Eclipse whereas MIDE-51 still have no this feature in the present version. Here is a screen shot, you should see this dialog.

Related Links

Philips P89V51RD2 Microcontroller


I am using Philips P89V51RD2 as 8051 Microcontroller Unit (MCU). And I have been developing my code with Opensouce C Compiler SDCC. Please visit my Tools page for software preparation guides.

The P89V51RD2 is a 80C51 microcontroller with 64 kB Flash and 1024 bytes of data RAM. A key feature of the P89V51RD2 is its X2 mode option. The design engineer can choose to run the application with the conventional 80C51 clock rate (12 clocks per machine cycle) or select the X2 mode (6 clocks per machine cycle) to achieve twice the throughput at the same clock frequency. Another way to benefit from this feature is to keep the same performance by reducing the clock frequency by half, thus dramatically reducing the EMI.

The Flash program memory supports both parallel programming and in serial In-System Programming (ISP). Parallel programming mode offers gang-programming at high speed, reducing programming costs and time to market. ISP allows a device to be reprogrammed in the end product under software control. The capability to field/update the application firmware makes a wide range of applications possible.

The P89V51RD2 is also In-Application Programmable (IAP), allowing the Flash program memory to be reconfigured even while the application is running.

Features

  • 80C51 Central Processing Unit

  • 5 V Operating voltage from 0 MHz to 40 MHz

  • 64 kB of on-chip Flash user code memory with ISP (In-System Programming) and IAP (In-Application Programming)

  • Supports 12-clock (default) or 6-clock mode selection via software or ISP

  • SPI (Serial Peripheral Interface) and enhanced UART

  • PCA (Programmable Counter Array) with PWM and Capture/Compare functions

  • Four 8-bit I/O ports with three high-current Port 1 pins (16 mA each)

  • Three 16-bit timers/counters

  • Programmable watchdog timer

  • Eight interrupt sources with four priority levels

  • Second DPTR register

  • Low EMI mode (ALE inhibit)

  • TTL- and CMOS-compatible logic levels

  • Brown-out detection

  • Low power modes

    o Power-down mode with external interrupt wake-up

    o Idle mode

  • DIP40 packages

Related Links
Product Page: http://www.semiconductors.philips.com/
Data Sheet: P89V51RB2_RC2_RD2-03.pdf
Boot Loader: p89v_lv51rd2_bl_upd_v5.zip
FlashMagic ISP Software: http://www.esacademy.com/

Installing MIDE-51 and SDCC and for Win32


This page is an installation guide for someone who are interested in developing 8051 microcontrllor with C-language. All of tools I selected are freeware or opensource with no limitation of number of lines of your code.

Contents

  1. Installing MIDE-51, Editor for 8051

  2. Installing SDCC, C Compiler for 8051

  3. Installing ASEM-51, Assembler for 8051

  4. Installing JSIM-51, Simulator for 8051

  5. Installing FlashMagic, ISP for Philips MPU

  6. Configuration

  7. Test


1. Installing MIDE-51
MIDE-51 is freeware Integrated Development Environment (IDE) for MCS-51 microcontroller. The full package already comes with:

Assembler : ASEM-51 by W.W.Heinz (v1.3)
C compiler : SDCC: Small Device C Compiler (v2.5.4)
Simulator : TS Controls 8051 Emulator v1.0 evaluation (Owner : http://www.tscontrols.com was gone)
Simulator : JSIM-51 Simulator by Jens Altmann (v4.05)

Just downloads midepack0258.exe and executes this file, everything will setup completely.

Feature on MIDE-51:

  • Syntax highlighter on ASEM-51 reserved word & addition register on selected device (devices listed on ASEM51/MCU folder)

  • Syntax highlighter on SDCC reserved word & MCS-51 standard register

  • Support multi document workspace

  • Support standard editor feature and shortcut key such as Cut , Copy, Paste, Find, Replace and Windows tile & cascade

  • Editor font style and size selectable

  • Save recent file(s) opened in list

  • Shortcut to ASEM-51 html manual

  • Shortcut to SDCC html & PDF manual (search file on SDCC/DOC)

  • Report assembler & compiler message

  • Support drag and drop file from explorer.

  • Automatic save last windows position.

  • Support wheel mouse

  • Bookmark code position upto 10

  • Show/Hide line number on editor

However, if you would like to use the newer version of them, you can also install each package manualy. First, downloads only editor version of MIDE-51 ( MIDE51_0258.zip) and extracts it to any directory (C:\MIDE51). You should have C:\MIDE51\MIDE51.EXE. For others package, please follow these instructions.


2. Installing SDCC
SDCC is a Freeware, retargettable, optimizing ANSI - C compiler that targets the Intel 8051, Maxim 80DS390, Zilog Z80 and the Motorola 68HC08 based MCUs. Work is in progress on supporting the Microchip PIC16 and PIC18 series. The entire source code for the compiler is distributed under GPL.

To install the SDCC, download the latest version from http://sdcc.sourceforge.net/snap.php#Windows (currently v2.6.x). SDCC are available for several different operating systems. I am working on a PC running Microsoft Windows XP therefore I download the win32 self-executing SDCC install file
(sdcc-20060818-4339-setup.exe) and run the executable. By default, it will install all files to C:\Program Files\SDCC, you also can change to any directory.

When finishing installing the program, a prompt will appear asking to add the directory containing the program binaries to your PATH. I also recommend you to download the SDCC documentation (sdcc-doc-20060818-4339.zip), and extract it to your SDCC documentation directory (C:\Program Files\SDCC\doc).


3. Installing ASEM-51
ASEM-51 is a two-pass macro assembler for the Intel MCS-51 family of microcontrollers. It is running on the PC under MS-DOS, Windows and Linux. The ASEM-51 assembly language is based on the standard Intel syntax, and implements conditional assembly, macros, and include file processing. The assembler can output object code in Intel-HEX or Intel OMF-51 format as well as a detailed list file. The ASEM-51 package includes support for more than 180 8051 derivatives, a bootstrap program for MCS-51 target boards, and documentation in ASCII and HTML format. And it is free ...

The simplest way of installing ASEM-51 is copying all files of the package to your working directory, and enjoy the benefits of true plug-and-play compatibility!. Alternatively, I have set it up on Windows XP manually:

  • Downloads the lastest ASEM-51 for DOS/Windows (currently v1.3)

  • Create a new, empty directory on your harddisk (C:\ASEM51).

  • Unpack your ASEM-51 distribution archive into this directory, or copy all files of the ASEM-51 package into it.

  • Make the scratch directory default, run the batch file INSTALL.BAT provided, and follow the instructions.

  • Reboot your PC.

You can update MPU file by downloading http://plit.de/asem-51/mcufiles.zip.


4. Installing JSIM-51
JSIM-51 is a powerful software simulator for 8051 Microcontrollers and it's derivatives. The program simulates the processor kernel and some of the hardware functions. It was born due to all commercial products are too expensive for private users. It is free and opensource.

To install:

  • Download 8051.zip ( DLL for simulation of a standard-8051 , V1.017 - 09/17/1998)

  • Download 80320.zip ( DLL for simulation of a 80320 -Dallas , V1.019 - 10/03/2000)

  • Download jsim_e.zip ( english version V4.05 from 01/08/2000)

Extract all files i.e., jsim.exe, 8051.dll and 80320.dll to your directory (C:\Jsim51).


5. Installing FlashMagic ISP Software
Flash Magic is a free, powerful, feature-rich Windows application that allows easy programming of Philips Flash Microcontrollers. Its function is to download compiled HEX file to your (Philips) microcontroller.

Please download and install the current version of FlashMagic.exe here.


6. Configuration
To combine every things:

  • Execute MIDE-51.exe

  • From menu bar, Edit-->Preference (F12)

  • Click Tab C-Compiler, Edit your SDCC Path (C:\Program Files\SDCC)

  • Click Tab Assembler, Edit your ASEM-51 Path (C:\ASEM51).

  • Click Tab Simulaotr, Simulator Profile, select JSIM with 8051.dll, edit Execute file (Full path and filename) C:\JSIM51\jsim.exe.

  • Now, everything is complete


7. Test

Execute MIDE-51.exe and File-->New (Ctrl+N), edit this code

#include 
unsigned char i;
void main() {
i=10;
}
Save to anyname.c and then Build (F9). You will found many files in the directory, one of them is .HEX file which can be downloaded to your MCU by using FlashMagic. Or, you can simulate it by using Jsim51, Build and Sim (Shift+Ctrl+F9).

Note: I tested on my P89V51RD2 MPU. Enjoy your 8051 microcontroller.


Related Links

Product Page: http://www.semiconductors.philips.com/

Data Sheet: P89V51RB2_RC2_RD2-03.pdf

Boot Loader: p89v_lv51rd2_bl_upd_v5.zip

FlashMagic ISP Software: http://www.esacademy.com/

SDCC : http://sdcc.sourceforge.net/

MIDE-51 : http://www.opcube.com/home.html

ASEM-51 : http://plit.de/asem-51/home.htm

JSIM-51 : http://home.arcor.de/jensaltmann/jsim-e.htm

Introduction to SDCC: Small Device C Compiler


SDCC is a Freeware, retargettable, optimizing ANSI - C compiler that targets the Intel 8051, Maxim 80DS390, Zilog Z80 and the Motorola 68HC08 based MCUs. Work is in progress on supporting the Microchip PIC16 and PIC18 series. AVR and gbz80 ports are no longer maintained. The entire source code for the compiler is distributed under GPL.

Some of the features include:

  • ASXXXX and ASLINK, a Freeware, retargettable assembler and linker.

  • extensive MCU specific language extensions, allowing effective use of the underlying hardware.

  • a host of standard optimizations such as global sub expression elimination, loop optimizations (loop invariant, strength reduction of induction variables and loop reversing ), constant folding and propagation, copy propagation, dead code elimination and jump tables for 'switch' statements.

  • MCU specific optimisations, including a global register allocator.

  • adaptable MCU specific backend that should be well suited for other 8 bit MCUs

  • independent rule based peep hole optimizer.

  • a full range of data types: char (8 bits, 1 byte), short (16 bits, 2 bytes), int (16 bits, 2 bytes), long (32 bit, 4 bytes) and float (4 byte IEEE).

  • the ability to add inline assembler code anywhere in a function.

  • the ability to report on the complexity of a function to help decide what should be re-written in assembler.

  • a good selection of automated regression tests.

SDCC also comes with the source level debugger SDCDB, using the current version of Daniel's s51 simulator. (Currently not available on Win32 platforms).

SDCC was written by Sandeep Dutta and released under a GPL license. Since its initial release there have been numerous bug fixes and improvements. As of December 1999, the code was moved to SourceForge where all the "users turned developers" can access the same source tree. SDCC is constantly being updated with all the users' and developers' input.

SDCC Homepage
- http://sdcc.sourceforge.net/

Motorola launches high speed M2M modem


Motorola has launched a high speed Machine-to-Machine (M2M) modem that uses the HSPA protocol for 3.5G connectivity. The HSPA series of modules is comprised of the H24-Global, providing tri-band HSPA connectivity (850/1900/2100MHz); H24-Single (2100MHz); and H24-NA (850/1700/1900MHz).
The new H24 module provides HSUPA/HSDPA connectivity at 5.76Mbit/s upstream and 7.2Mbit/s downstream, enabling true mobile broadband for next generation M2M solutions like automotive infotainment systems, fixed-wireless terminals, telemetry, and advanced security systems featuring real-time video surveillance. The H24 also has on-board GPS capabilities making it the ideal solution for location-based applications. In addition, the H24 includes receiver diversity for optimal performance under harsh network conditions as well as FOTA (firmware over the air), to ensure maximum reliability.
The H24 is built in the same compact form factor as the rest of the Motorola "24" family of wireless modules to provide flexibility with a single design solution. As the entire H24 series includes quad-band GSM/GPRS and EDGE connectivity, customers can easily add HSPA connectivity to their existing G24 GSM-based solution by integrating the H24.

"The H24 HSPA module enables the M2M industry to take advantage of global 3.5G network deployment," said Shamai Wasserman, vice president, Motorola Israel & Director of Motorola Wireless Modules business unit. "The addition of 3.5G HSPA technology to the "24" family of wireless modules expands on Motorola's commitment to supporting all air interfaces with a single form factor."

fedora 11 release

Fedora 11 Release Schedule

Key Milestones

2008-11-25Fedora 10 Release
Planning & Development Begins
2009-01-09 FUDCon Fedora 11 (Boston: January 9-11, 2009)
2009-01-20 Alpha Freeze - test freeze policy
2009-02-03
2009-02-05
Alpha Release - release notes
2009-03-03 Feature Freeze--Planning & Development Ends
2009-03-10 Beta Freeze - devel freeze policy
Software String Freeze
2009-03-24
2009-03-31
Beta Release
2009-04-07 Software Translation Deadline
2009-04-14 Final Development Freeze - final freeze policy
2009-04-28 Preview Release
2009-05-12 Compose & Stage Release Candidate
2009-05-26
2009-06-02
Fedora 11 Final Release
Historically Test and General Availability releases happen at 10:00am Eastern US Time, which is either 1500UTC or 1400UTC depending on daylight saving in the United States. See Releases/Schedule for more information about scheduling methodology and schedule milestone definitions


Upstream Project Schedules

Links to other significant project schedules--useful for seeing see how Fedora lines up with them.

Key Features

  • Fedora 11 Features

    Fedora 11 Accepted Features

    These features have been accepted by the Fedora Engineering Steering Committee for the Fedora 11 Release.

    Category:FeatureAcceptedF11

    % Complete Name Summary Updated
    100% 20 Second Startup Make Fedora boot and shut down faster. The goal is to be at the login screen in 20 seconds and then to be as fast as possible after the login (gnome-session). 2009-04-14
    100% Anaconda Storage Rewrite New storage code to use udev for detection of block devices and rewritten modules for management of partitions (pyparted), LVM, Software RAID, and block device encryption (pycryptsetup). The rewrite does not change the user interface. 2009-04-14
    100% Archer Archer is a gdb development branch focusing on better C++ support. It also includes Python scripting capabilities. 2009-03-04
    100% Supported Architectures Change supported architectures and default installed kernels. 32bit x86 binaries will be rebuilt for i586. The PAE kernel will be used on 32-bit hardware, where appropriate. 2009-03-05
    100% Automatic Fonts & Mime Installer Allows programs on the desktop to automatically install applications, fonts, multimedia codecs and clipart. 2009-02-26
    100% ControlGroups Allows system administrator to partition the system resources into different sub groups, and dedicate these sub groups resources to different applications' need. 2009-04-14
    100% ABRT Automatic Bug Reporting Tool: Help non-power users with bug reporting, making it as easy as a few mouse clicks 2009-03-05
    100% Cups PolicyKit Integration Use PolicyKit to define policies for accessing the cups functionality. Cups policies can be configured with the same tools that are used for other PolicyKit-enabled parts of the system. 2009-03-05
    100% DBusPolicy Increase security settings of DBus 2009-03-05
    100% DeviceKit A simple, modular system service to manage devices and designed to partially replace hal. Users gain a graphical disk management application called palimpsest which integrates nicely into the desktop. 2009-03-06
    100% DNS Security DNSSEC (DNS SECurity) is mechanism which can prove integrity and authenticity of DNS data. 2009-04-15
    100% DRI2 Improve Direct Rendering Infrastructure 2009-03-02
    100% Eclipse Profiling Tools Add the power of various native profiling tools into the Eclipse IDE and integrate with the rest of the development environment. Specifically add Linux Tools, OProfile, and Valgrind integration. 2009-02-19
    100% Evdev2.2 Update to version 2.2 of the X.Org X11 evdev driver (xorg-x11-drv-evdev) 2009-03-09
    100% ext4 Default file system Make ext4 the default files system for anaconda-driven installs (replacing ext3). User should notice generally better performance, and benefit from things like persistent preallocation when using updated torrent clients, etc. 2009-04-17
    100% Fingerprint Better Out-of-the-box experience for systems with fingerprint readers. Support for one more piece of frequently found hardware. Configuration now available through graphical Authentication Configuration (authconfig). 2009-03-05
    100% Firefox 3.1 Upgrade Firefox to the latest release in the Mozilla 1.9.1 series (Firefox 3.1). 2009-03-03
    100% gcc 4.4 Switch GCC in Fedora 11 to 4.4.x Rebuild all packages with gcc 4.4.x 2009-04-17
    100% GFS2 A cluster filesystem allowing simultaneous access to shared storage from multiple nodes and designed for SAN environment. 2009-03-30
    100% Gnome 2.26 Update to Gnome 2.26 to ensure that Fedora stays in sync with the upstream version of the Gnome desktop. The user experience should be largely unchanged. 2009-03-18
    100% IBus A new default input method framework under active development which is designed to overcome the limitations of SCIM. 2009-04-15
    100% InputDeviceProperties X server 1.6 input devices provide a generic mechanism to change driver settings at runtime. The same mechanism may be used by applications to store information directly on device. 2009-02-26
    100% IntelKMS Enable kernel modesetting by default for Intel chipsets 2009-04-17
    100% K12Linux Linux Terminal Server Project (LTSP.org) was integrated into Fedora 10, in a convenient LiveUSB or DVD media installer. Now updated for Fedora 11. 2009-02-05
    100% KDE4.2 Rebase to KDE 4.2 and offer new features such as PolicyKit-KDE, NetworkManager plasma applet etc. 2009-03-04
    100% KVM PCI Device Assignment Assign PCI devices from your KVM host machine to guest virtual machines. 2009-03-11
    100% KVM and QEMU Merge Combine the kvm and qemu packages into a single package 2009-03-26
    100% Minimal Platform Enable small installations for a server or desktop appliance 2009-03-17
    100% NetBeans 6.5 NetBeans IDE 6.5 is a significant update of NetBeans IDE 6.1 which ensures that the latest version is available to developers. 2009-01-26
    100% NewTextUI A simplified and easier to maintain Text UI installer for Anaconda. Text mode is now the truly minimal install experience that a lot of people have requested. 2009-04-17
    100% Nouveau as Default Make Nouveau the default driver for NVIDIA graphics chipsets 2009-03-06
    100% Nouveau Modesetting Currently, modes are initialised by the 2D driver on X server startup. Kernel Modesetting (KMS) moves all of this into the kernel 2009-04-17
    100% OpenChange Natively access Microsoft Exchange using OpenChange. 2009-02-28
    100% PAM GDM Improve GDM's interaction with PAM so that it works with multiple simultaneous stacks at once 2009-04-17
    100% Power Management Improve the current state of power management, especially in regard to userland. 2009-04-17
    100% Presto The presto plugin for yum adds support for downloading deltarpms and using them to generate new packages. 2009-03-02
    100% Python 2.6 Include Python 2.6 in Fedora. 2009-04-17
    100% Radeon3DUpdate Update the radeon r100/r200 3D drivers to work with kernel modesetting and DRI2 2009-04-11
    100% rpm 4.7Update RPM to 4.7 in Fedora 11 to benefit from performance enhancements 2009-04-14
    100% System Security Services Daemon Provides a set of daemons to manage access to remote directories and authentication mechanisms. 2009-03-16
    100% Stronger Hashes Support hashes stronger than MD5 and SHA-1 2009-04-14
    100% SVirt Mandatory Access Control sVirt integrates SELinux with the Fedora virtualization stack to allow Mandatory Access Control (MAC) security be applied to guest virtual machines 2009-03-04
    100% Synaptics UpdateUpdate Fedora to ship xorg-x11-drv-synaptics version 1.x 2009-02-26
    100% Thunderbird 3 Upgrade Thunderbird to the latest release in the Mozilla 1.9.1 series which is Thunderbird 3 2009-03-03
    100% TigerVNC Make TigerVNC the default VNC client in Fedora. 2009-03-03
    100% UEFI provide a standard environment for booting an operating system and running pre-boot applications 2009-04-17
    100% Virt Improved Consoleimprove the user experiance for virtual guests' graphical console, by providing an accurate mouse pointer and higher screen resolution, without requiring manual configuration 2009-02-27
    100% Virt VNC Authentication A mapping of SASL authentication into the VNC protocol for QEMU and GTK-VNC 2009-03-09
    100% VolumeControl The multimedia experience of Fedora users is improved by an easily understandable and much more flexible volume control model. 2009-04-11
    100% Windows Cross-compiler Build and test full-featured Windows programs, from the comfort of the Fedora system, without needing to use Windows. 2009-03-11
    100% Xfce4.6 Update Xfce to the upstream 4.6 release with many new improvements and features. 2009-02-28
    100% Xserver 1.6 Update the X server in to 1.6 2009-04-17


    Customized Fedora 11 Spins

  • https://fedoraproject.org/wiki/Releases/11/Spins

Fedora 11 Release Schedule


Fedora Electronic Lab

Fedora's Electronic Laboratory is dedicated to supporting the innovation and development brought by opensource Electronic Design Automation (EDA) community.

Fedora Electronic Laboratory provides a complete electronic laboratory setup with reliable open source design tools in order to meet one's requirements to keep one in pace with current technological race.

As explained in the Download section, this opensource Electronic Laboratory can either be deployed via either:
  • yum,
  • a Fedora Electronic Lab LiveDVD or
  • as a cloud computing based solution.
  • Fedora Electronic Lab is
    • Fedora's EDA portfolio,
    • an opensource EDA provider and
    • opensource EDA community builder.

    Advantages

  • Deployable in both development and production environments.
  • No kernel patches are required, making it easy to deploy and use.
  • No licenses required and it is free.
  • Main Highlights

    "Fedora Electronic Lab" targets mainly the Micro-Nano Electronic Engineering field. It introduces:
    • a collection of Perl modules to extend Verilog and VHDL support.
    • tools for Application-Specific Integrated Circuit (ASIC) Design Flow process.
    • extra standard cell libraries supporting a feature size of 0.13µm. (more than 300 MB)
    • extracted spice decks which can be simulated with gnucap/ngspice or any spice simulators.
    • interoperability between various packages in order to achieve different design flows.
    • tools for embedded design and to provide support for ARM as a secondary architecture in Fedora.(Fedora-arm)

Embedded in Fedora

Embedded Systems Development Special Interest Group

An embedded system is a special-purpose system in which the computer is completely encapsulated by or dedicated to the device or system it controls. Unlike a general-purpose computer, such as a personal computer, an embedded system performs one or a few pre-defined tasks, usually with very specific requirements. Since the system is dedicated to specific tasks, design engineers can optimize it, reducing the size and cost of the product. Embedded systems are often mass-produced, benefiting from economies of scale. [1]

Mission

The goal of the Embedded Systems SIG is to make Fedora the number one choice for developers of embedded systems by providing the required tools neccessary to get started quickly.

We aim to accomplish this goal through a variety of activities:

  • Create high quality packages of cross-compilers and related tools.
  • Provide packaging guidelines.

If you are interested in helping out, connect to irc.freenode.net and join #fedora-embedded.


People

Documentation

  • /CrossCompiling - Guidelines for packaging cross-compilers.


Targeted Platforms and tools

Atmel AVR

The AVR is a 8 bit microcontroller created by Atmel , and is supported by open-source tools:

Available packages

  • AVRdude - In-system programmer.
  • avr-binutils
  • avr-gcc

Work in progress

  • None

Requested

Atmel AVR32

Analog Devices Blackfin

TIGCC

RTEMS

ARM

Probably just one of these. Or both?

  • [2] (this site just has mainline GCC and binutils, with instructions on how to build)
  • [3] (version of GCC and binutils with ARM-specific patches that eventually get merged into mainline)

Work in progress

Mingw Cross

SDCC - Small Device C Compiler

Maintainer: TrondDanielsen

SDCC is a Freeware, retargettable, optimizing ANSI - C compiler that targets the Intel 8051, Maxim 80DS390, Zilog Z80 and the Motorola 68HC08 based MCUs.

Misc