Useful References – Enlightenment Foundation Libraries (EFL/E17) in embedded linux
Modifying the cramfs image
1. Mount the cramfs file system image as a loop device. This will be read-only image.
2. Create a new directory (e.g $HOME/initrd-new) which will be used for modifying the image (RW mode)
3. Go to the mounted cramfs image directory and get the list of files using the following command
-
find / > /tmp/filelist.txt
4. Use cpio to copy the contents from the mounted directory to the new directory
- cat /tmp/filelist.txt | cpio -pdm /$HOME/initrd-new
5. modify the contents in the new directory as required.
6. Once the changes are done, use mkcramfs to create the cramfs image again.
- mkcramfs /tmp/new-initrd new-initrd
Useful References – Android Internals
http://honeypod.blogspot.com/2007/12/initialize-libc-for-android.html
http://honeypod.blogspot.com/2007/12/shared-library-hello-world-for-android.html
http://honeypod.blogspot.com/2007/12/dynamically-linked-hello-world-for.html
http://honeypod.blogspot.com/2007/12/compile-android-kernel-from-source.html
http://benno.id.au/blog/2007/11/29/android-update-systemimg
http://benno.id.au/blog/2007/11/29/android-qemu
http://benno.id.au/blog/2007/11/26/what-is-android
http://benno.id.au/blog/2007/11/21/android-neo1973
http://benno.id.au/blog/2007/11/18/android-runtime-strace
http://benno.id.au/blog/2007/11/18/android-framework-startup
http://benno.id.au/blog/2007/11/13/android-under-the-hood
http://benno.id.au/blog/2007/11/14/android-busybox
http://euedge.com/blog/2007/12/06/google-android-runs-on-sharp-zaurus-sl-c760
http://davanum.wordpress.com/2007/12/09/android-invoke-jni-based-methods-bridging-cc-and-java
http://nemustech.blogspot.com/2007/12/android-porting-to-real-target-hw.html
http://nemustech.blogspot.com/2007/12/android-porting-notes.html
Useful References – Linux ELF format
http://www.linuxforums.org/misc/understanding_elf_using_readelf_and_objdump_2.html
http://www.airs.com/blog/archives/category/programming/page/5/
http://www.securityfocus.com/infocus/1872
http://plan99.net/~mike/blog/2006/08/25/elf-and-program-loading/
http://plan99.net/~mike/blog/page/2/
http://em386.blogspot.com/2006/10/resolving-elf-relocation-name-symbols.html
http://packetstormsecurity.org/papers/bypass/GOT_Hijack.txt
http://www.greyhat.ch/lab/downloads/pic.html
http://www.linux-foundation.org/spec/book/ELF-IA32/ELF-IA32.html#STD.IA32.ABI.4
http://neuronicimpulses.blogspot.com/2005_12_01_archive.html
Switch Case Vs If else performance
Most people know that performance of switch/case is better than an if/else statement, if the case values are narrowed. But many doesnt know the reason why switch/case statement performance is better. I came across this tutorial which discusses on the assembly view of switch/case for different scenarios like narrowed case values, wides case values etc and how it differs from the if/else statement. From this, its clear that the Switch/case performance is better for narrowed case values.
Even though the discussion is specific to 68000, the concept remains the same across processors/compilers.
check it out @ http://www.eventhelix.com/RealtimeMantra/Basics/CToAssemblyTranslation3.htm
Function Invocation: Assembly view & Stack Manipulation
Came across the article on how the C function invocation happens and how the stack is manipulated in intel 30386 architectures. Even though the description is specific to win32 __cdecl APIs on Intel architecture, the concept almost remains the same in most architectures.
check it out @ http://www.unixwiz.net/techtips/win32-callconv-asm.html
Win32: Function Calling Conventions __cdecl & __stdcall
I was wondering why VC6 linker prepends an underscore to the function names while displaying errors during linking. I found this article on the win32 function calling conventions and details on why VC6 compiler rewrites the function names in the symbol table.
Check it out @ http://www.unixwiz.net/techtips/win32-callconv.htm
Linux: Dynamic Library interposition in *nix Operating system
Articles on Dynamic library interposition using LD_PRELOAD path which can be used for tuning performance, collecting runtime statistics, or debugging applications etc. Check it out @
http://developers.sun.com/solaris/articles/lib_interposers.html for Solaris
http://www.linuxjournal.com/article/7795 for Linux
Introduction to the Volatile Keyword [www.embedded.com]
This articule gives a good overview with examplets about the volatile keyword in C.
Check it out @ http://www.embedded.com/showArticle.jhtml?articleID=9900209
leave a comment