自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Linux I2C概览

I2C相关文件相关文件作用举例提供的函数,结构include/linux/i2c.h定义主要结构体:struct i2c_driverstruct i2c_clientstruct i2c_algorithmdrivers/i2c/i2c-core-base.cdrivers/i2c/i2c-core-of.cdrivers/acpi/bus.cI2C相关结构体1. device_id & msgstruct i2c_device_

2021-08-23 11:05:19 585

原创 Linux pinctrl 概览

pinctrl相关文件相关文件作用举例提供的函数,结构include/linux/pinctrl.h定义基本结构体:struct pinctrl_pin_desc;struct pin_gpio_range;struct pinctrl_ops;struct pinctrl_desc;声明相关函数;struct pinctrl_pin_desc{unsigned number;const char *name; void *drv_data}drivers/pinctrl/

2021-08-18 14:54:32 442

原创 Linux input 概览

input相关文件相关文件作用举例提供的函数,结构include/linux/input.h定义struct input_dev;struct input_handler;struct input_handle;struct ff_deviceint input_register_handle(struct input_handle *);int __must_check input_register_device(struct input_dev *);include/l

2021-08-17 11:54:28 523

原创 Linux Platform概览

Platform 相关文件相关文件作用举例提供的函数,结构include/linux/platform_device.h定义struct platform_device;struct platform_device_info;struct platform_driver;声明注册,卸载等函数。int platform_device_register ( struct platform_device * );void platform_device_unregister (

2021-07-25 02:12:35 282 1

原创 Linux GPIO概览

GPIO 层次相关文件作用提供的函数

2021-07-25 00:48:50 551

原创 了解设备树API(2)

1 常用的OF API作用函数返回值类型参数作用寻找节点struct device_node *of_find_compatible_node();struct device_node *struct device_node *from, const char *type, const char *compatible根据兼容属性,获取设备节点;在大多数情况下,from,type 为NULL, 则表示遍历了所有节点。读取属性int of_property_read

2021-07-21 23:11:22 571

原创 了解设备树配置(1)

1文件类型后缀作用dtsi一个类型芯片的统一资源,相当于头文件dts具体的硬件信息,每一款板卡都可以定义自己的dtsdtc编译dts的工具,可以通过apt命令安装,内核源码scripts/dtc路径下也已包含dtc工具dtbdts编译后的二进制文件,可以通过bootloader引导程序加载进内核辅助信息单独编译设备树命令: make dtbsbinding文档所在内核位置: Documentation/devicetree/bingdings及子设

2021-07-16 11:26:17 1345

原创 2021-3-24 ubuntu 16.04 安装 ros环境记录

1 ls 2 cd .. 3 sudo mv VMware\ Tools/ ~ 4 cp -r mv VMware\ Tools/ ~ 5 sudo passwd 6 1 7 ls 8 su 9 ping youtube.com 10 https://github.com/rst-tu-dortmund/teb_local_planner_tutorials.git 11 sudo apt-key...

2021-03-24 17:30:59 294 1

原创 arm汇编之ldr,str执行方向,msr和mrs简介

ldr 加载指令/ 伪指令指令相当于C中的指针,方向是从右到左ldr r0, =lable 是让r0指到label地址,存储的是label地址(加载指令)。 ldr r0, lable,相当于r0 = *(lable) 存储的是lable地址总的值(伪指令)。记住和mov的区别, mov一般操作寄存器和立即数,可以把寄存器的值和立即数传向目的寄存器。ldr则可以把地址传到目的寄存器,包括函数的地址,是寄存器间接寻址也是绝对寻址,与当前位置无关。mov则用于寄存器寻址和立即寻址。...

2020-09-06 10:49:59 1875

原创 stm32之定时器比较,通用定时器功能差别,高级定时器有的功能

花了一天的时间,做了个图,方便以后查看和复习。手册是F4xx,有17个定时器,2个基本定时器,2个高级定时器,10个通用定时器(Tim2---Tim5, Tim9--Tim14)分别不同,Tim2---Tim5算中级定时器吧,功能比Tim9---Tim14多,比高级定时器少。这是14个以TIM命名的定时器,还有3个例外:滴答定时器,独立看门狗定时器,窗口看门狗定时器。差别从时基单元,到功能模式都有不同,比如都是通用定时器,Tim2---Tim5是支持递增,递减,递增/递减模式,而Tim9---Ti.

2020-08-15 23:27:04 2511

原创 关于交叉编译gdb失败的解决办法

安装gdb-7.4时,进行交叉编译, --target=arm-linux以后make时出错coffgen.c:2029:8: error: this statement may fall through [-Werror=implicit-fallthrough=] if (combined->u.syment.n_t等等一大堆打印信息。解决办法:http://ftp.gnu.org/gnu/gdb/ 下载8.2版本的gdb然后重复过去的操作,妥活儿!m...

2020-07-13 16:15:23 2969 1

原创 linux设置常用命令

1,设置网关:route add default gw 192.168.1.x2,挂载nfs命令mount -t nfs -o nolock 192.168.1.x:/home/work/NFS /usr/nfsroot3,grepgrep "string" -rn ./ 在当前目录及子目录下搜索字符串可以用管道, ps -aux | grep "gpiotest"grep -n '[^g]oo' 1.txt [^]反向选择^$行首与行尾字节'\.$'匹配...

2020-07-02 15:25:40 187

原创 linux阻塞/非阻塞,同步/异步

作为记录,汇总了一些参考的博文,方便今后查看一 概念:阻塞:阻塞调用是指调用结果返回之前,当前线程会被挂起(线程进入非可执行状态,在这个状态下,cpu不会给线程分配时间片,即线程暂停运行)。函数只有在得到结果之后才会返回。线程依然有可能处于激活状态。非阻塞:非阻塞和阻塞的概念相对应,指在不能立刻得到结果之前,该函数不会阻塞当前线程,而会立刻返回。同步:就是我调用一个功能...

2020-04-01 23:14:14 448

原创 烧写内核的方式备忘

1,板卡厂商 根据给的基于windows的软件,直接按照步骤,擦除flash,选择文件,输入地址,然后烧写。 必备方式2,nfs 这个要确定uboot是否配了nfs的功能 File systems ---> Network File Systems下配置。 nfs 30008000 192.168.1.100:/home/work/...

2020-03-30 17:28:43 348

原创 字符设备需要的函数

字符设备记录open -> swi val 汇编 引发中断 sys call interface ->根据传入的val 值来调用 sys_open,VFS: sys_open led_open从 open ---> sys_open 依赖于驱动程序框架 怎么告诉内核?file_operations...

2020-03-26 23:28:59 255

原创 移植内核时nand write 30008000这个地址的原因。

在s3c2440里,烧写内核镜像uImage时,通过tftp 或者 nand write烧写的地址都是0x30008000。当时我有个疑问,为什么是这个地址?如果换成别的地址是否可行?1,为什么是0x30008000这个地址?在 arch/arm/kernel/head.S中有解释此处说明在虚拟地址的前16k的空间存放着页表,建议内核ram的起始地址设置到0x8000的位置,也...

2020-03-14 00:03:33 1085

原创 指针(*p++ , (*p)++, *(p++), *p+2)与结构体遍历

1,指针,区分*p++ , (*p)++, *(p++), *p+2,; 指针是一个变量,定义指针变量,占4字节。变量是固定大小内存块的别名,则此内存块(4字节)中存放的是指针要指向的地址空间的首地址。初始化 指针为NULL时,则此处存放的地址为0,如果要用指向别的地方,那么需要与malloc并用,由malloc开辟一段空间,并将该段空间的首地址存放与指针变量中。 *,++;...

2020-03-08 17:51:19 2579 1

转载 linux内核裁剪的具体过程和选择

转载原文:http://blog.chinaunix.net/uid-20531959-id-1931955.html进程间通信函数和系统调用。Linux内核的五大组成部分之一,一定要选。BSD Process Accounting(CONFIG_BSD_PROCESS_ACCT)[N/y/?]用于启动由内核将进程信息写入文件的用户级系统调用。就看您想不想用它了。Sysct...

2020-03-04 16:06:33 698 1

转载 linux pthread线程API功能简介

Pthread API函数名 说明 pthread_atfork fork前后的处理函数,一般不建议多线程下进行fork,见http://blog.csdn.net/anxuegang/article/details/66584722 pthread_attr_getguardsize pthread_attr_setguardsize 堆栈保护区大小 PT...

2020-01-10 17:18:31 396

转载 linux有名管道

有名管道是一个FIFO文件。目录特点:API:例子:扩展:特点:无名管道只能在父子/兄弟间进行通信,有名管道可以在无关进程之间交换数据。 有路径名与之关联,它以一种特殊设备文件形式存在于文件系统中。无名管道不存在任何文件系统,而是存在内存中。API:0)头文件 sys/stat.h1)mkfifo()int mkfifo(const char *path...

2020-01-10 16:38:05 281

转载 linux管道

pipe为无名管道,最古老的方法。目录特点:API:注意:程序:特点:1,一个管道建立时,会创建两个文件描述符,fd[0]为读而打开,fd[1]为写而打开。 2,只能用于具有亲缘关系的进程间通信(父子,兄弟)。 3,半双工。 4,可以用read,write函数进行操作,但它不属于任何文件系统,只存在于内存中。API:1)pipe()函数用于建立管道。...

