Pavel Pisa's Home Page

Pavel Pisa's Photo My Pi Mark

Send email to me.

My Old PGP key fingerprint is: 1B4B 4080 2CA4 96E6 9157 31F3 41E0 CB5A 2536 45BE

My New PGP key fingerprint is: 8C2C 6EC2 7DA7 E17F A152 9482 8684 10FF 2B47 09CB

Physical location at Department of Control Engineering

See Evil, Stop Evil, Sue Evil, Sony - Biggest copyright and malware criminals!
Sony BMG intentionally distributed malware and rootkits (XCP DRM) on their audio CDs. They have been even such nasty, that they abused more open-source GPLed project for their dirty work.

My Bookmarks
Industrial Informatic Group HW Wiki

Page Content

Teaching Activities
School Related Documents
Goodies for Linux System
Embedded Systems - Motorola 683xx and Others
Project with Motorola M9328 MX1 (ARM 920T)
Utilities for Other MCUs
uLan Field Bus
uLan Utilities Library (GAVL, HTIMER, etc.)
Combustion Engine Control
Linux/RT-Linux CAN driver and CANopen framework
Miscellaneous Documents

Teaching Activities

Open-source programming czflag.gif (375 bytes)
An official abstract for this subject can be found here and there for English variant.

Computer Architectures czflag.gif (375 bytes)
An official abstract for this subject can be found here and there for English variant.

Real-Time Systems Programming czflag.gif (375 bytes)
It is possible to entrol the course as part of the master programme A3M35PSR or in frame of bachelor studies and A4B35PSR. The English variants exist but may be unavailable for some school years AE3M35PSR and AE4B35PSR.

Design of Microprocessor Systems czflag.gif (375 bytes)
An official abstract for Ph.D. version of these courses can be found here.

Microprocessor Systems czflag.gif (375 bytes)
This subject is has similar focus as Design of Microprocessor Systems, but it is intended for less advanced pupils who need to gain basic skill to work and develop software for 16 and 32-bit embedded systems. An abstract for master grade version of the microprocessors teaching classes is here.

Electronics Systems czflag.gif (375 bytes)
I am participating on practical classes for this course sometimes.

Design of Electronics Devices czflag.gif (375 bytes)
Some small number of lectures for this subjects and consultation/leading of some students projects.

Computers Systems and Computers for Control czflag.gif (375 bytes)
Two or three lectures about 32 bit microcontrollers per semester for this subject. An official abstract for this subject can be found here and there for English variant.

List of diploma and bachelors thesis works topics czflag.gif (375 bytes)
There is list of topic which are possible to chose by students and work on them under my leadership.

School Related Documents

Posters Published on Conferences (English) engflag.gif (375 bytes)

Introduction in PLD ICs (Czech) czflag.gif (375 bytes) pdficon15.gif (146 bytes)

Matlab (Czech) czflag.gif (375 bytes)

Adaptace s referencnim modelem (Czech) czflag.gif (375 bytes)

Experimentální optimalizace
polohovacího servomechanizmu (Czech) czflag.gif (375 bytes)

Návod k řídicí jednotce MARS 2 (Czech) czflag.gif (375 bytes) (also as PDF) pdficon15.gif (146 bytes)
Motion Control Unit MARS 2 - USER GUIDE (English) engflag.gif (375 bytes) (also as PDF) pdficon15.gif (146 bytes)

Návod k řídicí jednotce MARS 8 (Czech) czflag.gif (375 bytes) (also as PDF) pdficon15.gif (146 bytes)
Read More about Motion Control Unit MARS 8 at (English) engflag.gif (375 bytes)

BlueBot Robot Control Toolbox pro Matlab (Czech) czflag.gif (375 bytes)
The toolbox provides higher level API to MARS 8 units. The toolbox and MARS 8 units are used in multiple education courses (A3M33IRO, A3B33ROB) together with CRS A465 and Bosch SR 450 robots.

Goodies for Linux System

DiskLess Debian/GNU Linux at DCE FEL (PDF) engflag.gif (375 bytes)
Slides about Linux dikless boot setup used at our department prezented at InstallFest 2011. The set of the mentioned patches is available as well.

