I am trying to boot an Android image that was designed for Qualcomm Snapdragon 210 (MSM8909 SoC) on my computer.
I have all the necessery files (initrd, zImage, system.img, boot.img).
What is the best way to do so? qemu did not work for me.
There is a lot more to modelling a full SoC like a Snapdragon than just having an ARM emulation. You would need to model the peripheral devices as well as a board that incorporates the chip with additional devices. As far as I'm aware the only Android images that work under emulation specifically target emulation targets (goldfish, ranchu and now cuttlefish). I'm not aware of any work to model the Snapdragon or any of the boards that use it in QEMU.
Related
Preface: I'm a student about to take a course in Operating Systems. I thought I'd do some prep by watching a series on YouTube first.
Throughout the course of watching about 10 of the videos in this series, I have learned that roughly the operating system's purpose is to serve as an interface for System Programs/Applications/I/O devices/etc. to communicate with the system's hardware.
This got me thinking about how Apple's hardware is not modularly customizable. How Apple users can't swap out hardware components as easily as users on a system running Windows OS. I began to think that most likely this is because the OS Apple implements is built very specifically with the original hardware their products come with to run as efficiently as possible.
Is there any truth to this logic? I'm basically just trying to apply what I've been learning to a "real-life" example.
This got me thinking about how Apple's hardware is not modularly customizable.
It is quite customizable but not with their own hardware. The "hardware" that Apple is shipping is mostly x86-64 CPUs with a recent chipset like an xHCI, an AHCI and a modern PCI network card, etc. This is unless you have an M1 computer which is their most recent product based on an ARM architecture. They licensed the architecture from ARM ltd. and are manufacturing their own CPU. I think this is a very good and open decision from Apple unlike several bad ideas they had about their phones like removing the 3.5mm jack or using a lightning plug instead of USB-C.
If you do have an x86-64 CPU, the OS Apple built called MacOS can run on the computer. It is simply forbidden by Apple's license of use. The fact that their hardware is less customizable has mostly to do with screws and the way that the case is made than with the OS itself.
What sort of hardware can I use to implement Eddystone beacons?
I don't want I manufactured hardware like estimote or radius networds hardware.
For Eddystone-UID and Eddystone-URL, you can use:
Any hardware based on a Bluetooth 4.0 chip. Manufacturers include Nordic, TI, and Blue Giga make modules and systems on a chip, but you will need tooling from them to develop firmware.
An Android 6.0+ device that supports BLE advertising. Code is written in Java.
Any Linux computer including a Raspberry Pi that supports the BlueZ stack and has a Bluetooth 4.0+ device.
You cannot use:
An iOS device. The operating system prevents advertising
I'm tinkering with an iPhone-controlled RC car chassis that is the base of my robotics project. The chassis is controlled with a WiRC Wi-Fi module. It has eight outputs to control electronic speed controllers and servos.
I'd like to improve my robot's ability to avoid obstacles using sensors. For this purpose, I have an Arduino board which I can interface with various inexpensive rangefinders and proximity sensors. I'm looking for examples or demo projects that would connect an iPhone to an Arduino board using Bluetooth to send commands to the board and receive data from the board. Is what I'm thinking of possible?
Thank you for any links to projects or hardware boards that may interact with an iPhone using Bluetooth. It's great if some of these boards have an SDK to simplify development.
Unfortunately, standard Bluetooth communications with devices on iOS is restricted to devices within the MFi program, so you're not going to be able to use that with your Arduino board. However, the new Bluetooth 4.0 LE protocol that is supported in newer iOS devices (iPhone 4S, Retina iPad) is open and can be used to connect any LE device.
iOS 5.0 introduced a new framework for this in Core Bluetooth, and I highly recommend watching the two sessions from WWDC 2012 about this. They also have some sample code on the topic. I've been using this myself to connect to some sensors, and it works well for a low-bandwidth application like temperature, proximity, or heart rate sensing.
There are several BT LE modules out there, and it looks like Dr. Michael Kroll is about to start producing an Arduino shield for LE communication, which would make it trivial to add this kind of capability onto an Arduino board.
It's probably a bit late for your project, but the RedBear BLE Shield coupled with an Arduino works great. There is even a robotic truck project built around this combination in Building iPhone and iPad Electronics Projects.
You can access the BLE shield using Objective C, but it's also possible to avoid a Mac entirely and use techBASIC, which lets you program right from the iPhone or iPad.
I am heavily interested in Operating System theory and design and have decided I would like to play with developing an OS. I have a background in x86 assembly and have looked into ARM also. I would like a development board to develop the OS for. Has anyone had experience with OS development and/or can suggest some hardware to use?
One board I am considering is the LPC1769 LPCXpresso board.
I am aware I could use a VM, but I would like to use actual hardware.
Well.. I personally started off with an RTOS called freertos (http://www.freertos.org/). This is an open source RTOS and is very minimalistic. It is also supported across a ton of platforms and is well written and maintaned. I ran it on a PIC32 microcontroller kit. However I would recommend you try something like Arduino boards which are more suited for beginners.
Happy learning!
Old thread, you have found your way by now, but I would definitely recommend the FreeRTOS + LPCXpresso 1769 combination.
What is the best way to realize wireless communication between an embedded system (based on an AVR controller) and the iPhone? I think there are only two options: either WiFi or BlueTooth. The range is not really a problem, since both devices should stay in the same room.
I have no idea, if there are any useful WiFi boards that can be connected to an AVR based microcontroller system (or any small microcontroller), any hints would be highly welcome.
I guess the better solution would be BlueTooth, but there is also the problem: which BlueTooth board is best suited for attachment to an AVR system, and is it possible to use the iPhone BlueTooth stack for (serial) communication over BlueTooth with the AVR device.
I hope that somebody already realized such a system and can give some helpful tips...
You can get modules for both WiFi and Bluetooth that will connect to an embedded system through a UART interface, however a WiFi module will have far more processing power than your AVR microcontroller, often with spare capacity and I/O to execute additional user code, so connecting one to an AVR maybe somewhat redundant in many cases.
Bluetooth modules are simpler, less expensive, and the data-rate is better matched to the AVR's capabilities. For example these Parani modules. I have used them between an embedded system and a Laptop PC's Bluetooth, so given appropriate communications software, there is no technical reason why it could not be used with an iPhone I think. However this may be the flaw, on the PC the device was recognised as a virtual serial port, I don't know whether iPhone supports 'legacy' communications in quite the same way.
For comparison, a WiFi solution
From what I know, BlueTooth is very limited on the iPhone: There is only very few BlueTooth-Profiles implemented, and - even if they can be extended with a jailbroken iPhone - I doubt this is easy to use from the application layer.
On the other side, transferring via WiFi requires a lot of processing power and memory since much more things have to be implemented before you can even start transferring data: 802.11, cdma/ca, arp, tcp. That's a big task.
Is it an option to build a hardware extension to the iPhone ? You might be able to get the serial connection and power out of the dock connector. Then even ZigBee could be very helpful.
Here's an article you might find helpful. I would lean toward a WiFi solution just because of the added flexibility available.
http://www.embedded.com/design/networking/215801088
-t
Some of the other people at the office have done AVR <- Bluetooth -> Symbian and AVR <- Bluetooth -> PC solutions without trouble. There is lots of info, reference designs and source available. I have no idea of how hard it would be to use Bluetooth on Iphone.
The exact module is probability also not important as long as it got some type of serial interface (I2C,SPI) to interface to the AVR and some source code show how to use the module.
Is it an 8-bit or 32-bit AVR? For the AVR32 processors there's support
for WiFi in the Atmel 1.5.0 Software Framework using SD-card-mounted
WiFi modules from HD Wireless (http://www.hd-wireless.se), including
an IP stack (lwIP). Be aware that you need Ad-Hoc (IBSS) support to
connect directly to the iPhone.
There is WiSnap kit. It can connect directly to a standard RS232 interface or through the TTL UART interface to embedded processors. We are planning to use it in our project. It also has Ad-Hoc support.
There are some usage examples and an iPhone application for connection setup.
http://serialio.com/products/mobile/wifi/WiSnapKit1.php
What are you trying to communicate between your AVR and the Iphone? The Iphone is made for the web along with everything apple (which AVR's are decidedly not). So what works well is an embedded device that exposes a web-interface. Like the Transmission bittorrent client on Linux. Also nowadays many low-power small form-factor linux platforms exist that will allow you to do this.
For instance Gumstix has an ARM based platform that runs linux and includes WiFi (Overo Fire).