自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

shenlong1356的博客

龙行龘龘

原创 stm32 利用SIM800C模块定位再通过该模块http协议发送给服务器

1、http基本命令 AT+SAPBR=3,1,"APN","UNINET" //CMNET移动 CNNET电信 UNINET联通 AT+SAPBR=1,1 //激活网络 一定要等到ok返回,否则出错 AT+HTTPINIT //初始化http...

2020-05-24 12:10:51 703 0

原创 linux驱动之I2C总线驱动框架分析

Table of Contents 1、I2C模型框图 2、设备信息层 2.1、非设备树形式 2.2、设备树形式 3、芯片控制器层adapter 3.1、控制器初始化 3.2、控制器底层传输函数(起始,数据,应答,停止) 4、核心层core.c i2c_bus 4.1、i2c_b...

2020-05-06 13:46:06 706 1

原创 linux内核移植步骤

1.解压内核源码 tar -jxvf linux-xxx.tar.bz2 或者 tar -zxvf linux-xxxx.tar.gz 2.清除之前的配置 clean - 清大部分生成的文件, 但是保留配置文件, 以及可以保证足够编译模块的信息。 mrproper - 清所有的生成文件...

2020-04-23 23:14:35 789 0

原创 linux 驱动之定时器编程

Table of Contents 定时器简介 1、HZ 2、jiffies 3、tick (节拍) 定时器编程步骤 1、定时器初始化 2、添加定时器到内核并启动定时器 3、编写定时处理函数 4、其他操作 参考代码 定时器简介 1、HZ 系统定时器频率,与体系结构相...

2019-11-28 20:44:13 56 0

原创 嵌入式linux驱动中断编程笔记

