自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 资源 (3)
  • 收藏
  • 关注

原创 (2)文件系统的基本概念

一. 什么是VFSLinux内核通过虚拟文件系统(Virtual File System,VFS)管理文件系统。VFS是Linux内核文件系统的一个极其重要的基础设施,VFS为所有的文件系统提供了统一的接口,对每个具体文件系统的访问要通过VFS定义的接口来实现。同时VFS也是一个极其重要的架构,所有Linux的文件系统必须按照VFS定义的方式来实现。VFS本身只存在于内存中,它需要将硬盘上的...

2019-12-17 14:14:34 232

原创 (1)内核基础层提供的服务

操作系统通常提供的服务是内存管理、进程管理、设备管理、文件系统一. 内核中使用内存内核提供了两个层次的内存分配接口:从伙伴系统分配、从slab系统分配。伙伴系统是最底层的内存管理机制,提供页式的内存管理。slab是伙伴系统之上的内存管理,提供基于对象的内存管理。从伙伴系统分配内存调用的是alloc_pages,此时得到的是页面地址,要获得能使用的内存地址,需要调用page_address...

2019-12-13 16:24:28 718

原创 [USB][MTP/PTP]提升MTP传输速率

在Android手机驱动开发过程中,每个项目都会遇到MTP传输速率问题,当速率无法达到客户的标准时,我们可以尝试扩大MTP传输时用到的缓冲区,能够有效的提升MTP传输速率修改/drivers/usb/gadget/function/f_mtp.c// #define MTP_BULK_BUFFER_SIZE 16384#define MTP_BULK_BUFFER_SIZE ...

2019-12-12 15:09:33 2972

转载 emmc学习资料

https://blog.csdn.net/feifansong/article/details/88038724

2019-07-09 17:18:14 572

转载 Linux SD/MMC/SDIO驱动分析

https://www.cnblogs.com/cslunatic/p/3678045.html

2019-07-09 14:55:28 248

转载 Linux文件系统详解

https://www.cnblogs.com/alantu2018/p/8461749.html

2019-07-08 19:26:42 100

转载 为Android添加开机启动脚本

最近在做项目的过程中,遇到了这么一个需求,需要在Android(4.2.2)启动时候执行以下命令,命令的具体含义不再解释:mount -t usbfs none /proc/bus/usb最初做法是将其加入init.rc文件中,但是发现此方法行不通,原因到现在也未查明,希望知道原因的朋友能够留言告知,不胜感激o(∩_∩)o 。接着查阅相关资料,发现将命令写入一个sh文件中,之后在开机的时候...

2019-04-18 10:22:41 1477

转载 安卓开机logo和开机动画的几种实现方法

安卓4.2可用方法2-4,第一种方法未验证。从理论上来说,android 有4个开机启动画面。第一个应该是U-BOOT的启动画面,有些设备为了满足按动电源即有显示,在UBOOT里加了开机画面,实现的方式当然只能是写物理地址,也因此随厂家不同具体的实现千差万别。加上我们接触的手机平板等设备大多没这个开机画面,所以这里就不赘述了。第二个启动画面实际是LINUX的启动画面,但这个启动画面在ANDR...

2019-04-18 09:46:26 8954 1

原创 修改Android的开机logo

使用高通提供的logo_gen.py工具,该工具的具体实现如下#=========================================================================== # This script read the logo png and creates the logo.img # when who wha...

2019-04-16 17:56:56 4748 1

原创 user版本打开adb root权限

首先修改根目录下的/system/core/adb/Android.mk将上图中的代码注释,添加如下代码,使其不管在哪种版本下都有这两个宏LOCAL_CFLAGS += -DALLOW_ADBD_DISABLE_VERITY=1LOCAL_CFLAGS += -DALLOW_ADBD_ROOT=1修改/system/core/adb/services.cpp注释掉此段,我们将...

2019-04-16 10:48:52 2863

原创 十分好用的Android源代码在线查看网站

十分好用的Android源代码在线查看网站http://androidxref.com/9.0.0_r3/

2019-04-16 09:57:14 960

原创 Linux platform设备驱动原理及架构

