Sunday, November 20, 2011

What is Software Engineering?

Software Engineering is the systematic aproach to the development, operation and maintenance of software. Software Engineering is concerned with development and maintenance of software products.
The primary goal of software engineering is to provide the quality of software with low cost. Software Engineering involves project planning, project management, systematic analysis, design, validations and maintenance activities.

Friday, November 11, 2011

Linux OS for ARM - Linux Kernels 2.4 and 2.6

Linux Kernel

When selecting a hardware platform for any embedded system project, it is essential to evaluate the software support provided. Platforms which offer full software support speed up time to market by enabling full focus on the customer's application. Technologic Systems provides Linux support for all our on-board hardware and our full line of PC/104 peripherals. The Linux Kernel is the default operating system shipped with the TS-7000 single board computers. Some third-party accessories provided directly by Technologic Systems also have guaranteed support through the provided Linux Kernel.
Note on versions: The Linux Kernel is available for all the TS-7000 single board computers. The TS-7200 series and the System-on-Modules use the version 2.4 as the default, although version 2.6 is also available for user development/installation. The TS-7800 series and the LCD-Ready FPGA Computers uses the 2.6 as the default Kernel (except the TS-7300).

Real-Time Linux

For better system responsiveness and guaranteed hard real-time service (high QoS), we can also provide real-time Linux operating systems either through RTAI (Real Time Application Interface) and other real-time interfaces or through modifications done to the standard Kernel closely coupled to the hardware.

Linux Distributions

Technologic Systems provides Linux distributions that can be as small as 4MB of on-board flash or as large as a complete embedded development environment or a embedded server running out of a Large flash media.
The small Linux distributions are based on the Busybox project. The TS-Linux is a mini-Linux distribution, shipped by default on the TS-7200 series, that includes Busybox, web-server, dropbear-server, FTP-server, and more.
For larger and more complete Linux systems, we make use of the Debian Linux distribution, enabling a desktop-like environment to run on a rugged and low-power embedded platform. The user can take advantage of all the benefits Debian provides, including a full GNU C/C++ development environment, many Linux services (NFS, FTP, SSH, web server, telnet, mail, database) and various Linux libraries and utilities.
In addition, any other Linux distribution that provides ARM support, such as the Fedora project, can be used with our TS-7000 ARM computers. Contact us should you need an alternate Linux distribution available for our ARM computers

Learn more

Linux Bootloader for ARM - Linux Boots Linux

Some of our more recent products, such as the TS-7400 and TS-7800 computers, make use of Linux as the default bootloader. This feature is enabled by our fast bootup process together with a bootload Linux user-space utility.
By using Linux as the default bootloader, all the benefits provided by Linux, such as libraries and various binaries, are available for users in a very early stage of the bootup process. This by itself is enough reason to avoid bootload-specific software such as RedBoot and Uboot. Our fast bootup solutions enable the Linux features to be available to the users in less than 2 seconds after power on. Why make use of a complex and heavy bootloader to load Linux when you already have Linux after 1 to 2 seconds?
Our Linux bootloader enables loading of Linux or any other operating system from a binary file (operating system image) stored in any Linux filesystem type (NFS, MTD, SD Card, etc). This also makes it easier and faster for Kernel and OS developers to deploy their software. For example, one can make use of this solution to test/debug a 2.6 Kernel or WinCE image while booted to Linux 2.4 Kernel.

eCos/RedBoot - Feature-Rich Bootloader

Technologic Systems provides eCos/RedBoot solutions for our TS-7200 ARM9 computers. eCos is an open source, royalty-free, real-time operating system intended for embedded applications. RedBoot is a complete bootstrap environment for embedded systems based on the eCos Hardware Abstraction Layer.
On the TS-7200 embedded computers, RedBoot is used as feature rich boot-ROM monitor that allows manipulation of the on-board flash, JFFS and YAFFS images, loading and execution of a kernel or executable from either tftp (trivial ftp), http or flash, and gdb debugging stubs. From RedBoot, one can load and execute any standalone binary. Most commonly, a Linux kernel or a Windows CE binary is used. One can also write applications within the eCos environment and load them with RedBoot.

