2 Gick

尚未进行身份认证

暂无相关描述

等级
TA的排名 7k+

Linux 下C语言获取文件大小

Linux下C语言获取文件大小C语言是一种比较底层的语言,有时在其他语言中很容易操作的事情,在c语言中就比较麻烦,例如获取一个文件的大小。Java中File类有个length函数,Python中os.path包中有个getsize函数,C语言中却没有直接对应的函数获取文件大小。目前,网上有一种流传很广的方法,读取文件到内存,然后跳转到文件末尾,查看跳转的长度。代码如下:...

2019-09-18 11:18:49

perl子程序详解

定义子程序:使用关键字sub,例如submarine{$n+=1;print"Hello,sailornumber$n!\n";}子程序可以定义在程序的任意位置,如果定义了两个重名的子程序,后面的会覆盖掉前面的可以在子程序中使用任何全局变量调用子程序:可以在任意表达式中使用子程序名(前面加上&)来调用,如&mari...

2019-09-11 11:38:34

用户层和内核交互小方法

proc_create的使用方法proc文件系统是个有用的东东。创建一个proc虚拟文件,应用层通过读写该文件,即可实现与内核的交互。proc虚拟文件是如何创建的呢?先看看比较简单的,创建proc文件夹。调用以下函数,即可实现proc文件夹的创建:structproc_dir_entry*proc_mkdir(constchar*name,structproc_dir_...

2019-09-11 09:37:45

高通平台电源管理regulator介绍

1.前期参考资料文档链接:1).https://blog.csdn.net/longwang155069/article/details/531293782).https://blog.csdn.net/longwang155069/article/details/531614682.高通sdx20平台上电后checkregulator如下,一...

2019-08-21 10:23:30

linux内核kallsyms机制分析

一、前言 Linux内核是一个整体结构,而模块是插入到内核中的插件。尽管内核不是一个可安装模块,但为了方便起见,Linux把内核也看作一个模块。那么模块与模块之间如何进行交互呢,一种常用的方法就是共享变量和函数。但并不是模块中的每个变量和函数都能被共享,内核只把各个模块中主要的变量和函数放在一个特定的区段,这些变量和函数就统称为符号。 因此,内核也有一个module结构,叫做kernel...

2019-08-18 17:02:02

I2C总线时序以及ACK和NACK(NAK)

额外资料:https://www.jianshu.com/p/ded5a26bf3aa关于i2c的响应问题:对于每一个接收设备(从设备,slaver),当它被寻址后,都要求在接收到每一个字节后产生一个响应。因此,themasterdevice必须产生一个额外的时钟脉冲(第九个脉冲)用以和这个响应位相关联。在这个脉冲期间,发出响应的从设备必须将SDA拉低并在时钟脉冲的高电平期间保持住。...

2019-08-17 14:13:58

内核调试 /proc/kmsg 和 dmesg

dmesg打印内核启动过程的所有信息,/proc/kmsg也是打印内核的信息,但是与dmesg有不同,第一次执行/proc/kmsg打印到目前位置的所有内核信息,再次执行/proc/kmsg,不打印打印过了的信息,打印第一次执行之后的信息,下面举个例子:第一次执行dmesg打印:ABC第一次执行/proc/kmsg打印:ABC第二次执行dmes...

2019-08-09 14:54:53

高通uart调试总结

配置驱动选项1.1首先通过原理图确定其串口号,比如UART1、UART3_HS,同时查看该串口引脚是否有复用功能,比如用作SIM卡引脚。如果有复用,需要在设备树配置中取消复用功能的选项,然后选中串口功能,高通平台设备树路径为:kernel\msm-xxx\arch\arm\boot\dts\qcom或者kernel\msm-xxx\arch\arm64\boot\dts\qcom,这个路径视...

2019-07-09 16:27:53

STM32笔记

