AT91RMCJ Microchip Technology / Atmel ARM Microcontrollers – MCU BGA IND TEMP datasheet, inventory, & pricing. AT91RMQU Microchip Technology / Atmel ARM Microcontrollers – MCU 16kB SRAM MHz – PWM datasheet, inventory, & pricing. AT91RM Microchip Technology / Atmel ARM Microcontrollers – MCU datasheet, inventory, & pricing.
|Published (Last):||2 April 2011|
|PDF File Size:||16.42 Mb|
|ePub File Size:||4.10 Mb|
|Price:||Free* [*Free Regsitration Required]|
My student research project was programming a bootloader and patching the Linux kernel and a root filesystem in a way that an Atmel AT91RM based microcontroller board does not only boot without problems, but is also a nice environment for applications.
The following text will give you a short introduction. This is a very good precondition for installing a unix like operating system afmel the MMU provides the virtualization and memory protection. In the meantime the research project in the department OMI is finished. It is available for download at91rm92000.
The following image of the board gives an impression of the boards population with electronic devices. It is a 4 layer board and electronic devices are mounted on top and bottom side.
The above image shows the top side.
You can spot the important components from left to right: I did solder all the components for myself, including passive components and the PHY controller. The bottom side includes most of qt91rm9200 passive circuitry and smaller active ciruits.
AT91RM – Microprocessors – Microcontrollers and Processors
I made an image of the bottom side, that I’ll show here:. The first part must be programmed in parts by myself. This part is the bootloader that initializes the hardware and configures the microcontroller. In prinziple there are already existing bootloaders for the ARM cpu, e. Unfortunatly these bootloaders only boot from a normal flash memory. My bootloader doesn’t require preprogramming the onboard flash but can be downloaded directly via the RS port using the boot-uploader of the AT91RM microcontroller.
Currently also an initrd is read from the compact flash card. Before loading the Linux kernel the to be used mac address of the ethernet port is read from nvram. The last 64 KiByte of the integrated flash memory are used as nvram.
Atmel AT91RM9200 (ARM9) Development Kit, Linux-ready
To make the handling with the compact flash cards easy the bootloader understands the partition table that is used by PC hardware. The Linux kernel is loaded from the first found, primary, bootable partition with type 0xda. Of course, the Linux kernel is able to access compact flash cards directly using the IDE driver after booting. As all data is known by reading data from the partition table used by the compact flash the kernel parameters are generated automatically by the bootloader.
If a compact flash card containing the “right” data, Linux kernel zImage on bootable primary partition with type 0xda and valid root filesystem it is loaded and started immediatly. If one of the conditions is not met the prompt of the bootloader is shown and the start can be done later.
As there are many, many different ARM based platforms Handheld PCs, Acorn Archimedes and additionally a lot of embedded systems it is required to fill a special structure before starting the system. This structure holds information about memory size and position, physical position of an initrd in main memory and more.
Many of the parameters could also be given via Linux command line options, but this way it is easier to handle for the user. It’s not only required to fill a structure called ATAG list but also necessary to supply the machine type when starting the Linux kernel.
The at991rm9200 type tells the Linux kernel which hardware is there. It’s important to compile the kernel with support for the machine type, otherwise the system wont boot, in the worst case without saying anything.
The ar91rm9200 holds a complete minimum system that is based on the buildroot environment of the uClibc. With the help of the Open Source GNU tools gcc, binutils and the uClibc a toolchain is generated that is able to compile software for ag91rm9200 root filesystem of the ARM based computer system. After generating the toolchain itself, it’s not only possible to compile the Linux kernel but also the software ateml the root file system.
The base software used is busyboxa universal tool holding the most important Linux base tools in at91r9m200 single application. A 32 bit single board computer. Self made computer My student research project was programming a bootloader and patching the Linux kernel and a root filesystem in a way that an Atmel AT91RM based microcontroller board does not only boot without problems, but is also a nice environment for applications. Hardware The following image of the board gives an impression of the boards population with electronic devices.
I made an image of the bottom side, that I’ll show here: The software consists of two main parts: Bootloader The first part must be programmed in parts by myself. Linux Kernel Of course, the Linux kernel is able to access compact flash cards directly using the IDE driver after booting.
Atmel ARM-based processors – Wikipedia
Root Filesystem The initrd holds a complete minimum system that is based on the buildroot environment of the uClibc. Starting the system These are the boot messages of my system: Loading 0xFB bytes of initrd Uncompressing Linux ECC disabled, Data cache writeback On node 0 totalpages: Testing write buffer coherency: Registered protocol family 16 NET: Registered protocol family 2 IP route cache hash table entries: Link now FullDuplex eth0: Disabling erase-suspend-program due to code brokenness.
Registered protocol family 1 NET: Registered protocol family 17 VFS: Mounted root jffs2 filesystem ta91rm9200.