目录 中断申请函数: 中断释放函数: 休眠等待宏: 休眠唤醒宏 实例代码: 程序难点分析: 中断申请函数: int request_irq(unsigned int irq, irq_handler_t handler, unsigned long irqflag...

2019-03-12 17:32:55 97 0

原创 嵌入式字符设备驱动编写步骤

目录 编写步骤: 设备号的申请注册注销: 通用函数(静态动态申请都可以): 静态申请: 动态申请: 设备号的注销: 设备节点的创建与销毁: 手动创建设备节点: 自动创建设备节点: 设备节点的销毁: IO资源的映射与配置: 读写函数编写,操作IO口,比如点灯: 应用实验程序...

2019-03-09 20:42:58 507 0

原创 linux驱动基本命令

加载驱动:insmod driver.ko 卸载驱动:rmmod driver 注意:卸载没有.ko 列出加载了哪些驱动: lsmod

2019-03-09 16:03:01 1040 0

原创 c语言字符串长度,占用字节大小,存放位置等问题

参考文章:https://www.cnblogs.com/xmhsincere/p/4915354.html 1、三者长度strlen问题 int main () { char *str="xiaolong"; printf("%d\...

2020-05-24 21:13:25 22 0

转载 I2C、SPI设备树驱动对设备子节点的处理

对于i2c, spi等总线节点会转换为platform_device,然后它们下面的子节点交给父节点的platform_driver里面probe函数处理 1、I2C总线节点的处理过程: /i2c节点一般表示i2c控制器, 它会被转换为platform_device, 在内核中有对应的plat...

2020-05-05 21:46:05 110 0

转载 设备树节点转换为设备节点device_node、和平台设备资源platform_device

1、_dtb转换为device_node 在dts文件里,每个大括号{ }代表一个节点,比如根节点里有个大括号,对应一个device_node结构体; memory也有一个大括号,也对应一个device_node结构体。 节点里面有各种属性,也可能里面还有子节点,所以它们还有一些父子关系。 ...

2020-05-05 20:07:54 89 0

原创 linux 驱动之PWM蜂鸣器驱动

1、常用pwm函数 //申请一个PWM设备 pwm_device *pwm_get(struct device *dev, const char *con_id); //配置PWM周期和占空比 int pwm_config(struct pwm_device *pwm, int duty...

2020-05-04 09:38:59 50 0

原创 linux中断处理原理机制

本笔记摘自《深入linux设备驱动程序内核机制》 1、硬件中断框架 其中PIC为中断控制器,现在的ARM SOC处理器已经集成了PIC irq是发生中断后,从中断寄存器中读出的中断号码,用于识别是发生了哪个中断 INT代表触发CUP的统一外部中断中断信号,进过一些汇编代码处理后...

2020-04-29 20:00:18 41 0

原创 linux驱动调试copy_from_user错误

注意应用层读写的时候传递buf是否是指针,本次由于应用层调用write函数传递得是buf的值, 而不是传递指针,虽然编译能通过,但是调用copy_from_user 失败 ...

2020-04-26 21:56:43 43 0

原创 linux加载和卸载驱动模块出现 'XXX': device or resource busy 错误提示

原因1led驱动程序中没有用宏module_exit()实现模块被移除的功能 原因2:内核编译时没有勾选MODULE_UNLOAD模块卸载支持功能 原因3:这种情况一般都是驱动的设备号已经被系统使用了 原因4:lsmod 显示是[permanent](意思是永久的),编译内核的编...

2020-04-25 11:14:14 47 0

转载 嵌入式linux系统的开发——文件系统的分区和挂载

https://www.imooc.com/article/36318

2020-04-25 09:42:16 64 0

原创 嵌入式c语言进阶,提升,加强,深入书籍推荐

网上关于c语言的推荐书籍一大堆,但是我觉得一下两本更适合嵌入式c语言学习,尤其是嵌入式Linux与物联网软件开发 C语言内核深度解析,两本书籍有很多一样的地方,对c语言剖析比较深入,朱有鹏,张先凤写的那本更详细完善,希望对对刚入门嵌入式小白有帮助 1、c语言深度解剖 作者:陈正冲 出版...

2020-03-25 08:41:33 262 0

原创 uboot引导linux内核过程 卡死Starting kernel ...(下载地址,加载地址,入口地址的修改)(uImage和zImage的区别)

red\color{#FF3030}{red}red 小龙

2020-03-16 11:06:57 143 0

转载 Makefile中常用函数使用

Table of Contents 一、函数调用的语法 二、文件名操作函数 1、 $(dir )取目录函数 2、$(notdir )取文件函数 3、$(suffix )取后缀函数 4、 $(basename )取前缀函数 5、 $(addsuffix ,)加后缀函...

2020-03-14 17:15:32 61 0

转载 arm 编译相关命令arm-linux- (gcc/ld/objcopy/objdump)详解

在linux中输入vi Makefile 来实现创建Makefile文件 注意:命令行前必须加TAB键 例如:将两个文件led.c和crt0.S汇编文件,制作一个Makefile文件 led.bin : crt0.S led.c arm-linux-gcc -c -o crt0.o...

2020-03-14 16:54:25 74 0

转载 Linux-printk分析、使用__FILE__, __FUNCTION__, __LINE__ 调试

1.在驱动调试中,使用printk(),是最简单,最方便的办法 当uboot的命令行里的“console=tty1”时,表示printk()输出在开发板的LCD屏上 当uboot的命令行里的“console=ttySA0,115200”时,表示printk()输出在串口UART0上,波特率...

2020-03-14 15:24:04 56 0

转载 linux怎么查看已装好硬件驱动

linux系统中的设备驱动是否安装好一般检查几个方面:1、系统日志。嵌入式系统多是直接dmesg一下,看有没有设备关键字相关的出错信息(通用系统可检查/var/log/messages文件)。 2、已加载的模块。检查模块加载列表中有没有相关设备的模块。 lsmod 3、设备列表。检查已加载的设备中...

2020-03-13 17:18:34 82 0

转载 linux 文件打开(open)原理,非父子进程,父子进程打开文件关系

1、文件描述符fd和文件描述符表概述 在Linux系统中一切皆可以看成是文件,文件又可分为:普通文件、目录文件、链接文件和设备文件。文件描述符(file descriptor)是内核为了高效管理已被打开的文件所创建的索引(fd),其是一个非负整数(通常是小整数),文件描述符fd和文件file指针...

2020-03-04 19:10:18 98 0

转载 linux 应用编程open函数flag值

2020-03-04 11:05:24 61 0

转载 位置有关码和位置无关码详细解释

1、总体介绍 代码的运行分为三个阶段:取指,译码,执行,而取指令肯定要知道代码地址,执行过程又包含对变量的读写,对变量的读写也得知道变量的地址吧,至于代码的地址和变量的地址怎么确定呢? 答:由编译器确定,编译器确定地址分为两种形式,1、根据当前PC+偏移地址确定地址。2、直接用链接地址 对...

2020-03-01 22:56:05 104 0

原创 uboot 代码重定位(位置有关码)(存储地址,运行地址,链接地址)

Table of Contents 1、代码启动过程简要分析 2、存储地址,运行地址,链接地址 2.1、存储地址 2.2、链接地址 2.3、运行地址 2.4、链接地址和运行地址的区别 3、位置有关码,位置无关码详细解释 4、代码重定位 参考文章:https://blog.cs...

2020-03-01 18:31:44 2649 0

原创 linux (platform driver)平台设备驱动匹配方法

Table of Contents 一、匹配函数platform_match 1.1、设备树匹配方法 1.2、id_table匹配方法 1.3、dev-name和platform_driver->drv->name匹配方法 一、匹配函数platform_match 平台设...

2020-02-23 16:01:48 181 0

原创 linux (platform_driver)平台设备驱动常用API函数

Table of Contents 1、设备层注册、注销函数 1.1、platform_device_register 1.2、platform_device_unregister 1.3、platform_add_devices 2、驱动层注册注销函数 2.1、platform_dr...

2020-02-22 18:43:05 183 0

原创 LCD数据手册解析

Table of Contents 一、基本信息(分辨率尺寸) 二、时序解析 2.1、水平horizontal 2.2、垂直vertical 2.3、时钟相位极性(上升沿,或者下降沿有效) 一、基本信息(分辨率尺寸) 二、时序解析 linux LCD驱动开发之原理时序分析(二)...

2020-02-21 18:09:05 1252 0

原创 linux LCD 驱动编写(四)

一、应用程序访问驱动原理 LCD驱动程序 假设 app: open("/dev/fb0", ...) 主设备号: 29, 次设备号: 0 -------------------------------------------------------------- ker...

2020-02-21 16:28:37 112 0

原创 Linux LCD重要数据结构解析

一、struct fb_info Fb.h linux-3.5\include\Linux 用法: //驱动程序必须用这个结构体定义的成员,并且从平台设备数据中取出信息对该结构体进行填充 struct fb_info { atomic_t count; int node; int ...

2020-02-21 14:27:08 62 0

原创 tiny4412之内存控制器寄存器配置(DDR3 SDRAM)(三)

Table of Contents 一、CONCONTROL寄存器 1.1、chipn_empty 1.2、clk_ratio 二、MEMCONTROL寄存器 2.1、bl (Memory Burst Length)突发长度 2.2、Number of Memory Chips 内存数...

2020-02-13 18:37:48 194 0

转载 tiny4412之内存控制器工作时序(DDR3 SDRAM)(二)

Table of Contents 一、SDRAM 简易工作流程 二、tRCD 行列延迟RAS to CAS Delay 三、 CL(RL,Read Latency)读取潜伏期 四、tWR 写延迟 五、突发长度--(Burst Lengths) 六、预充电时间tRP 七、刷新时间 ...

2020-02-12 18:56:21 115 0

原创 背单词(2020.2.10)

specification 规格 interleaving. 交错、交叉 density 密度 Optimized 优化 pipeline ...

2020-02-10 21:09:39 66 0

原创 tiny4412之内存控制器(DDR3 SDRAM)(一)

Table of Contents 一、原理图解析 1.1、jz2440 1.1.1、jz2440引脚说明 1.1.2、地址(ADDR)引脚说明 1.1.3、Bank引脚说明 1.1.4、DQM引脚说明 1.1.5、片选(CS)说明(决定寻址起始地址) 1.1.2、jz2440内存...

2020-02-09 22:56:39 127 0

原创 uboot tiny4412_config

https://www.cnblogs.com/ynxf/p/5952896.html

2020-02-07 21:10:51 70 0

原创 uboot Makefile $(var:str1=str2) 例如$(@:_config=)

格式为$(var:str1=str2)或者${var:str1=str2}是指,将变量 var 中的所有以 str1 结尾的字符用 str2 替换。 str1 必须是结尾字符(若 var 中有多个变量构成,且变量之间用空格连接,空格前的变量若也是 str1 结尾 也符合条件)。举个例子 var:=...

2020-02-07 17:41:52 37 0

转载 链接脚本之SECTIONS

SECTIONS基本的命令语法 SECTIONS { ... secname start BLOCK(align) (NOLOAD) : AT ( ldadr ) { contents } >region :phdr ...

2020-02-07 09:13:26 56 0

转载 linux dd命令(sd卡 u盘等块设备操作)

1、参数说明: if=文件名:输入文件名,默认为标准输入。即指定源文件。 of=文件名:输出文件名,默认为标准输出。即指定目的文件。 ibs=bytes:一次读入bytes个字节,即指定一个块大小为bytes个字节。 obs=bytes:一次输出bytes个字节,即指定一个块大小为byte...

2020-02-05 18:31:57 93 0

原创 gcc 选项参数用法

Table of Contents 1、无选项编译链接 2、选项 -o 3、选项 -E 4、选项 -S 5、选项 -c 6、选项 -O 7、选项-I 8、多源文件的编译方法 8.1、多个文件一起编译 8.2、分别编译各个源文件,之后对编译后输出的目标文件链接。 1、无选项编译...

2020-02-05 12:40:26 66 0

原创 linux 自带LCD驱动框架(三)

一、驱动框架图 二、内核kernel层(Framebuffer) 2.1、入口出口函数(init exit) /*linux/drivers/video/fbmem.c*/ 主设备号: 29, 提供了读写相关接口函数 #define FB_MAJOR 29 /* /dev...

2019-12-26 17:20:57 74 0

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