自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 资源 (1)
  • 收藏
  • 关注

原创 module_param驱动传递参数

Linux内核的标准链表就是采用环形双向链表形式实现,

2023-03-23 11:21:36 151

原创 vim 配置

set nuset ts=4set nobackup" set cursorlineset rulerset autoindentset hlsearch"set incsearchset sw=4set tag=tags;set autochdirset clipboard=unnamedpluslet Tlist_Show_One_file=1let Tlist_...

2020-03-21 15:32:24 281

原创 AndroidApp基础_ Activity 组件(一)

软件:Android Studio本文档只是简单的创建一个Android Studio项目,我也是刚接触Android Studio这个软件,从小白学起,之前我意见安装并且配置了Android Studio,下面我从创建项目开始。第一步:第二步(选择Next):第三步(选择Next):第四步(选择Next):之后选择Finish,一个简单的项目就创建完成了,...

2020-02-08 12:49:12 218

原创 java提升(四)_反射

Java反射机制指的是在Java程序运行状态中,对于任何一个类,都可以获得这个类的所有属性和方法;对于给定的一个对象,都能够调用它的任意一个属性和方法。这种动态获取类的内容以及动态调用对象的方法称为反射机制。Java的反射机制允许编程人员在对类未知的情况下,获取类相关信息的方式变得更加多样灵活,调用类中相应方法,是Java增加其灵活性与动态性的一种机制。目录一、获得class二、使...

2019-09-30 10:48:50 179

原创 java提升(三)_泛型

我对泛型的理解,可简单看成是变量的通配符。一、泛型类在类的申明时指定参数,即构成了泛型类。泛型类的类型参数部分可以有一个或多个类型参数,它们之间用逗号分隔。这些类称为参数化类或参数化类型,因为它们接受一个或多个参数。在使用泛型的时候如果传入泛型实参,则会根据传入的泛型实参做相应的限制,此时泛型才会起到本应起到的限制作用,但是,泛型的类型参数只能是类类型,不能是简单类型。如果不传入泛型类...

2019-09-27 22:48:48 120

原创 java提升(二)_JNI_c调用java

待续。。。

2019-09-24 16:57:59 79

原创 java提升(一)_JNI

