原创 打造自己Android系統學習、管理、編譯平臺

2019-10-24 買了主機,準備搭建自己的學習、管理平臺,搭建自己的編譯環境,在此記錄一下。 系統:Ubutun 16.04 編譯目標系統:Android 5.0   Linux4.4    Linux3 準備源碼包:     ubo

原创 [tiny4412][kernel]tiny4412 Linux4.4 pinctrl的學習與理解

參考文檔:Linux4.4/Documentation/devicetree/bindings/pinctrl/samsung-pinctrl.txt   samsung-pinctrl.txt文檔中的重要部分: pinctr的學習與理

原创 [tiny4412][kernel]tiny4412 Linux4.4 DM9621網卡移植

硬件: 核心板 : Tiny4412-1306-Schematic 底板 : Tiny4412SDK-1308(沒有micro USB)其他都一樣 參考博客:https://www.cnblogs.com/pen

原创 [tiny4412][kernel]tiny4412 Linux4.4內核移植

硬件: 核心板 : Tiny4412-1306-Schematic 底板 : Tiny4412SDK-1308(沒有micro USB)其他都一樣 參考博客:https://www.cnblogs.com/pen

原创 [tiny4412]從u-boot開始(一)

準備業餘時間把armv7 contex-A9 的Exynos4412從頭搞一下。 之前學了一些簡單的彙編指令,現在開始在uboot啓動後進行裸板測試。 源碼:uboot_tiny4412-20130729.tgz 先關閉MMU: di

原创 取32位數據最高位1或64位最高位1的位數

追代碼的時候看見一個求最高位1是哪一位的算法,比較適合學習,給大家分享一下。 static int fls(int x) { int r = 32; if (!x) re

原创 git報錯 error: Your local changes to the following files would be overwritten by checkout:

git checkout時: error: Your local changes to the following files would be overwritten by checkout: xxxxxxxxxxxx.file P

原创 IMX6Q---U-Boot 2016.03(一)

一、鏈接腳本 OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start)

原创 [rk32880—Android6.0]LVDS調試配置

  先看清楚供電電壓:12V供電 根據信號時序規範配置: 數據時序: clock-frequency = <148500000>; 顯示正常。  

原创 [rk3288—Android6.0]修改串口對應關係

背景:客戶要求對應串口關係 kernel/drivers/tty/tty_io.c     涉及函數:static ssize_t tty_line_name(struct tty_driver *driver, int index, c

原创 platform總線學習與理解

內核已經實現了platform總線,我們只需瞭解總線所管理匹配的設備和驅動 對象及匹配規則,就可方便的來管理我們的設備對象和驅動對象。 1. 涉及的頭文件 #include <linux/platform_device.h> 2. 瞭解

原创 [RK3399—Android7.1] 默認屏幕顯示方向

/system/build.prop 文件中    ro.sf.hwrotation=0   這裏可以90、180、270 修改後同步,重啓,可調整默認旋轉方向。     鏡像直接默認修改:device/rockchip/rk3399/b

原创 關於屏幕不亮問題

背景:客戶42寸顯示不亮   下邊爲排查記錄:            1、背光供電電壓是否符合要求            2、V_LCD供電是否符合喲求            3、數據線線序是否是常規線序            4、軟件手

原创 Linux I2C之ft5x06學習與理解

static struct i2c_driver ft5x0x_ts_driver = {

原创 以下兩個for 循環的優缺點

for (i=0; i<N; i++) { if (condition) DoSomething(); else DoOtherthing(); } if (condition) {