Skip to main content

RTEMS on Raspberry Pi

 Thanks for Michael Engel's help, I reach the point about the first run of example.
The board I used is the module A and USB to TTL Serial Cable(http://www.adafruit.com/products/954)


I also check on http://alanstechnotes.blogspot.de/2013/03/running-your-first-rtems-program-on.html to know how to place the file into SD card.

This is the way I generate the kernel by the example:
arm-rtems4.11-objcopy -Obinary /home/khchen/development/build-rtems-rpi/arm-rtems4.11/c/raspberrypi/testsuites/samples/ticker/ticker.exe kernel.img

However, I find that it is not that trivial to just copy kernel.img into the card!

We first have to format the SD card via the mkcard.txt script before copying the kernel.
(wget http://downloads.angstrom-distribution.org/demo/beaglebone/mkcard.txt)

"use dmesg | tail" to find out the removable disk label, e.g., sdb.
sudo ./mkcard.txt /dev/sdb (run it twice in my case)
First time, it will report this "the device apparently does not exist; did you specify it correctly?"


To build the SD card for Raspberry Pi kernel, the initial partition should be proper.
We can find the information from here : http://elinux.org/RPi_Advanced_Setup
(12.12.2017: the script is somehow not reliable. Please directly use the expert mode to partition the SD card. 7.4Mb for boot. )


We can observe that the connection of usb -> /dev/ttyUSB0 has a different group permission.
Therefore, we have to assign our account into this group, named diologout(20).
http://askubuntu.com/questions/40959/how-do-i-connect-to-tty-com-dev-ttyusb0

After all, we can use screen command to connect into the board with root bash:
sudo bash

screen /dev/ttyUSB0 115200
Also, with HDMI, we can see a colourful figure on the screen.
------------------------------------------------
(I find that I cannot use rsb to build my own toolchain due to the version conflict of python 2.7.10)

About the building of example:
Under the git folder (rtems-git), we do have to ./bootstrap
Then, go to the build folder, e.g.,  /home/khchen/development/build-rtems-rpi/
and run:
../rtems-git/configure --target=arm-rtems4.11 \
--enable-rtemsbsp=raspberrypi \
--enable-tests=samples \
--enable-networking \
--enable-posix \
--prefix=$HOME/development/rtems/4.11 %I put the bsp file into the folder of toolchain.
and
make install
We can also try the additional example released by RTEMS, under git folder (rtems-git)
git clone git://git.rtems.org/examples-v2.git examples-v2
cd examples-v2
export RTEMS_MAKEFILE_PATH=~/development/rtems/4.11/arm-rtems4.11/raspberrypi/
make

arm-rtems4.11-objcopy -Obinary $HOME/development/examples-v2/classic_api/triple_period/o-optimize/triple_period.exe kernel.img

Instead of examples-v2, all the others are listed on https://git.rtems.org/
git clone git://git.rtems.org/network-demo network-demo
cd examples-v2
export RTEMS_MAKEFILE_PATH=~/development/rtems/4.11/arm-rtems4.11/raspberrypi/
make
http://superuser.com/questions/674672/sdcard-dev-sdb2-is-apparently-in-use-by-the-system-will-not-make-a-filesystem

Comments

Popular posts from this blog

RSB+RTEMS 5/6 with QEMU-SMP (ARM realview_pbx_a9_qemu as example)

Since I got a request regarding this blog  written in 2016, summarizing again the complete flow with the latest version of RTEMS could be a good idea. Prepare a suitable workspace according to the adopted operating system on your host ( https://docs.rtems.org/branches/master/user/hosts/index.html ):  sudo apt-get build-dep build-essential gcc-defaults g++ gdb git unzip pax bison flex texinfo unzip python3-dev libpython-dev libncurses5-dev zlib1g-dev Checkout RSB and build: git clone git://git.rtems.org/rtems-source-builder.git rsb change directory to rsb/rtems/ and type ../source-builder/sb-set-builder --prefix=<the path you like to store the built toolchains> <the name of bsp> For example, to use QEMU, I need toolchains for ARM, so: ../source-builder/sb-set-builder --prefix=/home/kh.chen/respository/build/. 6/rtems-arm This will take a while. Please ensure your connection is reliable. Add the built folder into your PATH. For example, you can add one line in ~/.bas...

[ubuntu] Removing the instance/package which is not fully installed from apt-get

When I'm installing g77-3.4 for pgplot, I trivially use dkpg to install it. However, g77-3.4-doc is not able to fully installed. And I stuck for this kind of error due to the broken packages (refer to here ): dpkg: error processing realplayer (--configure/--purge/--remove): (Whatever messages) Errors were encountered while processing: g77-3.4-doc cd /var/lib/dpkg/info sudo rm g77-3.4-doc* sudo dpkg --remove --force-remove-reinstreq g77-3.4-doc Hmm, now apt-get works well again. https://www.youtube.com/watch?v=S9HJ-iAzf3k

[RASP] VirtualBox Raspberry Pi debuging

This article is for the perspective that planning to debug Raspberry Pi connected to (Guest) Ubuntu Virtualbox with USBtoUART and Screen/terminal. There are two important issues that you may face: You cannot detect USB devices: You probably have a permission issue on your Virtual box. Add your user ID to group vboxusers with this command: sudo usermod -a -G vboxusers $USER , log off, log on and try again. http://askubuntu.com/questions/481693/virtualbox-usb-add-device-filter-does-not-work-under-14-04 You cannot listen the ttyUSB0: Your permission of (guest) account should be feasible to the ttyUSB0: sudo gedit /etc/group goto line... dialout:x:20: add your "username" dialout:x:20:username http://askubuntu.com/questions/40959/how-do-i-connect-to-tty-com-dev-ttyusb0 After that, then you can detect the plug-in usb on-the-fly or before open the virtual machine. Then, screen /dev/ttyUSB0 115200 (DON"T FORGET TO INSTALL VIRTUALBOX GUEST ADDITION PAC...