The Linux Kernel by D.A.Rusling (PDF) engflag.gif (375 bytes)

DMSDOS - Doblespace, Drivespace, Stacker access for Linux engflag.gif (375 bytes)
mcdmsdos - utility to read DoubleSpace/Driverspace/Stacker compressed volumes as Midnight Commander virtual filesystem.

Patches for XFig which enables to use XFig for figures with Czech Keyboard and Fonts czflag.gif (375 bytes)

Simple utility to read/write (not only) physical memory areas (rdwrmem.c)

Linux daemon for Kyocera Scan System F (kyoscand-0.0.4)
This daemon replaces Windows only proprietary scanner support tools. It is used with Kyocera KM-1650 multi-function copier, but it should work with other Scan System F equipped machines. The daemon has been reported to work with Olivetti 2200MF (same Kyocera TASKalfa 221) on Ubuntu 10.04 as well.

Embedded Systems - Motorola 683xx and Others

Mirrored m68k-FAQ czflag.gif (375 bytes)

GNU vyvojovy retezec a m68332 (Czech) engflag.gif (375 bytes) (also as PDF) pdficon15.gif (146 bytes)
Moderní mikrokontroléry - rozšířený předchozí dokument
zatím není zcela dokončen (Only PDF version)(Czech)

BDM Driver for GDB and Linux engflag.gif (375 bytes) (also as PDF) pdficon15.gif (146 bytes)

BDM flash loader utility ver010117
This version contains first experiments for future project of building GPLed TPU debugger. Current version autodedects next flashes "amd29f400", "amd29f800" in 16bit mode and "amd29f040" in single 8 bit configuration. It should be an easy task to add more flash types and configurations.

BDM driver 001129 (alpha state) (Compatible with 2.4.0 and DEVFS)

BDM flash loader utility ver010710
Added support for "amd29f010x2" suggested by John S. Gwynne for EFI332 project. Implemented flash blank checking.

mc68332 BDM targed for GDB-5.1.1 patch 1
The archive contains BDM driver, which should be compatible with all 2.0, 2.2, and 2.4.0 kernels. Flash programming commands was added to GDB (bdm_flash_setup, bdm_flash_check, bdm_flash_erase, bdm_flash_remove). Command "bdm_load_use_lma" should be used before flash programming to ensure right target address for initialized data section. Important : when "csboot","cs?" or "auto" are used, flash must be probed by "bdm_flash_check" command before actual programming.
Glibc-2 binary is also available here.
Precompiled version of Insight-5.1 debugger is also available here.
Older versions were removed to free space and to protect people against bug caused by bad registers reads for targets without defined FPU registers in m68k-tdep.c m68k_push_dummy_frame and m68k_pop_frame. Bug manifested by crash of debugger when gdb call command was used.

mc68332 BDM targed for GDB-5.2.1 patch 1
Updated version of patches for GDB version 5.2.1. Binary of the debugger can be found here.

New version of the BDM driver (bdm-driver-030502.tar.gz)
This driver contains support for Linux PARPORT subsystems. The enhancement contributed by Juergen Eder

BDM driver with 2.5.69+ support (bdm-driver-030518.tar.gz)
Support for latest 2.5 kernels has been added. This version should be usable for Linux kernels from 2.0, 2.2, 2.4, 2.5,69+. The driver continues to support PARPORT and DEVFS. The PARPORT support can be disabled at compile time to return to old behavior.

New version of CPU32/CPU32+ BDM flash loader (bdm-load-030815.tar.gz)
Integrated Josef Wolf's (jw at feature to support symbolic startup address definition and other enhancements. Added support for early 68360 MBAR register setup from commandline and scripts files.

CPU32/CPU32+ BDM patches for GDB-5.3 (gdb-5.3-bdm-683xx-patches.tar.gz)
Published updated version of CPU32 BDM debug tool-chain. Support added for 2.6.x kernels. Driver file renamed to "m683xx-bdm.o" to better coexist with generic and more promising m68k BDM driver. Please, look at SourceForge pages for GIT repository of BDM development tools and Motorola m68xxx BDM discussion lists. Compressed binary of BDM enabled GDB-5.3 can be found there (m68k-coff-bdm-gdb-5.3.gz).

