C CPP Development Environment Setup
C CPP Development Environment Setup
C CPP Development Environment Setup
Wachendorff Elektronik
C/C++ Development Environment Setup Manual
1
Introduction ...........................................................................................................................2
1.1
General ..........................................................................................................................2
1.2
Description.....................................................................................................................2
1.3
Supplied files .................................................................................................................2
1.4
Tips ................................................................................................................................2
Operating System installation ...............................................................................................3
2.1
Create a bootable CD or USB stick ...............................................................................3
2.1.1
Burn ISO image to a CD .........................................................................................3
2.1.2
Create a bootable USB stick ..................................................................................3
2.2
Installation .....................................................................................................................4
Toolchain and Rootfs Setup .................................................................................................8
3.1
Copy files to Ubuntu ......................................................................................................8
3.2
Toolchain installation.....................................................................................................8
3.3
Rootfs installation ..........................................................................................................9
3.4
Testing the toolchain .....................................................................................................9
Development Tools Setup...................................................................................................11
4.1
Qt and QtCreator .........................................................................................................11
4.2
Install the Qt SDK ........................................................................................................11
4.3
Configuration ...............................................................................................................11
4.4
Creating a test project..................................................................................................12
Summaries and FAQ...........................................................................................................19
5.1
What to do only once after installing? .........................................................................19
5.2
What to do for each new project? ................................................................................19
5.3
What to do when I want to develop for another OPUS device?...................................19
5.4
How to connect and log-in to an OPUS A3?................................................................19
5.5
Where can I find more detailed manuals? ...................................................................19
5.5.1
Linux and Ubuntu .................................................................................................19
5.5.2
Qt..........................................................................................................................19
5.5.3
C/C++ ...................................................................................................................20
5.5.4
Programming for OPUS devices...........................................................................20
5.6
How can I configure an application to start automatically when starting the OPUS
device? ...................................................................................................................................20
WE_C_CPP_Development_Environment_Setup
Datum: 13.01.2012
Seite 1 von 21
--- Gedruckte Exemplare dieses Dokuments knnten nicht aktuell sein und gelten als ungelenkt. Die Aktualitt ist vor der Verwendung zu berprfen. ---
Wachendorff Elektronik
GmbH & Co. KG
1 Introduction
1.1 General
This manual provides instructions on how to setup a PC or Laptop for developing embedded
applications for the Wachendorff OPUS operator panels.
This manual concentrates on the OPUS A3 panel, but the installation and setup for OPUS A6
and OPUS RVC are basically the same.
1.2 Description
The OPUS operating panels run an embedded Linux operating system. To create applications
that can run on these devices, a special development system needs to be set up. This development system consists basically of 3 components:
A Linux operating system.
A toolchain and rootfs which enables one to build applications for the OPUS devices.
Development tools that make software development a little easier.
The operating system can basically be any Linux distribution. This manual uses the Ubuntu
distribution because it is easy to setup and maintain. We use the Long-term support version of
Ubuntu (10.04).
The toolchain consist of cross-compiler and libraries that produce executables that can run on
the OPUS devices. Each CPU needs a specialized toolchain to be able to generate binaries
that can be interpreted correctly. Specific libraries and header files come in a rootfs archive
that represents the file structure of the operating system of the device.
1.3
Supplied files
ubuntu-10.04.3-desktop-i386.iso
o A disk image with the Ubuntu Linux operating system
tc_arm_gcc-4.4.4-glibc-2.11.1-multilib-1.0.i386.tar.gz
o The OPUS A3 toolchain (for BSP version >= 1.0.0)
rootfs-opusa3-1.0.1.tar.gz
o The rootfs of the OPUS A3
qt-sdk-linux-x86-opensource-2009.04.1.bin
o The Qt SDK including QtCreator
1.4
Tips
In a Linux terminal shell use the TAB key to auto-complete file names or paths (start typing, then hit TAB for auto completion).
WE_C_CPP_Development_Environment_Setup
Datum: 13.01.2012
Seite 2 von 21
--- Gedruckte Exemplare dieses Dokuments knnten nicht aktuell sein und gelten als ungelenkt. Die Aktualitt ist vor der Verwendung zu berprfen. ---
Wachendorff Elektronik
GmbH & Co. KG
WE_C_CPP_Development_Environment_Setup
Datum: 13.01.2012
Seite 3 von 21
--- Gedruckte Exemplare dieses Dokuments knnten nicht aktuell sein und gelten als ungelenkt. Die Aktualitt ist vor der Verwendung zu berprfen. ---
Wachendorff Elektronik
GmbH & Co. KG
2.2 Installation
First you have to make sure that your PC or Laptop is configured to boot from CD or USB.
Please refer to the user manual of your PC for how to setup the BIOS to boot from external media.
On the left side of the dialog you can select the preferred language (since this manual
describes everything in English, you should select English there).
Now click on the button Install Ubuntu 10.04.3 LTS.
WE_C_CPP_Development_Environment_Setup
Datum: 13.01.2012
Seite 4 von 21
--- Gedruckte Exemplare dieses Dokuments knnten nicht aktuell sein und gelten als ungelenkt. Die Aktualitt ist vor der Verwendung zu berprfen. ---
Wachendorff Elektronik
GmbH & Co. KG
The next dialog lets you choose your time zone. Choose the region you live in from the
Region list and the corresponding time zone from the Time Zone list. After that click on
Forward.
Now the Keyboard layout dialog appears. Choose your keyboard layout from the list if
you know which one fits to your keyboard. If not, select Guess keymap and press the
Guess button. Follow the instructions that are shown. After the correct layout has
been selected, press the Forward button.
WE_C_CPP_Development_Environment_Setup
Datum: 13.01.2012
Seite 5 von 21
--- Gedruckte Exemplare dieses Dokuments knnten nicht aktuell sein und gelten als ungelenkt. Die Aktualitt ist vor der Verwendung zu berprfen. ---
Wachendorff Elektronik
GmbH & Co. KG
Now we have to configure the hard disk for installation. This manual only covers the option to erase the whole disk and use the entire disk.
If you are an experienced user, you can also install Ubuntu along with another OS (like
Windows), for instructions for that see http://ubuntuguide.org/wiki/Ubuntu:Lucid#DualBooting_Windows_and_Ubuntu
WACHENDORFF IS NOT RESPONSIBLE FOR ANY DATA LOSS!.
Select Erase and use the entire disk. Click on the Forward button.
WARNING: If you use this option, you will LOOSE ALL DATA on your hard disk.
WE_C_CPP_Development_Environment_Setup
Datum: 13.01.2012
Seite 6 von 21
--- Gedruckte Exemplare dieses Dokuments knnten nicht aktuell sein und gelten als ungelenkt. Die Aktualitt ist vor der Verwendung zu berprfen. ---
Wachendorff Elektronik
GmbH & Co. KG
In the next dialog, a user profile has to be configured. Fill in all required fields with your
user information. Make sure to set a password and to check the option Require my
password to log in. After entering all data, click on the Forward button.
The next dialog shows a summary of all installation options. Check that information and
if you find any errors hit the Back button to go to any previous dialog.
If everything is OK, press the Install button.
Wait until the Installation Complete message appears and hit the Restart Now button.
Ubuntu will now ask you to remove the disk and close the tray. Please do that and then
press Enter on the keyboard. (If you installed from a USB-Stick, remove that also before
restart).
The system will now do a restart. When finished, you can login with the chosen username and password.
WE_C_CPP_Development_Environment_Setup
Datum: 13.01.2012
Seite 7 von 21
--- Gedruckte Exemplare dieses Dokuments knnten nicht aktuell sein und gelten als ungelenkt. Die Aktualitt ist vor der Verwendung zu berprfen. ---
Wachendorff Elektronik
GmbH & Co. KG
WE_C_CPP_Development_Environment_Setup
Datum: 13.01.2012
Seite 8 von 21
--- Gedruckte Exemplare dieses Dokuments knnten nicht aktuell sein und gelten als ungelenkt. Die Aktualitt ist vor der Verwendung zu berprfen. ---
Wachendorff Elektronik
GmbH & Co. KG
WE_C_CPP_Development_Environment_Setup
Datum: 13.01.2012
Seite 9 von 21
--- Gedruckte Exemplare dieses Dokuments knnten nicht aktuell sein und gelten als ungelenkt. Die Aktualitt ist vor der Verwendung zu berprfen. ---
Wachendorff Elektronik
GmbH & Co. KG
WE_C_CPP_Development_Environment_Setup
Datum: 13.01.2012
Seite 10 von
--- Gedruckte Exemplare dieses Dokuments knnten nicht aktuell sein und gelten als ungelenkt. Die Aktualitt ist vor der Verwendung zu berprfen. ---
Wachendorff Elektronik
GmbH & Co. KG
4.3
Configuration
Open a terminal and type
o
WE_C_CPP_Development_Environment_Setup
Programming
QtCreator)
QtVersions
Datum: 13.01.2012
Seite 11 von
--- Gedruckte Exemplare dieses Dokuments knnten nicht aktuell sein und gelten als ungelenkt. Die Aktualitt ist vor der Verwendung zu berprfen. ---
Wachendorff Elektronik
GmbH & Co. KG
o
o
o
o
o
4.4
o As name enter helloA3, enter a directory to store the new project in Create in
(or keep the default). Click Next
WE_C_CPP_Development_Environment_Setup
Datum: 13.01.2012
Seite 12 von
--- Gedruckte Exemplare dieses Dokuments knnten nicht aktuell sein und gelten als ungelenkt. Die Aktualitt ist vor der Verwendung zu berprfen. ---
Wachendorff Elektronik
GmbH & Co. KG
o Click Next
WE_C_CPP_Development_Environment_Setup
Datum: 13.01.2012
Seite 13 von
--- Gedruckte Exemplare dieses Dokuments knnten nicht aktuell sein und gelten als ungelenkt. Die Aktualitt ist vor der Verwendung zu berprfen. ---
Wachendorff Elektronik
GmbH & Co. KG
o Click Finish
Now the new project was created and some settings need to be done
o On the left click on Projects
WE_C_CPP_Development_Environment_Setup
Datum: 13.01.2012
Seite 14 von
--- Gedruckte Exemplare dieses Dokuments knnten nicht aktuell sein und gelten als ungelenkt. Die Aktualitt ist vor der Verwendung zu berprfen. ---
Wachendorff Elektronik
GmbH & Co. KG
Datum: 13.01.2012
Seite 15 von
--- Gedruckte Exemplare dieses Dokuments knnten nicht aktuell sein und gelten als ungelenkt. Die Aktualitt ist vor der Verwendung zu berprfen. ---
Wachendorff Elektronik
GmbH & Co. KG
LIBS += -L/home/dirk/rootfs/opus_a3/rootfs/usr/lib
INCLUDEPATH += -I/home/dirk/rootfs/opus_a3/rootfs/usr/include
Press CTRL + S to save
WE_C_CPP_Development_Environment_Setup
Datum: 13.01.2012
Seite 16 von
--- Gedruckte Exemplare dieses Dokuments knnten nicht aktuell sein und gelten als ungelenkt. Die Aktualitt ist vor der Verwendung zu berprfen. ---
Wachendorff Elektronik
GmbH & Co. KG
Now the finished built application should be inside the project directory.
Build
WE_C_CPP_Development_Environment_Setup
Datum: 13.01.2012
Seite 17 von
--- Gedruckte Exemplare dieses Dokuments knnten nicht aktuell sein und gelten als ungelenkt. Die Aktualitt ist vor der Verwendung zu berprfen. ---
Wachendorff Elektronik
GmbH & Co. KG
Testing
o Copy the helloA3 application to a USB stick
o Insert the USB stick into a running OPUS A3
o Connect to the A3 via serial console or using ssh over Ethernet and log in (see
chapter 5.4).
o Copy the application from the USB stick to the /opt directory of the A3
cp /disk/usbsda1/helloA3 /opt
o Change directory to /opt
cd /opt
o Set execution permission
chmod +x helloA3
o Run the application
./helloA3 qws
o You now should see the window displaying Hello A3! on the screen of the A3
WE_C_CPP_Development_Environment_Setup
Datum: 13.01.2012
Seite 18 von
--- Gedruckte Exemplare dieses Dokuments knnten nicht aktuell sein und gelten als ungelenkt. Die Aktualitt ist vor der Verwendung zu berprfen. ---
Wachendorff Elektronik
GmbH & Co. KG
root
opusa3
Datum: 13.01.2012
Seite 19 von
--- Gedruckte Exemplare dieses Dokuments knnten nicht aktuell sein und gelten als ungelenkt. Die Aktualitt ist vor der Verwendung zu berprfen. ---
Wachendorff Elektronik
GmbH & Co. KG
o http://doc.qt.nokia.com/4.5/
5.5.3 C/C++
o A lot of books are available about the C/C++ programming languages.
o Good C++ reference and documentation: http://www.cplusplus.com/
How can I configure an application to start automatically when starting the OPUS
device?
See chapter 11.2.3 How can I use own user startup scripts? of the
OPUS_A3_C_CPP_Developer_Guide
Here is an example start script called 00_myApp placed in /opt/etc/init.d.
It will start the application myApp stored in the directory /opt/myAppDirectory
#!/bin/sh
#
# Copyright 2010 Wachendorf Elektronik GmbH & Co. KG
#
# Stop the running application
if [ "$1" == "stop" -o "$1" == "restart" ]; then
echo "Stopping myApp: "
killall myApp 2>/dev/null
fi
# Start the application
if [ "$1" == "start" -o "$1" == "restart" ]; then
echo "Starting myApp: "
# System setting
export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin
export HOME=/root
# Touchscreen settings
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_TSDEVICE=/dev/input/ts0
export TSLIB_CONFFILE=/etc/ts.conf
export TSLIB_CALIBFILE=/opt/etc/pointercal
# if touch wasn't calibrated yet, do calibration
if [ ! -f "/opt/etc/pointercal" ]; then
mkdir -p /opt/etc
ts_calibrate
WE_C_CPP_Development_Environment_Setup
Datum: 13.01.2012
Seite 20 von
--- Gedruckte Exemplare dieses Dokuments knnten nicht aktuell sein und gelten als ungelenkt. Die Aktualitt ist vor der Verwendung zu berprfen. ---
Wachendorff Elektronik
GmbH & Co. KG
WE_C_CPP_Development_Environment_Setup
Datum: 13.01.2012
Seite 21 von
--- Gedruckte Exemplare dieses Dokuments knnten nicht aktuell sein und gelten als ungelenkt. Die Aktualitt ist vor der Verwendung zu berprfen. ---