2013年10月17日 星期四
2013年10月15日 星期二
Cross compile bluez for ARM
下載與解壓縮toolschain:
下載與編譯bluez-libs:
http://www.friendlyarm.net/dl.php?file=arm-linux-gcc-4.4.3.tgz $ sudo tar xvf ~/arm-linux-gcc-4.4.3.tgz -C /設定環境變數:
$ export PATH=/opt/FriendlyARM/toolschain/4.4.3/bin:$PATH $ export CROSS_COMPILE=arm-none-linux-gnueabi- $ export ARCH=arm編譯BlueZ 2.25:
下載與編譯bluez-libs:
$ mkdir bluez-2.25 $ cd bluez-2.25 $ wget http://bluez.sf.net/download/bluez-libs-2.25.tar.gz $ tar zxvf bluez-libs-2.25.tar.gz $ cd bluez-libs-2.25 $ ./configure --host=arm-none-linux-gnueabi --prefix=/home/renee/myfs/rootfs \ --enable-shared=no --enable-static=yes $ make $ make install
標籤:
兩光工具箱,
養了一隻小企鵝,
Mini2440開發版
2013年9月10日 星期二
Linux中斷處理
由於IO設備的速度遠慢於CPU,如果CPU要等待IO動作完成並處理的話,效率是非常差的。透過interrupt機制可解決這問題,當IO動作完成後會發出一個asynchronous interrupt,CPU偵測後會暫停手邊的工作,然後喚醒ISR(interrupt service routine)執行,並處理I/O的請求。
- interrupt的精神:
- interrupt handlers不能進入sleep,所以要避免呼叫叫到一些functions,內部潛在包含了進入sleep的function calls。
- 當interrupt handlers部分code要進入critical section,請用spinlocks上鎖,而不是mutexs。
- interrupt handlers不能與user space進行資料交換。
- interrupt handlers必須要儘速執行完畢。為了確保這一點,最好將執行工作切成兩部分,分別是top half與bottom half。handler的top half部分會儘速完成工作,然後可以晚點執行的工作放在bottom half,可以透softirqs與tasklets達到此目的。
- interrupt handlers不能重複被呼叫。當一個handler已經在執行,它的對應IRQ必須要被disable,直到handler執行完畢。
- interrupt handlers能被更高權限的handlers中斷。如果要避免被高權限的handlers中斷,你可以將interrupt handler標示為fast handler。但如果太多被標示為fast handlers被導致系統performance下降,因為interrupt latency時間會變長。
- synchronous interrupt(軟體產生):
- 當runtime錯誤發生,會發出此interrupt。
- software interrupts,例如system calls。
標籤:
企鵝心臟解剖學,
養了一隻小企鵝,
Mini2440開發版
2013年9月7日 星期六
Mini2440我命令你復活吧!
mini2440官方網站:http://www.friendlyarm.net
底下所有步驟完成後,目錄結構如下:
底下所有步驟完成後,目錄結構如下:
|---home---renee
|
|----mini2440------u-boot------(source code)
| | |
| | ----u-boot.bin
| |
| ----kernel------(source code)
| |
| ----arch----arm----boot----zImage
|
|----myfs------rootfs------lib----modules
| |
| ----bin----(busybox tools)
| |
| ----sbin----(busybox tools)
| |
| ----usr------bin----(busybox tools)
| |
| ----sbin----(busybox tools)
|
|----tftpboot----uImage
標籤:
養了一隻小企鵝,
Mini2440開發版
訂閱:
意見 (Atom)