- Nov 23 Tue 2010 11:26
-
Inter-Machine Communication(x86<->Cell<->PAC Duo)
- Sep 06 Mon 2010 14:55
-
Native C applications for Android
Native C applications for Android
The Android Java SDK is nice and all, but what if you want to run
some C service or code? Well, it turns out that this isn't exactly
difficult. You can compile an application using a standard Linux
cross-compiler, install it and run your programs from the shell.
You will need a cross-compiler
(make sure you get the ARM GNU/Linux target). Then you can just create your program, compile, and upload to
the device:
You can then simply run you application:
$ adb shell data/hello
Hello, Android!
Now of course, this doesn't at all explain how to tie into the graphics or the
rest of the system, but that is left as an exercise for the reader ;)
Update: My instructions were missing the essential
The Android Java SDK is nice and all, but what if you want to run
some C service or code? Well, it turns out that this isn't exactly
difficult. You can compile an application using a standard Linux
cross-compiler, install it and run your programs from the shell.
You will need a cross-compiler
(make sure you get the ARM GNU/Linux target). Then you can just create your program, compile, and upload to
the device:
$ arm-none-linux-gnueabi-gcc -static hello.c -o hello$ adb push hello/hello data/helloYou can then simply run you application:
$ adb shell data/hello
Hello, Android!
Now of course, this doesn't at all explain how to tie into the graphics or the
rest of the system, but that is left as an exercise for the reader ;)
Update: My instructions were missing the essential
-static part!- Sep 06 Mon 2010 11:47
-
Compile Android kernel from the source
Compile Android kernel from the source
I confirmed the following procedure only on my linux host (FC8). Sorry for Windows and Mac users.
1. Get toolchains from CodeSourcery (Choose ARM GNU/Linux and IA32 GNU/Linux).
2. Get kernl source code from here.
3. Deploy toolcains and kernel source and enter in the kernel source tree.
I confirmed the following procedure only on my linux host (FC8). Sorry for Windows and Mac users.
1. Get toolchains from CodeSourcery (Choose ARM GNU/Linux and IA32 GNU/Linux).
2. Get kernl source code from here.
3. Deploy toolcains and kernel source and enter in the kernel source tree.
- Aug 31 Tue 2010 21:53
-
cache miss types
Three Cs model指的是我們可以將所有cache miss歸類成三大類:
1. Compulsory misses
2. Capacity misses
3. Conflict misses
1. Compulsory misses
2. Capacity misses
3. Conflict misses
- Aug 24 Tue 2010 14:48
-
Message Queue

IPC:Message Queues:<sys/msg.h>
Two (or more) processes can exchange information via access to a common
system message queue.
- Aug 24 Tue 2010 13:54
-
Shared Memory
Shared Memory is an efficeint means of passing data between
programs. One program will create a memory portion which other
processes (if permitted) can access.
programs. One program will create a memory portion which other
processes (if permitted) can access.
- Aug 23 Mon 2010 11:44
-
Pipe

1. This is pipe2.c. It start rather like the first examples, up
until we make the call to fork.
UNIX allows two ways of opening a pipe:
- Aug 23 Mon 2010 11:40
-
Inter-Process Communication
We have now began to see how multiple processes may be running on a
machine and maybe be controlled (spawned by fork() by one of our
programs.
- May 11 Tue 2010 16:21
-
ParallelTracer Status
- Apr 27 Tue 2010 13:41
-
POSIX Thread- Overview
The POSIX thread libraries are a standards based thread API for C/C++.
It allows one to spawn a new concurrent process flow. It is most effective
on multi-processor or multi-core systems where the process flow can be scheduled to run on
another processor thus gaining speed through parallel or distributed processing.
Threads require less overhead than "forking" or spawning a new process because
the system does not initialize a new system virtual memory space and environment for
the process.
While most effective on a multiprocessor system, gains are
also found on uniprocessor systems which exploit latency in I/O and other
system functions which may halt process execution. (One thread may execute
while another is waiting for I/O or some other system latency.)
Parallel programming technologies such as MPI and PVM are used in a distributed
computing environment while threads are limited to a single computer system.
All threads within a process share the same address space.
A thread is spawned by defining a function and its arguments which will
be processed in the thread.
The purpose of using the POSIX thread library in your software is
to execute software faster.
It allows one to spawn a new concurrent process flow. It is most effective
on multi-processor or multi-core systems where the process flow can be scheduled to run on
another processor thus gaining speed through parallel or distributed processing.
Threads require less overhead than "forking" or spawning a new process because
the system does not initialize a new system virtual memory space and environment for
the process.
While most effective on a multiprocessor system, gains are
also found on uniprocessor systems which exploit latency in I/O and other
system functions which may halt process execution. (One thread may execute
while another is waiting for I/O or some other system latency.)
Parallel programming technologies such as MPI and PVM are used in a distributed
computing environment while threads are limited to a single computer system.
All threads within a process share the same address space.
A thread is spawned by defining a function and its arguments which will
be processed in the thread.
The purpose of using the POSIX thread library in your software is
to execute software faster.
- Apr 27 Tue 2010 10:39
-
電腦開機流程

1. 載入BIOS (Basic Input Output System) 的硬體資訊與進行自我測試,依據設定取得第一個可開機的裝置 (CD-ROM, Hard disk, floopy)
2. 讀取並且執行第一個開機裝置內MBR (Master Boot Record)的boot loader (也就是grub , LILO, spfdisk...etc)
3. 依據boot loader設定載入kernel , kernel 會偵測硬體與載入driver
4. driver 運作後,kernel 會主動呼叫init程式, 而init 會取的run-level 資訊
- Apr 20 Tue 2010 11:06
-
ParallelTrace Source Code (Converter)