A0B36APO Virtual Hardware: Difference between revisions
No edit summary |
Update links to APO subject pages |
||
| (13 intermediate revisions by 2 users not shown) | |||
| Line 1: | Line 1: | ||
[ | [[File:apo_bazmek.jpg|thumb|right|Simple terminal used by students]] | ||
[https://cw.fel.cvut.cz/wiki/courses/a0b36apo/start A0B36APO] (Architektury pocitacu -- Computer architectures) is a course taught by [http://cs.felk.cvut.cz/webis/courses.html Department of Computer Science and Engineering] and [http://dce.fel.cvut.cz/ Department of Control Engineering]. | |||
Students [https:// | Students [https://cw.fel.cvut.cz/wiki/courses/a0b36apo/tutorials/10/start have to work with specialized hardware]. This page describes how to use the virtual implementation of the specialized hardware -- this can help students to work at home without the access to the real hardware. | ||
=== Qemu === | === Qemu === | ||
[https://en.wikipedia.org/wiki/Qemu Qemu] is a processor emulator which enables to run separate Operating System on Virtual Hardware. | [https://en.wikipedia.org/wiki/Qemu Qemu] is a processor emulator which enables to run separate Operating System on Virtual Hardware. | ||
== APOHW == | == APOHW == | ||
| Line 12: | Line 14: | ||
[[File:apo_diagr.png|800px]] | [[File:apo_diagr.png|800px]] | ||
= Using APOHW = | |||
How to obtain the source code: | |||
git clone git://github.com/CTU-IIG/qemu.git -b apohw | |||
How to compile it: | How to compile it: | ||
./configure --enable-system --target-list=i386-softmmu --enable-sdl --enable-kvm | ./configure --enable-system --target-list=i386-softmmu --enable-sdl --enable-kvm | ||
make | make | ||
''To compile Qemu on bare Ubuntu 12.04, you will need to install zlib1g-dev, libglib2.0-dev, libsdl1.2-dev'' | |||
How to run it: | How to run it: | ||
| Line 27: | Line 32: | ||
-enable-kvm | -enable-kvm | ||
You need to have some image file with installed | You need to have some [http://blog.aurel32.net/46 image file with GNU/Linux installed on it]. KVM command is optional. | ||
In another terminal then run: | In another terminal then run: | ||
telnet localhost 55555 | telnet localhost 55555 | ||
... and perceive the miracle | |||
= What is not implemented = | |||
What is not implemented | * Proper timing features of the hardware | ||
* I/O card is PCI, not PCIe -- however memory access is the same. | * I/O card is PCI, not PCIe -- however memory access is the same. | ||
* HD44780 does not support 4bit access | * HD44780 does not support 4bit access | ||
* HD44780 does not support display shifting | * HD44780 does not support display shifting | ||
* HD44780 does not support editable CGRAM | * HD44780 does not support editable CGRAM | ||
* Buzzer | * Buzzer | ||
=== Bugs === | |||
Bug reports please send to lisovy@gmail.com | |||
=== Useful links === | |||
[http://web.alfredstate.edu/weimandn/lcd/lcd_addressing/lcd_addressing_index.html HD44780 DDRAM explained] | |||
[https://lwn.net/images/pdf/LDD3/ch12.pdf PCI drivers on Linux] | |||
Latest revision as of 00:27, 2 May 2016

A0B36APO (Architektury pocitacu -- Computer architectures) is a course taught by Department of Computer Science and Engineering and Department of Control Engineering.
Students have to work with specialized hardware. This page describes how to use the virtual implementation of the specialized hardware -- this can help students to work at home without the access to the real hardware.
Qemu
Qemu is a processor emulator which enables to run separate Operating System on Virtual Hardware.
APOHW
APOHW comprises PCIe I/O card and Simple terminal (keyboard + text LCD).
Using APOHW
How to obtain the source code:
git clone git://github.com/CTU-IIG/qemu.git -b apohw
How to compile it:
./configure --enable-system --target-list=i386-softmmu --enable-sdl --enable-kvm
make
To compile Qemu on bare Ubuntu 12.04, you will need to install zlib1g-dev, libglib2.0-dev, libsdl1.2-dev
How to run it:
./i386-softmmu/qemu-system-i386 -device apohw \
-hda ../../debian_lenny_i386_standard.qcow2 \
--boot c \
-enable-kvm
You need to have some image file with GNU/Linux installed on it. KVM command is optional.
In another terminal then run:
telnet localhost 55555
... and perceive the miracle
What is not implemented
- Proper timing features of the hardware
- I/O card is PCI, not PCIe -- however memory access is the same.
- HD44780 does not support 4bit access
- HD44780 does not support display shifting
- HD44780 does not support editable CGRAM
- Buzzer
Bugs
Bug reports please send to lisovy@gmail.com