暂时未有相关云产品技术能力~
ITGEGE在线教育嵌入式开发讲师。 CSDN博客专家、CSDN-Linux特邀编辑、CSDN博乐、CSDN学院讲师,目前从事嵌入式开发领域,从事与单片机,Linux,android相关的产品开发。
Linux,一切皆文件,那么在Android系统本身,也是Linux+java罢了,也是在Linux的运行环境下。 通常,我们在调试程序的都会使用printf。 在Android中,我们会去使用logcat,现在,给大家介绍一种常用的调试方法,debug写文件调试法。
在Tiny4412的Android5.0源代码中: bootable/recovery/recovery.cpp是recovery程序的主文件。 仔细一看,对比了其它平台的recovery源代码,除了MTK对Recovery做了相应的定制外,其它的平台几乎没有看到,关于MTK平台,后续再分析。
众所周知,OTA更新有两种方式,一种是网上直接download的线上模式,一种是SD卡升级模式,在MTK中,升级ota的时候传进来的路径需要通过转换成外部SD卡或者内部EMMC的路径,然后recovery会去通过判断command里的参数来执行对应的OTA升级包: 对应的,在bootable/recovery/mt_recovery.cpp中找到: 这个函数,这个函数的作用就是做路径转换。
Android系统网络调试常用命令 1. ifconfig 查看网路状态 2.netstat 3. netcfg 4.启动某个网络 netcfg eth0 up 或者 busybox ifconfig eth0 up netcfg wlan0 up 5.
audio代码比较复杂,除了音频参数,我们平时客制化的地方不多。所以没有太深入了解。建议先抽空看看如下代码:kernel, linux alsa 架构:kernel-3.10/sound/soc/mediatek/kernel-3.
issue http://www.cnblogs.com/cyqx/category/724281.html Audio http://blog.csdn.net/gowyz/article/details/6019314 Camera http://www.
最近在模仿RK在Tiny4412上写一个PCBA产测工具的程序,经常出现熄屏的现象,让我头痛不已,因为产测程序在生产测试的时候是不能失去界面显示的,所以,参考以下两篇文章,结合对应的内核代码,解决了问题,感谢两位大神的帮助: http://www.360doc.com/content/14/0611/16/7500195_385729149.shtml http://blog.csdn.net/liujia2100/article/details/9009063 测试工具如图,还在往界面中添加测试项目。
本书作者由以下成员合作编写: 杨源鑫,主编,毕业于广州科技贸易职业学院电子应用技术专业,在校期间一并考取了华南理工大学本科数字媒体艺术专业。2015年7月工作至今,任伟易达集团嵌入式系统工程师一职,主要从事单片机,linux,Android底层开发等相关的技术。
这一节,我们将从零开始写tiny4412的触摸屏驱动ft5x06,写这节博客之前,先了解下需要什么知识: 1、i2c驱动相关的知识 2、输入子系统 3、中断 4、工作队列 关于i2c驱动相关的知识,在后期的博文里会专门写几篇博文来进行总结,这里就不再说i2c相关的知识,我们先知道怎么用就行了。
要想用uboot启动内核,我推荐一种方法,用dnw下载内核到开发板上,然后用uboot命令启动: 首先我在网上随便下了一个dnw工具,经过移植修改后,代码如下: /* YYX--->for tiny4412 dnw version:20170423 v1 */ #include #incl...
想要预置文件,首先要了解Android源码中device这个目,打开这个目录我们看到,这个目录厂家会针对不同的开发板做一些修改: 在这个目录中,我们看到有不同的厂家定制的信息,我们这款开发板是友善之壁提供的,那么我们只要进入friend-arm这个目录下就可以了,进到这个目录,看到tiny4412,我们切换进入看到: 要预置相关的文件,前面有一篇文章专门讲过怎么预置,一般是在device.mk中进行,但是平台不同,供应商会整合到其它地方: 文章如下,下面我们将参考这篇文章进行预置。
今天翻了下墙,解决了一直以来的疑惑问题: 为什么Android5.0以及6.0的recovery版本,机器人动画怎么就只有一张图片? 这个问题,我百思不得其解,看了很多网文,也只是有了个概念。 请参考以下文档,这是我从谷歌Android开源网拉下来的原文: https://source.
Android的recovery是我在公司做的最多的,应该也是我在Android中了解的较为深入的一个部分。recovery这部分其实Android本身都已经提供了很完善的一套机制,但是因为公司是做机顶盒的,所以在因为平台订制的关系,recovery这部分还是做了很多修改的。
前面我们学习了鼠标是如何如何通过应用程序来读取事件和坐标值的,后面也写了一个简单的input系统的按键驱动程序。 博文如下,讲的内容非常清楚,给小白来入手当然是非常容易的: http://blog.csdn.net/morixinguan/article/details/69808832 这节,我们来学习一下触摸屏事件获取,然后上一个基于4412开发板ft5x0x型号的x,y坐标值读取,后面我们将从零开始实现这款触摸屏的驱动程序: 首先,我们要明白一个概念,触摸屏在input系统中是一类什么事件呢? 前面我们知道,鼠标是相对事件,也就是相对一个位置的坐标点,那么不是固定的。
关于这节,有很多小伙伴要我亲自写一遍,那好吧,我就亲自写一遍: 首先,你要制作一张SD卡,把SD卡先插到电脑端口: 然后看以下步骤: 1、查看SD卡位于哪个分区哪个设备节点 (1)先查看SD卡的设备节点是哪个,我的是/dev/sdb1 root@morixinguan:/work# df 文件...
跟着ubuntu12.04一样,我解开了4412的Android5.0源代码。 因为前面这篇文章已经安装了一些开发环境,所以这里不再哆嗦。 还是和这篇文章一样的: http://blog.csdn.
按照友善的手册: 于是我就按着它说的方法做: 发现缺少一些库文件,哎,这友善的手册,真心坑,描述的东西太肤浅,如果这对于一个初学者,他不知道怎么解决的,于是我就安装类似的QT库,发现还是这个错误: 最后,参考ubuntu 16.
在安装了最新的ubuntu17.04后编译Android6.0源代码的过程中,遇到了很多问题: 1、openjdk无法支持jdk8,只能用回jdk7 2、还有很多未曾遇到的编译问题 还陆陆续续遇到了各种各样的编译失败的信息,最后,参考这两位博主的16.04编译Android的方法顺利解决。
ep : 我手上有个libapp.so , fuse.bin , busybox,我需要将这三个文件在编译的时候自动拷贝到out目录下 编译完成以后,.so文件会被预置到Andorid系统的根目录下的system/lib下,.bin文件会被预置到Andorid系统的根目录下的system/bin下。
在上一节里,我们用一个应用程序实现了鼠标的控制,并控制鼠标用相对位移不断的画一个正方形,感觉非常有意思,这一节,我们将通过一个简单按键实例来真正的实现一个input设备驱动程序。 http://blog.
这节,我们来说下input子系统,什么是input子系统? input子系统就是输入子系统。 输入子系统是 Linux内核用于管理各种输入设备 (键盘,鼠标,遥控杆,书写板等等 )的部分,用户通过输入子系统进行内核,命令行,图形接口之间的交换。
上节,我们讲到如何来实现tasklet小任务机制 http://blog.csdn.net/morixinguan/article/details/69666935 这节,我们来实现一下中断下半部的工作队列: 在写这个demo之前,我们要了解一下工作队列的相关数据结构还有API。
上节:http://blog.csdn.net/morixinguan/article/details/68958185 在上一节博文中,教会了大家如何来写一个Linux设备的中断程序,实现也非常简单,我们来回顾一下具体的操作流程,只要遵循以下几个步骤即可实现最简单的中断处理程序: 使用中断相...
转载自http://blog.csdn.net/myarrow/article/details/9287169 1. 中断处理“下半部”机制 中断服务程序一般都是在中断请求关闭的条件下执行的,以避免嵌套而使中断控制复杂化。
1、安装gitapt-get install git2、查看git版本git --version3、设置用户名和邮箱 $ git config --global user.name "morixinguan"$ git config --global user.email "morixinguan@vip.qq.com"注意git config命令的--global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。
今天,我们要来实现一个基于tiny4412开发板上的最简本的按键中断驱动程序,那么,写这个程序之前,我们先来了解下Linux中断的基本知识。 在Linux内核中,每一个能够发出中断请求的硬件设备控制器都有一条名为IRQ的输出线。
这个专题我们来说下Linux中的定时器。 在Linux内核中,有这样的一个定时器,叫做内核定时器,内核定时器用于控制某个函数,也就是定时器将要处理的函数在未来的某个特定的时间内执行。内核定时器注册的处理函数只执行一次,即不是循环执行的。
为什么要学习链表? 链表主要有以下几大特性: 1、解决数组无法存储多种数据类型的问题。 2、解决数组中,元素个数无法改变的限制(C99的变长数组,C++也有变长数组可以实现)。 3、数组移动元素的过程中,要对元素进行大范围的移动,很耗时间,效率也不高。
OTA升级介绍 http://blog.csdn.net/u013947002/article/details/49024637 http://blog.chinaunix.net/uid-29728680-id-5253651.
[Description]user版本怎么打开root权限 [Keyword]user root adb superuser 用户版本 root权限 security [Serious Declaration]严重声明: 任何在最终user版本上打开root权限的手法都会给用户带来安全风险, 请仔细评估您的需求是否真实需要. MTK 强烈反对此类做法, 由此带来的安全风险,以及造成的损失, MTK 不承担任何的责任。
http://blog.csdn.net/zhaowenkaiyongheng/article/details/60349380?locationNum=2&fps=1
http://blog.csdn.net/fulinwsuafcie/article/details/8709192 http://blog.csdn.net/fulinwsuafcie/article/details/8351537
前面两篇文章: http://blog.csdn.net/morixinguan/article/details/65494239 http://blog.csdn.net/morixinguan/article/details/65938128 在UNix多线程编程中,我们会使用到以下函数:...
上一篇博文的地址: http://blog.csdn.net/morixinguan/article/details/65494239 这节,我们来看看函数指针与回调函数在Linux内核中的应用。
最近做NDK开发相关的项目,总会时不时冒出下面这句打印信息: error: only position independent executables (PIE) are supported.后面一查,原来是Android版本新添加的保护机制,以前在RK3168 android4.1上没有看到这个东西。
关于静态库和动态库的使用和制作方法。 http://blog.csdn.net/morixinguan/article/details/52451612 今天我们要搞明白的一个概念叫回调函数。 什么是回调函数? 百度的权威解释如下: 回调函数就是一个通过函数指针调用的函数。
上一节,我教大家实现了一个最简单的MISC设备驱动,那么这节,我们将用一个实例来驱动蜂鸣器,这里为了方便,我就不再写应用程序进行测试,直接在驱动里调用open函数,这个程序是在Android系统里跑起来,后面我会教大家如何在Android下写应用测试程序。
关于如何来写一个misc设备,在前面有篇文章已经介绍了大致的流程,现在就让我们来实现一个最简单的misc设备驱动。 http://blog.csdn.net/morixinguan/article/details/52700146 关于前面的字符设备有以下四篇文章,可以做参考: http://blog.
让我们一起组队战胜拖延症,欢迎加入嵌入式软件开发QQ群: 这里将让你每天写代码,每天学点新知识,每个月写一个小项目。 4个月后,你也可以成为一名初级的嵌入式软件开发工程师。 博主本着开源精神,贡献知识,不收取任何费用!
http://blog.csdn.net/morixinguan/article/details/56514356 之前写过一篇文章,是对alc5623.c codec部分进行了大致框架的分析,现在要解决一些实际问题,关于上层的代码我就不公布了,只公布在驱动的代码: 在手册中,我们看到一个这样的寄存器设置。
Git hub上开源的libfuse源代码 https://github.com/libfuse/libfuse/releases 参考的博文: fuse用户空间文件系统 http://blog.csdn.
在我们开发过程中,内核的信息一开机就会很多,然后一直打个不停,很烦人,也不好看调试信息,更不好在串口终端输入相关的命令进行调试。 那么有什么办法可以解决? 1、在kernel中修改log默认等级, kernel-3.18/include/linux/printk.h static inline void console_verbose(void)函数中的 console_loglevel = CONSOLE_LOGLEVEL_MIN; //CONSOLE_LOGLEVEL_MOTORMOUTH;然后重新编译内核。
frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java +2519 \ if (SystemProperties.
驱动代码位于: sound/soc/codec/alc5623.c随便找个linux内核都会有。 1、首先进行i2c总线驱动加载在: static int __init alc5623_modinit(void)在该函数中: i2c_add_driver(&alc5623_i2c_driver)...
http://wushank.blog.51cto.com/3489095/1212647
1.Android源码中的产品线解析 通常产品厂商在拿到Android源码后会在Android源码基础上进行定制修改,以匹配适应自己的产品。这就引入了产品线的概念。Android系统源码中,产品相关的文件通常保存在 device/company/product目录下其目录的组织结构为 在tiny4412 android 5.
1、开机图片: android-logo-mask.png android-logo-shine.png 这两个图片一个在上一个在下 ./out/target/common/obj/JAVA_LIBRARIES/android_stubs_current_intermediates/classes/assets/images/android-logo-shine.
http://blog.csdn.net/lushengchu_luis/article/details/20382775 最近RK3026的项目需要修改开机充电,才分析了Android原生态的充电过程。
frameworks/base/packages/SettingsProvider/res/values/defaults.xml中修改def_screen_off_timeout为-1 frameworks/base/policy/src/com/android/internal/policy/impl/KeyguardViewMediator.
http://blog.csdn.net/lb5761311/article/details/41805423