TS-BOOTROM - Proprietary Bootup Firmware for ARM

Our ARM single board computers have specific BOOTROM firmwares which perform basic hardware initialization tasks and allow our computers to boot an operating system from different storage media.
For example, on power up, the TS-7200 board executes proprietary Technologic Systems boot-code, then immediately executes RedBoot. The TS-BOOTROM is stored in flash memory and is used to perform the first hardware configuration, such as the EP9301 initialization and TS-7200 hardware specifics, and to load the eCos/RedBoot system. The TS-BOOTROM serves as a reusable way of initializing and checking hardware so that it's not necessary to rewrite standard code for every desired OS. Some of the TS-BOOTROM configuration tasks include:
  • initializes the processor
  • turns off the watchdog timer
  • configures the serial UART to 115200 bps
  • initializes and tests SDRAM and FLASH
  • loads and runs RedBoot from flash
There is an intermediate boot loader on the TS-7000 computers which use the NAND flash technology, named TS-NANDBOOT. For the TS-7200 series, this is required because the EP9302 processor can't handle NAND devices. The TS-NANDBOOT contains specific routines to read the NAND flash memory and load the TS-BOOTROM, allowing the computer to boot from NAND.
Technologic Systems also designed the TS-SDBOOT used in the TS-7300, TS-7400 and TS-7800. TS-SDBOOT allows the processor to read/write code to an SD Card right after power up, using the TS-SDCORE FPGA IP core. Using this improvement, our boards can be designed to fully boot from an SD Card.
The TS-7800 SBC uses a more sophisticated bootup firmware which allows booting from either a micro SD Card, full-size SD Card or from the on-board 2k-page NAND flash. It allows loading of Linux to a shell prompt in under 2 seconds. Technologic Systems is able to provide more functionalities to its proprietary BOOTROMs, should you need further support. For more information regarding custom firmware designs, contact Technologic Systems.

Solutions for ARM Operating Systems & Bootloaders for ARM Single Board Computers

Technologic Systems' ARM solutions stand out in the market. The ARM processors we use are ideal for embedded systems that require low cost, low power, low instruction-set complexity, and high processing performance. Since our design techniques focus on overall ruggedness and reliability, our experience with the ARM architecture has allowed us to create the ideal line of ARM single board computers for hostile environments and demanding applications.
On the software side, our ARM computers are shipped with Linux running out-of-the-box. We decided to provided Linux as the default operating system because we embrace the open-source vision and believe in the benefits provided by an open-source community of developers. Experiences of users in the open source community provide the support developers need to succeed in the embedded industry. Due to the widely varied challenges common to the embedded industry, we believe this kind of support is more useful for development than the support found in commercial and proprietary solutions.
Technologic Systems provides software solutions for its ARM computers which include bootup firmwares and complete Linux operating systems and distributions. In addition, we offer tailored software solutions that leverage the potential of our computers, such as fast bootup Linux (under 2 seconds bootup to Linux) and the Linux boots Linux mechanism.

TS-4200 Atmel ARM9 with Very Low Powe

Click for more TS-4200 pictures - Atmel ARM9 with Very Low Power


Hardware Description


The TS-4200 is a low profile, credit card sized TS-SOCKET Macrocontroller module which features a 396MHz Atmel ARM9 and a 3K tile low power Actel A3P125 FPGA. With 64MB or 128MB RAM and a bootable 256MB on-board flash drive with our new XNAND technology, the TS-4200 is a powerful and extremely reliable embedded solution. External devices can connect to the TS-4200 via Ethernet, USB host, USB device, I2C, SPI, UARTs, or GPIO. Additionally, an external 16-bit address/data bus can be implemented through the use of 21 DIO pins. The two 100 pin downward-facing general-purpose headers make it easy to interface the TS-4200 with a standard TS-SOCKET baseboard or a baseboard of your own design.
The TS-4200 can run at a full 396MHz while consuming under half a Watt. The following features help meet this goal:
  • Efficient switching regulators
  • Low power Atmel CPU containing individual peripheral clocks that can be disabled when not required
  • Low power Actel FPGA clocked by the CPU only when needed
  • Low power 1.8V mobile RAM
  • Ethernet and SD card that can be disabled to save power

