By using Logisim, we firstly had to make a CPU (a simplified one). To test it, we have some very basic C snippets which can be compiled by the CPU into Assembly. 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.
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:
sudo apt-get install libc6-armel-cross libc6-dev-armel-cross binutils-arm-linux-gnueabi libncurses5-dev
Then, install gcc
and g++
to support ARM:
sudo apt-get install gcc-arm-linux-gnueabi g++-arm-linux-gnueabi
Finally, you can compile like this:
arm-linux-gnueabi-gcc hello.c -S -mtune=cortex-m0 -march=armv7-m -mthumb -fomit-frame-pointer -o hello.s
See the presentation folder for more details.
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 |
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 |
See parm.h
for the pins documentation.
- Marc PINET - marcpinet
- Loïc PANTANO - loicpantano
- Arthur RODRIGUEZ - rodriguezarthur