什么是platform总线platform总线是区别于实体总线USB、 I2C、SPI 、PIC总线的虚拟总线,一些usb设备选址的话需要通过USB总线来进行寻址,而有些类似于SoC内部外设如led 看门狗 定时器是直接通过内存的寻址空间来进行寻址的,cpu与这些设备通信是不需要总线的,2.6内核以后要对所有设备进行统一管理,通过kset、kobject来建立层次关系,对这些直接通过内存寻址的设...

2019-03-29 10:52:20 3752 1

原创 Linux 异步通知(信号)原理及架构

异步通知异步通知的意思是:一旦设备就绪,则主动通知应用程序进行访问。这样,使用无阻塞IO的应用程序无需轮询的查询设备是否可访问,达到减小CPU消耗的目的。类似于硬件上的“中断”的概念,比较准确的称谓是“信号驱动的异步IO”。信号:是在软件层次上对中断机制的模拟。在原理上,进程接收到一个信号(软件层)<==>(硬件层)处理器接收到一个中断。假设假设recvfrom函数是一个系统调...

2019-03-27 16:43:18 976

转载 Vim一键配置

打开终端,执行下面的命令就自动安装好了:wget -qO- https://raw.github.com/ma6174/vim/master/setup.sh | sh -x下面是精简的,没有插件的vim配置文件,保存到自己的.vimrc文件就能使用。""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""...

2019-03-27 10:28:04 655

原创 Linux 非阻塞IO(轮询—poll机制)原理及架构

一. 非阻塞操作非阻塞操作的进程在不能进行设备操作时,并不挂起,它或者放弃,或者不停地查询,直至可以进行操作为止。这就是我们常说的“轮询”。这是一种比较浪费CPU的方式。但是可以通过信号等方式以异步的形式提高CPU的利用率。假设recvfrom函数是一个系统调用:使用非阻塞I/O 的应用程序可借助轮询函数来查询设备是否能立即被访问,用户空间调用select()、poll()和epoll()...

2019-03-26 16:05:19 4675 1

转载 Linux各种同步机制的比较

2019-03-26 10:31:08 1414

原创 Linux 阻塞IO(等待队列)原理及架构

一. 阻塞操作阻塞操作是指在执行折本操作时,若不能获得自愿,则挂起进程直到满足可操作性的条件后在进行操作。被挂起的进程进入休眠状态,被从调度器的运行队列移走,直到等待的条件被满足。假设recvfrom函数是一个系统调用:阻塞不是低效率,如果设备驱动不阻塞,用户想获取设备资源只能不断查询,消耗CPU资源,阻塞访问时,不能获取资源的进程将进入休眠,将CPU资源让给其他资源。二. 等待队列在...

2019-03-25 17:44:36 3874

原创 Android烧录镜像文件介绍

sbl1.mbn烧录命令:fastboot flash sbl1 sbl1.bin作用:second bootloader1的缩写,是在little kernel(lk)前启动,起到引导lk的作用,如果将该分区擦除,则设备表现为进入紧急下载模式,即,擦除该分区后,插入USB显示QDload端口。rpm.mbn烧录命令:fastboot flash rpm rpm.mbn作用:电源管理器,...

2019-03-15 09:40:12 7542 1

原创 07. Linux USB主机控制器和设备驱动

S5PV210 主机控制器驱动的移植移植 ohci-s5p 驱动

2018-12-06 10:14:14 405

原创 06.Linux LCD设备驱动

LCD 设备驱动本身属于字符设备驱动的范畴,但其硬件操作复杂LCD 设备驱动编写流程分配一个 fb_info 结构体设置 fb_info 结构体成员设置固定参数==》设置fb_fix_screeninfo结构体成员设置可变参数==》设置fb_var_screeninfo结构体成员设置操作函数==》定义fbops结构体成员,并实现里面的函数其他设置...

2018-12-05 09:17:34 144

原创 05. Linux platform驱动--按键驱动

什么是platform(平台)总线相对于USB、PCI、I2C、SPI等物理总线来说,platform总线是一种虚拟、抽象出来的总线,实际中并不存在这样的总线。那为什么需要platform总线呢?其实是Linux设备驱动模型为了保持设备驱动的统一性而虚拟出来的总线。因为对于usb设备、i2c设备、pci设备、spi设备等等,他们与cpu的通信都是直接挂在相应的总线下面与我们的cpu进行数据交互的...