建立Java函数名到C库函数名的映射关系: 源码JNIDemo.java文件/* file: JNIDemo.java */public class JNIDemo { static { /* 1. load */ System.loadLibrary("native"); /* libnative.so */ } public native void hel...

2019-09-22 21:50:04 106

原创 java入门(六)_内部类

在 Java 中,可以将一个类定义在另一个类里面或者一个方法里面,这样的类称为内部类。广泛意义上的内部类一般来说包括这四种:成员内部类、局部内部类、匿名内部类和静态内部类。目录一、成员内部类二、局部内部类三、静态内部类四、匿名内部类一、成员内部类成员内部类是最普通的内部类,它的定义为位于另一个类的内部,如下实例所示:Inner被称为成员内部类。成员内部类可以无条件访问外...

2019-09-22 13:41:07 117

原创 java入门(五)_权限

类:public class可以被外包访问;class只能在本包中访问文件Mymath.javapackage b;public class Mymath {}文件Pack.javapackage a;import b.*;public class Pack { public static void main(String args[]) { My...

2019-09-22 13:01:45 105

原创 java入门(四)_包

之前执行 javac A.java 将在当前目录下生成A.class文件我们可以把class文件放在其他目录下吗? 答案是可以的 这就需要引用包的概念包其实就是文件夹。包语句的语法格式为: package pkg1[.pkg2[.pkg3…]];package a.b.c.d; public class Pack { public static void main(...

2019-09-21 23:20:54 137

原创 java入门(三)_异常

参考文章:深入理解java异常处理机制目录一、Java异常类层次结构二、处理异常机制捕捉异常抛出异常三、程序实例一、Java异常类层次结构Java异常类层次结构图: Java异...

2019-09-21 00:00:30 140

原创 java入门(二)_面向对象的三大性

目录一、封装性二、继承性1、继承的特性:2、构造器三、多态性一、封装性在面向对象程式设计方法中,封装(英语:Encapsulation)是指一种将抽象性函式接口的实现细节部份包装、隐藏起来的方法。封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。封装的优点:良好的封装能够减少耦合、类内部的结构可以自由修改、可以对成员变量进行更精确的...

2019-09-08 23:54:00 112

原创 java入门(一)_类的引用

目录java类的引用静态属性和非静态属性的区别:Java中静态代码块、构造代码块、普通代码块java类的引用java是面向对象的编程语言,我首先用C语言来模拟面向对象,如下所示,只是一个简单的打印功能。#include <stdio.h>typedef struct Person_{ char *name; void (*printName)(s...

2019-09-05 00:14:35 273

原创 中断系统中的设备树(五)__内核对设备树中断信息的处理

从硬件结构上看, 处理过程分上下两个层面: 中断控制器, 使用中断的设备从软件结构上看, 处理过程分左右两个部分: 在设备树中描述信息, 在驱动中处理设备树从图中我们可以看到有顶层的中断控制器(interrupt-controller@4a000000),也有下面一级的中断控制器gpg、gpf,对于gpg、gpf这两个中断控制器是pinctr节点里面的子节点,对应的设备树描述如下...

2019-06-29 09:50:30 744

原创 中断系统中的设备树(四)__设备树描述按键中断

前言:使用设备树描述中断时,我们需要在设备树节点里面描述设备使用哪个硬件中断,如下所示是对按键中断的硬件中断的描述(只是起来开门见山的作用),对于理解按键按键中断的硬件中断的描述信息,我会在下面详细介绍,buttons { compatible = "jz2440_button"; eint-pins = <&gpf 0 0>, <...

2019-06-12 23:47:28 3553 1

原创 中断系统中的设备树(三)__S3C2440上使用设备树描述中断

在前面的文章提到的设备树文件没有涉及到中断本文章会对设备树中的中断简单的介绍,在以前的mach-s3c24xx.c中手动注册了很多平台设备,这些平台设备中指定了很多设备资源,比如i2c控制器提前指定了中断号和内存等资源,这些中断号可以从某个头文件指定。内核不断演变,虚拟中断号和硬件中断号不再绑定,这也就意味着不能在平台资源里事先确定所使用的中断资源,就需要用设备树描述这些中断资源,也就是事先...

2019-06-08 12:57:39 1040

原创 中断系统中的设备树(二)__中断号的演变与irq_domain

在上一节中断系统中的设备树(一)__Linux对中断处理的框架分析提过irq_desc[]下标是中断号virq(虚拟中断号),虚拟中断号和硬件中号是一一对应的,所以根据硬件中断确定是哪个中断发生。以前,对于每一个硬件中断(hwirq)都预先确定它的中断号(virq),这些中断号一般都写在一个头文件里arch\arm\mach-s3c24xx\include\mach\irqs.h我们...

2019-06-07 21:19:03 2313 1

原创 中断系统中的设备树(一)__Linux对中断处理的框架分析

.section .vectors, "ax", %progbits.L__vectors_start: W(b) vector_rst W(b) vector_und W(ldr) pc, .L__vectors_start + 0x1000 W(b) vector_pabt W(b) vector_dabt ...

2019-06-03 23:34:19 1660 1

原创 bootloader对设备树的支持(一)__传递dtb给内核

在之前的文章中介绍过在启动内核时把设备树的地址写到r2寄存器中,并且设备数在内存中的储存信息空间被保留,有无设备树u-boot启动内核的命令是不同的: bootm <uImage_addr> // 无设备树 bootm <uImage_addr> <initrd_addr> <dtb_addr...

2019-05-25 20:59:56 1717

原创 内核对设备树的处理(四)__device_node转换为platform_device

前言:以前写驱动程序时候,一般把驱动程序分成两部分platform_device跟platform_driver这两部分,platform_device:描述硬件使用的资源;在前面文章介绍过设备树dts文件最终在linux内核中会转化成platform_device:dts -> dtb -> device_node -> platform_device本文章主要解...

2019-05-19 15:23:45 4002 1

原创 内核对设备树的处理(三)__dtb转换为device_node

前言:问题:我们把设备树文件随便放到内存某个地方就可以使用,内核运行过程中却不会覆盖设备树dtb文件所占的那一块内存呢?答:之前说过在设备树文中的[memory reservations]可以指定一块内存(这块内存被保留下来,内核不会占用它)。[memory reservations] // 格式为: /memreserve/ <address> <length&...

2019-05-18 12:58:22 1818

原创 设备树_dtb文件分析

前言:我之前的原计划是没有打算写设备树dtb文件分析,但是情势所迫啊!,学习还是要一步一步来的。在前面的章节提到过.dts文件以文本方式对系统设备树进行描述,经过Device Tree Compiler(dtc)将dts文件转换成二进制文件binary device tree blob(dtb),.dtb文件可由Linux内核解析,有了device tree就可以在不改动Linux内核的情况下,...

2019-05-12 17:29:06 8085

原创 内核对设备树的处理(二)__kernel对dts节点的处理

我们知道设备树只是起到信息传递的作用,所以对配置信息的处理还是相对比较简单的,设备树只不过从dtb文件中把信息给提取出来付给内核中的某个变量就可以了,下面这条命令,就是内核启动时的命令行参数: chosen { bootargs = "noinitrd root=/dev/mtdblock4 rw init=/linuxrc console=ttySAC0,115200"; };...

2019-05-08 22:32:22 2159

原创 内核对设备树的处理(一)__bootloader向kernel传递参数

前言:uboot提供两种工作模式:一是启动加载模式(start loading),一是下载模式(downloading)工作在启动加载模式时,uboot会自动执行bootcmd命令,比如:bootcmd=“nand read 0x100000 0x80000000 0x300000; bootm 0x80000000”uboot首先把内核镜像拷贝到内存地址为0x80000000的地方,然后执...

2019-05-08 00:18:46 1945 2

原创 设备树_dts格式(语法)

在之前提到过设备树就是平台总线中的平台设备的衍生,是用于表述硬件设备资源的,对于ARM平台,设备树文件存放在arch/arm/boot/dts下,绑定文档存在Documentation/devicetree/bindings下。我把jz2440_LED——设备树之点亮LED灯中的设备树文件拷贝过来,进行简单的介绍设备树的格式,/dts-v1/;/ { model = "SMDK24440"...

2019-04-29 21:02:17 4347

原创 jz2440_LED_设备树之点亮LED灯

简介:设备驱动程序中,总线驱动模型和设备树的差别在于平台设备的构建不同,在传统平台设备驱动程序写在C文件中,使用设备树时,平台设备之前不存在,在dts文件中构造节点,节点里面含有资源,设备树详细的内容我会在以后的博客中详细介绍。​ [点击并拖拽以移动] ​/* platform_device结构体定义 */struct platform_device { const char *name;...

2019-04-28 21:48:33 1262

原创 JZ2440开发板nand flash出现坏块的解决办法

前言:我在JZ2440烧写linux内核镜像(uImage)之后,内核可以正常启动,但是我烧写玩Yaffs2格式的根文件系统之后,内核启动不了,根据我以往的学习和工作经验,可能是nand flash出现了坏块,(nand flash是比较容易出现坏块的),下面是我的解决办法。CPU : jz2440u-boot: u-boot-1.1.6kernel: linux-4.19-rc3r...

2019-04-27 12:10:00 2350

原创 C语言实现修改文件中指定字符串哪一行内容

C语言实现修改文件中指定字符串哪一行内容#include&lt;stdio.h&gt;#include&lt;stdlib.h&gt;#include&lt;string.h&gt;#include&lt;unistd.h&gt;/*参数: filepath - 要修改的文件 str - 修改为的字符串 */void ModifyFile(char* filepath, ch...

2018-11-22 23:04:28 4607

CodeBlocks_MinGW.rar

CodeBlocks下载好之后,但是不能编译,这是常有的事情,说明没有编译工具,我在CodeBlocks软件上试过是可以用的哦!

2019-06-11

空空如也

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

TA关注的人

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