Hardware features include:
  • Ethernet MAC and PHY
  • 2 USB host (12 Mbps) and 1 USB device (480 Mbps)
  • Up to 6 UARTs (1 Auto-485 capable)
  • MicroSD card connector (or external full size SD)
  • 256MB XNAND storage
  • SPI
  • I2C
  • I2S
  • 4 ADC inputs
  • RTC*
  • 8KB NV SRAM*
  • Up to 78 DIO/GPIO**
  • Temperature Sensor***
  • Watchdog timer
  • Random number generator

TS-SOCKET Description

TS-SOCKET is an embedded computer standard designed and controlled by Technologic Systems, Inc. It defines both a form factor and a connection pin-out and is based on two 100-pin low-profile connectors, allowing secure connection between a TS macrocontroller (CPU board) and a baseboard. Please refer to theTS-SOCKET Standard and Embedded Macrocontrollers resource for more information.

TS-4200 Power Consumption

Under normal operation with TS-8200 baseboard and RS-232 driver, the TS-4200 consumes about 375mW (75mA @ 5V) of power.

XNAND Technology

Technologic Systems XNAND technology is an ultra reliable and industrial grade user-space device driver that uses Reed-Solomon codes, extra checksums, and a RAID-based technique to allow any Linux filesystem to be used with confidence on SLC NAND flash. Our TS-BOOTROM can also boot from XNAND for an ultra-reliable bootup. Please refer to the XNAND whitepaper for more information.

Software Description

The TS-4200 SBC boots to Linux 2.6.36.2 from either a microSD card or on-board XNAND drive. The 256MB on-board XNAND drive is enough to store a bootable kernel image, initial ramdisk image, and a minimal version of emDebian "Squeeze (Grip)" Linux. Storage memory can be expanded through the microSD card socket. A bootable microSD card must contain a Linux kernel image, an initial ramdisk image and a valid Linux root filesystem. The fast Linux bootup solution was optimized for speed and includes kernel, initrd, and filesystem (Busybox) tweaks. Since this board boots to an initrd (initial ramdisk) with a read-only mounted filesystem, it is possible to have something other than a shell prompt running after bootup by editing the /linuxrc shell script on the initrd. Additional TS-4200 software features include:
  • Boots Linux 2.6.36.2 out-of-the-box in less than 3 seconds (to a shell prompt).
  • MicroSD card pre-installed with minimal Debian "Squeeze" Linux distribution.
  • Un-brickable design ensures 100% recoverability from microSD card in case of on-board XNAND drive erasure.
  • Startup Linux mini-root scripts allow flexible root and backup filesystem selection (microSD, XNAND, NFS, USB flash), as well as software field upgrade support.

Linux OS and Debian Support

Technologic Systems' TS-4200 ARM Systems on Modules (SoM) are compatible with a wide range of Operating Systems (OS's). The Linux choice is highly recommended and our products are totally integrated with the open-source vision. The board ships with Linux 2.6.36.2 Kernel running out-of-the-box. There is no proprietary source code in the kernel since all the hardware specific functionalities are handled by user-space utilities (such as sdctl, nandctl, xuartctl, etc.). The Linux kernel includes driver support for on-board hardware, enabling quick time to market of end-users applications. Examples and source codes are also available for downloading.
The compact initial ramdisk filesystem is based on Busybox and uClibc and is improved for performance and flexibility. Specific Linux scripts and utilities that handle the TS-4200 functions are included. In addition, the full Debian binaries and services are available from the initial ramdisk after mounting the microSD card.
The TS-4200 TS-SOCKET macrocontrollers are configured to load Debian "Squeeze" Linux from the on-board XNAND drive or microSD card during boot up time. The on-board XNAND flash uses a minimal emDebian "Squeeze (Grip)" Linux distribution that has been compacted to fit in the 256MB space and leave about 124MB free for the user and includes utilities such as apt-get for installing and removing programs. The microSD card uses a full featured Debian "Squeeze" Linux distribution which includes a complete GNU C/C++ embedded development environment. In addition, Apache Web Server, FTP, SSH, Telnet, and Samba network services are available with C/PHP/Perl for embedded CGI development.

