- 博客(111)
- 资源 (11)
- 收藏
- 关注
原创 VxWorks错误码查找表
458753 0x70001 S_dsmLib_UNKNOWN_INSTRUCTION 786433 0xc0001 S_ioLib_NO_DRIVER 786434 0xc0002 S_ioLib_UNKNOWN_REQUEST 786435 0xc0003 S_ioLib_DEVICE_ERROR 786436 0xc0004 S_ioLib_DEVICE_TIMEOUT 786437 0xc0005 S_ioLib_WRITE_PROTECTED 786438 0x
2020-11-19 20:22:06
5643
6
原创 FPGA引脚简介
一、 FPGA的硬件结构这里说的硬件结构主要从FPGA的引脚功能方面描述,FPGA内部的电路逻辑暂不讨论。FPGA的引脚大致可以分为三类:功能引脚、IO引脚、电源和接地引脚。1. 功能引脚FPGA的功能引脚包含了FPGA配置程序加载、FPGA配置模式选择、状态及错误提示、JTAG调试等等。DCLK、DATA0、NCONFIG、CONF_DONE这几个引脚是配置FPGA所必须的,DATA1~DATA7可以用作其他功能,INIT_DONE可以不使用。TDI、TDO、TMS、TCK四个脚是
2020-09-07 10:04:08
29431
1
原创 VxWorks调试备忘录
1. 系统出错打印出堆栈时,不一定是打印堆栈附近的代码报错了,有可能是前面代码报错了,然后随机延时了一段时间才把堆栈信 息打印出来了,需要加在前面代码中不断缩小范围排查;1. 中断处理例程里面不要使用memset去初始化数据结构,否则会导致系统卡死;2. 中断处理例程里面不要使用for循环去初始化数据结构,否则会导致系统卡死;...
2020-07-03 09:34:08
1154
1
原创 PowerPC基础知识
1. PowerPC级别PowerPC 体系结构分为三个级别(或者说是“book”)。通过对体系结构以这种方式进行划分,为实现可以选择价格/性能比平衡的复杂性级别留出了空间,同时还保持了实现间的代码兼容性。Book I. 用户指令集体系结构定义了通用于所有 PowerPC 实现的用户指令和寄存器的基本集合。这些是非特权指令,为大多数程序所用。Book II. 虚拟环境体系结构定...
2019-11-14 16:32:12
7018
原创 VxWorks常用命令(备忘)
i 显示任务基本信息,参数为0时显示全部任务。ti 显示任务的TCB信息。d 显示目标地址内存内容。devs 列出目标机系统上的全部设备。version ...
2019-10-29 19:07:55
17595
原创 docker常用命令
安装dockerWget -qO- https://get.docker.com/ | sh添加非root用户到本地Docker Unix组当中Sudo usermod -aG docker andee查看docker版本Docker version 或者 docker --version查看docker系统信息Docker system info卸载当前doc...
2019-10-23 14:53:59
218
原创 VxWorks6.9初始化流程介绍
一、系统框架在讲初始化流程之前,我们先了解下VxWorks的三种映像类型。要搞清楚映像结构,需要先了解下VxWorks的内存空间分配。所以我们先从框架入手。1. 框架图2. 内存空间分配二、内核映像根据应用场合不同,vxworks映像可以分成三类:可加载的映像、基于ROM的映像和驻留ROM映像。1. 可加载的映像在RAM中运行,不包含搬移程序,需要借助一些...
2019-10-23 14:17:05
4077
6
原创 千兆以太网卡吞吐量和丢包率优化总结
现在有很多硬件平台理论上支持千兆以太网接口,但实际传输速率远远低于千兆,并且丢包率很高。最近我做了一些以太网吞吐量和丢包率方面的优化工作,有一些心得和大家分享一下。一、测试模型二、影响吞吐量和丢包率的因素1. 网卡DMA缓冲区大小 这个缓冲区决定tx ring buffer和rx ring buffer的大小,如果ring buffer太小,那么网卡缓存数据包的能力...
2019-10-08 09:30:22
10682
原创 Android8.1修改默认音量大小的方法
目前网上有一些关于修改系统默认音量大小的方法,比如修改AudioSystem.java的DEFAULT_STREAM_VOLUME:public static int[] DEFAULT_STREAM_VOLUME = new int[] { 4, // STREAM_VOICE_CALL 7, // STREAM_SYSTEM 5, //...
2018-11-16 17:03:41
13109
3
原创 iwlwifi(AC9260)移植总结
因为项目需求,要将产品的wifi型号由AC8265升级为AC9260。我们当前项目平台的内核版本为3.9.109,而AC9260要求的最低内核版本为3.14.04。于是我下载了一个3.14的长期支持版本--3.14.79,准备基于这个版本把iwlwifi模块移植到3.9内核上。下面是移植过程中记录的一些细节:1. 相关文件:(1)9260的固件 iwlwifi-926...
2018-11-12 16:28:28
3362
原创 Android6.0设置开机启动默认横屏并兼顾自动旋转功能
关于Android6.0开机默认横屏显示,网上有一些文章提到过,但是我仔细研究了下,要么不全,要么修改方式会引入新的问题。为了让开机强制横屏显示,并且又不影响sensor的屏幕自动旋转功能,我对旋转的修改方式做了很多尝试,最后终于找到了一种可行的方式。既保证开机启动的时候按照指定的方向显示logo和开机动画,又可以在打开自动旋转开关后,通过转动设备来自动旋转屏幕。具体做法如下:开...
2018-07-30 15:47:03
5671
原创 如何将GMS功能移植到Android系统中
1. 下载google全家桶www.opengapps.org www.apkmirror.com选择适合你的平台架构下载2. 安装全家桶将全家桶解压,将Core目录下的apk预置到/system/priv-app目录中;修改device.mk,将配置文件,各种xml和jar拷贝到/system/etc或者/system/framework目录中;3. 注册google账号设置vpn网络,连...
2018-04-10 18:20:37
2453
19
原创 在Ubuntu16.04上搭建Android8.0编译环境
1. 安装AOSP编译工具sudo apt install git-core sudo apt install gnupg sudo apt install flexsudo apt install bisonsudo apt install gperfsudo apt install build-essentialsudo apt install curlsudo apt install lib...
2018-04-10 17:35:18
4891
原创 Android6.0如何将Super SU的root权限管理功能集成到系统源码里面
最近在研究如何将Super SU集成到系统源码中,使系统自带root权限管理功能。在此总结一下集成Super SU到Android源码中需要注意的几个要点:1. 设置selinux为disable或者permissive模式;2. 设置ro.secure = 0;3. 将superuser.apk预置到system/app目录下;4. 屏蔽掉安卓源码自带的google su的编
2017-12-12 16:58:25
5790
转载 Android Multimedia框架总结(八)Stagefright框架之AwesomePlayer及数据解析器
前言:前面一篇分析了mediaplayerservice及MediaPlayer中的CS模型,但是对于如何能把数据解析出来,渲染到最终的SurfaceView上显示,并且播放起来,我们依然还不得而知,从今天开始,就开始介绍多媒体框
2017-08-25 11:24:38
705
转载 Android Multimedia框架总结(七)C++中MediaPlayer的C/S架构补充及MediaService介绍
• C/S模型中的三角关系流程图• MediaPlayerService相关联的类图• MediaPlayerService的产生过程• MediaPlayerService添加服务过程• MediaPlayerService通过BinderDriver和MediaPlayer通信过程
2017-08-24 18:00:23
830
原创 Android显示模块如何使用软件渲染(非硬件加速)
自从Android系统引入了黄油计划以后,Android显示模块默认使用的是硬件加速渲染。硬件加速渲染的好处是图像刷新速度快,UI界面切换比较流畅。但是这种方式需要GPU的支持,因此需要硬件IC和内核显示子系统同时配合。 假如某款产品,不需要大屏、大分辨率显示,只需要Android系统的环境,那么这个时候完全没有必要使用GPU。既可以节省硬件成本,也可以减小产品开发难度,可以更灵活
2017-01-16 17:47:54
2759
1
原创 Android系统如何移植wpa_supplicant及wifi驱动
1. 将厂商提供的HAL代码复制到hardware目录下,并修改Makefile 例如:realteck、broadcom、ti、qcomm等。 2. 修改ANDROID_SDK /device///目录下的BoardConfig.mk,加入配置信息例如:BOARD_WIFI_VENDOR := realtekifeq ($(BOARD_WIFI_VENDOR
2017-01-16 16:27:25
11204
3
原创 Windows驱动 HCK测试方法及数字签名使用方法介绍
一、 HCK安装及使用方法介绍1. 安装环境要求 操作系统: Windows Server2008 R2英文版 需要两台电脑,一台做测试服务器,另一台做测试机 网络要求:两台电脑必须都能连接internet,并同属一个局域网 地区语言:最好选择默认值,选择China会安装不上,默认值为US
2016-08-11 14:39:44
7768
7
原创 Ubuntu小知识(持续更新)
一、环境变量1、/etc/profile:在登录时,操作系统定制用户环境时使用的第一个文件,此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行。 2、/etc/environment:在登录时操作系统使用的第二个文件,系统在读取你自己的profile前,设置环境文件的环境变量。 3、~/.bash_profile:在登录时用到的第三个文件是.bash_pr
2016-06-07 10:06:13
4649
原创 GPIO模拟I2C demo
#define SCK_TIME 2#define ACK_TIME 3#define START_TIME 5 static void i2c_start(void) { gpio_direction_output(SDA, 1); gpio_dire
2016-06-06 10:33:29
1933
原创 Android4.4 以太网和DHCP启动过程介绍
Android4.4已经加入了以太网的支持。现在对以太网的初始化流程、网络策略配置、dhcp交互过程等做一些简单的介绍。一、以太网启动流程1. 创建ConnectivityService SystemServer.java // networkmanagement、networkStats、networkPolicy已经提前创建好,并作为参数传入 connec
2016-05-19 12:59:35
13119
原创 Android4.4 增加屏幕旋转功能
由于Android4.4系统上去掉了ro.sf.hwrotation属性的支持,因为不能使用之前的方法进行屏幕旋转了。暂时没有找到相应的属性和后门,于是自己写了一个屏幕旋转的临时代码,后面找到更好的方法后再替换。具体代码如下: ~/framework/native/services/surfaceflinger/DisplayDevice.cppuint32_t DisplayDevi
2016-04-23 11:48:00
5150
4
原创 Android4.4 系统移植问题备忘
最近在基于Linux kernel 3.14的版本移植Android4.4系统,移植过程中遇到了很多问题,现在记录一下做个备忘:1. init.rc无法解析 由于Android4.4系统加强了文件安全的管理,对于启动配置文件增加写保护机制,将所有的rc文件和prop文件的权限设为644就没这个问题了。 2. 控制台无法获取root权限 由于系统启动时,conso
2016-04-21 17:44:31
2247
原创 usb总线系统介绍
一、特性和运作模式1. USB标准的四个版本:(1)USB1.0版本: USB总线协议的第一个版本。(2)USB1.1版本: 此版本普及了USB总线协议,大多数硬件都采用了该版本的标准。(3)USB2.0版本: 此版本提升了USB总线的最大传输数率,由USB1.1的12Mb/s提高到了480Mb/s。(4)USB
2016-03-27 13:38:51
3400
原创 Android系统性能优化备忘
1. 采用JNI调用时,将耗时间的处理放到c/c++层来处理。 2. 有些能用文件操作的,尽量采用文件操作,文件操作的速度比数据库的操作要快10倍左右。 3. 访问网络的耗时操作启动一个新线程来做,而不要再UI线程来做。 4. 如果方法用不到成员变量,可以把方法申明为static,性能会提高到15%到20%。 5. 慎用异常,异常对性能不利。只要有异常被抛出,VM就
2016-03-25 14:17:42
1518
原创 Android Service Manager分析
Service Manager是android系统服务的管理者。系统中运行的服务程序首先应向Service Manager注册。当一个进程需要使用某个service,该进程需要首先通过Service Manager获取所需service的信息。用户、service manager与service的关系如下图所示: 一、 ServiceManager主要功能的实现
2016-03-25 10:58:24
3564
原创 Android显示系统框架原理介绍
1. android显示系统整体框架 最上面一层为应用程序,根据数据类型以及应用的不同可以分为几种。 第一种是最普通的应用,如 UI 界面的显示,这部分通常数据类型为 RGB 格式,数据无须再经过特殊的处理。该应用可以说遍布各个应用程序,几乎是实时存在的。一般是通过Open GL渲染到framebuffer然后通过lcd显示输出。
2016-03-23 11:17:55
10799
原创 ANDROID系统启动流程分析
一、启动流程介绍 1. 硬件启动流程 由图可知,系统开机时按照确定的复位时序启动,然后执行bootloader,进入内核初始化操作,当内核初始化完毕后,便运行linux的第一个应用程序,即android系统的init。 2. android init 流程分析 Init流程的关键点在于分析*.rc文件,
2016-03-22 20:03:53
1857
1
原创 SurfaceFlinger简介
1. SurfaceFlinger背景知识 SurfaceFlinger 是一个独立的Service, 它接收所有Window的Surface作为输入,根据ZOrder, 透明度,大小,位置等参数,计算出每个Surface在最终合成图像中的位置,然后交由HWComposer或OpenGL生成最终的显示Buffer, 然后显示到特定的显示设备上。下面首先介绍下相关概念:
2016-03-22 14:53:44
19997
1
原创 如何通过网络连接进行ADB调试
大家在使用adb调试android系统时可能会遇到麻烦,比如usb端口只有一个,如果用作adb调试,就不能通过usb连接其它器件,或者usb端口不能使用时也没法进行adb调试。Android较新的版本(4.0及以后)已经支持网络连接adb了,只需按照如下步骤进行设置就可以进行网络adb调试。 1. 确保目标板和主机连接在同一局域网里面2. 使用netcfg查看网络状态,如果
2016-03-21 09:36:16
17797
原创 ADB运行框架原理解析
最近在3.14的内核上移植ADB驱动,顺便分析了下adb的运行机制和框架结构。下面以一张图来进行分析:完整的数据处理流程:1:PC端adb server发送cmd到小机端2:adbd(adb daemon)的output thread从/dev/android_usb读取到cmd并解析 (adbd和内核usb driver通过/dev/android_u
2016-03-20 11:23:05
9238
1
原创 如何在安卓系统上使用arm-linux-gdb调试内核
现在很多安卓平台都没有把gdb调试工具编译进去,因此需要我们自己安装交叉编译环境下的gdb工具。具体实现只需几步即可:1. 下载最新的arm-linux-gdb源码包 下载地址:http://download.youkuaiyun.com/detail/wlwl0071986/9462063 此版本的arm-linux-gdb为7.11版本,目前为最新版本 2. 解压、编
2016-03-15 15:04:22
2658
原创 基于Linux kernel 3.14版本移植安卓系统后触摸屏无法使用的问题
最近在自家的SOC上移植安卓系统,kernel版本使用3.14,android版本使用4.0.3。移植后发现触摸屏无法使用,而安卓输入子系统的源码是没有改过的。通过跟踪触摸屏上报事件的整个流程和机制发现,是因为触摸时间的时间格式和安卓系统使用的时间格式不兼容导致,由于上报的触摸事件时间戳太滞后,导致输入子系统没有及时收到应用程序的应答,导致系统产生了ANR。究其根本原因,发现是3.14
2016-03-12 11:20:03
2194
原创 Android本地层基础结构
1.本地层基础部分结构 Android软件系统中作为本地基础部分使用的,主要具有以下部分: (1)C语言基础库:提供标准C库功能 (2)C语言工具库:Android特定的C语言工具 (3)init可执行程序:作为用户空间的第一个进程 (4)shell工具:提供用户调试功能 其中后三者均在Android源代码的system/core目录中,
2016-02-03 17:52:17
1602
原创 Android编译命令使用技巧
1. showcommands是一个有用的辅助目标,可以列出编译时详细执行的各个命令。 showcommands和编译目标结合使用,获得具体一个编译过程中执行的命令,然后可以在命令行单独运行这些命令。 例如,执行make installclean showcommands,会打印得到执行make installclean时需要执行的各个命令。2. 执行. build
2016-02-03 13:25:06
1348
原创 安卓系统如何开启和关闭插入耳机时弹出的保护听力对话框
Android系统在4.2及以后的版本里面增加了耳机音量保护功能,当插入耳机且音量增大到一定级别时,会弹出“音量过大会伤害听力”的对话框,如果不想在增加音量时弹出此对话框,可以在代码里面做如下修改:1. 调用AudioService.disableSafeMediaVolume()关闭对话框,调用setSafeMediaVolumeEnabled()打开对话框;2. 直接在Audi
2015-11-27 15:22:58
10635
原创 全志A20平台实现VGA和HDMI双屏同显
1)sys_config.fex中配置如下:配置VGA 1024x768输出disp_init_enable = 1disp_mode = 0screen0_output_type = 4screen0_output_mode = 4screen1_output_type = 1screen1_output_mode = 42)请把s
2015-11-26 10:47:31
8024
原创 Android移植Launcher
Launcher1.Launcher概述Android系统启动后,加载的第一个程序就是Launcher应用。 Launcher的构成:HomeScreen(workspace(AppWidget、WallPaper、LiveFolder、ShortCut))、HotSeats、AllApps/AllApplist:GridView这是launcher的主界面,里面有一些应用
2015-11-23 11:15:34
2708
原创 安卓开机界面修改
1. android开机动画显示原理开机时,系统自动检测在/system/media/目录或/data/local/目录有没有bootanimation.zip文件。如果有,这按照bootanimation.zip里面的png排列顺序依次显示开机图片,开起来就是动画效果;否则按照android默认的方式显示开机动画。android开机动画叫源码位于frameworks/base/cmd
2015-11-23 11:08:57
1963
ep4ce10引脚.xls
2020-09-07
Cyclone IV 器件手册(中文-共二卷-带目录).pdf
2020-09-07
Freescale_P2020_ReferenceManual.pdf
2019-11-02
串口测试demo
2015-09-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人