- 博客(7)
- 资源 (3)
- 收藏
- 关注
原创 C++中指针和引用的区别
1. 非空区别引用不能指向空值,引用必须指向一个对象指针可以指向空值。2 合法性区别在使用引用之前不需要测试它的合法性。相反,指针则应该总是被测试,防止其为空。3可修改区别指针可以重新赋值以指向另一个不同的对象。但是引用则总是指向在初始化时被指定的对象,以后不能改变,但是指定的对象其内容可以改变4应用区别在以下情况应该使用指针:不指向任何对象的可能需要能够在不同的时刻指向不同...
2019-01-08 16:26:40 239
转载 C++基础知识整理-new和malloc的区别
1. 申请的内存所在位置new操作符从自由存储区(free store)上为对象动态分配内存空间,而malloc函数从堆上动态分配内存。自由存储区是C++基于new操作符的一个抽象概念,凡是通过new操作符进行内存申请,该内存即为自由存储区。而堆是操作系统中的术语,是操作系统所维护的一块特殊内存,用于程序的内存动态分配,C语言使用malloc从堆上分配内存,使用free释放已分配的对应内存。2...
2019-01-08 15:42:30 190
原创 Linux驱动第五篇-----驱动注册和生成设备节点
加载驱动的指令是:insmod xx.ko查看驱动的指令是: lsmod卸载驱动的指令是:rmmod xx在include/linux/platform_device.h这个文件中定义了平台驱动注册和卸载文件函数platform_driver_register 和 platform_driver_unregister 函数这个两个函数参数调用了结构体platform_driver...
2019-01-08 14:01:30 3064
原创 Linux驱动第四篇-----设备注册
在soc系统中一个驱动对应一个设备,他们都是通过总线来进行匹配的,我们都知道,在linux系统中,把所有的东西都看成了文件。所以在soc系统中所有的设备和驱动都是文件,下面来一张图更好的说明这点。图的左边是设备,中间是总线,右边是驱动。注册一个设备或者是驱动时,就在链表中注册,然然后通过总线进行匹配有没有这个设备文件。在Linux 创立了一种虚拟总线,也叫平台总线或者 platform 总线,...
2019-01-05 13:45:24 1897
原创 Linux驱动第三篇-----把驱动编译到内核中
Linux 内核针对驱动的处理有以下两种方式:第一种方式:把所有需要的功能全部编译到内核中,这种方式会导致重新添加或者删除功能的时候,需要重新编译内核。第二种方式:动态的添加模块,也就是这个实验要介绍的“模块的方式添加驱动”。第二种方式请看第一篇这篇介绍怎么把功能全部都编译进内核里面:1. 首先配置编译器vim .bashrc”打开环境变量文件“.bashrc如下图所示,进入最底...
2019-01-03 17:09:52 3474
原创 Linux驱动第二篇-----内核模块解析
怎样把Linux内核编译成二进制文件呢,怎样剪裁呢。且听这节分享:这篇介绍: Kconfig 配置文件,Kconfig 文件是和编译的 Makemenuconfig 工具配合使用的。最后还需要掌握“.config”文件的作用内核下载:https://mirrors.edge.kernel.org/pub/linux/kernel/Linux 内核配置系统由三个部分组成1.Makefile...
2019-01-03 16:38:01 363
原创 Linux驱动第一篇-----最简单的内核模块
最简单的内核模块就是从Hello world开始的:首先看下Linux的内核结构再看下Linux目录结构:Linux内核源码采用树形结构。功能相关的文件放到不同的子目录下面,使程序更具有可读行arch目录– arch目录是平台目录。内核支持的所有CPU架构,在该目录下都有对应的子目录。每个CPU的子目录,又进一步分解为boot,mm,kernel等子目录,分别控制系统引导,...
2019-01-02 21:40:34 971
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人