Eclipse IDE for ARM and Windows

The Eclipse IDE configured for embedded development with the TS-SOCKET system running Debian Linux is provided on our FTP site. Technologic Systems makes use of the Eclipse Europa release and the DSDP+CDT plugins in order to provide an advanced embedded IDE. Installation is easy and includes support for ARM crosstool chains, cygwin runtime-libraries, and a Java Development Kit. The Eclipse environment is already configured to allow a quick start to TS-SOCKET development. At start-up, the installed 'helloworld' example shows the user how to use the Eclipse functionalities, including cross-compilation, build-management configurations, binary download to the ARM SBC target, target management via SSH, FTP, telnet or serial console, client-server debugging with Eclipse debug view, etc.

TS-7558 Industrial Controller Box with Opto-Isolated I/O, PoE, and CAN

Software Description

The TS-7558 SBC boots to Linux 2.6.24 from either a microSD card or on-board XNAND drive. The 256MB on-board XNAND Drive is enough to store a bootable kernel image, initial ramdisk image, and a minimal version of Debian "Lenny" Linux. Storage memory can be expanded through the microSD card socket. A bootable microSD card must contain a Linux kernel image, a initial ramdisk image, and a valid Linux root filesystem. The fast Linux bootup solution was optimized for speed and includes kernel, initrd, and filesystem (Busybox) tweaks. Since this board boots to an initrd (initial ram disk) with a read-only mounted filesystem, it is possible to have something other than a shell prompt running after bootup by editing the /linuxrc shell script on the initrd. Additional TS-7558 software features include:
  • Boots Linux 2.6.24 out-of-the-box in less than 3 seconds (to a shell prompt).
  • MicroSD card pre-installed with minimal Debian "Lenny" Linux distribution.
  • Un-brickable design ensures 100% recoverability from microSD card in case of on-board XNAND drive erasure.
  • Startup Linux mini-root scripts allow flexible root and backup filesystem selection (microSD, NFS, USB flash) as well as software field upgrade support.

Data Acquisition

The TS-7558 ships with a full-featured, open source data acquisition driver utility called daqctl. This utility gives full control over a wide variety of TS-7558 hardware features including ADC, PWMs, quadrature, counters, and timestamped glitch detection. The FPGA can easily be programmed to interrupt the CPU under a wide variety of external conditions. A data acquisition network service is also supported, allowing for software control on a remote system.

Linux OS and Debian Support

Technologic Systems' TS-7558 ARM Single Board Computers (SBC) are compatible with a wide range of Operating Systems (OS's). The Linux choice is highly recommended and our products are totally integrated with the open-source vision. The boards ship with Linux 2.6.24 kernel running out-of-the-box. There is no proprietary source code in the kernel since all the hardware specific functionalities are handled by user-space utilities. The Linux kernel includes driver support for on-board hardware, enabling quick time to market of end-users applications. Examples and source codes are also available for downloading.
The compact initial ramdisk filesystem is based on Busybox and uClibc and is improved for performance and flexibility. Specific Linux scripts and utilities that handle the TS-7558 functions are included. In addition, the full Debian binaries and services are available from the initial ramdisk after mounting the microSD card.
The TS-7558 SBCs are configured to load Debian "Lenny" Linux from the on-board XNAND drive or microSD card during boot up time. The on-board XNAND drive uses a minimal Debian "Lenny" Linux distribution that has been compacted to fit in the 256MB space and leave about 70MB free for the user and includes utilities such as apt-get for installing and removing programs. The microSD card uses a full featured Debian "Lenny" Linux distribution which includes a complete GNU C/C++ embedded development environment. In addition, Apache Web Server, FTP, SSH, Telnet and Samba network services are available with C/PHP/Perl for embedded CGI development.

