7 chungle2011

尚未进行身份认证

暂无相关简介

等级
TA的排名 1w+

LINUX串口驱动分析——打开设备

 串口驱动是由tty_driver架构实现的。一个应用程序中的函数要操作硬件,首先会经过tty,级级调用之后才会到达驱动之中。本文先介绍应用程序中打开设备的open函数的整个历程。  首先在串口初始化中会先注册一个串口驱动,函数原型为  int uart_register_driver(struct uart_driver *drv)  在这个函数中会调用注册tty驱动的函数...

2019-09-19 17:47:08

浅谈设备、驱动的加载和匹配

要了解Linux设备驱动,首先要理解linux的bus、device、driver三个概念。Bus就是总线,除了我们通常知道的i2c、spi、usb等总线之外,Linux中还有一个很重要的总线platform总线,虽然这个总线是虚拟的,但并不妨碍它的重要性(暂不谈)。Linux驱动模型中device和driver都挂在总线上,也就是总线上会维护一个devices链表和一个drivers的链...

2019-09-18 17:11:13

yaffs2文件系统的制作及移植

【环境】1:CentOS release 6.5 (Final)2:u-boot-2010.123:TQ24404:交叉编译器:eldk第一步:在内核里添加yaffs2的支持1)下载源码git clone git://www.aleph1.co.uk/yaffs22)给内核打补丁./patch-ker.sh c m ../../linux-2.6.33...

2019-09-17 13:12:02

QML中使用全局变量

全局变量,顾名思义就是在程序中到处都能使用的变量。这在一定程度上违背了“模块化设计”这个思想。在笔者刚接触编程的时候老师就说过全局变量有害,就跟goto一样;但在实际工程中它其实很有用,使用得当的话反而能让整个软件结构更清晰、紧凑。本文结合实际经验向大家介绍在QML程序中如何有效使用全局变量。全局变量的作用首先要说明的是,我们这里说的全局变量不是整数、浮点数这样的简单变量,而是复杂的类对象...

2019-08-15 14:01:39

linux实时记录用户操作

https://blog.csdn.net/qq_40809549/article/details/80362119感谢:https://www.linuxidc.com/Linux/2016-10/136598.htm方法一下述追加到/etc/profileexport HISTFILESIZE=10000000export HISTSIZE=1000000USER_IP=...

2019-06-26 14:20:16

linux下简单好用的端口映射转发工具rinetd

https://blog.csdn.net/paulluo0739/article/details/7023711linux下简单好用的工具rinetd,实现端口映射/转发/重定向官网地址http://www.boutell.com/rinetd软件下载wgethttp://www.boutell.com/rinetd/http/rinetd.tar.gz解压安装tar...

2019-05-08 16:37:11

Yii2 controller 传值给layout

Yii2 controller 传值给layout在yii2中,我们通过下面的方法,将controller的数组传递给viewpublic function actionIndex(){$data = ['xx' => 'yy'];return $this->render($this->action->id,$data);}在view文件中就可以使用$...

2019-04-24 08:48:24

终于有人把Cortex-m3启动代码分析清楚了

终于有人把Cortex-m3启动代码分析清楚了https://wenku.baidu.com/view/c1348c38591b6bd97f192279168884868662b841.htmlSTM32/ARMCortex-M3复位序列https://blog.csdn.net/changyourmind/article/details/51902408在离开复位状态后,...

2019-04-23 09:24:47

Keil(MDK-ARM)系列教程(三)_工程目标选项配置(Ⅰ)

转载地址https://blog.csdn.net/ybhuangfugui/article/details/51655502推荐分享一个大神的人工智能教程。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到人工智能的队伍中来!http://www.captainbed.net/strongerhuang我的网站:https://www.strongerhuang.com我...

2019-04-17 08:53:16

Linux MTD系统剖析(转载+总结)

MTD,MemoryTechnologyDevice即内存技术设备,在Linux内核中,引入MTD层为NORFLASH和NANDFLASH设备提供统一接口。MTD将文件系统与底层FLASH存储器进行了隔离。如上图所示,MTD设备通常可分为四层,从上到下依次是:设备节点、MTD设备层、MTD原始设备层、硬件驱动层。Flash硬件驱动层:Flash硬件驱动层负责对Flash硬件的读...

2018-06-05 19:59:43

Linux common clock framework(3)_实现逻辑分析

