Embedded System - Beaglebone |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Memory Map and Registers
Our brain is functionally divided into multiple regions and each and every parts of our body is controlled by a specific region of a brain. It means each and every parts of our body is somehow connected to some specific parts of a brain. If you stimulate a specific parts of the brain that is connected to a specific body part, that body parts would response in specific way. For example, if you stimulate the brain parts that is connected to a mustle in your arm, the mustle would twitch. Likewise, Hardware parts on Computer/Microprocessor board and memory on the board is in very similar relation between our brain and body parts. It means, each and every parts of the hardware is somewhow connected to a some part in the memory. If you write some value in a specific parts of the memory, it is reflected as a specific action of a hardware. A most common hardware in Microsprocessor board would be various I/O pins and communication ports. All of these pins and ports are connected to a specific parts of the memory. In most case, which parts of the memory is connected to which part of the hardware is determined by the CPU/Microcontroller type and the operating system. You can create a table or diagram showing each functional blocks of the memory. This table or diagram is called Memory Map. If you understand the memory map of a specific CPU/Microprocessor, you can directly controls a specific hardware by writing some value directly into a specific memory location or you can figure out the status of a specific hardware by reading the value of a specific memory portion (address). If you are a programmer running on a modern operating system, there wouldn't be many cases where you need to read/write to/from the memory because in modern operating system you just send some high level command and operating system is doing all the necessary details to control the hardware and in most case you are not even allowed to directly read/write on memory. However, in Microprocessor (Embedded) application there are still many cases where it is better to control the hardware by direct read/write on memory. So it is still important to understand the details of the memory map and every microprocessor manufacture publish the memory map in their technical reference. However, if you are new to this area, the biggest problem is to understand the document itself. It would just like a long tables showing just a bunch of magic numbers (or looks like garbage). In this page, I will try to show you how to interpret the memory map of Beaglebone Microprocessor (AM335x Sitara™ Processors).
GPIO Pin Number on Board and Memory Map
< Table 2-2. L4_WKUP Peripheral Memory Map >
< Table 4-199. PRU_ICSS_UART Registers >
Reference :
[1] AM335x Sitara™ Processors Technical Reference Manual [2] Exploring Beaglebone - Chap 6
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||