ARM Cortex-M System Bus Usage

Make it to the Right and Larger Audience


ARM Cortex-M System Bus Usage

ARM Cortex-M processor core has three AHB buses, instruction bus (I-bus), data bus (D-bus), and system bus. Some may ask whether and how system bus should be connected to the overall system.


At the first sight, this question doesn’t sound right. Below is ARMv7-M address map. The I-bus and D-bus, by design, can only access address below 0x2000_0000. Normally it’s code region. Only system bus can access full 32bit address space. So the obvious answer is we should connect system bus to full address space including space below 0x2000_0000.



But where does the question come from? It turns out in lots of “bite”-size designs, designer only uses space below 0x2000_0000. The exception is space above 0xE000_0000 is still used for system PPB and Vendor _SYS. But these are implemented inside arm cortex-m processor core. There is no need to connect system bus outside arm core to access space above 0xe000_0000. Then it sounds reasonable to ask if system bus needs to be connected outside arm processor core.


I think system bus is still needed due to FPB.


The following is site premium content.
Use points to gain access. You can either purchase points or contribute content and use contribution points to gain access.
Highlights: 517 words
Author brief is empty

Contact Us

Thanks for helping us better serve the community. You can make a suggestion, report a bug, a misconduct, or any other issue. We'll get back to you using your private message ASAP.



Forgot your details?