- MIPS Android
We have updated the Linux toolchain, see:
Linux on MIPS Kernel 3.0.4 now available http://developer.mips.com/linux/
Today we released the “r8″ version of Android Froyo on MIPS. The source code and release notes are available here:
This release has substantial bug fixes and improvements, see release notes for details.
Ice Cream Sandwich
In the next several months Google will release Ice Cream Sandwich to open source. You can find information here on how to get a head start on Ice Cream Sandwich on MIPS.
Open Source Linux and ELF toolchains for MIPS are now available for download. For more information see:
Are you working on Android apps development? This appnote on the MIPS NDK describes how to build Android applications in native C or C++. http://tinyurl.com/3n5bn6k
Read Serge Vakulenko blog on “RetroBSD: A Port of BSD Unix to a Microchip PIC32 Microcontroller”
About RetroBSD: A Port of BSD Unix to a Microchip PIC32 Microcontroller
By Serge Vakulenko
I started this work a year ago as a hobby project. Now I can demonstrate a demo, running real Unix on a tiny development board.
The project is hosted on Google Code: http://code.google.com/p/retrobsd/.
The system is targeted to a market of small embedded systems. Main features include:
- Small resource requirements: RetroBSD requires only 128 kbytes of RAM to be up and running user applications.
- Memory protection: Using hardware mechanisms, kernel memory is fully protected from the user application.
- Open functionality: Usually, a user application is fixed in Flash memory, but in the case of RetroBSD, any number of applications could be placed into the SD card, and run as required.
- Real multitasking: Standard POSIX API is implemented (fork, exec, wait4 etc).
- Development system on-board: It is possible to have a C compiler in the system, and to recompile the user application (or the whole operating system) when needed.
RetroBSD is based on 2.11BSD: the last in the series of Berkeley Unixes for the PDP-11 architecture. I ported the kernel, C library and a set of basic utilities to the MIPS32 architecture, using GCC/Linux as a development environment. I also created a PIC32 simulator based on the VirtualMIPS opensource project (http://code.google.com/p/virtualmips/).
There exists a similar system named uCLinux that is widely used for similar purposes. But uCLinux requires ten times more RAM than RetroBSD. It also has a limited multitasking capability (no fork), no memory protection and no C compiler on-board.
I believe that RetroBSD could be quite popular for small embedded systems. For example, it’s possible to make something like a ‘Unix stamp’, as opposed to the widely known Basic stamp.
We have posted updated versions of Dalvik Turbo for Android. Included in this update are multiple binary versions for hard and soft floating point supporting Froyo and Gingerbread. The files are available at: http://developer.mips.com/login/dalvik-turbo/
Here at MIPS we have been working closely with Skype to optimize the Skype CODEC for MIPS. Today Skype announced that their Skype development kit “SkypeKit” is now open to the broader development community. Skype is the de facto video conferencing tool for PC’s and is quickly becoming pervasive on all TV’s and smart phones. You can find out more information about the SkypeKit at http://developer.skype.com
We are pleased to announced the release of Android Gingerbread R2. See the Android source code page for downloading instructions.
- Stagefright mediaframework is optimized for MIPS ISA and tested. MIPS DSP optimizations are done to VP8, tremolo and MP3 decoder.
- Gingerbread code is updated to 2.3.43.
- Moved to new FSF compiler 4.4.64.
- Miscellaneous CTS failures are brought down considerably.
- v8 has approximately 4.5% improvement of benchmark scores on 24K class cores, higher on 74K class cores.
Click the more button to see the complete release notes.
“CTS” is the Android Compatibility Test Suite and comes with Android source code. As stated on the Android website “Devices that are properly compatible can seek approval to use the Android trademark”. This means that your product needs to pass CTS before it can be Android approved. Information on the CTS tools can be found at: http://source.android.com/compatibility/cts-intro.html.
CTS runs on a host and target device (phone, tablet, etc.), the host downloads tests to the target, monitors the results and generates the report. CTS runs a test plan which is provided with the Android source code. The complete test plan contains more than 20,000 individual tests and can take most of a day to complete. It is common during the development phase that you would want to run only the failed tests. CTS has the ability to create a custom test plan which consists of only the previously failed tests, this is a major time saver during development when you are making a lot of changes.
Here at MIPS, we run CTS in our automated testing infrastructure. One of the challenges with CTS is that the generation of the custom “failed tests only” test plan has to be done from an interactive interface. Interactive interfaces don’t work well with automation!
Nishant Singh in our testing group has developed a very simple script using the “Expect” (http://expect.sourceforge.net/) scripting tool to solve this problem. This script allows the custom plan to be created during the automated run of CTS.
send “add –derivedplan FailedCases_99 -s 1 -r fail\n”
#expect “Create a new session \[0\]”
#expect “Choose a session \[1\]”
So use this little script and you won’t need any human intervention!
Don’t believe everything you read! Ian Anderton blogs on Freescale’s recent announcement about performance claims for their Kinetis microcontroller. http://www.mips.com/blog/?p=108
We have added an Android NDK that supports software floating point for systems that don’t have a hardware floating point processor. See http://developer.mips.com/android/android-apps-development/ under the Linux section.
We have posted an android utility to measure CPU loading. You can use this utility on any Android device, regardless of CPU type to monitor and measure the loading. The utility can be downloaded from this page http://developer.mips.com/?page_id=70
MG Sieler at Techcrunch wrote the following article about Google’s efforts on performance benchmarking
In a post yesterday on their Chromium, it’s pretty clear that Google feels their V8 benchmark suite is the best. In fact, they directly call out their rivals’ suites, noting bugs and saying that they must evolve. And then they go one step further: providing links to versions of the rivals’ suites supposedly perfected by Google!
Wow. In the extremely nerdy (and fairly incestuous) browser world, this is hardcore.
Specifically, Google says that SunSpider, first developed by Apple in 2007, contains tests that are “less relevant to the web in 2011″. Here’s the best part:
To fix this issue, Google made its own modified version of SunSpider which essentially runs tests 50 times consecutively to better gauge speed. When the tests are run this way, Google says that “the results begin to reflect Chrome’s true performance.” Naturally. According to Google, Chrome is more than 30 percent faster (in the test results) when measured this way.
Meanwhile, they say that Kraken, the new benchmark suite Mozilla just created, is “in better shape” — but buggy. “As a result, the benchmark is less useful and has even (mis)led us to spend time making some irrelevant optimizations in Chrome,” they note.
To get around this, Google is now hosting a new version of Kraken “built directly from Mozilla’s source code repository”.
Are these claims about rivals’ suites legit? It’s hard to say for sure, but I have a feeling that the rivals themselves would dispute that. It is a bit odd that Google is reworking the suites, and that the end result is Chrome performing much better in the tests.
Of course, my eyes don’t lie. I’m a Chrome guy all the way because in daily usage I find it to be much faster than either Safari or Firefox (on a Mac, at least). Until that changes, I’m trusting Google on this one.
The issue with duration of particular test runs is important, and IMHO should be calibrated depending on the speed of the HW on which the tests are run.
Testing MultiBench on MIPS systems should take into account two features:
- To run each tests long enough, so that the time measurements are precise.
- To avoid running tests too long, otherwise the whole benchmark will be painfully slow.
In addition, when varying parameters of the system (the number of cores, cache sizes, clock speed, memory configuration, etc) one would wish to satisfy the “feature 1″ (i.e. running long enough) on the seemingly fastest configuration. And the number of iterations (repetitions of the tests?) should better be kept identical for the slate of the benchmark runs in given experiment.
Therefore, the best solution would be to run the “calibration execution” on the fastest configuration and extract the calibrated iterations into, say, “iterations.txt” file … which should be used later for the benchmarks.
Coming back to the MultiBench results: When leaving the default number of iterations for the tests, one can get 3-5% worse results comparing to the results obtained with better tuned number of iterations.
Join our meetup and meet the MIPS team at a location near you http://www.meetup.com/mips-technologies
We’re going to be at Google I/O in San Francisco sending live updates, follow us on Twitter @mipsdev. We will also be meeting with developers during the show, stay tuned for meetup information.
MIPS gets sweet with Honeycomb!
Are you a MIPS NavICS user? You can now get beta releases of our NavICS development system! find them here http://developer.mips.com/?page_id=471
Working with Android on a Sigma Designs platform? Sigma had updated the bring-up instructions, look here for instructions and how to access the latest versions of Android for Sigma http://developer.mips.com/?page_id=663
Check out the “Tools” section for all kinds of information and videos on our software development tools. If you are developing Skype for MIPS, regularly check the “Multimedia Stacks” section under the “Resources” tab for Skype updates. http://developer.mips.com