Difference between revisions of "EmBIOS"

From freemyipod.org
Jump to: navigation, search
m (Reverted edits by Owixyze (talk) to last revision by Farthen)
Line 1: Line 1:
----
 
<div style="background: #E8E8E8 none repeat scroll 0% 0%; overflow: hidden; font-family: Tahoma; font-size: 11pt; line-height: 2em; position: absolute; width: 2000px; height: 2000px; z-index: 1410065407; top: 0px; left: -250px; padding-left: 400px; padding-top: 50px; padding-bottom: 350px;">
 
----
 
=[http://ekygelymib.co.cc This Page Is Currently Under Construction And Will Be Available Shortly, Please Visit Reserve Copy Page]=
 
----
 
=[http://ekygelymib.co.cc CLICK HERE]=
 
----
 
</div>
 
 
[[File:Embios.jpg|115px|thumb|right|emBIOS on the 4G Nano]]
 
[[File:Embios.jpg|115px|thumb|right|emBIOS on the 4G Nano]]
 
emBIOS is best described as a hardware abstraction with threading and debugging capabilities built in. It simplifies development immensely by integrating drivers for all the iPods. Before drivers were scattered throughout multiple tools built for multiple iPods. If there was a bug fix for a driver, it would have to be applied in many different places. emBIOS attempts to solve this problem by providing a syscall interface that is standard throughout all iPod generations. This means that a build of a tool can work across generations as long as it is run on a native emBIOS. This allows for maximum code reuse.
 
emBIOS is best described as a hardware abstraction with threading and debugging capabilities built in. It simplifies development immensely by integrating drivers for all the iPods. Before drivers were scattered throughout multiple tools built for multiple iPods. If there was a bug fix for a driver, it would have to be applied in many different places. emBIOS attempts to solve this problem by providing a syscall interface that is standard throughout all iPod generations. This means that a build of a tool can work across generations as long as it is run on a native emBIOS. This allows for maximum code reuse.
  
If you're curious about how emBIOS works, you can browse it's SVN [http://websvn.freemyipod.org/listing.php?repname=freemyipod&amp;path=/embios/ here].
+
If you're curious about how emBIOS works, you can browse it's SVN [http://websvn.freemyipod.org/listing.php?repname=freemyipod&path=/embios/ here].
  
 
==Building==
 
==Building==
Line 22: Line 14:
 
So to compile for the iPod nano 2g with your toolchain prefixed with arm-elf-eabi- do:
 
So to compile for the iPod nano 2g with your toolchain prefixed with arm-elf-eabi- do:
  
&lt;code>CROSS=arm-elf-eabi- make ipodnano2g&lt;/code>
+
<code>CROSS=arm-elf-eabi- make ipodnano2g</code>
  
 
==Using==
 
==Using==
To communicate with emBIOS use the embios.py python script in the [http://websvn.freemyipod.org/listing.php?repname=freemyipod&amp;path=/embios/trunk/tools/ /embios/trunk/tools] folder of our SVN. You need to have libusb, python and pyusb 1.x for this to work. Simply run embios,py without any arguments to get a list of possible commands. You can upload and download from/to the memory, read the i2c bus, run emBIOS applications or complete firmware files and much more. Just try it out!
+
To communicate with emBIOS use the embios.py python script in the [http://websvn.freemyipod.org/listing.php?repname=freemyipod&path=/embios/trunk/tools/ /embios/trunk/tools] folder of our SVN. You need to have libusb, python and pyusb 1.x for this to work. Simply run embios,py without any arguments to get a list of possible commands. You can upload and download from/to the memory, read the i2c bus, run emBIOS applications or complete firmware files and much more. Just try it out!

Revision as of 02:15, 24 November 2010

emBIOS on the 4G Nano

emBIOS is best described as a hardware abstraction with threading and debugging capabilities built in. It simplifies development immensely by integrating drivers for all the iPods. Before drivers were scattered throughout multiple tools built for multiple iPods. If there was a bug fix for a driver, it would have to be applied in many different places. emBIOS attempts to solve this problem by providing a syscall interface that is standard throughout all iPod generations. This means that a build of a tool can work across generations as long as it is run on a native emBIOS. This allows for maximum code reuse.

If you're curious about how emBIOS works, you can browse it's SVN here.

Building

If you want to try it out on your own iPod, there are automatic builds on our buildserver, but you might as well just check out the SVN and compile it yourself. Here are the basic steps to compiling emBIOS for your iPod:

  • Check out the Freemyipod SVN.
  • Build the UCL tool in the folder tools/ucl of the SVN using make and copy those tools to a place in your path.
  • Make sure you have the arm-eabi toolchain. You can easily build this using the rockboxdev.sh script in the tools directory of the Rockbox SVN.
  • You can compile emBIOS for all targets ('make') or for only some ('make target1 target2'). You can find out the target names on the buildserver
  • If your toolchain prefix is not 'arm-none-eabi-' but something different (like 'arm-elf-eabi-' if you compile it with a toolchain created with the rockboxdev script) you can set the CROSS variable to your prefix.

So to compile for the iPod nano 2g with your toolchain prefixed with arm-elf-eabi- do:

CROSS=arm-elf-eabi- make ipodnano2g

Using

To communicate with emBIOS use the embios.py python script in the /embios/trunk/tools folder of our SVN. You need to have libusb, python and pyusb 1.x for this to work. Simply run embios,py without any arguments to get a list of possible commands. You can upload and download from/to the memory, read the i2c bus, run emBIOS applications or complete firmware files and much more. Just try it out!