原创 ubuntu不能上外網

ubuntu設置成靜態IP後不能上外網,內網沒問題,折騰一天後終於可以上網了。 關於dns的設置: vim /etc/resov.conf nameserver:202.106.0.20 nameserver:211.167.230.10

原创 Android步進電機

我打算設計一個移動機器人,需要攝像頭和車輪。 攝像頭需要2個步進電機,控制左右旋轉和上下旋轉,底盤需要2個步進電機,控制車體移動,步進電機5線4相,總共需要16路pwm。 限於板子IO口數量不夠,本次調試pwm模塊pca9685拓展,支持

原创 Android OpenCV 旋轉圖像

使用opencv的攝像頭預覽圖像是逆時針旋轉90度的。 c++的方法多一點,我就想java也有直接的辦法。參考API後看到這樣一個方法,在Imgproc類下。 API說明: getRotationMatrix2D public stati

原创 Kernel Painc 調試

有時候遇到系統崩潰又不知道怎麼下手,這時候定位panic位置就顯得極爲重要. 我們需要用到objdump  這個工具.簡單介紹一下,具體說明看附錄. objdump就是把二進制文件轉換成彙編,arm系統下有arm-linux-objdum

原创 Android讀寫NFC

NFC卡種類很多,NFC讀寫芯片PN547可以支持格式: Android SDK API已經有封裝好的接口 http://www.android-doc.com/reference/android/nfc/tech/package-

原创 Linux 內核文件操作

正常思路是應用裏讀取文件內容,再通過ioctl、write等方式把文件buffer傳送到內核,內核裏不推薦使用對文件IO直接操作,但是要使用還是可以的。 思路如下: 一、filp_open打開獲取句柄,判斷指針 二、切換到內核態 三、讀取

原创 synchronized的理解

百科找到定義:可用來給對象和方法或者代碼塊加鎖,當它鎖定一個方法或者一個代碼塊的時候,同一時刻最多隻有一個線程執行這段代碼. 鎖就需要一個鎖和鎖住的空間. 格式: synchronized (obj) {//obj鎖的名字 //

原创 Android Usb的研究

USB爲什麼複雜,因爲USB標準內容太多了. Android上的USB外圍設備.我見過指紋,鼠標,觸摸屏,U盤.大部分人用USB充充電.USB的介紹網上已經很多了,我以移植一個USB觸摸屏來說明我的理解. Android上USB的API

原创 i2c的個人理解

Android很多設備都是i2c接口,鍵盤、光感、羅盤、陀螺儀、攝像頭,原生的linux系統對i2c子系統封裝得很好,一般不會出問題,不需要自己研究底層協議。大部分情況調試i2c也不是一接入就可以,還是得結合波形觀察。 地址: 每個i2c

原创 system.map代碼追蹤調試

平臺:高通msm8916 Linux3.1.x 客戶需要特定情況下設置按鍵在有些情況下爲特殊鍵。需要修改驅動層的東西,當然也有其他方法。 很不巧,這個按鍵是電源芯片的GPIO,修改起來難度很大。這方面高通架構很少資料,自己跟蹤代碼分析。

原创 調試掃描頭

Android版本:4.4 前前後後調試了快一個月,最後調試到產品穩定。 掃描頭本質是攝像頭,遵循Camera架構. 第一階段: 驅動掛上了,i2c讀寫不穩定,用系統前置預覽,沒有圖像。 示波器量mipi,沒有波形,查看手冊才發現掃描

原创 Android Jni編寫

Android經常會調用到jni庫,作爲廠商經常需要提供jni庫給用戶,一方面是對客戶提供接口,方便客戶操作。 另一方面,算法或者設備操作細節不方便對客戶公開,對我們代碼起到保密作用。 以建立一個Pwm爲例,以下分幾步介紹jni創建,示例

原创 高通mipi dsi代碼理解

在bootloader是lcd代碼 長類型代碼: 示例:static char video_on_cmd[] = {0x03, 0x00, 0x29, 0xC0, 0xFF, 0x12, 0x87 ,0xFF}; 說明:4字節Hdr,Hd