This paper is intended for deeper understanding of ARM processor memory read write operations. We assume reader has prior knowledge of ARM internals, Assembly Language, VHDL/Verilog, Linux Device Drivers and C programming knowledge. We are taking MINI2440 ARM9 board from FriendlyARM for this purpose. For understanding how ARM CPU reads or writes to system bus we need a peripheral device. We are taking Altera FPGA board to construct a miniature peripheral device.

This is a low cost experiment as MINI2440 ARM board comes under $80-95 and Pluto FPGA board comes under $30. This experiment is not limited to these boards. Reader can take any ARM development boards at their convenience and do this same exeperiment. In that case reader has to identify corrsponding matching data, address and control lines of of the board and can go ahead with this experiment.

We have divided this tutorial into these sub topics.
- Altera FPGA interfacing ARM,
- ARM CPU internals,
- ARM Cache Memory and MMU,
- ARM bus hierarchy,
- ARM data address and control lines,
- ARM MMIO read,
- ARM MMIO write,
- FPGA interfacing with system bus,
- VHDL/Verilog program,
- ADS C Code,
- Linux Direct MMIO App,
- Linux Device Driver,
- Linux Application code
- Final Demo
Questions index C Questions C++ Questions Win32 MFC COM/DCOM DLL Questions
Compilers & Editors
Download Visual Studio Download XCode Download Visual Studio Code Android studio install sdk Eclipse installer Best C compilers IDEs
Development system setup
Windows media creation tool MSDN subscription Ubuntu virtualbox
New updated posts
Why learn C? Calculate weighted average