2018-11-30 17:31:54 358

原创 04. Linux输入子系统

Linux Input 子系统Input 子系统层次框架输入(Input)子系统是分层架构的,总共分为 3 层,从上到下分别是:事件处理层(Event Handler)、输入子系统核心层(Input Core)、硬件驱动层(Input Driver)。硬件驱动层负责操作具体的硬件设备,这层的代码是针对具体的驱动程序的,比如你的设备是触摸输入设备,还是鼠标输入设备,还是键盘输入设备,这些不...

2018-11-27 13:14:07 112

原创 03. Linux字符设备驱动--按键驱动

中断程序设计中断注册:request_irq()中断处理:检查是否产生中断清除中断标志硬件操作注销中断: free_irq()中断分层技术工作队列:将中断的下半部提交到工作队列执行。创建工作:INIT_WORK()提交工作到内核默认队列:schedule_work()利用定时器延时使按键去抖动定义定时器变量初始化定时器init_timer初始化设置超时函数...

2018-11-26 17:23:03 209

原创 02. Linux字符设备驱动--LED驱动

字符设备驱动的函数操作集字符设备驱动程序的实现,主要工作就是实现 file_operations 结构体中的函数指针成员。参考/include/linux/fs.h当应用程序使用 open 函数打开某个字符设备时,字符设备驱动程序的file_operations 结构体中的 open 成员就会被调用; 当应用程序使用 read、write、ioctl 等函数读写、控制设备时,驱动程序的 f...

2018-11-26 16:42:48 178

原创 01. 第一个Linux驱动

Linux 驱动哪些部分是必须的模块入口函数模块的入口函数也称模块加载函数,当你执行 insmod 或 modprobe 命令加载驱动模块到内核时,驱动模块的入口函数就会自动被内核执行。 至于模块入口函数需要完成什么工作,这就你决定了。模块出口函数模块的出口函数也称为模块卸载函数,当你执行 rmmod 命令卸载驱动模块时,驱动模块的出口函数就会自动被内核执行。 至于模块出口函数需要...

2018-11-26 09:39:30 205 2

原创 S32K144 + FreeRTOS + SPI + IAR

开发环境:IAR 8.30FreeRTOS版本:10.1一、移植FreeRTOS 二、配置IAR 三、配置IO、使能DMA、SPI 四、创建任务、开启任务调度一、移植FreeRTOS从官网下载FreeRTOS源码 将..\FreeRTOS_v10_1_0\Source目录下的FreeRTOS源码复制到工程目录下 将..\FreeRTOS_v10_1_0\Sour...

2018-10-02 18:46:03 8750

USB Gadget API for Linux

本文档提供了一个Linux-USB“小部件”内核模式API,用于外设和其他嵌入Linux的USB设备。它提供了API结构的概述,并展示了如何将其应用到系统开发项目中。这是在Linux上发布的第一个解决许多重要问题的API,包括:•支持USB 2.0,为高速设备,可以流数据在几十兆字节每秒。•处理具有数十个端点的设备,以及只有两个固定功能端点的设备。可以编写小工具驱动程序,使它们易于移植到新硬件。•足够灵活,可以公开更复杂的USB设备功能,如多种配置、多种接口、复合设备和备用接口设置。•USB“on - go”(OTG)支持,同时更新到Linux-USB主机端。与Linux-USB主机端API共享数据结构和API模型。这有助于OTG支持,并期待更对称的框架(主机和设备端驱动程序都使用相同的I/O模型)。•极简,因此更容易支持新的设备控制器硬件。I/O处理并不意味着需要大量的内存或CPU资源。

2019-12-12

S32K144 FreeRTOSConfig.h

该文件为S32K144的FreeRTOSConfig.h,主要是关于S32K144的FreeRTOS的配置内容,搭配https://blog.csdn.net/q921374795/article/details/82921601 教程使用

2018-10-03

S32ds操作指南

基于S32K144开发板的仿真软件S32DS的操作指南 1. 目的 1.1. 使公司软件人员及其他工作人员能正确安装 S32DS 仿真软件, 并能检测其是 否正常可运行。 1.2. 提高软件安装效率, 节省工作时间。 1.3. 形式和内容的严密规范, 增强所安装软件的正确性。

2018-08-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除