敲写Linux系统上代码的时候遇到uint8_t,uint16_t,uint32_t,于是记录下。 数据类型 uint8_t,1字节无符号整数uint16_t,2字节无符号整数uint32_t,8字节无符号整数uint64_t,16字节无符号整数 补充 一个字节8位 根据POSIX标准定义的。POSIX代表UNIX的可移植操作系统接口(简称POSIX)。POSIX标准定义了操作系统应该为应用程序提供的接口标准。它是IEEE为运行在各种UNIX操作系统上的软件定义的一系列API标准的总称。它的正式名称是IEEE1003,而国际标准名称是ISO/IEC9945。 整数有两种类型:有符号和无符...

  FWgI4FhDiAvJ   2023年11月12日   13   0   0 x系统unix无符号整数

近年来,Linux操作系统在复杂性和规模上都在增长。然而,一个应用程序通常只需要一部分OS功能,众多的应用需求导致了Linux内核的膨胀。操作系统的内核膨胀同样导致了安全性隐患、启动时间变长和内存使用的增加。随着服务化和微服务的流行,进一步提出了对内核裁剪的需求。在这些场景中,虚拟机运行小型应用程序,每个应用程序往往是“微型”的,内核占用较小,一些虚拟化技术要为目标应用程序提供最简单的Linux内核。鉴于操作系统的复杂性,通过手工挑选内核特性来裁剪内核有些不切实际。例如,Linux有超过14,000+个配置选项(截至v4.14),每年都会引入数百个新选项。内核配置器(例如KConfig)只提供...

  FWgI4FhDiAvJ   2023年11月12日   14   0   0 应用程序内核配置微服务

linux中的ioremap和mmap都是用于linux内存映射的函数,但它们的作用和使用场景有所不同。 ioremap是用于将物理地址映射到内核虚拟地址空间的函数,通常用于驱动程序中需要直接访问硬件设备的寄存器或内存区域。通过ioremap,驱动程序可以将这些物理地址映射到内核虚拟地址空间中,从而方便地进行读写操作。 mmap则是用于将文件或设备映射到进程的虚拟地址空间中,通常用于用户空间程序中。通过mmap,用户空间程序可以像访问内存一样访问文件或设备,从而方便地进行读写操作。 !!ioremap和mmap的区别在于它们映射的对象不同,ioremap映射的是物理地址,而mmap映射的是文...

  FWgI4FhDiAvJ   2023年11月12日   16   0   0 地址映射虚拟地址驱动程序

Linux内核是一个开放源代码的操作系统linux命令,它是一个多用户、多任务的操作系统,可以运行在多种计算机平台上。Linux内核的高度可配置性和安全性使其成为了当今最流行的操作系统之一。Linux内核的网络功能也是它最重要的特性之一linux服务器系统,因此学习如何在Linux内核中实现和使用网络功能是必不可少的。 要想在Linux内核中实现和使用网络功能,首先必须了解Linux内核的网络架构。Linux内核的网络架构主要由以下几部分构成:协议栈、驱动、协议和应用。协议栈是一套包含了多个协议层的协议,其中包括了物理层、数据链路层、IPv4/IPv6/ARP层、传输层、会话层、表示层...

  FWgI4FhDiAvJ   2023年11月12日   15   0   0 网络架构APIIP

I2C子系统 9.1i2c物理总线 9.2i2c基本通信协议 9.2.1i2c总线特点 9.2.2起始信号与停止信号 9.2.3数据格式与应答信号 9.2.4主机与从机通信 9.3i2c驱动框架 9.3驱动框架的组成部分 9.4I2C设备核心驱动函数 9.1i2c物理总线 如上图所示,i2c支持一主多从,各设备地址独立,标准模式传输速率为100kbit/s,快速模式为400kbit/s。总线通过上拉电阻接到电源。当I2C设备空闲时,会输出高阻态,而当所有设备都空闲,都输出高阻态时,由上拉电阻把总线拉成高电平。 i2c物理总线是由两根双向信号线组成的,一根是数据线SD...

  FWgI4FhDiAvJ   2023年11月02日   20   0   0 linux数据c语言驱动开发#define

Pinctrl子系统和gpio子系统 6.1Pinctrl子系统 6.2Pinctrl子系统的编写格式 6.2.1iomuxc节点介绍 6.2.2pinctrl子节点编写模式 6.2.3引脚的配置信息 6.2.4将led灯引脚添加到pinctrl子系统 6.2GPIO子系统 6.3在设备树中添加led设备树节点 6.4在驱动中调用GPIO子系统 6.5ioctl接口 现在我们可以通过在驱动程序代码里使用设备树接口,来获取到外设的信息了。但是我们还是要将寄存器操作具体细节体现在驱动中,比如复位操作。那么,有没有更加通用的方法,可以不涉及到具体的寄存器操作内容呢?对于有些外设...

  FWgI4FhDiAvJ   2023年11月02日   15   0   0 linux设备树引脚c语言驱动开发

1、在驱动开发中,建议使用_u32或者u_int32_t代替unsignedint等默认的数据类型。作用:清晰的说明这个变量占用多大内存,即32。 原因:不能确定你的代码以后是否只在一个平台上运行,有可能会移植到非Linux平台,不同的CPU平台,比如64位环境、非x86环境。而C语言中并未明确规定int占多少字节,所以_u32就是告诉别人,这变量占4字节。 2、这是一种良好的编程风格。 typedefunsignedint_u32其它类推

  FWgI4FhDiAvJ   2023年11月02日   19   0   0 驱动开发数据类型编程风格

argc和argv怎么使用arg表示argument,也就是参数。c表示count,也就是个数。 1.argc为整数 2.argv为指针的指针(可理解为:charargvor:charargv[]or:charargv[][],argv是一个指针数组) 注:main()括号内是固定的写法。 3.下面给出一个例子来理解这两个参数的用法:假设程序的名称为prog,当只输入prog,则由操作系统传来的参数为:argc=1,表示只有一程序名称。argc只有一个元素,argv[0]指向输入的程序路径及名称:./prog当输入progpara_1,有一个参数,则由操作系统传来的参数为:argc=2,...

  FWgI4FhDiAvJ   2023年11月02日   60   0   0 字符串bc命令行

一、定义 1.memcpy函数 voidmemcpy(voiddestin,voidsource,unsignedn); 作用:函数memcpy从source指向的对象中复制n个字符到destin指向的对象中返回值:函数memcpy返回destin的指针。 2.strcpy函数 charstrcpy(chardest,constcharsrc); 作用:函数strcpy把src指向的串(包括空字符)复制到dest指向的数组中,src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。返回值:函数strcpy返回dest的指针。 3.strncpy函数 ch...

  FWgI4FhDiAvJ   2023年11月02日   23   0   0 内存区域数据字符串

kill()函数同读者熟知的kill系统命令一样,可以发送信号给进程或进程组(实际上,kill系统命令只是kill()函数的一个用户接口)。 这里需要注意的是,它不仅可以中止进程(实际上发出SIGKILL信号),也可以向进程发送其他信号。 与kill()函数不同的是,raise()函数允许进程向自身发送信号。 kill()函数要点 raise()函数要点

  FWgI4FhDiAvJ   2023年11月02日   19   0   0 系统命令进程组用户接口
关注 更多

空空如也 ~ ~

粉丝 更多

空空如也 ~ ~