Arcturus stands behind it products by including installation support with all development kits. Additional resources, software updates, faq’s, documentation, schematics and application notes may be obtained by customers who register with the product support centre.
Frequently Ask Questions
- What is included with a development Kit?
- What is a uCdimm Microcontroller Module?
- What is uClinux?
- Why should I use an Arcturus kit over a regular eval board?
- Are there tools included with the BSP?
- What does the development environment consist of?
- How does the development environment work?
- What are the recommended system requirements?
- What bootloader is included with the modules?
- Can I put my own executable code or OS on a module?
- Is uClinux Real-time?
- Is the bootloader opensource?
- What happens during boot time?
- What is the business model for the embedded microprocessor modules?
- Can designs be licensed?
What is included with a development Kit?
Development kits are designed to help fast-track your product development, they include complete hardware, embedded software, tools, docuementation and support. The kit contents and options may vary slgihtly depending on features and performance, but generally each kit contains:
- Embedded Microprocessor Module (Hardware)
- Host Board (Hardware)
- uClinux Board Support Package (Software)
- Kernel, Applications, Utilities, Test Code (Software)
- uClibc embedded library collection (Software)
- GNU Tools including GCC and GDB (Tools)
- uCbootloader (Software)
- Power Supply
- Hardware/Firmware Reference Guide
- Schematics (hardware)
- Installation Support
What is a uCdimm Microcontroller Module?
A uCdimm microprocessor module is a 144pin soDIMM form-factor embedded hardware and software device. Each uCdimm includes everything required to make a network enabled, fully functioning system. It requiresonly a power source and connectors or host board. The modules are business card sized, approximately 1.7h x 2.7w. They generically feature the uClinux embedded operating system, RAM (minimum 8MB) and Flash (4MB minimum), Ethernet (1 or 2) and RS232 Serial Interfaces (1 or more). Specific modules offer features geared more towards unqiue application functionality such as the integrated LCD controller, dual Ethernet, CAN bus...
What is uClinux?
uClinux is Linux for micrprocessors without on-board memory management. It is designed to bring the same level of robust and industry leading networking to microprocessors commonly used in embedded application such as ARM7/9, MIPS, SH, ColdFire and BlackFin. The uClinux system is an essential implementation meaning that the kernel, C library collection and applications have been optimized to reside in (and use) minimal resources. While uClinux is not dependant on memory management hardware, it is portable to MMUful environments and has the advantage of lower latency that is caused by TLBs in MMUful systems. uClinux is complete with a set of optimized libraries known as uClibc and relies on the GNU tools, including GCC (GNU Compiler Collection) for cross-compilation from host to target architectures and GDB the GNU Debugger.
Why should I use an Arcturus kit over a regular eval board?
Module based development kits are quite different from a semiconductor Eval boards which are typically large and cumbersome. Semiconductor vendors design these boards to give developers maximum access to every aspect of their particular semiconductor device. This is helpful during the device familiarization and software development process; however, as a developer you will still need to design your own hardware, port software and potentially an operating system, then port the whole mess across onto your protoype hardware, which may or may not work correctly. Arcturus uCdimms are designed to simplify this whole process, making it easier and faster to develop product. By using a module, developers work directly with end hardware, already equipped with an extensible OS, tools for cross-compiling and a bootloader to initialize and manage the flash. Other than application software, the only designing required is a final host board suited to the needs of the development, a reference design along with schematics is provided.
Are there tools included with the BSP?
The cross compilation tools and debugging tools provided with the BSP are based on GNU Compiler Collection (GCC) and GNU Debugger (GDB). Optional graphic front-end support for GDB is publicly available (DDD).
What does the development environment consist of?
The development environment consists of three elements:
- the target hardware and its resident software
- the development workstation
- the interconnection between these two machines
Target - The target hardware (Arcturus Module), minimally including;
- an Ethernet controller
- a serial port
- a resident OS, uClinux
In addition, the kits include a host board that provides a socket for the module and appropriate connectors, power regulator, I/O, indicators and reset functions to access its resources.
Workstation - The second element of the development environment is the workstation. It is essentially a typical Linux box that should have at least one available: serial port (or USB with adapter) for the terminal emulator software (minicom is included in most Linux distributions), one Ethernet card and a CD. The CD contains the uClinux Board Support Package.
Interconnection - The third and last element of the development environment is the interconnection between the workstation and the target. There are potentially three such connections:
- The RS232 serial connection
- The Ethernet connection
- Debug Facility if available (BDM / JTAG) (GDB server is used for DragonBall)
How does the development environment work?
The developer uses the Linux workstation for the design and implementation of the embedded application. The usual resources of a Linux workstation are available including the X Window System and familiar editors such as emacs, vi, or nedit and so on. Once the source code for the application is ready for testing, it is compiled, incorporated into a uClinux image, and transferred to the uCdimm RAM, either by serial upload or via the flashloader command which relies on the NFS mounted directory. Once the image is in the uCdimm RAM, it can be run from RAM or loaded into the FLASH ROM and then executed. It should be noted that an image built to be run from RAM is different from one to be run from the FLASH ROM; i.e. these images are mutually exclusive.
What are the recommended system requirements?
The host development system should be a current PC based device running an up-to-date Linux distribution. Many flavors of Linux are supported, but primary testing is focused on RedHat and SuSe distributions. The host machine will require an available Ethernet interface, CD-Rom drive, serial port and terminal emulator.
What bootloader is included with the modules?
As with any embedded system, the device requires a bootloader, in the case of the microprocessor modules, the bootloader is the uCbootloader. The uCbootloader does everything a typical bootloader does and includes some very useful features in addition. uCbootloader is designed to bring up hardware to a known state and test peripherals. The bootloader then passes control over to the OS. In addition uCbootloader also manages the onboard flash device, enabling reading, writing and erasing images, environment variables or persistent objects, even upgrading itself. uCbootloader also can verify images, perform self-tests, and arbitrate between firmware images (note that not all features are available on every platform). The uCbootloader also traps errors and attempts to recover helping to prevent device lockout, it also provides system calls, a command line interface, console support and a published API.
Can I put my own executable code or OS on a module?
The bootloader is agnostic, as long as your executable code is valid and resides in the correct memory location uCbootloader will attempt to execute it. The bootloader also provides tools to write images to flash as well as environment variables and support for persistent objects, Trivial-FTP and a console. All of these features can help can help with development regardless of OS or monolithic executable.
Is uClinux Real-time?
Generically uClinux is non-deterministic, as is Linux in general; however, by applying a hard real-time micro kernel to uClinux, the micro kernel can pre-empt the Linux kernel during tasks or interrupts that require real-time performance. Hard real-time is available on a number of architectures under uClinux including ColdFire and ARM and may be licensed independently. Contact Arcturus Sales for more information.
Is the bootloader opensource?
The uCbootloader is proprietary to Arcturus; and licensed perpetually with every module purchased. uCbootloader can also be licensed as binary or source code and can be customized to include various functions such as dual image failover, remote upgrade, compressed filesystem support.
What happens during boot time?
After applying power the bootloader begins to test and initialize hardware and immediately enables the default console port. It then writes to default console a series of Flash memory sector information. This data dump enables the user to readily identify which sectors in flash contain data, are available to be written to, or are flagged as dirty to be cleaned by the bootloader automatic garbage collection. From this point the default bootloader spawns a shell and waits at a command prompt (B$) for user intervention. At the shell prompt the user has a number of options available through the command line interface. Options include:
- Configuring the default console (speed, port)
- Upload an image
- Set an environment variable
- Display an environment variable
- Display the contents of a directory
- Display the contents of a file
- Burn boot sectors from RAM
- Erase the entire flash device
- Detect and display the type of flash device
- Configure the default OS execution parameters
- Execute the current image in flash
What is the business model for the embedded microprocessor modules?
The business model is based on a per unit purchase price that starts at about $75USD in volume (depending on module and functions). Individual unit pricing and quantity breaks are offered as low as QTY 6pcs, 26, 101 and 501+. Check with Arcturus Sales for most current pricing and availability. Customization is available in quantity.
Can designs be licensed?
Hardware designs are available for licensing and integration. License fees vary based on volume, consult Arcturus Sales for current pricing.
Middleware FAQ's Coming soon!