Smartphone with resources for building new WinCE/Mobile platforms - General Questions and Answers

Hi all,
I am currently working on a research project that requires modification of the WinCE source code. Surprisingly, MS facilitates this by offering the platform builder along with a substantial portion of the WinCE source code - basically enough to make a platform functionally equivalent to Windows Mobile.
I've tested my work using the device emulator, but would now like to run some experiments on real hardware. So, I am looking for a phone that will allow me to do this; download my customized WinCE image and run it on the phone. From what I can tell, this boils down to having access to a board support package (BSP) for the specific hardware, which would allow me to compile an image fully compatible with the chipset and peripherals. However, I have gleaned from various sources that manufacturers aren't typically loose with BSP's. I currently have a Wizard, but have not had any luck finding a BSP.
Does anyone know of a smartphone with a corresponding BSP for WinCE/Mobile that is accessible to developers or enthusiasts? Here are further details of my plight:
- I work in an academic setting (Technology manufacturers are oftentimes willing to cut deals with academic researchers. It makes for good PR).
- I may be able to muster up some money, if necessary.
Thanks in advance,
-Matt

Related

Cross Platform App-Dvelopment

Hey there,
I want to write an App which I want to distribute to different mobile Os. I'd be glad if it worked on iPhone, Windows Mobile, Symbian, Android and if possible otheres.
Now I'm looking for some technology I can use:
What would you recommend? Java, Flash, Javascript-based?
What I need is:
- app-downloadable, so it doesn't require an internet flat using it
- some api to have access to cell id and / or gps for phone tracking
- very easy cross platform publishing without much platform dependant code
I do have good Java knowledge and do code Actionscript 3 since some years. I already found some solutions for cross-platform development, but if there's anybody here with experiance I'd gladly hear some opinions.
I'm anticipating your replies

[Q] How to create homebrew app with native code which run in emulator.