2020-01-10 16:14:57 177

原创 linux消息队列

消息队列的本质是消息的链表,存放在内核中。一个消息队列由一个标识符(即队列ID)来标识。接收进程可以独立地接收含有不同类型的数据结构。目录几个宏:特点:API:例子:执行:几个宏:MSGMAX 可发送是最长消息的长度 2048MSGMNB 特定队列的最大字节长度(亦即队列中所有消息之和)...

2020-01-10 15:53:28 430

原创 linux信号量

信号量(semaphore)本质是一个计数器,具有原子性,用于实现进程间的互斥与同步,不用于存储进程间数据。目录特点:API:调用顺序:信号量集合的例子:特点:1,用于进程间同步,若要在进程间传递数据需要结合共享内存。2,信号量基于PV操作。 ====》什么是PV操作?3,每次对信号量的PV操作不仅限于对信号量值+1或-1,而且可以加减任意正整数。...

2020-01-10 11:58:18 508

原创 linux共享内存

共享内存,指两个或多个进程共享一个给定的存储区。可以从指针间接赋值思考。比如:malloc一段物理内存,然后有几个指针同时指向它,进行间接赋值。目录特点:API:shmdt()和shmctl()的区别:调用顺序:扩展:特点:1,共享内存是最快的一种IPC,直接操作内存。2,多个进程可以同时操作,所以需要进行同步。(这算是缺点) 共享内存没...

