Android开发板

Android开发板主要有Qualcomm, MTK, HiSilicon, Samsung SOC平台.

96boards开发板

开发板DragonBoard 410CMediatek X20Hikey 960
SOC平台Snapdragon 410C, MSM8916Helio X20, MT6797Hisi Kirin 960
KernelLinux 3.18Linux 3.18Linux 4.4
AndroidLollipop/MarshmallowMarshmallowOreo

详情请见:

  • https://www.96boards.org/products/ce/
  • https://www.alpha-star.org/hikey960
  • https://www.alpha-star.org/mediatek-x20-development-board

Intrinsyc开发板

开发板Open Q820 Development Kit
SOCSnapdragon 820, MSM8996, APQ8096
KernelLinux 3.18
AndroidOreo

详情请见:

https://www.intrinsyc.com/snapdragon-embedded-development-kits/snapdragon-820-development-kit/

FriendlyARM友善之臂开发板

开发板Tiny4412
SOCSamsung Exynos 4412
KernelLinux 3.0
AndroidLollipop

详情请见:

http://www.arm9.net/tiny4412.asp

主要文件路径

开发板Dragonboard 410C
LKbootable\bootloader\lk\target\msm8916
DSIkernel\drivers\video\msm\mdss
DTSkernel\arch\arm64\boot\dts\qcom\apq8016-sbc.dtsi
TPkernel\drivers\input\touchscreen
开发板Mediatek X20
LKvendor\mediatek\proprietary\bootable\bootloader\lk\dev\lcm
vendor\mediatek\proprietary\bootable\bootloader\lk\project\amt6797_64_open.mk
LCMkernel-3.18\drivers\misc\mediatek\lcm
kernel-3.18\drivers\misc\mediatek\video\mt6797
DTSkernel-3.18\arch\arm64\boot\dts\amt6797_64_open.dts
kernel-3.18\drivers\misc\mediatek\dws\mt6797\amt6797_64_open.dws
TPkernel-3.18\drivers\input\touchscreen\mediatek
开发板Open Q820 Development Kit
LKLOCKED!
DSIkernel\msm-3.18\drivers\video\msm\mdss
DTSkernel\msm-3.18\arch\arm64\boot\dts\qcom\apq8096-dragonboard.dtsi
TPkernel\msm-3.18\drivers\input\touchscreen
开发板Hikey 960
DTShikey-linaro\arch\arm64\boot\dts\hisilicon\hi3660.dtsi
TPhikey-linaro\drivers\input\touchscreen
Android LCD点亮
开机: LK点亮 LCD
  • 如果失败, Kernel点亮LCD
  • 成功,则直到下一次灭屏
开机后灭亮屏: Kernel点亮


LCD手动亮灭屏
1.Qualcomm手动亮灭屏

mdss_fb.c:

void mdss_fb_my_blank(void){    struct fb_info *fbi = fbi_list[0];    pr_info("[FB]%s called\n", __func__);    mdss_fb_blank_sub(FB_BLANK_POWERDOWN, fbi, 1);}void mdss_fb_my_unblank(void) {    struct fb_info *fbi = fbi_list[0];    pr_info("[FB]%s called\n", __func__);    mdss_fb_blank_sub(FB_BLANK_UNBLANK, fbi, 1);}

mdss_dsi_panel.c:

void mdss_fb_my_blank(void);void mdss_fb_my_unblank(void);int mdss_dsi_panel_my_init_(void *dir){    mdelay(1000);    while (1) {        if (!mdss_fb_panel_registered(0)) {            mdelay(500);            continue;        }        mdss_fb_my_blank();        mdelay(100);        mdss_fb_my_unblank();        return 0;    }    return 0;}void mdss_dsi_panel_my_init(void){    struct task_struct *thread = NULL;    thread = kthread_run(mdss_dsi_panel_my_init_, (void*)NULL, "my_init");    if (IS_ERR(thread)) {        pr_err("failed to create thread for my_init init\n");        return;    }    }

mdss_mdp_intf_video.c

void mdss_dsi_panel_my_init(void);int mdss_mdp_video_reconfigure_splash_done(struct mdss_mdp_ctl *ctl,    bool handoff){    //...    mdss_dsi_panel_my_init();}
2. MTK开机kernel点屏

disp_lcm.c:

int disp_lcm_init(disp_lcm_handle *plcm, int force){    LCM_DRIVER *lcm_drv = NULL;    DISPFUNC();    if (_is_lcm_inited(plcm)) {        lcm_drv = plcm->drv;        if (lcm_drv->init_power) {            if (!disp_lcm_is_inited(plcm) || force) {                pr_debug("lcm init power()\n");                lcm_drv->init_power();            }        }        if (lcm_drv->init) {            if (!disp_lcm_is_inited(plcm) || force) {                pr_debug("lcm init()\n");                lcm_drv->init();            }        } else {            DISPERR("FATAL ERROR, lcm_drv->init is null\n");            return -1;        }    }    //...}

lk LCM驱动 lcm_driver.c

LCM_DRIVER my_lcm_drv = {    //.init = lcm_init,    //.init_power = lcm_init_power,};

kernel primary_display.c:

force: 0 -> 1

int primary_display_init(char *lcm_name, unsigned int lcm_fps, int is_lcm_inited){    // ...    if (is_lcm_inited) {        ret = disp_lcm_init(pgc->plcm, /*0*/1); /* no need lcm power on,because lk power on lcm */    } else {        ret = disp_lcm_init(pgc->plcm, 1);        if (primary_display_is_video_mode())            dpmgr_path_trigger(pgc->dpmgr_handle, NULL, 0);    }    // ...}

更多相关文章

  1. Android拷贝图片到指定文件路径
  2. android 安卓创建文件夹
  3. Android 解析excel文件
  4. AndroidManifest.xml 系统找不到指定的文件
  5. Smail反汇编文件语句说明
  6. Android 复制单个文件到指定目录,Android copy file
  7. Android中的ClassLoader与dex文件加密实现分析
  8. Android中将资源文件转为Bitmap对象
  9. Android 文件下载 downloadManager

随机推荐

  1. Android JSON原生解析(JSONObject)解析教
  2. ubuntu 10.4 下的 android 编译环境 配置
  3. Android中单击空白区域隐藏键盘
  4. 将写好的软件安装到Android手机
  5. android switch模块 (耳机检测)
  6. iOS,Android,.NET通用AES加密算法
  7. 关于Activity的生命周期的一些见解
  8. android 面试知识个人积累1
  9. what is apk?
  10. Android 获取ROOT权限原理解析