Armadillo240 is a compact CPU board that can be mounted on Linux with ARM, which is sold from At Mark Techno. Three development tools from Atmark Techno, Inc., ATDE2 (Atmark Techno Development Environment), GNU cross development tool, AtmarkDist are provided, which makes cross development easy.
In this example, we will cross-develop the executable file of the RT component that can be executed by Armadillo. After that, after starting Armadillo, create an image file (romfs: root file system) that the RT component automatically starts up.
(G)Workflow
Development of cross development environment
Maintenance of ATDE2 (installation of necessary packages)
Cross compiling and installing of OpenRTM-aist
Cross compiling of RT components
Start executable file on Armadillo240
Create image file of Armadillo240
Operation confirmation on RtcLink
(G)Building cross development environment
Create an executable file of RT component that can be executed by Armadillo by cross-compiling. The development environment of Armadillo series is distributed from Atmark Techno, Inc. as a VM image, and necessary tools for cross development environment are pre-installed.
(G)Downloading ATDE2 and VMware
ATDE2
ATDE2(Atmark Techno Development Environment) is a virtual PC image for VMware for Admadillo cross development environment distributed from AtmarkTechno. The entity is Debian GNU Linux, and the tool chain necessary for cross development is installed in advance.
Virtual PC software freely distributed from VMware Inc. can execute VMware's virtual PC image. It is necessary to start ATDE2. Although there are Windows version and Linux version, we will proceed as below using VMware Player for Windows version.
Unzip ATDE2-20071018.zip, double click on ATDE2.vmx in the folder you unzipped, or select ATDE2.vmx from ATDE2-20071018 in the folder extracted from file > Open of VMware.
Start up ATDE2 with VMware
Start up with "Start this virtual machine".
There is no login work and the Desktop of ATDE2 is displayed.
(G)Development of ATDE2 development environment
ATDE2 already has a cross-compiling environment, but it is necessary to prepare an environment that allows cross-development of RT component of OpenRTM. On the started ATDE2 download the following source and shell script and place it in the appropriate working directory under the home directory.
Build OpenRTM's ARM cross-compilation environment on Debian host.
arm-cross-install.sh downloads the deb package with the apt-get command. Add the URL containing the deb package to sources.list. Become root (password: root) with the su command and add the URL below to /etc/apt/sources.list.
deb http://downloads.pylone.jp/cross-toolchain/deb ./
deb http://www.openrtm.org/pub/Linux/debian/ etch main
Leave root, install the package with the apt-get command.
# apt-get update
# apt-get install python-yaml (Please enter yes or Y to complete the installation.)
The python-yaml package is required for rtc-template after installing OpenRTM.
Construct the OpenRTM-aist arm-cross-compilation environment with arm-cross-install.sh. Since a lot of data is downloaded, create an appropriate working directory and execute arm-cross-install.sh in it.
# sh arm-cross-install.sh (Please enter yes or Y to complete the installation.)
By running arm-cross-install.sh, packages necessary for cross-compiling OpenRTM-aist are downloaded and installed, but as a side effect, some packages such as gdm are deleted I will. When gdm is deleted, the graphical desktop screen will not be displayed. If you want to return it, reinstall gdm as follows.
# apt-get install gdm (Please enter yes or Y to complete the installation.)
# /etc/init.d/gdm start
The maintenance of the ATDE2 environment is completed with the above.
(G)Cross compilation of OpenRTM-aist
(G)Build OpenRTM-aist
Deploy the OpenRTM-aist-0.4.2 source code to a suitable directory such as home directory. After deployment, go to the created directory.
# tar zxvf OpenRTM-aist-0.4.2.tar.gz
# cd OpenRTM-aist-0.4.2
Normally we will run configure here, but to cross-compile OpenRTM you need to specify the appropriate options for configure. By using config.sh downloaded above, you can run configure by specifying options necessary for cross compiling, so use config.sh here. Copy config.sh to the current directory and execute it with the installation directory as an argument.
# cp ../config.sh ./
# sh config.sh/usr/arm-linux-gnu
Please confirm that config.sh was completed normally. Make it when the build is completed normally.
The following directories must be built successfully. Once the build is completed successfully, install header files, libraries, and utility commands.
(G)Installing OpenRTM-aist
It is installed in /usr/arm-linux-gnu/specified in config.sh.
# make install
A sample executable file is generated in /usr/arm-linux-gnu/share/examples/.
(G)Cross-development of RT components
With this, the environment for cross development of the RT component is in place. Here, as an example, try cross-compiling using the source of SeqOutComp included in the sample.
(G)RT component cross development
To cross-develop an RT component, you need to use the command for cross development, so pass it through the (/usr/arm-linux-gnu/bin) path as follows. Be careful that /usr/arm-linux-gnu/bin is at the beginning of PATH when passing through the path.
> export PATH=/usr/arm-linux-gnu/bin:$PATH
(G)Generate the RT component of SimpleIO with rtc-template.
Create a suitable directory to create the sample and copy the following files contained in the OpenRTM sample SeqOut source into it.
> mkdir test
> cp (installation directory)/OpenRTM-aist-0.4.2/examples/SeqIO/SeqOutComp.cpp ./test/
(Copy all with the above command)
We create a component called SeqOutComp with eight OutPorts.
(G)Build RT component
Please check the contents of the generated Makefile.SeqOut. If there is no line beginning with CXX =, you need to specify the cross compiler for the compiler as follows.
Set environment variable and make make
> CXX=arm-linux-gnu-g++ make -f Makefile.SeqOut
or
> export CXX=arm-linux-gnu-g++
> make -f Makefile.SeqOut
When make completes normally, SeqOutComp executable file is generated.
(G)Running the RT component
Copy cross-developed executable files, libraries, etc. to USB memory and start up on Armadillo240.
(G)Preparing the USB memory
Copy and generate the files necessary for executing the RT component on the Armadillo240 to the USB memory.
Executable file
Executable file of the RT component you want to run on Armadillo240.
In this example, we use SeqOutComp that we cross-compiled earlier. Copy SeqOutComp to the appropriate location (such as the root directory) of the USB memory.
Library
Library of ARM is stored under /usr/arm-linux-gnu/lib of ATDE2.
Of the libraries in this directory, copy the following to the USB memory. Create a directory lib to place the library in the USB memory.
>mkdir lib
or
For the GUI, right click to create a folder
When copying the library of /usr/arm-linux-gnu/lib, change the name as follows.
OpenRTM-aist-0.4.2 case
Change library name When copying, please change the name as follows.
Library name
After changing library name
libomniDynamic4.so.0.6
libomniDynamic4.so.0
libomniORB4.so.0.6
libomniORB4.so.0
libomnithread.so.3.1
libomnithread.so.3
libRTC - 0.4.2 .so.0.0.4
libRTC - 0.4.2.so.0
librt.so.1
librt.so.1 (no change)
libACE.so.5.4.7
libACE.so.5.4.7 (no change)
For OpenRTM - aist - 1.0.0
Change library name
Library name
After changing library name
libm -2.3.6.so
libm.so.6
libomiDynamic4.so.0.6
libomniDynamic4.so.0
libomnithread.so.3.1
libomnithread.so.3
librt.so.1
librt.so.1 (no change)
libRTC - 1.0.0 .so.0.0.4
libRTC - 1.0.0.so.0
libstdc ++. so.6.0.8
libstdc ++. so.6
libuuid.so.1.2
libuuid.so.1
rtc.conf
Please create rtc.conf like below using a text editor.
Since Armadillo does not start the name server, please start the name server on another PC. For the option of corba.nameservers in rtc.conf, specify the address of the PC that started the name server.
corba.nameservers: 192.168.100.1 (Enter the IP address of your name server)
naming.formats:% n.rtc
* Mounting of USB memory with ATDE2
When inserting the USB flash memory into the PC while VMware (ATDE2) is running, it can be mounted automatically and checked on Desktop.
If it is not mounted automatically, use the su command on VMware (ATDE2) terminal to become root and mount again.
USB memory mounted
> su
# mkdir /mnt/(suitable directory)
# mount - t vfat/dev/sdb1/mnt/(directory created above)
Unmount USB memory
If the USB memory icon is displayed on the Desktop, right click> unmount it. &br;
Or you can unmount it with the command from the console. &br;
# umount /mnt/(the directory created above)
(G)Directory structure of USB memory
After preparing the USB memory, the USB memory has the directory structure as shown below.
(G)Start executable file with Armadillo240&aname (start240);
Change the USB memory mount setting and library PATH setting, and move the executable file. You can operate Linux on Armadillo by connecting the PC and Armadillo with a serial cable and logging in from Linux serial console on Armadillo. Please proceed with the following easy method.
(G)Operate with minicom from ATDE2
From ATDE2, operate with terminal emulator program minicom. Connect the serial port of the PC and the serial port of Armadillo with a serial cable. For a PC without a serial port, you need to use a USB-serial conversion cable or the like. Refer to the Armadillo manual for how to connect the Armadillo serial cable.
Configure the VMware virtual machine's device as follows.
Menu bar > VM > Settings > Hardware tag
(It can be set with VMware Workstation and VMware Console.)
Configure VMware's USB serial port
Please check the connection check.
Configure VMware's serial port
Check the device status and check the port using Connection> Physical Serial Port. Start the terminal emulator minicom from the terminal of ATDE2.
> minicom
Press Enter to display the Armadillo240 login screen. Please proceed to & color (Maroon) {common operation}; thereafter.
(G)Operate with Windows terminal emulator (teraterm)
You can also connect to Armadillo's serial console from Windows using a terminal emulator such as TeraTerm. TeraTerm can be downloaded for free from here. Please start with the following setting.
Menu bar> Settings> Serial port setting>
Port/optional
Baud rate/115200
Data/8bit
Parity/none
Stop/1bit
Flow control/none
When starting with the above setting, the login screen of Armadillo240 will be displayed. If it is not displayed, press Enter. Please proceed to the common operation after that.
(G)Common operation
Please plug the USB memory into Armadillo. Please log in as root (password: root) on Armadillo login screen. The default mount is an option (umous=111), which permission setting any user can not execute.
Once unmounted, it will be remounted with the -o rw option that can be written and executed.
# umount/dev/sda1
# mount - t vfat - o rw /dev/sda1/home/www-data/storage/
In order to pass the library path, move to the USB memory with the command as a guest.
# su guest
> cd /home/www-data/storage
Pass through the path of the library. (Please specify the directory where the library is located.)
In this method, you have to modify the setting every time you start Armadillo. In the next chapter, after Armadillo starts, it creates an image file that the RT component automatically starts and downloads it to Armadillo.
(G)Create an image file of Armadillo240
With the previous method, it is necessary to change the setting with the terminal emulator every time Armadillo starts up. In this case, use atmark-dist provided by AtmarkTechno, Inc, create an image file that RT component automatically starts after Armadillo240 start up, and download it to Armadillo.
(G)Development environment development
Use the environment of ATDE2 cross-compiled RT component as it is. Please download the following items on ATDE2.
openrtm_new.patch, Atmark-dist (2009/03/18) with the verification of patch Fixed the file. (2010/02/12)
(G)Build and configure atmark-dist
Here, we will create an image file of userland of Armadillo. By using the image file created here, you can start RT Component that was previously installed in USB memory automatically.
(G)How RT Component starts
Mount the USB memory to /home/openrtm/, and start Armadillo /home/openrtm/boot.sh. boot.sh starts the executable file through the library path in the USB memory.
OS setting
Write USB memory, executable and mount on /home/openrtm/.
When USB memory is mounted, start boot.sh directly under the USB memory.
Contents of USB memory
Please prepare the following files in the USB memory.
boot.sh
Shell script to launch after Armadillo240 starts. Please prepare the following boot.sh directly under the USB memory. Run the executable file through library PATH.
This is the setting when rtc.conf is placed under the USB memory and the library is placed in the lib directory. Correct according to the directory structure of the USB memory.
Please download atmark-dist and linux kernel, openrtm.patch on ATDE2 and expand it.
> tar zxvf atmark-dist - 20090318.tar.gz
> tar zxvf linux - 2.6.12.3 - a9 - 15. tar.gz
Go to the directory of the expanded atmark - dist and make a symbolic link of the linux kernel. Link name must be . /linux-2.6.x regardless of ver of linux.
> ln -s ../linux-2.6.12.3-a9-15 ./linux-2.6.x
make make config. Please enter the following as below.
> make config
Select the Vendor you wish to target: Atmarktechno (input)
Select the product you wish to target: Armadillo-240.Recover (input)
Kernel is linux - 2.6.x: default (even with enter)
defined CONFIG_DEFAULTS_CROSSDEV_DEFAULT: none (also OK)
Default all settings: y (input)
Customize Kernel Settings: n (even enter)
Customize Vendor / User Settings: n (even enter)
Update Default Vendor Settings: n (also OK, end)
Copy openrtm.patch and apply the patch as follows.
Go to the atmark-dist-YYYYMMDD directory and make dep all all.
> cd ../../../
> make dep all
While make make all, the following error message is displayed, but romfs is generated normally.
/bin/sh: extensions/.dccp-test: No permission
/bin/sh: extensions/.layer 7-test: No permission
/bin/sh: extensions/.statistic-test: No permission
make[2]: Enter directory `/home/atmark/Desktop/foratde/forkernel/atmark-dist-200807 17/user/iptables'
romfs-inst.sh /bin/iptables
romfs-inst.sh -l /bin/iptables/bin/iptables-save
Accessing ln: `/bin/iptables': No such file or directory
romfs-inst.sh -l /bin/iptables/bin/iptables-restore
Accessing ln: `/bin/iptables': No such file or directory
After making make, four files are generated in the images directory.
> ls images
linux.bin linux.bin.gz romfs.img romfs.img.gz
In the next chapter write romfs.img.gz to Armadillo.
(G)Download image file to Armadillo240
Download the generated userland image file romfs.img.gz to Armadillo240. Armadillo short the jumper pin (2), please turn on the power (Armadillo Hardware Manual please refer to p.16)
You can download from either VMware (ATDE2) or Windows.
(G)Download from ATDE2
Here to configure the device of VMware virtual machine before proceeding.
Connect the Armadillo-240 and the PC with a USB serial cable (or serial cable).
Download images/romfs.img.gz with hermit from the terminal console of ATDE2.
> hermit download - i images/romfs.img.gz - r userland - port/dev/ttyUSB 0 (or /dev/ttyS0)
Please put downloader > win32 > Hermit.zip of CD-ROM bundled with Armadillo240 on Widows.
Extract Hermit.zip on Windows and double-click Hermit.exe to start it.
Windows上のHermit
Connect the Armadillo240 to the PC via the serial port.
Move romfs.img.gz generated on ATDE2 on Windows.
Configure the serial port in the displayed dialog and press Download. Set romfs.img.gz created with images to userland in Region and click the download button to download. (It will take about 8 minutes.)
When downloading is completed, it will be displayed in Hermit.
(G)Execution/confirmation of RT component
Start RTCLink and confirm start of RT component.
After the image file download is completed, remove short circuit of Armadillo's jumper pin (2), plug the power supply and restart it.
When you run the RT component, start the name server specified in rtc.conf.
For Windows
Execute "OpenRTM-aist" > "example" > "NameService.bat" from the program menu.
Alternatively, double click on rtm - naming.bat in OpenRTM-aist\bin and start it.
For Linux
Become root with the su command and start the name server.
> su
# /etc/init.d/omniorb4-nameserver start
Start up RTCLink and check that the component is created on the name server.
If the name server is not displayed, please push the Connect Name Server button and add a name server.
(G)Application example
(G)Armadillo + URG sensor
Combined with Armadillo and Hokuyo Electric URG sensor, it is a unit to easily construct a distributed sensor system. The URG sensor RT component works on Armadillo. (RTC starts automatically at the same time as Armadillo power is turned on.) By using Armadillo compatible with PoE (Power over Ether), communication and power supply are possible only with the LAN cable. The URG sensor also operates with power supply from PoE. Sensor arrangement is possible with only one cable, so you can easily construct a distributed sensor system.
Armadillo240 is a compact CPU board that can be mounted on Linux with ARM, which is sold from At Mark Techno. Three development tools from Atmark Techno, Inc., ATDE2 (Atmark Techno Development Environment), GNU cross development tool, AtmarkDist are provided, which makes cross development easy.
In this example, we will cross-develop the executable file of the RT component that can be executed by Armadillo. After that, after starting Armadillo, create an image file (romfs: root file system) that the RT component automatically starts up.
(G)Workflow
(G)Building cross development environment
Create an executable file of RT component that can be executed by Armadillo by cross-compiling. The development environment of Armadillo series is distributed from Atmark Techno, Inc. as a VM image, and necessary tools for cross development environment are pre-installed.
(G)Downloading ATDE2 and VMware
(G)Activating ATDE2 and VMware
Unzip ATDE2-20071018.zip, double click on ATDE2.vmx in the folder you unzipped, or select ATDE2.vmx from ATDE2-20071018 in the folder extracted from file > Open of VMware.
(G)Development of ATDE2 development environment
ATDE2 already has a cross-compiling environment, but it is necessary to prepare an environment that allows cross-development of RT component of OpenRTM. On the started ATDE2 download the following source and shell script and place it in the appropriate working directory under the home directory.
(G)Cross compilation of OpenRTM-aist
(G)Build OpenRTM-aist
Deploy the OpenRTM-aist-0.4.2 source code to a suitable directory such as home directory. After deployment, go to the created directory.
(G)Installing OpenRTM-aist
It is installed in /usr/arm-linux-gnu/specified in config.sh.(G)Cross-development of RT components
With this, the environment for cross development of the RT component is in place. Here, as an example, try cross-compiling using the source of SeqOutComp included in the sample.
(G)RT component cross development
(G)Generate the RT component of SimpleIO with rtc-template.
Create a suitable directory to create the sample and copy the following files contained in the OpenRTM sample SeqOut source into it.
We create a component called SeqOutComp with eight OutPorts.
(G)Build RT component
Please check the contents of the generated Makefile.SeqOut. If there is no line beginning with CXX =, you need to specify the cross compiler for the compiler as follows.
Set environment variable and make make
When make completes normally, SeqOutComp executable file is generated.
(G)Running the RT component
Copy cross-developed executable files, libraries, etc. to USB memory and start up on Armadillo240.
(G)Preparing the USB memory
Copy and generate the files necessary for executing the RT component on the Armadillo240 to the USB memory.
In this example, we use SeqOutComp that we cross-compiled earlier. Copy SeqOutComp to the appropriate location (such as the root directory) of the USB memory.
Of the libraries in this directory, copy the following to the USB memory. Create a directory lib to place the library in the USB memory.
When copying the library of /usr/arm-linux-gnu/lib, change the name as follows.
Since Armadillo does not start the name server, please start the name server on another PC. For the option of corba.nameservers in rtc.conf, specify the address of the PC that started the name server.
If it is not mounted automatically, use the su command on VMware (ATDE2) terminal to become root and mount again.
(G)Directory structure of USB memory
After preparing the USB memory, the USB memory has the directory structure as shown below.
(G)Start executable file with Armadillo240&aname (start240);
Change the USB memory mount setting and library PATH setting, and move the executable file. You can operate Linux on Armadillo by connecting the PC and Armadillo with a serial cable and logging in from Linux serial console on Armadillo. Please proceed with the following easy method.
(G)Operate with minicom from ATDE2
From ATDE2, operate with terminal emulator program minicom. Connect the serial port of the PC and the serial port of Armadillo with a serial cable. For a PC without a serial port, you need to use a USB-serial conversion cable or the like. Refer to the Armadillo manual for how to connect the Armadillo serial cable.
Configure the VMware virtual machine's device as follows.
Please check the connection check.
Check the device status and check the port using Connection> Physical Serial Port. Start the terminal emulator minicom from the terminal of ATDE2.
(G)Operate with Windows terminal emulator (teraterm)
You can also connect to Armadillo's serial console from Windows using a terminal emulator such as TeraTerm. TeraTerm can be downloaded for free from here. Please start with the following setting.
When starting with the above setting, the login screen of Armadillo240 will be displayed. If it is not displayed, press Enter. Please proceed to the common operation after that.
(G)Common operation
Please plug the USB memory into Armadillo. Please log in as root (password: root) on Armadillo login screen. The default mount is an option (umous=111), which permission setting any user can not execute.
Once unmounted, it will be remounted with the -o rw option that can be written and executed.
You can also check from RtcLink.
In this method, you have to modify the setting every time you start Armadillo. In the next chapter, after Armadillo starts, it creates an image file that the RT component automatically starts and downloads it to Armadillo.
(G)Create an image file of Armadillo240
With the previous method, it is necessary to change the setting with the terminal emulator every time Armadillo starts up. In this case, use atmark-dist provided by AtmarkTechno, Inc, create an image file that RT component automatically starts after Armadillo240 start up, and download it to Armadillo.
(G)Development environment development
Use the environment of ATDE2 cross-compiled RT component as it is. Please download the following items on ATDE2.
(G)Build and configure atmark-dist
Here, we will create an image file of userland of Armadillo. By using the image file created here, you can start RT Component that was previously installed in USB memory automatically.
(G)How RT Component starts
Mount the USB memory to /home/openrtm/, and start Armadillo /home/openrtm/boot.sh. boot.sh starts the executable file through the library path in the USB memory.Please prepare the following files in the USB memory.
(G)atmark-dist Build
Please download atmark-dist and linux kernel, openrtm.patch on ATDE2 and expand it.
Copy openrtm.patch and apply the patch as follows.
(G)Download image file to Armadillo240
Download the generated userland image file romfs.img.gz to Armadillo240. Armadillo short the jumper pin (2), please turn on the power (Armadillo Hardware Manual please refer to p.16)
You can download from either VMware (ATDE2) or Windows.
(G)Download from ATDE2
Here to configure the device of VMware virtual machine before proceeding.
(G)Download from Windows
Please put downloader > win32 > Hermit.zip of CD-ROM bundled with Armadillo240 on Widows.
(G)Execution/confirmation of RT component
Start RTCLink and confirm start of RT component.
(G)Application example
(G)Armadillo + URG sensor
Combined with Armadillo and Hokuyo Electric URG sensor, it is a unit to easily construct a distributed sensor system. The URG sensor RT component works on Armadillo. (RTC starts automatically at the same time as Armadillo power is turned on.) By using Armadillo compatible with PoE (Power over Ether), communication and power supply are possible only with the LAN cable. The URG sensor also operates with power supply from PoE. Sensor arrangement is possible with only one cable, so you can easily construct a distributed sensor system.