Difference between revisions of "EmBIOS"

From freemyipod.org
Jump to: navigation, search
(Building: add link to buildserver)
Line 2: Line 2:
 
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 folder [http://websvn.freemyipod.org/listing.php?repname=freemyipod&path=/embios/&#a70ba5517efd721bf4f2b7b4285a23990 here]. The emBIOS trunk has temporarily abandoned support for the [[Nano 4G]] since there was a holdup concerning it's timer. 4G development continues in the '4g_compat' branch. It will be merged in as soon as this holdup is solved.
+
If you're curious about how emBIOS works, you can browse it's SVN folder [http://websvn.freemyipod.org/listing.php?repname=freemyipod&path=/embios/&#a70ba5517efd721bf4f2b7b4285a23990 here].
 +
 
 +
The emBIOS trunk had temporarily abandoned support for the [[Nano 4G]] since there was a holdup concerning it's timer. 4G development continued in the '4g_compat' branch which was merged to the trunk again as of 10 august 2010.
 
==Building==
 
==Building==
 
If you want to try it out on your own iPod, there are automatic builds on [http://builds.freemyipod.org/ our buildserver], but you might as well just check out the SVN and compile it yourself. After all, emBIOS itself doesn't do much except print out its version string to the console. You must put something in main.c if you want it to do anything. Here are the basic steps to getting emBIOS up and running on your iPod:
 
If you want to try it out on your own iPod, there are automatic builds on [http://builds.freemyipod.org/ our buildserver], but you might as well just check out the SVN and compile it yourself. After all, emBIOS itself doesn't do much except print out its version string to the console. You must put something in main.c if you want it to do anything. Here are the basic steps to getting emBIOS up and running on your iPod:

Revision as of 00:09, 11 August 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 folder here.

The emBIOS trunk had temporarily abandoned support for the Nano 4G since there was a holdup concerning it's timer. 4G development continued in the '4g_compat' branch which was merged to the trunk again as of 10 august 2010.

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. After all, emBIOS itself doesn't do much except print out its version string to the console. You must put something in main.c if you want it to do anything. Here are the basic steps to getting emBIOS up and running on your iPod:

  • Check out the Freemyipod SVN.
  • Build the UCL tool in the root of the SVN using make. You will need access to the UCL libraries to build this.
  • 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.
  • If you are on a Nano 2G, build the trunk using 'make ipodnano2g'. If on a Nano 4G, build the 4g_compat branch using 'make ipodnano4g'.