1.51单片机的供电电压为5V,STM32的供电电压一般为3.3V2.总线是指一个主设备下面挂接多个从设备,通过一条通信线进行通信。比如SPI总线、IIC总线。3.不同通信协议的UART:4.spi总线5.IIC驱动&应用6.晶体管(三极管)的作用:开关作用、放大作用。三级管是电流控制器件,场效应管是电压控制器件。7.发光二极管的正向导通电压为0.7...

2019-07-01 23:31:39

平台设备驱动框架二

从Linux2.6起引入了一套新的驱动管理和注册机制:Platform_device和Platform_driver。Linux中大部分的设备驱动,都可以使用这套机制,设备用Platform_device表示,驱动用Platform_driver进行注册。通过bus(实质是一个链表)的.match来匹配,匹配上再调用drive中的probe函数:Linuxplatformdrive...

2019-06-30 15:40:59

Linux电源管理-Linux regulator framework

1.kernel中有关regulatorframework的介绍写的相当好(Documentation\power\regulator\*),先看官方文档。2.窝窝科技regulator介绍:http://www.wowotech.net/pm_subsystem/regulator_framework_overview.html...

2019-06-28 16:37:29

从windows到linux的换行转换工具dos2unix

同学们也许知道,windows中的文本文件的换行符是"\r\n",而linux中是"\n"。由于换行符的不同,所以有的时候会发生一些莫名其妙的状况。至于具体什么状况我就不举栗子了,场景要说起来比较多。反正具体的情况是酱婶的:你在windows下写了一个文本文件:拷贝到linux下之后,用cat-vafile.txt查看文件,结果变成了酱紫:^M什么鬼??结果也许会演变成...

2019-06-20 08:57:39

led驱动程序框架

//led_app.c#include<stdio.h>#include<fcntl.h>#include<unistd.h>#include<stdlib.h>#include<sys/ioctl.h>#defineLED_MAGIC'L'#defineLED_ON _IOW(LED_MAGIC,0...

2019-06-16 16:05:53

设备树详解

设备树详解:https://blog.csdn.net/qq_28992301/article/details/53321610U-BOOT之寻找dtb位置:https://blog.csdn.net/qq_28992301/article/details/51873201设备树详解2:https://blog.csdn.net/woshidahuaidan2011/article/det...

2019-05-14 21:15:30

Virtual Box内虚拟机的硬盘扩容方式

https://blog.csdn.net/orange_612/article/details/79597905

2019-04-23 13:31:04

gpio_tlmm_config()

http://www.voidcn.com/article/p-fndehkgz-wk.html先来看一下这个函数的原型:voidgpio_tlmm_config(uint32_tgpio,uint8_tfunc,uint8_tdir,uint8_tpull,uint8_tdrvstr,uint32_tenab...

2019-04-20 14:02:42

/proc/interrupts

cat/proc/interrupts读取到的内容从左到右,分别为:1、逻辑中断号,2、中断在各CPU发生的次数,3、中断所属设备类名称,4、硬件中断号,5、中断处理函数。如下图:代码实现分析如下红色字体1~5.489intshow_interrupts(structseq_file*p,void*v)490{491staticin...

2019-04-03 10:03:42

linux驱动开发--中断:按键中断

https://blog.csdn.net/waldmer/article/details/19189023韦东山源码#include<linux/module.h>#include<linux/kernel.h>#include<linux/fs.h>#include<linux/init.h>#include&lt...

2019-04-02 23:00:06

class_create(),device_create自动创建设备文件结点

从linux内核2.6的某个版本之后,devfs不复存在,udev成为devfs的替代。相比devfs,udev有很多优势,在此就不罗嗦了,提醒一点,udev是应用层的东东,不要试图在内核的配置选项里找到它;加入对udev的支持很简单,以作者所写的一个字符设备驱动为例,在驱动初始化的代码里调用class_create为该设备创建一个class,再为每个设备调用class_device_cre...

2019-04-02 22:13:40

linux spi驱动开发学习-----spidev.c和spi test app

http://www.cnblogs.com/sankye/p/3955630.html

2019-03-28 17:19:01

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。