Thursday, June 25, 2009

Linux Kernel Reading Book List

1. Professional Linux Kernel Architecture (PDF)


This book is focus on kernel 2.6.24 ~ 2.6.26.
2.

Android Reading List

1. Hello, Android: Introducing Google's Mobile Development Platform
2. Android Application Development
3. Unlocking Android (PDF)
4. Professional Android Application Development (PDF)
5. Android Essentials (PDF)
6. Beginning Android (PDF)
7. Pro Android (PDF)
8. Androd Programmer Guide (PDF)
9. The Busy Coder's Guide to Android Development ()
10.


Related Blog:
http://scottshulinux.blogspot.com/2009/01/howto-compile-android-linux-on-fedora.html

Tuesday, June 23, 2009

Eclipse

Embedded Linux development using Eclipse
(PDF)



Eclipse Distro + Subversive Team Provider
Free download

Wednesday, June 10, 2009

Linux Kernel Stuff

Linux Kernel Makefiles
http://www.ravnborg.org/kbuild/makefiles.html

Linux Test Tools

Linux Test Tools

http://ltp.sourceforge.net/tooltable.php

Linux Memory Test

Memtester

1) Random value
2) XOR comparison
3) SUB comparison
4) MUL comparison
5) DIV comparison
6) OR comparison
7) AND comparison
8) Sequential Increment
9) Block Sequential
10) Solid Bits
11) Bit Flip
12) Checkerboard
13) Walking Ones / Walking Zeroes

The walking "1"'s (for a byte wide memory) involves writing a binary value "00000001" into the first location in read/write memory. The value is then shifted one position to the left so that the binary value is "00000010". This value is written to the next location in memory. When the "1" is left shifted out of the 8-bit value, the value "00000001" is reused and the left-shifting begins again from there. This pattern of left-shift by one bit then writing the new value to next memory location is repeated until all of the memory is written.

Once all memory is written then the memory is read location by location and compared to the left-shifted pattern originally written.

The walking "0"'s is the same algorithm with the exception that the pattern used begins with a "11111110" written to the first memory location and "11111101" is written to the second location.

This test is intended to uncover data or address bus problems both internal to the memory device as well as external.

14) Bit Spread
A Bit Spread test, to help catch inter-bit dependencies within a word when a 0 bit is caught between two 1 bits, or vice versa.

LMBench

CacheBench

1) memset() from the C library
2) memcpy() from the C library
3) Cache Read
4) Cache Write
5) Cache Read/Modify/Write

STREAM

U-boot Memory Test

Other Test Algorithm:
Self Address
Write the address of the memory to the memory.
March C- Solid Bits
It consists of writing an all-0’s pattern (and all-1’s pattern), then reading all the cells.
March C- Checkerboard
Writes 1’s and 0’s into alternate memory locations in a checkerboard pattern. Wait for several seconds and read. Repeat for complementary patterns.
Walking Ones Left
Walking Ones Right
Walking Zeros Left
Walking Zeros Right

Reference:
1. The March10N/MarchC memory test
2. Fast Accurate Memory Test Suite

Tuesday, June 9, 2009

Cache

Write-through

Write-back

The value kept in the backing store should be up-to-
date with any changes made to the version stored
in the cache, but only to the point that it is possible
to ensure that any read requests to the version in the
backing store (e.g., from another processor) return
the most recently written value stored in the cache.

Two typical mechanisms used in general-purpose
caches to effect this responsibility are write-back and
write-through policies. When writing to a cache, the
backing store is implicitly updated, but when? Two
obvious choices are immediately and later; the first
is write-through, and the second is write back.

outer_inv - /* invalidate only */
outer_clean - /* writeback only */
outer_flush - /* writeback and invalidate */