Table of Contents
Polytech ARM-based embedded processor
๐ Instructions we had to follow
By using Logisim, we firstly had to make a CPU (a simplified one) which can run binary files (machine code). You can find how to convert Clang files into Assembly files in the next section. Next, we had to make a program which can translate assembly language (ARMv7) into machine code.
You can learn more about Logisim, ARMv7 and the whole Cortex-M0 family of processors in the docs folder.
โ๏ธ Compile C to ARM Assembly using the CPU
To check whether our CPU works or not, we need to compile these C programs and compare each other.
Install the libc6-armel-cross
, libc6-dev-armel-cross
, binutils-arm-linux-gnueabi
and libncurses5-dev
packages by using the following command:
Then, install gcc
and g++
to support ARM:
Finally, you can compile like this:
Please, note that the ./include
folder (which contains the headers) should be in the same directory of the main.c
. You can see some examples in the c folder.
๐ฝ๏ธ Presentation
See the presentation folder for more details.
๐งพ Additional informations
C Headers
Program | Description |
---|---|
crypto | Cryptography |
fixed | Fixed Point Decimal Numbers |
math | Mathematical tools |
parm | Main Header |
stdio | Text Input/Output (keyboard, terminal) |
string | Basic implementation of strings |
string2 | Other basic implementation of strings |
trigo | Trigonometric functions (Taylor series) |
utils | Debugging Tools |
video | Matrix screen |
C programs
Program | Description |
---|---|
calckeyb | Calculator with keyboard and terminal |
calculator | Calculator with DIP-switches |
simple_add | Adds two variables and displays it in RES |
testfp | Demonstrate fixed-point number macros |
tty | Display "Project PARM" in terminal |
MMIO
See parm.h
for the pins documentation.
โ๏ธ Authors
- Marc PINET - marcpinet
- Loรฏc PANTANO - loicpantano
- Arthur RODRIGUEZ - rodriguezarthur