Hi Guys,
I would like to create simple app with NATIVE code which run in emulator.
It is not possible to use solution in http://forum.xda-developers.com/showthread.php?t=1299134&highlight=developer+guide because it's use some ARM code.
Do you have any idea how make things work?
Thank you,
Ch.
You actually could (msotly) use that guide, but you would need to recompile the ARM portion for x86. My guess as to the best way to do this would be to use the "Platform Builder" for CE6 or CE7, instead of using the WinMo 6.5 platform as your target. WinMo only shipped on ARM devices, so far as I know, but the underlying OS, Windows CE, is very portable and the tools for it support building on a wide variety of architectures. WP7 is built on a version of CE somewhere between CE6 and CE7.
Otherwise, the stuff about using ATL, making a COM library, using ComBridge from the WP7 app, etc. all still applies.
That all said... why would you want to do this? Do you not have an actual phone to test on? Porting between ARM and x86 isn't *that* hard, but you shouldn't just assume that it'll work in all cases, so it makes a lot more sense, if you're building native code, to build and test for the same architecture you're planning to release on.
Additionally, the emulator may be missing some of the libraries that are present on the phone.
Thanks a lot. I will try it.
This is very beginning of my school project. I want only demonstrate that is possible to run some native code on WP7. Next phase of project will be on real device which I don't have right now..
Well, good luck, but I'd tend to say you're setting yourself up for a risk of failure. I don't know what it will take to use the CE Platform Builder for something like this; I have it installed but have never tried using it.
There may also be a way to compile for x86 using the WinMo build tools; I think some of the old "emulators" for WinMo were also x86 virtual machines (much like the WP7 emulator is). I never tried, though.
Risk of failure? I don't see how. The hardest part of this is finding a way to get his .exe on the emulator device and unlocking it. If he isn't using ARM ASM in his project, "porting" to x86 (or any other processor WinCE supports) should be trivial as long as a sufficiently complete SDK is available. The main issue with x86 on newer Pocket PC-like targets is that there are no Pocket PC SDKs targeting it newer than the Pocket PC 2003 one. If you want to use newer WM5 only features like GPSAPI, you'd probably need to use a CE 6.0 SDK instead.
If he doesn't want to do real time debugging, any of the Windows CE development tools or even 3rd party tools like Bloodshed DevC++, CE gcc/MinGW or FreePascal should all suffice. Windows CE is a very backward compatible OS so even an application targeting the CE 2.11 platform/SDK should still run on WP7 when you are careful to use supported APIs.
If you don't want to install Platform Builder and generate your own custom OS to base an SDK on, there are plenty of SDKs to choose from. Of course, some are worse than others. If you are using the CE 4.2 or 5.0 STANDARD_SDKs, you might become a bit frustrated when you realize they are missing many basic things like the Windows CE SIP APIs. (something that has been available for CE since 1.01 in 1997). But if you don't care about using the latest native CE kernel features and still want to use a newer IDE like VS2005/VS2008, the CE 5.0 STANDARD_SDK should be enough if you are careful. Though, I usually install things like eMbedded Visual C++ 3.0 and 4.0 along with all the Pocket PC and Handheld PC SDKs just in case I need a header or lib file that one or the other is missing.
The following MS SDKs can target x86:
-eVC3
Pocket PC 2002
Smartphone 2002
Handheld PC 2000
-eVC4
Pocket PC 2003
Smartphone 2003
STANDARDSDK_400
STANDARDSDK_401
STANDARDSDK_420
STANDARDSDK_500
-VS2005/2008
STANDARDSDK_500
Another useful x86 SDK I've found is the one for the Allegro CE/DOS Field PC:
http://www.junipersys.com/Juniper-Systems/support/Developers/Allegro-Field-PC/Allegro-CX
Here are some download links to many of the CE SDKs and compilers that were released over the years:
Here are some links to download some of the tools I've mentioned:
http://www.hpcfactor.com/developer/
http://www.microsoft.com/download/en/search.aspx?q=embedded visual tools
You will need SP4 for eMbedded Visual C++ 4.0 if you wish to use newer SDKs with it.
http://www.microsoft.com/download/en/search.aspx?q=pocket pc sdk
Ummm... maybe you missed the part where this is WP7 forum, and the OP is trying to run native code on the WP7 emulator... I can tell from your post that you're not terribly familiar with WP7 development, so here's a few salient points:
Compiling to a .exe is a waste of time. WP7 won't run foreign EXEs, at all, unless you make some pretty low-level changes that aren't possible on the emulator (see "full-unlock" custom ROMs). You have to write a managed app (which compiles to a DLL hosted inside a low-privilege EXE that's built into the system) and a COM library and use the InteropServices ComBridge API. So far we haven't even gotten P/Invoke to work.
WP7, especially Mango, uses a limited set of native APIs and the APIs have changed somewhat in the last decade or so. They aren't supposed to be available to third-party devs at all, so any backward compatibility is basically a convenient accident. Targeting Smartphone 2003 *might* work, but then, it might not. Even a number of WinMo 6.5 APIs aren't available or don't work.
Since it appears that the OP is just going for a demo project, he or she probably is a lot less interested in getting the most powerful APIs, and is probably hoping for something closer to invoking a MessageBox from native code.
All that said, however, it's true that there are WinCE SDKs which can build native x86 code. I'd tend to suggest using the CE6 or CE7 Platform Builders, since they're the most recent (WP7 is somewhere between the two), but there are other options. You probably want to follow the guide as much as possible, including things like using ATL, as it makes writing a COM library a lot easier and that's the best way we currently know for executing native code in WP7.

Generic Windows Phone 7 Os?

Hi guys, is there a clean generic windows phone 7 os? just like desktops were we get a retail os, is there one for phones? and is it flash-able with all phone?
No
No.
It would certainly be interesting to get hold of the OS as Microsoft delivers it to OEMs to begin the process of adapting it to a certain phone model, writing or modifying device drivers, etc., but it seems nothing like that was ever leaked.
WP is closed, as is iOS; for the reasonably open Android there is of course something like a "generic" version; you could even compile and produce one yourself.
There isn't really any such thing as a "clean generic" phone OS, anyhow. Unlike desktop OSes, phone OSes don't ship with support for the massive array of hardware configurations that are found in the wild. Instead, phone OSes rely on a Board Support Package, commonly simply called the firmware, which has the various drivers needed to interface with that specific model's hardware. This is why, for example, even though the source code is available for the Android Open Source Project upon which CyanogenMod is based, it still takes a long time to get fully functional CM ports to each individual device. On things like WP7, where the source code isn't available (except for the kernel and some core libraries), it's even harder.
However, if what you really mean is you want a "clean" ROM that has no carrier customizations in it, there are "open market" ROMs available for many WP7 devices. These ROMs are still specific to the device whose BSP they contain, but are not specific to any mobile operator and usually not to any region.
thanks for the info guys, but it looks like there are no open market roms for the omnia w yet, well, not yet anyway, will keep an eye out now that i know what to look for,
thanks again guys
Answer is yes and no. No oem device created by Microsoft, but there is Nokia. As you know Nokia is part of Microsoft Windows Phone hardware partner. More options etc has Nokia.
Sent from my Lumia 900 using Board Express

Android as an OS for non-phone devices

Hello,
First off, apologies if I have posted this in the incorrect forum.
The company I work for is looking to update one of it's product lines and has been toying with the idea of using Android as a development platform. Up until now the philosophy has always been to develop simple, bespoke embedded software that provides only the functionality that is needed at the time. The device itself will be a medical device, and as such will have no telephony requirements (and associated things like contacts, calander and the large majority of the pre-installed Android apps).
I have read, and understand it is possible to re-compile Android from source and remove all of these non-required functionality. My question is really if that is worth doing? i.e. stripping out all un-needed applications that get build into a stock ROM. Or would it be a more efficient to use some form of OTS embedded Linux platform?
Something in Android 4.0 that does seem to be useful is the support for Bluetooth HDP.
Kind Regards,
Simon
Well there are other devices that aren't phones that use Android. Take the motoactv for example. It's a fitness watch that runs a stripped version of Android, but it's still Android and applications can still be programmed and installed to it.

What behaviour in the mobile operating system market could be described as anticompetitive?

I am a retired programmer with too much time on my hands; as such, I wrote a complaint to a regulatory body about how I can't install the operating system I want on my device because it will render it unusable (if I can't call for help on a phone because of drivers, what good is it?). I received a response requesting an interview with an officer who specializes in anticompetition cases and I would like to make sure I have my eggs all in one basket.
The current mobile phone market I liken to the desktop OS market of the 90s, where you had companies like Xerox, Microsoft, IBM, and so on; in the 90s, there were antitrust lawsuits where a particular company was accused of intentionally creating barriers to customers seeking to install software by other companies on personal computers. Obviously, that was settled in the 2000s, but IMO it did appear to make a positive change even if we are still fighting against IE. This may not be relevant, but that's what my mind went to when I realized I couldn't uninstall the Play Store.
Nobody uses "cellular telephones" as telephones anymore; instead, they are mobile computers. Computers in the 80s/90s had plenty of OS options (you may recall using OS/2 or BSD), but you can't do that with mobile computers... is that a good thing?
In my retirement, I'd like to develop and build a mobile phone operating system that is not android (nor lineageOS); this would either be Linux or BSD-based with a simple package manager, but the user would have the option to compile their own software also. This would ideally *not* hinder the underlying function of the device (i.e. telephony), but I don't see how manufacturers could be compelled to provide binary drivers. The current mobile market makes it obviously a very high barrier to entry for any who want to develop new operating systems for mobile computers. Is this anticompetitive? Perhaps not, but I'd like to hear some opinions and if you would kindly point me towards some resources I would appreciate it.
IMO the OS is not the problem - a command line based OS can be written by any talented student nowadays - preferably in C++, yes there are enough templates on the Internet, it is the device drivers what have to fit the hardware that make the whole thing difficult. I know that some OEMs put their device drivers' source code to the public.
jwoegerbauer said:
IMO the OS is not the problem - a command line based OS can be written by any talented student nowadays - preferably in C++, yes there are enough templates on the Internet, it is the device drivers what have to fit the hardware that make the whole thing difficult. I know that some OEMs put their device drivers' source code to the public.
Click to expand...
Click to collapse
To install a new OS on a phone, the phone must first be booted into a bootloader such that the 'image' of the OS can be loaded. The image for the OS should be built with the drivers present such that when booting, the OS kernel can load the relevant drivers as it probes the hardware in the phone, and then the software installed on the user layer can access that hardware through the relevant system calls. How possible is it for the bootloader to load a custom OS in the general sense? The majority of instructions I find are on enthusiast/developer websites with the actual manufacturers giving basically no input (that is to say, I haven't seen on manufacturer's websites or instruction manuals where they give instructions for booting your choice of OS).
Would it be fair to say that mobile developers, like Google/Samsung/LG/Amazon/etc are restricting users from being able to install their own OS on their device? Is driver access a reasonable thing to ask for?
Again, I'm retired, so I have time on my hands, but I'm old and there's realistically not a lot of that time left. I don't want to try developing my own BSD-based mobile OS if there's no way for me to install it on my own devices; that effort could go into another project if it is otherwise wasted. I suppose it is worth asking whether I should bother returning the bureau's request for an interview.

Categories

Resources