Update of m683xx BDM driver for latest 2.6.x Linux kernels (m683xx-bdm-driver-040618.tar.gz)
The name of builded module has been changed from bdm.o/.ko to m683xx-bdm.o/.ko to not collide with generic m68k BDM driver branch.

Chris Johns and Bernardo Innocenti have released new version of generic m68k BDM tools (m68k-bdm-1.3.0)
They seems to work correctly with m683xx targets as well.
BDM project at SourceForge The new GCC-3.4 based m68k-elf compiller can be found at uClinux pages

Project with Motorola M9328 MX1 (ARM 920T)

DARCS repository to manage my collection of Linux kernel patches
This is targeted mainly to cleanup of i.MX Linux support in the present time. The great feature of DARCS is, that this public repository can be accessed over HTTP protocol

darcs get
or current version of the archive contents can be browsed directly by web browser or copied by wget program from

mx1-boot-usb-050914.tar.gz - M9328 MX1 side of USB loader

mx1-load-050327.tar.gz - Serial and USB loader for M9328 MX1
This loader enables to transfer above mentioned mx1-boot-usb to the MX1 eSRAM memory over MX1 ROM provided serial protocol. The mx1-boot-usb then initializes UDC and MX1 board is enumerated by Linux host system. mx1-load can be used then to load application or Linux kernel image to the MX1 board SDRAM memory and start application or kernel. The latest version enables to build tag-image and setup arbitrary Linux kernel tags list.

Next commands are used to prepare flash tag-image of Linux kernel and flash it into PiMX1 board. Flash has to be erased beforehand.

~/arm/mx1-load/mx1-load -H tagimage -d linux.tagimage "${KERNEL_IMAGE}" \
        -O 0x08008000 -f binary -g 0x08008000 -P r1=664 -P r2=0x08000100 \
        --atag-base=0x08000100 --atag-u32 core=0,0,0 \
        --atag-u32 mem=0x02000000,0x08000000 \
        --atag-str cmdline="console=ttySMX0,19200n8 root=31:4 rootfstype=jffs2"

~/arm/mx1-load/mx1-load -H usb -d dead:0101 -t 5 linux.tagimage -O 0x10040000 -f binary

kbd_mx1rtems.c - RTEMS matrix keyboard driver with UID interface
This is timer and interrupt activated keyboard driver for matrix keyboard directly connected to M9328 MX1 GPIO pins. The driver supports Micro Input Driver (UID) interface and works with MicroWindows GUI framework.

scr_mx1sl.c - M9328 MX1 MicroWindows screen driver

rtems-mx1-mmcsd-051212.tar.gz - MX1 MMC/SD driver for RTEMS
This is massively modified and cleaned up FreeScale Linux 2.4 MMC/SD driver version ported and integrated to RTEMS system. Driver supports read/write of MMC and SD cards. The DOS FAT16/FAT32 filesystem can be created and mounted. The driver works in the CPU data driven mode only (no DMA yet) and only 1-bit mode is supported for now. The support and compatibility with MX21 has been considered during functions rewrite as well.

Utilities for Other MCUs

Texas Istruments MSC-1210 (MCS-51) initial Flash loader

Hitachi H8S/2633 initial serial and on-board flasher
This is part of COmponents for LAboratory and Medical Instruments (COLAMI) library developed at PiKRON Ltd.

Podex - open HC12 BDM pod design
This is result of Marek Peca's work on support of some HC12 based projects ongoing on RTLAB section of DCE department.

uLan Field Bus

uLan Directory Listing

Komunikacni protokol uLan (Czech) engflag.gif (375 bytes)

ul_drv - uLan RS-485 communication driver engflag.gif (375 bytes) (also as PDF) pdficon15.gif (146 bytes)

Version 0.7 of uLan RS-485 driver released (ul_drv-0.7.tar.gz)
Added some small utilities and driver updated for support of 2.6.x kernels. Driver should work out of box on most 2.2.x, 2.4.x and 2.6.x kernels with or without devfs. Driver supports classical UARTs, 82C510 UARTs and OX16C954 PCI cards. Preliminary USB converter support is included as well.

