Difference between revisions of "ARMv7"

From The iPhone Wiki
Jump to: navigation, search
m (moved Armv7 to ARMv7: was wrong cased)
m (fix casing, links)
Line 1: Line 1:
Armv7 is the processor instruction set used starting with the [[S5L8920]] in the [[N88ap|iPhone 3GS]] and in all subsequent devices. Processors that support Armv7 instructions are backward compatible with Armv6 instructions, but attempting to run binaries compiled for Arm7 on older, Armv6 processors will result in the error: "Bad CPU type in executable".
+
[[ARMv7]] is the processor instruction set used starting with the [[S5L8920]] in the [[N88ap|iPhone 3GS]] and in all subsequent devices. Processors that support [[ARMv7]] instructions are backward compatible with [[ARMv6]] instructions, but attempting to run binaries compiled for [[ARMv7]] on older, [[ARMv6]] processors will result in the error: "Bad CPU type in executable".
   
 
==Benefits==
 
==Benefits==
The instructions are more efficient and numerous than the older Armv6 instructions, resulting in a smaller binary and faster execution time. The official SDK allows developers to choose to compile for only Armv6 or a hybrid Armv6/Armv7 binary.
+
The instructions are more efficient and numerous than the older [[ARMv6]] instructions, resulting in a smaller binary and faster execution time. The official SDK allows developers to choose to compile for only [[ARMv6]] or a hybrid [[ARMv6]]/[[ARMv7]] binary.
   
 
==Negatives==
 
==Negatives==
The applications and libraries that are built into [[iOS]] for Armv7 devices do not contain the Armv6 binaries, so the code will not run on the older processors. This is likely because Apple wants to keep the iOS filesize down and not include unnecessary "junk". It could also serve as a side-benefit for Apple because it prohibits older processors from running "premium features" like Voice Control on an iPhone 3G.
+
The applications and libraries that are built into [[iOS]] for [[ARMv7]] devices do not contain the [[ARMv6]] binaries, so the code will not run on the older processors. This is likely because Apple wants to keep the [[iOS]] filesize down and not include unnecessary "junk". It could also serve as a side-benefit for Apple because it prohibits older processors from running "premium features" like Voice Control on an [[N82ap|iPhone 3G]].
   
 
{{stub|hardware}}
 
{{stub|hardware}}

Revision as of 20:17, 9 March 2012

ARMv7 is the processor instruction set used starting with the S5L8920 in the iPhone 3GS and in all subsequent devices. Processors that support ARMv7 instructions are backward compatible with ARMv6 instructions, but attempting to run binaries compiled for ARMv7 on older, ARMv6 processors will result in the error: "Bad CPU type in executable".

Benefits

The instructions are more efficient and numerous than the older ARMv6 instructions, resulting in a smaller binary and faster execution time. The official SDK allows developers to choose to compile for only ARMv6 or a hybrid ARMv6/ARMv7 binary.

Negatives

The applications and libraries that are built into iOS for ARMv7 devices do not contain the ARMv6 binaries, so the code will not run on the older processors. This is likely because Apple wants to keep the iOS filesize down and not include unnecessary "junk". It could also serve as a side-benefit for Apple because it prohibits older processors from running "premium features" like Voice Control on an iPhone 3G.

Hacking.png This hardware article is a "stub", an incomplete page. Please add more content to this article and remove this tag.