http://www.wowotech.net/pm_subsystem/clock_framework_core.html1. 前言前面两篇clock framework的分析文章,分别从clock consumer和clock provider的角度,介绍了Linux kernel怎么管理系统的clock资源,以及device driver怎么使用clock资源。本文将深入到clock fra...

2018-05-13 19:47:13

Linux common clock framework(2)_clock provider

http://www.wowotech.net/pm_subsystem/clock_provider.html1. 前言本文接上篇文章,从clock driver的角度,分析怎么借助common clock framework管理系统的时钟资源。换句话说,就是怎么编写一个clock driver。由于kernel称clock driver为clock provider(相应的,clock的使用者...

2018-05-13 19:35:44

Linux common clock framework(1)_概述

http://www.wowotech.net/linux_kenrel/clk_overview.html1. 前言common clock framework是用来管理系统clock资源的子系统,根据职能,可分为三个部分:1)向其它driver提供操作clocks的通用API。2)实现clock控制的通用逻辑,这部分和硬件无关。3)将和硬件相关的clock控制逻辑封装成操作函数集,交由底层的p...

2018-05-13 19:33:17

Linux文件系统2---VFS的四个主要对象

https://www.cnblogs.com/smartjourneys/p/7260911.html1.引言本文所述关于文件管理的系列文章主要是对陈莉君老师所讲述的文件系统管理知识讲座的整理。Linux可以支持不同的文件系统,它源于unix文件系统,也是unix文件系统的一大特色。Linux文件系统1--概述 中我们了解了文件系统的作用,以及为了使得所有的文件系统能在同一个操...

2018-05-11 14:40:57

MACHINE_START与MACHINE_END,本质是调用arch_initcall(customize_machine);

https://blog.csdn.net/cxw3506/article/details/8475965在移植Linux时,有个结构体需要填写,它以MACHINE_START开始并以MACHINE_END结束,如下mini2440开发板的移植为示例[cpp] viewplain copyMACHINE_START(MINI2440, "MINI2440")      .phys_io    =...

2018-05-06 20:37:08

Linux中__init、__devinit等初始化宏解析和入口函数

http://blog.chinaunix.net/uid-25445243-id-3971724.html一、初始化宏1.1、定义        在内核里经常可以看到__init, __devinit这样的语句,这都是在init.h中定义的宏,gcc在编译时会将被修饰的内容放到这些宏所代表的section,编译器通过这些宏可以把代码优化放到合适的内存位置,以减少内存占用和提高内核效率。     ...

2018-05-06 20:27:28

linux 驱动module_init()本质---不同驱动加载顺序对应不同的优先级

https://blog.csdn.net/ffmxnjm/article/details/71713670阶段一:kernel-3.18\include\linux\init.h中 Linux内核为不同驱动的加载顺序对应不同的优先级,定义了一些宏:#definepure_initcall(fn)                    __define_init...

2018-05-04 17:44:04

内存寻址:逻辑地址到物理地址转化(x86)

https://www.mallocfree.com/interview/c-8-memory.htm标题:内存寻址:逻辑地址到物理地址转化我们知道,在计算机里,内存分为虚拟内存和物理内存。数据是存放在物理内存中的,而程序中使用的是虚拟内存并通过虚拟内存地址来访问数据和代码的,那么操作系统是如何将虚拟内存地址映射成为实际的物理内存的呢?这是我们这篇文章要详细介绍的问题。以X86的32位系统为例...

2018-04-25 13:02:27

GDT,LDT,GDTR,LDTR 详解,包你理解透彻

http://www.techbulo.com/708.html一、引入保护模式下的段寄存器 由 16位的选择器 与 64位的段描述符寄存器 构成段描述符寄存器: 存储段描述符选择器:存储段描述符的索引段寄存器PS:原先实模式下的各个段寄存器作为保护模式下的段选择器,80486中有6个(即CS,SS,DS,ES,FS,GS)80位的段寄存器。由选择器CS对应表示的段仍为代码段,选择器SS对应表示的...

2018-04-24 20:03:06

Linux内核同步机制之(二):Per-CPU变量

转自:http://www.wowotech.net/linux_kenrel/per-cpu.html一、源由:为何引入Per-CPU变量?1、lock bus带来的性能问题在ARM平台上,ARMv6之前,SWP和SWPB指令被用来支持对shared memory的访问:SWP <Rt>, <Rt2>, [<Rn>]Rn中保存了SWP指令要操作的内存地址,通过...

2018-03-30 16:59:33

查看更多

勋章 我的勋章
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。