2020-01-10 10:17:40 215

原创 从inode到kobject

写的很乱,还需要整理思路。 这几天看的文件系统,先从底下的内核对象kobject,kset看起的,这是所有device对应的linux文件。了解到这是sysfs文件系统的东西,而sysfs文件系统不会一开始就挂上,在系统调用开始最先经过的是vfs,所以看到了vfsmount部分,那里讲述了vfs文件系统以及其他系统的挂载,而这一切都有一个inode的结构做桥梁,所有文件都离不开inode,在ino...

2019-12-04 00:17:34 413

原创 inode数据结构_系统分析(2)

从文件系统上来看,挂载一个文件系统也是挂载一个文件,文件系统是一个super_block,它和inode什么关系。从mount挂载命令开始,需要先注册,然后再装载系统。分为如下步骤:1,注册文件系统int register_filesystem(struct file_system_type * fs){ int res = 0; struct file_system_type...

2019-12-01 18:49:36 441

原创 inode数据结构_task分析(1)

inode可以说是整个linux最核心的文件节点,所有东西都由inode连接起来。每个文件(和目录)都有且只有一个对应的inode,其中包含元数据(如访问权限、上次修改的日期,等等)和指向文件数据的指针。看一下数据结构:kernel3.4.y/include/linux/fs.hstruct inode { umode_t i_mode; //文件访问权限...

2019-11-29 13:35:33 887

原创 linux-kernel, bus总线数据结构分析

设备模型中的三大组件是:总线,驱动,设备。bus, driver, device。数据结构总览。总线除了一些物理总线的抽象,还代表一些虚拟的总线,如platform,所以在理解platform之前,了解bus就显得还有必要了。在/sys/目录下可以看到 cpu总线下的文件cpu/├── devices│ └── cpu0 -> ../....

2019-11-28 17:59:59 578

原创 kobject,kset的结构分析

kobject 是设备对象kobject是将整个设备模型连接在一起的基础,类型如下:struct kobject { const char *name; struct list_head entry; struct kobject *parent; struct kset *kset; struct kobj_type *ktype; struct sysfs_dire...

2019-11-20 14:50:07 558

原创 va_start,va_list函数的分析及使用

首先,看宏定义typedef char *va_list;//va_list ap;#define _bnd(X, bnd) (((sizeof (X)) + (bnd)) & (~(bnd))) //类型检查, 大小//T 为 type, 数据类型#define va_arg(ap, T) (*(T *)(((ap) += (_...

2019-11-19 14:41:43 1850

原创 Makefile: ***missing separator. stop 问题原因及解决

报错如下:原因:vimrc中有set expandtab,是把tab转换冲了space空格。而在makefile中报错的地方需要的是正常的缩进,转换成空格后就错了。解决办法:删除 set expandtab这一条语句。OK...

2019-09-10 15:37:43 16594 7

转载 数据结构和算法_思维导图

原文地址:https://blog.csdn.net/qq_38646470/article/details/79616465

2019-08-23 15:28:52 272

原创 解决turmex安装kali报错问题

在手机上安装好turmex后,都喜欢安装一个Linux系统,我当时安装的时kali,但是安装过程中,报错不断。2019.8.24更新1,出现问题首先看下载kali源文件是否完整安装步骤中,会显示[解压中.....] ,可以看到解压的大小。如图所示,完整源文件不小于81M。如果源文件过小,则说明下载错误,而且在remove kali这个命令下,是不会删除源文件的,下一次安装只...

2019-08-20 20:53:33 10296 31

原创 python学习笔记_day2_数据

py_day2_数据读《python语言及其应用》做的笔记目的:了解unicode, utf-8的不同,编码,解码方法。 正则表达式部分感觉介绍的过于简略了,所以没有记录,以后专门看正则表达式的时候再写。1,文本字符串 文本 ASCII使用7位 128种取值。 Unicode 使用若干个8bit的集合,称之为平面(pl...

2019-07-19 18:01:02 182

原创 python学习笔记_day1_类和对象

读《python语言及其应用》做的笔记目的:了解python中对象,类,对象,继承,覆盖,self,如何在子类中添加新方法,子类从父类中获得的帮助super(),属性property,私有特性的命名规范,方法的类型(3种,实例方法,静态方法,类方法),鸭子类型(多态),特殊方法->魔术方法,使用类和模块的选择问题,命名元组的概念。 概念:把对象比作盒子,类则...

2019-07-19 10:18:18 161

原创 python学习笔记_day1_模块

读《python语言及其应用》做的笔记目的:了解模块的概念和构成方式,模块的导入,包,标准模块,以及几个常用的模块。模块 关键字 import 导入模块 1)import report, 运行report.get_descripation() 2)from random import choice, 运行choice...

2019-07-19 10:13:32 189

原创 python学习笔记_day0_外壳

python用缩进来区分代码段。目的:了解python中的代码结构,[判断if, 循环while, 迭代(for, zip)],4种推导式,3种参数,*,**收集参数(收集位置参数,关键字参数),生成器,装饰器,闭包,异常等概念。

2019-07-17 17:10:16 246

原创 python学习笔记_day0_类型

读《python语言及其应用》做的笔记第三章前提:py一切皆对象。目的:了解python中基本元素和数据结构的概念。一:1,数字,字符串,变量 整形,优先级,基数,类型转换, 浮点数, 数学函数 字符串 : str, \, +拼接, *复制, []提取字符, 分片:, 获取长度, 合并, 分割, 大小写与对齐方式, replac...

2019-07-17 16:57:57 136

原创 uboot启动至引导kernel流程分析图

几个重要的文件:u-boot.lds链接脚本,可以知道整个程序的各个段是怎么存放的。顶层config.mk,和板级config.mk,顶层里定义了LDFAGS变量,这是_start的值。而这个变量的真正定义是在板级的config.mk中的TEXT_BASE。如smdk2410是0x33f8000,Hi3516a是0x80800000。编译好后,System.map可以看各个变量的值和...

2019-07-10 22:16:20 4133

原创 Linux内核中的C与汇编

《linux情景分析 上》摘录目录AT&T汇编和386汇编的语言格式差别:嵌入C代码中的386汇编语言程序段C中定义函数,汇编中实现GNU汇编语言的32位寻址方式以小写的.s文件是纯汇编语言。以大写的.S文件是吸收了C语言预处理的汇编文件,其中可以使用#include,#ifdef等成分,而数据结构也一样可以在.h文件中定义。AT&T汇编和386汇...

2019-05-09 22:50:48 642

MT29F64G08.pdf

MT29F64G08CFACA, 32G08CBACA的数据手册, 尤其时F64G08CFACAWP很难找。

2019-06-28

空空如也

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

TA关注的人

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