Eclipse IDE for TS-7000 and Windows

The Eclipse IDE configured for embedded development with the TS-7000 ARM9 computers running Debian Linux is provided on our FTP site. Technologic Systems makes use of the Eclipse Europa release and the DSDP+CDT plugins in order to provide an advanced IDE and makes embedded development easier. ARM crosstool chains, cygwin runtime-libraries and a Java Development Kit are included in the zip file, therefore Eclipse IDE will run out-of-the-box (no need for installation) in your Windows PC. The Eclipse environment is already configured to allow a quick startup with a TS-7000 embedded development. After start-up, the installed 'helloworld' example shows the user how to use the Eclipse functionalities, including cross-compilation, build-management configurations, binary download to the TS-7000 target, target management via SSH, FTP, telnet or serial console, client-server debugging with Eclipse debug view, etc.

CAN Bus Support in User Space

The TS-7558 utilizes an SJA1000C-compatible FPGA core out of the box complete with documentation and sample code. The sample code provides a simple utility to send/receive CAN packets and perform useful and common functions with the CAN bus from userspace. Additionally, this sample code includes network CAN service and can be automatically started on TS-7558 bootup which makes the writing of CAN enabled applications even simpler and furthermore allows for the possibility of development in languages other than C (Java, Python, etc..) and on systems other than the local Linux SBC (Linux/x86, Windows, etc..)

TS-7558 Industrial Controller Box with Opto-Isolated I/O, PoE, and CAN

The TS-7558 is a multi-functional industrial controller based on a Cavium 250MHz ARM9 CPU that provides industrial grade opto-isolated input/output channels. Other features include Ethernet, PoE, USB Host, CAN, RS-232, RS-485, ADC, PWM, Counters, etc. The plastic enclosure with DIN wall mounting support makes it a clean solution for industrial automation applications.

Hardware Description

The TS-7558 features a 250MHz Cavium ARM9 CPU and a 5000 LUT Lattice FPGA. With 64MB RAM and a bootable 256MB on-board flash drive with our new XNAND technology, the TS-7558 is a powerful and extremely reliable industrial embedded solution. External devices can connect to the TS-7558 via Ethernet, USB, RS-232, RS-485, or CAN. The TS-7558 can be powered by PoE or by a DC power supply anywhere in the 5-30V range. An internal microSD slot allows for expanded storage.
The rugged screw-down terminals provide the following interfaces:
  • 8 opto-isolated digital inputs
  • 4 opto-isolated digital outputs
  • 4 analog inputs
  • power supply input (5-30V)
The digital inputs can act as edge counters, quadrature decoders, ADC triggers, or simple inputs. The outputs can be used for PWMs. The TS-7558 also provides an internal header with the following functionalities:
  • Debug console
  • DIO
  • UARTs
  • SPI
  • I2C

Rugged Plastic Enclosure

Available with a DIN mount, the enclosure makes the TS-7558 ready for immediate deployment. The enclosure label clearly identifies the pinouts on the rugged screw terminals.

XNAND Technology

Technologic Systems XNAND technology is an ultra reliable and industrial grade user-space device driver that uses Reed-Solomon codes, extra checksums, and a RAID based technique to allow any Linux filesystem to be used with confidence on SLC NAND flash. Our TS-BOOTROM can also boot from XNAND for an ultra-reliable bootup. Please refer to the XNAND whitepaper for more information.

Open FPGA

The TS-7558 FPGA programming is open-source. If the many features provided in the standard load don't meet the needs of your application, you can modify the FPGA logic or hire Technologic Systems to do so for you.
Upon bootup, the default software automatically checks for an FPGA bitstream and loads it if it is present, overriding the default FPGA programming. To create your own bitstream, you need only the following resources: