README.md 2.5 KB
Newer Older
Christian Eichler's avatar
Christian Eichler committed
1
# GenE Benchmarking System for Infineon XMC4500 Relax (Lite)
Andy's avatar
Andy committed
2

Andrew Karpow's avatar
Andrew Karpow committed
3
4
5
6
7
8
Template for Infineon's XMC4500 Relax (Lite) Kit for UNIX-based operating systems

Requirements:

* CMSIS folder from DAVE 3: http://www.infineon.com/dave
* ARM GCC crosscompiler, e.g. 
Andrew Karpow's avatar
Andrew Karpow committed
9
10
 * GCC ARM Embedded: https://launchpad.net/gcc-arm-embedded
 * Sourcery CodeBench Lite (EABI): http://codesourcery.com/gnu_toolchains/arm
Andrew Karpow's avatar
Andrew Karpow committed
11
* For deployment/JTAG-Debugging:
Andrew Karpow's avatar
Andrew Karpow committed
12
 * J-Link Linux Software http://www.segger.com/jlink-software.html
Andrew Karpow's avatar
Andrew Karpow committed
13
14
* GNU Make

Andrew Karpow's avatar
Andrew Karpow committed
15
Preperations
Christian Eichler's avatar
Christian Eichler committed
16
------------
Andrew Karpow's avatar
Andrew Karpow committed
17
18
19
20
You need to rename a file inside the CMSIS directory, because else gcc is not
able find the System_XMD4500.c file. This seems to be a UNIX-only problem since
windows-gcc is case-insensitive regarding filenames.

Andrew Karpow's avatar
Andrew Karpow committed
21
22
    cd CMSIS/Infineon/XMC4500_series/Source
    mv system_XMC4500.c System_XMC4500.c
Andrew Karpow's avatar
Andrew Karpow committed
23

Christian Eichler's avatar
Christian Eichler committed
24
# The XMC4500
Andrew Karpow's avatar
Andrew Karpow committed
25

Christian Eichler's avatar
Christian Eichler committed
26
27
The XMC4500 has two USB connectors:
One for the debugger, the other one for the "application processor".
Andrew Karpow's avatar
Andrew Karpow committed
28

Christian Eichler's avatar
Christian Eichler committed
29
30
As soon as the operating system contained in this repo is flashed to the XCM4500, 
the application USB connects as serial USB port (usually as /dev/ttyACM<number>).
Andrew Karpow's avatar
Andrew Karpow committed
31

32

Christian Eichler's avatar
Christian Eichler committed
33
## Usage: Flash the System
34

Christian Eichler's avatar
Christian Eichler committed
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
The OS is flashed by calling `make flash/<systype>_<deviceid>`

 * `systype` is one of:
  * ids: **ID**entification **S**ystem
  * bch: **B**en**CH**mark System
 * `deviceid` the serial ID of the debugger

### The **ID**entification **S**ystem

The **ids** is a tiny system, that is solely used to identify the devices,
especially to map the debugger to the corresponding ttyACM.

The **ids** supports the following requests:

 * `inf`: print device information **INCLUDING the serial ID of the debugger**

Any other requests (including `bch`) will cause an error!

### The **B**en**CH**mark System
54

Christian Eichler's avatar
Christian Eichler committed
55
The **bch** supports the following requests:
56

Christian Eichler's avatar
Christian Eichler committed
57
58
59
60
61
 * `inf`: print device information **WITHOUT the serial ID of the debugger**
 * `dic`: disable instruction cache
 * `eic`: enable instruction cache
 * `bch`: run benchmark

62
63
64
Building the **bch** system requires a prior execution of GenE to generate
the file containing the actual benchmark (`gene.o`).

Christian Eichler's avatar
Christian Eichler committed
65
66
67
68
69
70
71
72
73
74
75
76
77
78

Usage: Communicate with the System
----------------------------------

    xmccomm <tty>

 * `tty`: Path to /dev/ttyACMn

The actual commands sent to the XMC4500 are read from stdin;
One command per line:
 * `inf`: Display device information
 * `dic`: Disable instruction cache
 * `eic`: Enable instruction cache
 * `bch <input value>`: Run benchmark with supplied input value
79
80
81
82
83

To allow opening of /dev/ttyACMn, the current user needs to be in
system group `dialout`.


Andrew Karpow's avatar
Andrew Karpow committed
84