Sources moved to GIT repository on SourceForge site
The latest driver sources and core part of MCS51 sources with Keil and SDCC compatible interface has been committed into SourceForge GIT ( Next release of driver will include support for USB <-> uLan converter.

Project ChromuLan (Free HPLC Software for Everyone)
Local patches directory

uLan Utilities Library (GAVL, HTIMER, etc.)

uLan Utilities Library (ulut-090225.tar.gz)
This library contains more basic C constructions. There are basic item containers partially resembling to C++ standard template library (STL). There are lists, Generalized AVL trees (GAVL), hierarchical timers framework (in the fact priority queues, HTIMER) and generic sorted arrays/collections (GSA). SourceForge download page.

uLan Utilities Library Documentation engflag.gif (375 bytes) pdficon15.gif (146 bytes)

Generic/Generalized AVL Tree Documentation engflag.gif (375 bytes) pdficon15.gif (146 bytes)

Attempt to modify GLIB to use GAVL algorithms
The GTREE (AVL based tree) sources has been modified to use same algorithms as used in uLut library. This leads to considerable speedup (15-50%) but income is not probably revolutionary enough to cause propagation of the changes into official GLIB sources. The code size is same as for original algorithms. The algorithms are implemented without any need for recursive subroutines calls. The negative side of the change is that GAVL requires additional parent pointer in the node structures. Many of advanced features of GAVL algorithms cannot be exposed through actual GLIB API: non-unique support, cut first, iterators, fast node delete for items with internal nodes, resorting after compare function change, priority queues extension, etc.

GNU AVL - Another AVL and generic tree library written by Ben Pfaff

Hurd-L4 RB-Tree - written by Neal H. Walfield
The implementation reuses similar typesafe macro definitions as found in uLut library.

Combustion Engine Control

Doktorandske minimum - mereni a rizeni zazehoveho motoru engflag.gif (375 bytes) (also as PDF) pdficon15.gif (146 bytes)

Combustion Engine Control - introduction and overview engflag.gif (375 bytes) (also as PDF) pdficon15.gif (146 bytes)

Linux/RT-Linux CAN driver and CANopen framework

The OrtCAN project is hosted by ( The CAN driver and other CAN related components have been founded in frame of the OCERA project - Open Components for Embedded Real-time Applications ( Short introduction to OCERA CAN components can be found in the Fifth Real-Time Linux Workshop article Open Source Components for the CAN Bus. The LinCAN driver documentation is included in the archive and can is readable in as separate file LinCANdoc-0.3.pdf. There is OCERA CANopen infrastructure user quide on this page ocera-canopen-ug.pdf.

LinCAN driver can be compiled for Linux 2.4.x, 2.6.x and 3.x kernel. The driver supports even systems running Linux 2.4 kernel under OCERA GPL RT-Linux real-time extension. The driver provides equivalent device interface for both Linux user-space processes and RT-Linux POSIX threads in such configuration. Each communication object (chip message buffer) can be used from more RT and Linux applications concurrently.

The currect development sources version can be found in GIT repository of OrtCAN project:

Next command sequence builds OrtCAN components

git clone git://
cd ortcan/
git submodule update --init
make default-config

The selection of required features and options can be specified before make command invocation. Lines containing required changes to config.omk-default file should be stored in config.omk file. The config.omk is not altered by OMK make-system and options defined there override values defined in config.omk-default file. GNU make program version 3.81beta1 or newer is required by OMK make-system. If this is problem, LinCAN driver can be compiled with use of old style Makefiles as well.

Old style Makefiles compilation of the LinCAN driver


The LinCAN releases are located in the SourceForge OrtCAN project files group
LinCAN files group

New LinCAN development status page has been submitted to the FreshMeat
Bookmark that page if you want to be informed about next releases. The version from the OrtCAN GIT is recommended for active developers.

Miscellaneous Documents

Quotations and Thoughts


Specimen for PGS English Exam - level II engflag.gif (375 bytes)

My Resume - written for english exam engflag.gif (375 bytes)

This file is: