http://march.zmyseries.com/blog/archives/13
http://blog.sina.com.cn/s/blog_6524fd1f0101mu0g.html
http://blog.csdn.net/lhf_tiger/article/details/8900666
2014年12月31日 星期三
2014年12月30日 星期二
用指令把關鍵字丟google搜尋
https://code.google.com/p/pygoogle/
pygoogle is a very basic Google search module for Python. It has a limitation of only 64 results. If you want more results, see xgoogle
一個python工具, 直接把關鍵字當參數餵進去就吐出結果了
在cygwin上裝python跑 太輕鬆啦!
pygoogle is a very basic Google search module for Python. It has a limitation of only 64 results. If you want more results, see xgoogle
一個python工具, 直接把關鍵字當參數餵進去就吐出結果了
在cygwin上裝python跑 太輕鬆啦!
2014年12月27日 星期六
搞Linux
http://handingsky.blogspot.tw/2012/02/kernel-initrd-root-filesystem.html
- make modules_install 把各模組放到/lib/modules/`uname -r`/下面去,並且建立module間的dependacny
- depmod -a 這會重新尋找目前kernel下的所有模組,重新建立彼此的dependancy,如果你是third party的driver,基本上會放在/lib/modules/`uname -r`/extra底下,這時必須重建modules.dep。
2014年12月22日 星期一
Linux下操cpu運算的一行指令
http://www.linuxidc.com/Linux/2009-06/20495.htm
time echo “scale=5000; 4*a(1)” | bc -l -q
time是计时程序。scale是精度,4*a(1)调用了反正切函数。由三角函数我们知道1的反正切是pi/4, pi=4* pi/4。 -l -q参数的意思请参照manpage。这一行其实就是让bc计算1的反正切,计算精度是5000位。
2014年12月17日 星期三
為了SPI Flash 控制, 加入mtd
http://giros.pixnet.net/blog/post/96929648-support-spi-flash-on-linux
kernel 2.6.28裡面有一個支援 SPI flash 的驅動程式 m25p80.c,於是乎我就把它搬進來2.6.21,然後再做了一點小修改,如此一來就支援 Linux 本來用來讀取flash的MTD架構,更白話的說就是可以支援MTD partition切割以及利用mtd-utils等工具來讀寫flash了。
2014年12月12日 星期五
Android HAL 進階追碼
http://myblog-maurice.blogspot.tw/2011/12/android-hal.html
Android硬件抽象层(HAL)概要介绍和学习计划
http://blog.csdn.net/luoshengyang/article/details/6567257
http://www.360doc.com/content/12/0117/10/3700464_179849603.shtml
Android硬件抽象层(HAL)概要介绍和学习计划
http://blog.csdn.net/luoshengyang/article/details/6567257
HAL stub的框架比較簡單,三個結構體、兩個常量、一個函數,簡稱321架構,它的定義在:
@hardware/libhardware/include/hardware/hardware.h
@hardware/libhardware/hardware.c
http://fanli7.net/a/caozuoxitong/Android/2012/1016/236821.htmlhttp://www.360doc.com/content/12/0117/10/3700464_179849603.shtml
Android HAL 初始入門
hw_module_t struct Reference
一個HelloWorld
http://blog.csdn.net/luoshengyang/article/details/6573809
hello.h
Every hardware module must have a data structure named HAL_MODULE_INFO_SYM and the fields of this data structure must begin with hw_module_t followed by module specific information.
找這個關鍵字一個HelloWorld
http://blog.csdn.net/luoshengyang/article/details/6573809
hello.h
- /*定义模块ID*/
- #define HELLO_HARDWARE_MODULE_ID "hello"
- /*硬件模块结构体*/
- struct hello_module_t {
- struct hw_module_t common;
- };
- /*硬件接口结构体*/
- struct hello_device_t {
- struct hw_device_t common;
- int fd;
- int (*set_val)(struct hello_device_t* dev, int val);
- int (*get_val)(struct hello_device_t* dev, int* val);
- };
2014年12月11日 星期四
舊時代的Android wireless Bluetooth porting guide (FroYo/Gingerbread)
http://processors.wiki.ti.com/index.php/Android_wireless_build_and_porting_guide#Bluedroid
當時kernel不支援使用 rfkill 開關 BT module, 於是使用wl1271bt_enable 程式來代替rfkill的作用
當時kernel不支援使用 rfkill 開關 BT module, 於是使用wl1271bt_enable 程式來代替rfkill的作用
Android logcat 基本用法
參考 http://www.miui.com/article-272-1.html
指定標籤顯示訊息
指定輸出成檔案
設定格式,加入時間資訊
看一個例子
指定標籤顯示訊息
# logcat [tag]:* *:S
指定輸出成檔案
# logcat -f [filename]
設定格式,加入時間資訊
# logcat -v time
看一個例子
adb logcat ActivityManager:I MyApp:d *:S
上面表达式的最后的元素 *:S ,,是设置所有的标 签为”silent”,所有日志只显示有”View” and “MyApp”的,用 *:S 的另一个用处是 能够确保日志输出的时候是按照过滤器的说明限制的,也让过滤器也作为一项输出到日志中.
2014年12月10日 星期三
Android BlueDroid porting 需要 vendor提供 libbt-vendor.so
external/bluetooth/bluedroid/hci/src/Bt_hw.c
在init_vnd_if()函数可以看到其实是一个libbt-vendor.so的interface。这个是Vendor(芯片厂商)的library
Vendor就是芯片供应商的意思,在他们做好一块蓝牙芯片后,需要提供一些硬件相关的动作,比如上下电,设置波特率之类的。但是这些操作一般不会对没有许可的开放。Bluedroid提供了一个统一的接口bt_vendor_interface_t,供应商只需要实现这个接口定义的蓝牙相关的操作就可以交给bluedroid去做剩下的事情了
2014年12月9日 星期二
Android 4.2 BlueDroid support USB HCI
http://paz00.ru/index.php?title=Bluedroid_4.2_battle&setlang=en
http://stackoverflow.com/questions/17608727/does-android-4-2-2-support-usb-bluetooth-dongle
http://stackoverflow.com/questions/17608727/does-android-4-2-2-support-usb-bluetooth-dongle
CyanogenMod and Android-X86 contain patches to support USB HCI like this:
To enable this support in board look at android-x86 example, for BoardConfig
# Some framework code requires this to enable BT
BOARD_HAVE_BLUETOOTH := true
BLUETOOTH_HCI_USE_USB := true
BOARD_HAVE_BLUETOOTH_BCM := true
BOARD_BLUETOOTH_BDROID_BUILDCFG_INCLUDE_DIR := device/generic/x86/bluetooth
and for buildcfg
#ifndef _BDROID_BUILDCFG_H
#define _BDROID_BUILDCFG_H
#define BTM_DEF_LOCAL_NAME "Android-x86"
// At present either USB or UART is supported
#define BLUETOOTH_HCI_USE_USB TRUE
// Bluetooth Low Power Mode is supported on BT4.0
#define HCILP_INCLUDED FALSE
#endif
Also your kernel need UHID support.
藍芽常識術語
http://www.plantronics.com/tw/support/kb/detail.jsp?vfurl=/articles/zh_TW/Product_Information/RN16992&retURL=%2Farticles%2Fzh_TW%2FHow_To%2FRN18627®ion=tw&p=13&c=All&k=%25E9%2585%258D%25E5%25B0%258D&t=&lang=zh_TW&popup=false
藍牙技術中ACL和SCO 指的是?
藍牙基帶技術支持兩種連接方式:
-
ACL (Asynchronous Connectionless Link) 無連接的異步連接(主要用于分組數據傳輸)
-
SCO (Synchronous Connection Oriented Link) 面向連接的同步連接(主要用于話音傳輸)
藍牙技術用來無線連接不同生産廠家生産的藍牙設備,這些設備之間也需要相互的溝通,以便他們確認進行什麽樣類型的服務。藍牙耳機是用于語音、聽和說的音頻設備,但當耳機不進行上述工作時,它還是要和其它的作爲音訊閘道(audio gateway,簡稱AG)的設備,如手機,USB適配器進行溝通。
壹旦耳機完成了與AG的配對,它將進入壹個待機模式。當耳機與AG在有效範圍內時,它們以ACL方式連接。耳機與AG相互檢測以確認範圍,檢測控制信號如來電,重撥或語音撥號需要等。
如果AG接收到壹個電話且耳機的ACL是良好的,AG將將信號知會給耳機,耳機將發出哔哔聲提示用戶有來電。按下耳機通話控制按鈕,知會AG耳機可以開啓SCO且語音數據可以在耳機和AG之間進行交換。
藍牙基帶技術支持兩種連接方式:
- ACL (Asynchronous Connectionless Link) 無連接的異步連接(主要用于分組數據傳輸)
- SCO (Synchronous Connection Oriented Link) 面向連接的同步連接(主要用于話音傳輸)
藍牙技術用來無線連接不同生産廠家生産的藍牙設備,這些設備之間也需要相互的溝通,以便他們確認進行什麽樣類型的服務。藍牙耳機是用于語音、聽和說的音頻設備,但當耳機不進行上述工作時,它還是要和其它的作爲音訊閘道(audio gateway,簡稱AG)的設備,如手機,USB適配器進行溝通。
壹旦耳機完成了與AG的配對,它將進入壹個待機模式。當耳機與AG在有效範圍內時,它們以ACL方式連接。耳機與AG相互檢測以確認範圍,檢測控制信號如來電,重撥或語音撥號需要等。
如果AG接收到壹個電話且耳機的ACL是良好的,AG將將信號知會給耳機,耳機將發出哔哔聲提示用戶有來電。按下耳機通話控制按鈕,知會AG耳機可以開啓SCO且語音數據可以在耳機和AG之間進行交換。
Android 4.2之後 藍芽結構與程式碼分布
Android Official Document
http://source.android.com/devices/bluetooth.html
http://blog.sina.com.cn/s/blog_69b5d2a50101f2ew.html
http://source.android.com/devices/bluetooth.html
http://blog.sina.com.cn/s/blog_69b5d2a50101f2ew.html
- application framework
- 程式碼: framework/base/core/java/android/bluetooth/
- Bluetooth System service
- 程式碼: packages/apps/Bluetooth/
- JNI
- 程式碼: packages/apps/Bluetooth/jni/
- HAL
- 你得實現這些接口來讓你的BT Hardware運作正常
- 程式碼的標頭檔:
- hardware/libhardware/include/hardware/bluetooth.h
- hardware/libhardware/include/hardware/bt_*.h
- BT Stack
- 4.2開始, 預設為BlueDroid
- 程式碼: external/bluetooth/bluedroid/
- Vendor extension
- 為了追蹤添加自定義擴展和一個HCI層,創建一個libbt-vendor模組去指定
Download Android lollipop source code via repo
repo init -u https://android.googlesource.com/platform/manifest -b android-5.0.0_r6
or
repo init -u https://android.googlesource.com/platform/manifest -b lollipop-dev
repo sync -j8
or
repo init -u https://android.googlesou
repo sync -j8
2014年12月8日 星期一
2014年12月4日 星期四
Helloworld JNI
參考 中文網頁 http://yuanfarn.blogspot.tw/2013/12/javah-native-support-jni.html
可以使用javah來自動從java code產生C 的 header 與 source code
對照Android project src的話 在framework/base/ 下面可以找到許多名叫jni的資料夾
裡面塞滿一些 *.cpp檔, 都是用來實作JNI的 (這種抓著皮毛追脈絡的方式可能不是很正統....反正這應該只是我個人的筆記對吧? 不正統也不是害別人)
JNI如何在Android中運作呢?
參考 http://my.oschina.net/u/874134/blog/158621
分層呼叫控制 http://www.embedu.org/Column/Column339.htm
http://www.cnblogs.com/keis/archive/2011/04/12/2013174.html
可以使用javah來自動從java code產生C 的 header 與 source code
對照Android project src的話 在framework/base/ 下面可以找到許多名叫jni的資料夾
裡面塞滿一些 *.cpp檔, 都是用來實作JNI的 (這種抓著皮毛追脈絡的方式可能不是很正統....反正這應該只是我個人的筆記對吧? 不正統也不是害別人)
JNI如何在Android中運作呢?
參考 http://my.oschina.net/u/874134/blog/158621
分層呼叫控制 http://www.embedu.org/Column/Column339.htm
http://www.cnblogs.com/keis/archive/2011/04/12/2013174.html
2014年12月3日 星期三
bash shell裡的指令 "source"
正在使用的ubuntu 14.04裡的sh, 預設是dash
用bash才不會出錯
Android build/envsetup.sh , 用dash執行會有語法辨識錯誤
Syntax error: "(" unexpected
用bash才不會出錯
2014年11月25日 星期二
Android wireless module porting guide (for TI chip discussion)
參考 http://processors.wiki.ti.com/index.php/Android_wireless_build_and_porting_guide
Important
The following instructions are for TI-Android-FroYo-DevKit-V2.2 and TI-Android-GingerBread-2.3-DevKit-1.0 only. For instructions regarding newer versions of TI Android DevKit refer to the respective Porting Guide.
The following instructions are for TI-Android-FroYo-DevKit-V2.2 and TI-Android-GingerBread-2.3-DevKit-1.0 only. For instructions regarding newer versions of TI Android DevKit refer to the respective Porting Guide.
BoardConfig.mk
- WL1271 WLAN is enabled in android with the following settings in BoardConfig.mk
# Wifi USES_TI_WL1271 := true BOARD_WPA_SUPPLICANT_DRIVER := CUSTOM ifdef USES_TI_WL1271 BOARD_WLAN_DEVICE := wl1271 endif WPA_SUPPLICANT_VERSION := VER_0_6_X WIFI_DRIVER_MODULE_PATH := "/system/etc/wifi/tiwlan_drv.ko" WIFI_DRIVER_MODULE_NAME := "tiwlan_drv" WIFI_FIRMWARE_LOADER := "wlan_loader"
The setting BOARD_WLAN_DEVICE := wl1271 enables building of android components required to support the WL1271 WLAN including the firmware loader. Test apps etc.
- Bluetooth is enabled with the following setting in BoardConfig.mk
# Bluetooth BOARD_HAVE_BLUETOOTH := true
2014年11月20日 星期四
去日本血拼 -- 帶日幣還是信用卡?
現在日本已經擴大外國旅客退稅商品範圍
大部分想買的都可以退 , 消費稅是8%
手持貨幣過去灑的事前功課是盯緊匯率逢低買進 不在這裡討論
但在國外每刷一筆,下個月收到帳單會包括「國際發卡組織手續費+本土發卡銀行手續費」。
大部分想買的都可以退 , 消費稅是8%
手持貨幣過去灑的事前功課是盯緊匯率逢低買進 不在這裡討論
但在國外每刷一筆,下個月收到帳單會包括「國際發卡組織手續費+本土發卡銀行手續費」。
在發卡組織手續費部份,VISA和MasterCard目前都是收1~1.1%,American Express是1.5~2%,只有JCB完全不收取任何費用
但發卡銀行手續費部分,則授權給各發卡銀行自行決定。
[更新] 2010.四月份起,JCB恢復收取1%手續費,各家銀行的JCB卡超低手續費也回不來了,現在消保會規定各家銀行最多只能加收0.5%, 所以各家銀行看起來都是1+0.5=1.5%的手續費了,低於1.5%的非常少,有人找到的話請分享一下謝謝!!
努力方向有三: (2014.12.03更新)
現金/紅利回饋
元大銀行 鑽金卡 國內1.2% ; 海外2.2% (聽說又名: 破壞行情卡)
免年費方式 : 申請使用電子帳單
華南銀行 超級現金回饋JCB晶緻卡 國外實體商店滿萬元回饋2.88%(原本1% + 額外加碼1.88%) ; 未滿萬元餘額不享額外加碼 (維持原本1%)
免年費方式 : 首三年免年費
特殊店鋪給予特殊折扣
bic camera 對master card/VISA/銀聯卡 除了原本消費稅退稅, 還有5%折扣
手續費有1.5%0.5%節省空間
(*因為JCB恢復收取1%手續費, 所以只剩0.5%空間)
銀行不會放過能賺的錢給你 辦JCB的時候花點力氣去找手續費最低的銀行吧
目前台灣內各家銀行手續費幾乎都頂到消保會規定的上限0.5%,幾乎可以不用考慮了
Google Font
突然發現有這東西
http://www.google.com/fonts
需要掛 Google WebFont Loader
http://www.techrepublic.com/blog/web-designer/how-to-use-the-google-webfont-loader/
前輩的中文導覽!! 都中文了還不看?!
http://fundesigner.net/google-web-font/
http://www.google.com/fonts
需要掛 Google WebFont Loader
http://www.techrepublic.com/blog/web-designer/how-to-use-the-google-webfont-loader/
前輩的中文導覽!! 都中文了還不看?!
http://fundesigner.net/google-web-font/
2014年11月19日 星期三
2014年11月18日 星期二
把所有叫做reifan的檔案給我叫出來
效果:
去子資料夾找所有叫做 reifan 的檔案, ls顯示該檔相對路徑 , 然後grep 內容尋找字串 freescale , 然後空一行
-exec XXXX {} \; 這樣執行
-ok XXXX {} \; 這樣會先給你機會確認, 然後再執行
去子資料夾找所有叫做 reifan 的檔案, ls顯示該檔相對路徑 , 然後grep 內容尋找字串 freescale , 然後空一行
$ pwd; find . -name reifan -exec ls {} \; -exec grep freescale {} \; -exec echo "" \:
-exec XXXX {} \; 這樣執行
-ok XXXX {} \; 這樣會先給你機會確認, 然後再執行
awk sed 入門
參考 http://www.delightpress.com.tw/bookRead/skns00004_read.pdf
參考 http://wanggen.myweb.hinet.net/ach3/ach3.html
sed 和 awk 共通的運作方式是:只要符合「樣式」的資料列,就對它執行指定的「動作」。因此,瞭解樣式的基本語法,運用 sed 和 awk 才能得心應手。
awk 為一直譯語言(Interpreter),大量引用 C 語言的語法,取 C 語言對文字處理和輸出格式的精華,再加上支援原始 C 語言所沒有的對正規表示法的匹配和關聯矩陣(Associative Arrays)的支援。
因此 awk 和 C 語言應用上最大的差別為 C 語言指令和語法多而複雜,而 awk 小而精簡,用來處理和計算用文字記錄的資料和文字的排版。
1980 年代 awk 曾很流行,一直到約 1990 才逐漸被另一通用的直譯語言 Perl 所瓜分。
以下是 awk 常用的作用格式:
sed
sed 的動作為一次只讀一行並去掉結尾的換行到暫時的緩衝區(buffer)中,此暫時緩衝區稱為〝pattern space〞,接著處理完成後會把 pattern space 的內容送往螢幕後清空 pattern space 再去處理下一行,這樣不斷重複直到檔案結束。
sed 每個參數之間預設分隔符號(delimiter)是用〝/〞來區別如 sed 's/OLD/NEW/g' flie,但如要搜尋樣板有〝/〞會和分隔符號混在一起如再加上跳脫字元〝\〞會變得好像火星文看不懂。
例如要把 Linux 路徑〝/abc/wxy〞改為 WINDOWS 路徑表示法的〝\abc\wxy〞,sed 的寫法為 sed 's/\//\\/g' ,真的不易一眼看出什麼是什麼,
故 sed 可用除空白,換行以外的字元(英文字母或數字或符號皆可)來當分隔符號,只要前後一致即可。
要連續執行多個處理, [COMMAND]用 -e
Ex.
http://eric0703.pentaxfans.net/2285
參考 http://wanggen.myweb.hinet.net/ach3/ach3.html
sed 和 awk 共通的運作方式是:只要符合「樣式」的資料列,就對它執行指定的「動作」。因此,瞭解樣式的基本語法,運用 sed 和 awk 才能得心應手。
所以你必須透徹了解正規表示式:
正規表示式
符號代表的條件敘述, 滿足條件才是符合「樣式」
. 一點代表一個字元
^ 在列首
$ 在尾部
[...] 字元集合 ### Ex. [A-Z] A到Z之間任一字元 ; [ABc] A, B, c三者之間任一字元
* 出現 0 個以上
\{...\} 指定符合的個數 ### Ex. :\{3,5\} 表示前面的字元有 3 到 5 個。[a-z]\{3,5\}代表以小寫字母組成的字串,長度是 3~5。
awk
像是if(...) {...} , 符合條件時會執行指定動作
像是if(...) {...} , 符合條件時會執行指定動作
awk 為一直譯語言(Interpreter),大量引用 C 語言的語法,取 C 語言對文字處理和輸出格式的精華,再加上支援原始 C 語言所沒有的對正規表示法的匹配和關聯矩陣(Associative Arrays)的支援。
因此 awk 和 C 語言應用上最大的差別為 C 語言指令和語法多而複雜,而 awk 小而精簡,用來處理和計算用文字記錄的資料和文字的排版。
1980 年代 awk 曾很流行,一直到約 1990 才逐漸被另一通用的直譯語言 Perl 所瓜分。
以下是 awk 常用的作用格式:
- awk「樣式」檔案:把符合樣式的資料列顯示出來。
- awk '{動作}' 檔案:對每一列都執行{}中的動作。
- awk '樣式{動作}' 檔案:對符合樣式的資料列,執行{}中的動作。
sed
sed 的動作為一次只讀一行並去掉結尾的換行到暫時的緩衝區(buffer)中,此暫時緩衝區稱為〝pattern space〞,接著處理完成後會把 pattern space 的內容送往螢幕後清空 pattern space 再去處理下一行,這樣不斷重複直到檔案結束。
sed 每個參數之間預設分隔符號(delimiter)是用〝/〞來區別如 sed 's/OLD/NEW/g' flie,但如要搜尋樣板有〝/〞會和分隔符號混在一起如再加上跳脫字元〝\〞會變得好像火星文看不懂。
例如要把 Linux 路徑〝/abc/wxy〞改為 WINDOWS 路徑表示法的〝\abc\wxy〞,sed 的寫法為 sed 's/\//\\/g' ,真的不易一眼看出什麼是什麼,
故 sed 可用除空白,換行以外的字元(英文字母或數字或符號皆可)來當分隔符號,只要前後一致即可。
$ echo 'this is a apple' | sed 's:a:AN:' <- 將〝a〞改為〝AN〞(用〝:〞當 delimiter)
this is AN apple
$ echo '/home/frank/' | sed 's#/#\\#g' <- 將〝/〞改為〝\〞(用〝#〞當 delimiter)
\home\frank\
要連續執行多個處理, [COMMAND]用 -e
Ex.
$ sed -e 's/a/A/' -e '/this/ q' -e 'l' MyFile <- 多個 sed CMD 要使用,就一定要用〝-e〞
大量改檔名http://eric0703.pentaxfans.net/2285
2014年11月17日 星期一
Git 固有技
參考 http://goo.gl/BKz88x
http://marklodato.github.io/visual-git-guide/index-en.html
https://ihower.tw/blog/archives/2620
只想自己玩
創造一個repository (大陸名版本库)
$ git init
Initialized empty Git repository in /Users/grace/gracegit/.git/
新增改動部分到暫存區 (Stage) 裡面 (p.s. 改動部分包括了新增檔案/改動檔案/刪除檔案)
$ git add [file]
提交所有暫存區內的改動到版本庫 (repository)
$ git commit [參數: -m/-a/...]
檢查工作區內更動狀況, 暫存區內容
$ git status
還原工作區內的改動
$ git checkout -- [file]
抽掉暫存區內的某檔案改動 (p.s. 搭配--hard --soft 有其他效果)
$ git reset HEAD [file]
http://marklodato.github.io/visual-git-guide/index-en.html
https://ihower.tw/blog/archives/2620
只想自己玩
創造一個repository (大陸名版本库)
$ git init
Initialized empty Git repository in /Users/grace/gracegit/.git/
新增改動部分到暫存區 (Stage) 裡面 (p.s. 改動部分包括了新增檔案/改動檔案/刪除檔案)
$ git add [file]
提交所有暫存區內的改動到版本庫 (repository)
$ git commit [參數: -m/-a/...]
檢查工作區內更動狀況, 暫存區內容
$ git status
還原工作區內的改動
$ git checkout -- [file]
抽掉暫存區內的某檔案改動 (p.s. 搭配--hard --soft 有其他效果)
$ git reset HEAD [file]
2014年11月12日 星期三
2014年11月11日 星期二
木工
http://ggyymail.blogspot.tw/2012/09/blog-post_2138.html
木工不便宜 入門門檻不低
你需要小工具 只能做小東西
要裁版 裁料 需要大機具 高風險(受傷)
我把這個當成甚麼? 興趣嗎? 第二專長嗎? 有機會實際運用這項技能嗎?
買材料 小店五金行比較便宜
特力屋 ikea比較貴 但是店員會幫你服務
2014.11.23
在建成工具行有很多工具
電動的圓鋸 鑽頭 工具箱 固定夾 角尺 直尺等
雕刻刀
很多相關書籍
買了一把三木章圓刃4.5mm
在饒河街附近的切板店買了幾小塊木塊
木工不便宜 入門門檻不低
你需要小工具 只能做小東西
要裁版 裁料 需要大機具 高風險(受傷)
我把這個當成甚麼? 興趣嗎? 第二專長嗎? 有機會實際運用這項技能嗎?
買材料 小店五金行比較便宜
特力屋 ikea比較貴 但是店員會幫你服務
2014.11.23
在建成工具行有很多工具
電動的圓鋸 鑽頭 工具箱 固定夾 角尺 直尺等
雕刻刀
很多相關書籍
買了一把三木章圓刃4.5mm
在饒河街附近的切板店買了幾小塊木塊
ARM 記憶體配置 Linux kernel 概念整理盜文
http://tech-sjh.blogspot.tw/2011/06/arm-linux-kernel.html
摘譯這篇由 Russell King 在 2005 年 11 月 17 日針對 2.6.15
Linux kernel 撰寫的 ARM Linux kernel 記憶體配置
http://www.arm.linux.org.uk/developer/memory.txt
裡面指的是 linux kernel 使用 arm cpu 的虛擬記憶體的位址配置與排列方式
arm cpu 的虛擬記憶體定址空間: 4GB (32 位元的定址空間,
0000,0000 ~ FFFF,FFFF)
沒有遵循這個記憶體配置的 kernel 可能無法開機或發生隨機當機
畫個線:
http://www.arm.linux.org.uk/developer/memory.txt
裡面指的是 linux kernel 使用 arm cpu 的虛擬記憶體的位址配置與排列方式
arm cpu 的虛擬記憶體定址空間: 4GB (32 位元的定址空間,
0000,0000 ~ FFFF,FFFF)
沒有遵循這個記憶體配置的 kernel 可能無法開機或發生隨機當機
畫個線:
在實務上我們也可以修改 zreladdr-y 定義的實體記憶體位址,來改成我們想要把 linux kernel起始點放在 physical memory 的哪一個位置上。這也就是為何我們從 boot loader 載入 linux kernel 都要指定到某個固定實體記憶體位址的原因,因為在 make kernel 時就決定了這個位址。
2014年11月10日 星期一
u-boot 參數意義
http://blog.csdn.net/simon_dong618/article/details/9664527
bootdelay=3:表示UBoot在加载kernel之前等待时间,此处设置为3秒。
baudrate=115200:设置串口波特率为115200。
loadaddr=0x70800000:设置kernel在内存中的加载地址为0x70800000。
rd_loadaddr=0x70D00000:设置ramdisk在内存中的加载地址为0x70D00000。
bootfile=uImage:设置UBoot启动的kernel文件名称为uImage。
bootargs=console=ttymxc0 init=/init androidboot.console=ttymxc0 video=mxcdi0fb:RGB24,bpp=24 gpu_nommu gpu_memory=64M ldb=di0 di0_primary:
设置kernel启动参数,说明如下:
<console=ttymxc0>:设置控制台设备为ttymxc0。
<init=/init>:设置kernel第一个执行的文件为init。
<androidboot.console=ttymxc0>:设置android的控制台设备为ttymxc0。
<video=mxcdi0fb:RGB24,bpp=24>:设置video设备为mxcdi0fb,输出模式为RGB24,位深度为24位。
<gpu_nommu gpu_memory=64M>:设置GPU无MMU,缓存64M。
<ldb=di0 di0_primary>:设置显示设备为di0,且di0为主显示设备。
做個筆記
把zreladdr addr換了就開不了 把u-boot loadaddr隨便換都開的了, 只有當他跟kernel的zreladdr (就是mkimage時指定的loadaddr)相同時會開不了
做個筆記
把zreladdr addr換了就開不了 把u-boot loadaddr隨便換都開的了, 只有當他跟kernel的zreladdr (就是mkimage時指定的loadaddr)相同時會開不了
2014年11月7日 星期五
研究 Linux kernel from git.kernel.org (on Freescale solution)
https://community.freescale.com/docs/DOC-95017
Get Linux sources
Fetch linux source code:
$ git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
list the available release tags with
$ git tag -l 'v3.*'
list the available release tags with
$ git checkout <the-desired-tag>.
Compile
Assuming your cross compiler is called e.g. arm-linux-gnueabihf-gcc, you can compile by doing:
$ cd linux
$ export ARCH=arm
$ export CROSS_COMPILE=arm-linux-gnueabihf-
$ make imx_v6_v7_defconfig
$ make
$ make uImage
This should create a number of files, including arch/arm/boot/uImage and arch/arm/boot/dts/imx6q-sabresd.dtb.
(refs the rest on the site)
2014年11月5日 星期三
Travian 回鍋 ; 做點筆記
剛回鍋不久 新手保護期都還沒過
英雄一開始配點全砸資源的話可以有all 36/ single 160左右的生產力(數據可能有誤)
不配點戰力的話困難任務很難打 so, 戰力配2, 其餘砸資源
打到魔法書記得留一本, 等後期轉守為攻時改配點
巴哈文:
任務很難等....
這是第五天 am 11:07 來了一個任務
第五天 pm 03:38 來了一個任務
第六天 am 10:00 來了一個任務
14/11/22 01:17
2014.11.22
開第二村
2014.11.24左右(這天附近)
更改英雄駐紮地到第二村 -- 利用英雄的資源產量去幫助新村有很多好處
2014.11.27
任務目前保持一天來一個
自從英雄移動到第二村之後 新增的任務並沒有馬上開在第二村附近
導致英雄要從第二村長途跋涉到第一村附近完成任務
但今天開始 新增任務已經開在第二村附近了
以後不用跑來回20小時的冒險了吧....?
2014.12.04
開第三村
系統預估12/31能開第四村,繼續加速
英雄一開始配點全砸資源的話可以有all 36/ single 160左右的生產力(數據可能有誤)
不配點戰力的話困難任務很難打 so, 戰力配2, 其餘砸資源
打到魔法書記得留一本, 等後期轉守為攻時改配點
巴哈文:
英雄的任務會愈來愈少, 到 22 天之後, 每天只有 0.6 個任務.
由於英雄每天只會恢復 10% HP. 測試了幾次, 每個英雄在第3~4天時, 差不多也快掛了. 這時看是要故意自殺或是用補給品. 如果你拿到每天 HP+20 的裝備, 可以靠等待來回血. 否則就要用藥回復.
如果你打算自殺回血, 最好在你昇2級前, 找個大一點的綠洲撞一撞. 注意這次打的動物, 有可能會讓你昇級, 要自殺要早一點. 你不需要英雄宅也可以復活, 而且你的裝備和馬都會在. 補給品我就不確定了.
當你英雄昇第一級時, 至少至少要花一點在戰鬥上. 因為任務會愈來愈難, 不昇戰鬥的英雄容易重傷. 一般任務約減少 2~15% HP, 困難約 10~25% HP. 全加資源的肉雞英雄, 我測試的記錄, 普通任務去掉了 39% HP. 這表示你會浪費很多資源在重生英雄上.
魔法書不會增加你的智慧, 這是讓英雄洗點重來的道具.
由於英雄每天只會恢復 10% HP. 測試了幾次, 每個英雄在第3~4天時, 差不多也快掛了. 這時看是要故意自殺或是用補給品. 如果你拿到每天 HP+20 的裝備, 可以靠等待來回血. 否則就要用藥回復.
如果你打算自殺回血, 最好在你昇2級前, 找個大一點的綠洲撞一撞. 注意這次打的動物, 有可能會讓你昇級, 要自殺要早一點. 你不需要英雄宅也可以復活, 而且你的裝備和馬都會在. 補給品我就不確定了.
當你英雄昇第一級時, 至少至少要花一點在戰鬥上. 因為任務會愈來愈難, 不昇戰鬥的英雄容易重傷. 一般任務約減少 2~15% HP, 困難約 10~25% HP. 全加資源的肉雞英雄, 我測試的記錄, 普通任務去掉了 39% HP. 這表示你會浪費很多資源在重生英雄上.
魔法書不會增加你的智慧, 這是讓英雄洗點重來的道具.
任務很難等....
這是第五天 am 11:07 來了一個任務
第五天 pm 03:38 來了一個任務
第六天 am 10:00 來了一個任務
14/11/22 01:17
2014.11.22
開第二村
2014.11.24左右(這天附近)
更改英雄駐紮地到第二村 -- 利用英雄的資源產量去幫助新村有很多好處
2014.11.27
任務目前保持一天來一個
自從英雄移動到第二村之後 新增的任務並沒有馬上開在第二村附近
導致英雄要從第二村長途跋涉到第一村附近完成任務
但今天開始 新增任務已經開在第二村附近了
以後不用跑來回20小時的冒險了吧....?
2014.12.04
開第三村
系統預估12/31能開第四村,繼續加速
2014年11月4日 星期二
Android ION overview -- why there is so many "ION" stuff?
stolen from https://wiki.linaro.org/BenjaminGaignard/ion
ION is the memory manager of Android, it could be used by graphic and multimedia stacks to allocate buffers.
ION include a buffer sharing mechanism between process and drivers.
ION define opaque handles to manage underline buffers.
ION handles are only map in kernel if that is needed by drivers, it help to save logical address space.
In a same way ION handles aren't mmaped by default in userland but all helpers functions are provided.
2014年10月31日 星期五
想寫個可以遠端跟友人對戰mtg用的工具
一直想保留彈性 把動作細節實作成
"某區域內新增一個永久物(這時記載該永久物內容敘述)"
"某區域內移除一個永久物 並且 graveyard/exile zone新增一個永久物"
但邊寫邊覺得這個架構又大又不方便 佔記憶體又恐怖
還是該回頭考慮 先建資料庫導入所有發行牌內容
操作動作時用發行編號來當個體.... 犧牲彈性吧!
"某區域內新增一個永久物(這時記載該永久物內容敘述)"
"某區域內移除一個永久物 並且 graveyard/exile zone新增一個永久物"
但邊寫邊覺得這個架構又大又不方便 佔記憶體又恐怖
還是該回頭考慮 先建資料庫導入所有發行牌內容
操作動作時用發行編號來當個體.... 犧牲彈性吧!
2014年10月28日 星期二
自己Build一個kernel給自己用
- 簡易的步驟
http://my.cs.lmu.edu/~tcostell/ubuntu-kernel-howto/ - 後來我跟著這篇作
http://www.ubuntu-tw.org/modules/newbb/viewtopic.php?post_id=172050
10.04之後的版本可能會遇到套件沒有幫你把initramfs跟grub改好
所以你需要mkinitramfs, update-grub
改Blogger的文章中的格式
照著別人文章把以下格式加入版面範本HTML
範本->編輯HTML-> 找到 <b:skin>...</b:skin>, 點擊"..."把他展開, 把以下程式碼加入
使用方式:
code: <code></code> or <div class="code"></div>
quote: <div id="quote"></div>
範本->編輯HTML-> 找到 <b:skin>...</b:skin>, 點擊"..."把他展開, 把以下程式碼加入
code, .code {
display: block; /* fixes a strange ie margin bug */
font-family: Courier New;
font-size: 8pt;
overflow:auto;
background: #f0f0f0 url(http://klcintw.images.googlepages.com/Code_BG.gif) left top repeat-y;
border: 1px solid #ccc;
padding: 10px 10px 10px 21px;
max-height:200px;
line-height: 1.2em;
}
#quote {
display: block; /* fixes a strange ie margin bug */
font-family: Verdana;
font-size: 10pt;
overflow:auto;
background: #f7f7f7 url(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgq3DJOZa2N_X0XyGyxOM7m2eDwGxLIDtAHDKLUx1XfqAQiOKIW_rSDSHGD3BdtnE4fgEZdM2NYGb19tYJeNQeIBYl3w5B7ILxALN2eS-NRd6ksatRJkXMLMdM5dRf2nWOrTlwkjVAoxok/s288/quote-l.gif) left top no-repeat;
border: 4px dotted #ccc;
padding: 15px 15px 15px 31px; /*up right bottom left*/
max-height:300px;
line-height: 1.2em;
}
使用方式:
code: <code></code> or <div class="code"></div>
quote: <div id="quote"></div>
2014年10月24日 星期五
重編ubuntu kernel遇到問題 l pciutils-dev
用git 抓src code回來
照官方步驟 : https://help.ubuntu.com/community/Kernel/Compile
結果出錯fatal error: pci/pci.h: No such file or directory
fatal error: pci/pci.h: No such file or firectory
找到論壇有人提示補安裝套件
apt-get install pciutils-dev
過關.... 正在build
照官方步驟 : https://help.ubuntu.com/community/Kernel/Compile
fakeroot debian/rules clean AUTOBUILD=1 fakeroot debian/rules binary-debs
結果出錯fatal error: pci/pci.h: No such file or directory
fatal error: pci/pci.h: No such file or firectory
找到論壇有人提示補安裝套件
apt-get install pciutils-dev
過關.... 正在build
2014年10月22日 星期三
2014年10月20日 星期一
難記的縮寫/摻一點難記的東西
EPDC:Electrophoretic Display Controller,
or Electronic Paper Display Controller
IPU:Image Processing Unit [in Freescale]
與Camera, Display相關
VPU:Video Processing Unit [in Freescale]
與視頻播放相關,包括HW codec跟視頻後處理等
VPU is a high performance multi-standard video codec IP that can
perform the H. 264 BP/MP/HP, VC-1 SP/MP/AP, MPEG-4 SP/ASP,
DIVX, MPEG-1/2, RV-8/9/10, and MJPEG decoding and encoding.
GPU:graphics Processing Unit [in Freescale]
與 OpenGL 相關
與 OpenVG 相關
OpenVG(矢量图形算法标准)是一個矢量图形算法库,由Khronos组织开发和管理,与OpenGL有类似的特点,例如跨平台的应用编程接口、支援显示硬件等。但它针对对象和平台便不同了,OpenVG主要针对2D矢量图像如 Flash和SVG 的绘制,而平台方面大多支援智能手机平台、家用游戏和多谋体平台PS3等。
LDB:LVDS Display Bridge
LVDS:Low-Voltage Differential Signal, 低電壓差分訊號, 是一種電子訊號系統
MIPI
http://mipi.org/specifications/display-interface
DBI : Display Bus Interface
DPI : Display Pixel Interface
DSI : Display Serial Interface
AIDL
Android Interface Definition Language
編譯器可以通過aidl檔生成一段代碼,通過預先定義的介面達到兩個進程內部通信進程的目的。
or Electronic Paper Display Controller
IPU:Image Processing Unit [in Freescale]
與Camera, Display相關
VPU:Video Processing Unit [in Freescale]
與視頻播放相關,包括HW codec跟視頻後處理等
VPU is a high performance multi-standard video codec IP that can
perform the H. 264 BP/MP/HP, VC-1 SP/MP/AP, MPEG-4 SP/ASP,
DIVX, MPEG-1/2, RV-8/9/10, and MJPEG decoding and encoding.
GPU:graphics Processing Unit [in Freescale]
與 OpenGL 相關
與 OpenVG 相關
OpenVG(矢量图形算法标准)是一個矢量图形算法库,由Khronos组织开发和管理,与OpenGL有类似的特点,例如跨平台的应用编程接口、支援显示硬件等。但它针对对象和平台便不同了,OpenVG主要针对2D矢量图像如 Flash和SVG 的绘制,而平台方面大多支援智能手机平台、家用游戏和多谋体平台PS3等。
LDB:LVDS Display Bridge
LVDS:Low-Voltage Differential Signal, 低電壓差分訊號, 是一種電子訊號系統
Poky is a reference system of the Yocto Project - a collection of Yocto Project tools and metadata that serves as a set of working examples. To use the Yocto Project tools, you can download Poky and use it to bootstrap your own distribution.
Poky is the platform-independent, cross-compiling integration layer that utilizes OpenEmbedded Core. It provides the mechanism to build and combine thousands of distributed open source projects together to form a fully customizable, complete, coherent Linux software stack.
Poky's objective is to provide all the features and functionalities an embedded developer needs from one solution.
~ https://www.yoctoproject.org/tools-resources/projects/poky
SIMM socket -- single in-line memory module (pic: http://goo.gl/KmznI9)
有30pin 72pin 或是其他特定腳位 ref: http://en.wikipedia.org/wiki/SIMM
SDIO ref: http://wiki.csie.ncku.edu.tw/embedded/SDIO
Poky is the platform-independent, cross-compiling integration layer that utilizes OpenEmbedded Core. It provides the mechanism to build and combine thousands of distributed open source projects together to form a fully customizable, complete, coherent Linux software stack.
Poky's objective is to provide all the features and functionalities an embedded developer needs from one solution.
~ https://www.yoctoproject.org/tools-resources/projects/poky
SIMM socket -- single in-line memory module (pic: http://goo.gl/KmznI9)
有30pin 72pin 或是其他特定腳位 ref: http://en.wikipedia.org/wiki/SIMM
SDIO ref: http://wiki.csie.ncku.edu.tw/embedded/SDIO
- SD/MMC, Secure Digital縮寫SD,全名Secure Digital Memory Card
- SD 是一種 flash memory card 的標準,也就是一般常見的 SD 記憶卡,而 MMC 則是較早的一種記憶卡標準,目前已經被 SD 標準所取代.
- SD 本來是記憶卡的標準,但是現在也可以把 SD 拿來插上一些週邊介面使用,這樣的技術便是 SDIO。
- 透過 SD 的 I/O 接腳來連接外部週邊,並且透過 SD 上的 I/O 資料接位與這些週邊傳輸資料
- Host devices that support SDIO can use the SD slot to support:
- GPS receivers.
- digital cameras.
- RFID readers.
- FM radio tuners.
- TV tuners.
- Wi-Fi.
- Bluetooth.
Camera with SDIO http://wiki.csie.ncku.edu.tw/sdio1.png
UPIO : user-programmable Input/Output ? user controller parallel Input/Output
UPIO : user-programmable Input/Output ? user controller parallel Input/Output
MIPI
http://mipi.org/specifications/display-interface
DBI : Display Bus Interface
DPI : Display Pixel Interface
DSI : Display Serial Interface
AIDL
Android Interface Definition Language
編譯器可以通過aidl檔生成一段代碼,通過預先定義的介面達到兩個進程內部通信進程的目的。
2014年10月17日 星期五
搞dpkg速記
Maxsolar's Linux Blog: dpkg速記
http://wiki.debian.org.hk/w/Rebuild_dpkg_package
http://wiki.jackslab.org/Debian_基本系统安装关键技术
dpkg-source -x [某套件.dsc] ## 解壓縮套件包
進到該資料夾
debuild -i -uc -us ## debuild 需要 devscripts套件
如此就做出了 某套件.deb
若要在debuild之前先對原始碼做修改
改完之後需要做 dpkg-source --commit 對改動區域留下紀錄
debuild才不會阻止你製作deb包
還有更多維護與製作deb包的注意事項..... 大家加油 我到這裡就好
http://wiki.debian.org.hk/w/Rebuild_dpkg_package
http://wiki.jackslab.org/Debian_基本系统安装关键技术
dpkg-source -x [某套件.dsc] ## 解壓縮套件包
進到該資料夾
debuild -i -uc -us ## debuild 需要 devscripts套件
如此就做出了 某套件.deb
若要在debuild之前先對原始碼做修改
改完之後需要做 dpkg-source --commit 對改動區域留下紀錄
debuild才不會阻止你製作deb包
還有更多維護與製作deb包的注意事項..... 大家加油 我到這裡就好
套件相依性
dpkg/apt-get/aptitude 太方便了, 無腦裝來裝去都會動
但如果遇到了一些毛 無腦招式過不了關怎麼辦?
....
The following packages have unmet dependencies:
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).
....
這時候可以用點非常手段去解決眼前麻煩
修改 /var/lib/dpkg/status
逼dpkg系統修改規則 不要在那邊五四三
但如果遇到了一些毛 無腦招式過不了關怎麼辦?
....
The following packages have unmet dependencies:
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).
....
這時候可以用點非常手段去解決眼前麻煩
修改 /var/lib/dpkg/status
逼dpkg系統修改規則 不要在那邊五四三
訂閱:
文章 (Atom)
Hi Sandesh and Chris,
I've also tried to use USB Bluetooth dongle with JB4.2.2 and IMX6 Sagbresd board.
In my case, i use libusb library to access USB Bluetooth device. .
I did reference below link to do that.
ac100 - Bluedroid 4.2 battle
I can create SCO link between USB Bluetooth device and USB headset.
But i don't know how to send traffic this SCO link.
If you have any progress about SCO issue, could you share that in here?
Thanks,
Shin.