ARMv7-A Bare Bones: Difference between revisions
[unchecked revision] | [unchecked revision] |
Content deleted Content added
No edit summary |
m Bot: Replace deprecated source tag with syntaxhighlight |
||
(6 intermediate revisions by 2 users not shown) | |||
Line 1:
{{TutorialExplain}}
{{BeginnersWarning}}
{{Rating|1}}{{Kernel designs}}
In this tutorial,
Versatile Express development board for the Cortex-A15.
== Rationale ==
ARMv7 is likely the last purely 32-bit iteration of the ARM architecture, so
processors based on it are likely to be supported the longest. The 'A' profile is
Line 15 ⟶ 14:
most interest to OS developers.
Largely because it's the most powerful ARMv7-A processor supported by QEMU, and it
also has its own development board.
This board was designed by ARM Holdings as a prototyping board, so it makes sense
to target a relatively neutral platform built with the Cortex-A15 in mind.
Line 25 ⟶ 24:
== Toolchain ==
haven't already. The target platform is <code>arm-none-eabi</code>. You will need at
least [[GAS]], [[GCC]], and [[LD]], but it is also suggested to have [[GDB]], [[Objcopy]], and [[Objdump]].
== Code ==
Line 34 ⟶ 32:
_start.arm:
<syntaxhighlight lang="asm">
.global _start
_start:
Line 42 ⟶ 40:
b 1b
.size _start, . - _start
</syntaxhighlight>
start.c:
Line 48 ⟶ 46:
<syntaxhighlight lang="c">
#include <stdint.h>
#define UART0_BASE 0x1c090000
void start() {
*(volatile uint32_t *)(UART0_BASE) = 'A';
}
Line 58 ⟶ 55:
linker.ld:
<syntaxhighlight lang="c">
ENTRY(_start)
Line 78 ⟶ 75:
STACK_TOP = .;
}
</syntaxhighlight>
== Building and Running ==
<syntaxhighlight lang="bash">
</syntaxhighlight>
== See Also ==
=== External Links ===
* [http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.subset.boards.express/index.html ARMv7 Cortex-A Series Programmer's Guide]
* [http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0406c/index.html ARMv7-A Architecture Reference Manual]
Line 100 ⟶ 95:
[[Category:ARM]]
[[Category:
|