- 博客(24)
- 收藏
- 关注
原创 汇编基础知识
使用汇编语言的时候也可以使用逻辑运算指令,常用的运算指令用法如表 7.2.6.1。函数中运行,上述代码只是初始化了 SP 指针,有些处理器还需要做其他的初始化,比如初始化。是一种多存储和多加载指令,即可以一次 操作多个寄存器数据,他们利用当前的栈指针 SP。汇编还有其它的伪操作,但是最常见的就是上面这些,如果想详细的了解全部的伪操。指向最后一个入栈的数值,堆栈是由高地址向下增长的,也就是前面说的向下增长。中的指令、伪指令、伪操作、寄存器名等可以全部使用大写,也可以全部使用。寄存器的操作就叫做 恢复现场。
2022-11-13 12:48:17
1783
原创 IIC设计
一.IIC初始化1.IIC中断初始化2.SCL时钟设置3.设置IICSTAT4.设置引脚功能5.允许产生应答信号二.IIC写一个字节1.设置处理器主设备为发送模式2.将从设备地址写入到IICDS寄存器3.写入0xf0到IICSTAT4.等待ack的产生5.写入从设备要写入的地址到IICDS寄存器6.等待ack产生7.将要传输的数据写入IICDS寄存器8.等待ack的产生9.写入0xd0到IICSTAT10.清除中断三.IIC写一个字节1
2022-01-29 15:14:36
746
原创 网卡驱动程序
一.linux网络子系统系统调用接口 网络无关接口:统一网络协议 网络协议站:tcp,udp,ip 设备无关接口:统一驱动接口 设备驱动1.2网卡结构描述1.3网路数据包二.回环网卡驱动设计这个全是代码。三.网络子系统深度分析数据包发送大的框架sci层的函数调用的过程协议夹层调用函数过程ip协议栈设备无关接口总的函数层层调用关系用户程序接...
2021-09-19 09:04:18
213
原创 总线设备驱动模型
注意:math函数中匹配设备名和驱动名时,设备名init_name内容会被复制走,所以要用dev->kobj.name来代替。注意:设备名字和驱动名字应该一致。
2021-09-09 15:21:31
58
原创 去抖动,多键优化,阻塞驱动设计,总结
一.按键去抖二.多键优化三. 阻塞型驱动按键驱动程序总结1.注册混杂设备,添加设备操作。2.注册中断,初始化硬件。3.中断分层,提交工作任务队列。4.定时器按键去抖。5.写访问应用程序,增加阻塞等待。...
2021-09-05 09:24:08
67
原创 中断分层技术
一中断类型1.慢速中断:中断总开关不关闭 。允许别的类型中断打断,但是不允许同类型中断打断,新的同类型中断会被忽略。 2.快速中断:中断总开关IF位会被关闭,其他中断会被忽略。总结:会产生中断丢失二.中断分层中断分为两个部分:上下部分上半部:硬件相关下半部:软件相关三.中断分层...
2021-09-04 09:03:29
79
原创 字符设备驱动模型
一.使用字符设备驱动设备号可以使用命令 cat /proc/devices打印出来,数字是主设备号。次设备号设置0-255.总结:首先我们要安装一个设备驱动文件其实就是安装一个内核模块,然后使用mknod /dev/文件名 c 主设备号 次设备号创建一个字符设备文件,最后使用应用程序访问字符设备文件区往设备驱动文件中读写寄存器。二.字符设备驱动模型...
2021-08-07 16:13:14
116
原创 LINUX驱动开发基础知识
一.驱动分类二.驱动方法二。硬件访问技术静态映射:使用静态映射时,先填充好结构体map_desc,然后将这个填充好的结构体放入s3c_iodesc结构体数组中。三.寄存器读写函数...
2021-08-04 16:06:39
365
原创 小白初识LINUX系统调用并搭建一个新的系统调用
用户调用系统函数时,内核会先将调用函数相对应的函数编号放入swi函数寄存器R7当中,然后内核取出r7的值作为偏移调用内核实现函数。二.自己实现系统调用函数首先先进入内核代码printk.c文件,写好一个自己想要调用的系统调用函数,再去call.s文件中的表加入自己写的函数声明,直接加在末尾,然后后在unistd.h的头文件中加入自己的。最后编写应用程序调用swi。...
2021-08-04 15:29:17
122
原创 LINUX内核链表
内核链表:双向循环链表。代码范例:_list_entry:是靠在编译时把外部地址指针指向0,然后用里面指针部分地址减去0得到地址偏移,再用指针地址减去偏移量得到外部结构地址。...
2021-08-03 18:13:13
69
原创 内核模块开发
内核模块开发:(1)内核模块基础 (2)内核模块设计 (3)内核模块可选项一.内核模块基础1.1什么是内核模块1.2安装和卸载二.内核模块设计2.1范例程序分析与应用程序的区别:(1)没有main函数。 (2)module_init()宏是入口。 (3)module_exit宏是卸载函...
2021-08-02 15:27:35
175
原创 UART,SPI,IIC,RS232通信时序和规则
一.UART1.串口通信方式2.串口通信步骤注意:串口协议规定,闲置时必须是高电平。校验位:是使用奇偶校验。停止位必须高电平。一个0和多个0区分是靠掐时间。异步通信:时钟各不一样。二.IIC通信注意:发一个字节先发高位,再发低位,...
2021-07-31 10:09:26
2367
原创 根文件系统制作
什么是文件系统:目录目录里的文件, 把目录加载到linux内核的方式一.建立根文件系统目录与文件1.1创建目录 (1)在linux中创建根目录,并在根目录下创建好需要的一些子目录 如:etc,bin目录等。1.2创建设备文件什么叫设备文件:很多设备在linux中都是文件形式存在的。dev目录下存放设备文件,里面必须要如下两个文件。1.3加入配置文件1.4添加内核模块1.5编译/安装busboxbusybox功能...
2021-07-30 18:51:21
48
原创 U-boot新手入门
嵌入式软件层次:1.bootloder(u-boot) 2.linux(内核) 3.文件系统一。编译uboot.1.配置uboot (1)vi Makefile。 (2) 寻找对应开发板的配置项 (3)make TQ210.config (4)交叉编译 ARCH=arm CROSS_COMPILE=arm-linux-2.uboot-烧写 (1)先格式化卡发板...
2021-07-29 19:03:16
754
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人