Recently I was adopting to Marmalade SDK, a native cross platform mobile apps development tool. Marmalade is very good for programming. I mainly used Marmalade Quick because I am much familiar with Lua then C++. OK lets see the Marmalade story later, but why I am telling this abstract here is a problem I faced while deploying the apps I made via Marmalade SDK.

image

The problem I faced is running the apps I developed were not running in Windows Phone Emulator, because I accidentally selected ARM architecture to develop my apps. When I use this Marmalade system deployment tool to get .xap file and use XapDeploy.exe to deploy app to the WP emulator it shows the icon but app returns null.

image

While I was binging about this I found a solution here saying “Use VS 2012 for testing marmalade app on emulator Windows Phone. Your *.xap file created through Deploy Tool can only load on real Windows Phone 8.” yes this is the problem, when ou use the Marmalade deploy tool, it creates an ARM release version of the app. You need to use VS 2012 to create a x86 version to run in the emulator. 

So what is ARM vs x86 and why are they exist in Mobile device architectures. Answer for this question is

 ARM has had a pretty substantial advantage in terms of power consumption, which made it attractive for all sorts of battery operated devices.

As far as the actual differences: ARM has more registers, supported predication for most instructions long before Intel added it, has a “thumb” mode that’s intended primarily to increase code density (so a program fits in less memory) and has long incorporated all sorts of techniques (call them “tricks”, if you prefer) to save power almost everywhere it could.

At one time Intel put a lot more emphasis on speed than power consumption. They started emphasizing power consumption primarily on the context of laptops. For laptops their typical power goal was on the order of 6 watts for a fairly small laptop. More recently (much more recently) they’ve started to target mobile devices (phones, tablets, etc.) For this market, they’re looking at a couple of watts or so at most. They seem to be doing pretty well at that, though their approach has been substantially different from ARM’s, emphasizing fabrication technology where ARM has mostly emphasized micro-architecture (not surprising, considering that ARM sells designs, and leaves fabrication to others).

Advertisements