自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(76)
  • 收藏
  • 关注

原创 4.17号驱动

保存现场(cpu自动完成)保存cpsr寄存器中的值,到spsr_寄存器中修改cpsr寄存器中的值修改状态位(T位)根据需要禁止相应的中断位(I/F)修改对应模式位保存函数的返回地址到lr寄存器中修改pc指向异常向量表恢复现场(手动完成)

2024-04-17 21:49:03 545

原创 4.16号驱动

应用层open write read 等函数设备驱动层 获取gpio号通过统一接口对硬件操作内核层 核心层 由内核工程师编写,提供gpio子系统框架屏蔽硬件差异,为上层提供统一接口厂商驱动层 根据设备驱动层,完成对硬件初始化,地址映射,寄存器初始化硬件层。

2024-04-17 20:45:59 1158

原创 4.15号驱动

在linux内核3.10版本之后,内核中引入了设备树,设备树用来存放硬件相关的信息它本质上就是一个结构体,这个管理方式会让层次目录更为清晰这个设备树在内核启动时,会被内核进行解析驱动工程师需要将所有的硬件相关信息,编写到设备树中编程时从设备树中获取相关地址信息就可以。

2024-04-16 21:09:52 668

原创 4.13号驱动

当一个应用层程序,读取硬件数据,不管数据有没有准备好,read函数都不会阻塞,而是立即返回数据。

2024-04-15 21:14:38 628

原创 4.12号驱动

当同一个驱动程序,同时被多个应用层程序访问,驱动程序就会产生竞态。

2024-04-15 19:58:00 646

原创 4.11号驱动

fd文件描述符是在进程中调用open函数,返回的一个文件描述每个进程都拥有自己唯一的一个文件描述符,并且文件描述符之间互相没有干扰文件描述符是在进程中调用open函数函数返回的所以在进程中可以找到这个文件描述符在内核空间,通过task_struct结构体来描述打开进程的相关信息所以在task_struct结构体可以找到文件描述符的相关信息。

2024-04-11 23:43:03 416

原创 4.10号驱动

1. 在使用insmod安装驱动时,可以在外部通过传递参数改变变量的值,而不用修改驱动文件2. 部分厂商只会提供对应的驱动.ko文件,驱动工程师根据.ko修改对应变量的值。

2024-04-10 21:02:27 730

原创 4.9号驱动

相同点:都是对硬件进行操作不同点:有无操作系统是否具备多进程多线程开发是否可以调用库函数操作地址是否相同,arm操作物理地址,驱动操作虚拟地址。

2024-04-10 18:41:33 231

原创 4.2号系统移植

uboot主要作用:引导内核进行启动,并且uboot启动成功之后,会给内核传递两个参数(bootcmd/bootargs)所以需要移植linux内核,也就是uboot引导启动的内核内核五大功能内存管理:内存的申请(malloc)和释放(free)文件管理:通过ext2\ext3\ext4格式进行管理进程管理:进程的创建、调度、销毁网络管理:通过网络协议栈完成的数据收发设备驱动管理:字符设备 、块设备。

2024-04-02 21:03:41 171

原创 4.1号系统移植

tf-a镜像文件:tf-a-stm32mp157a-fsmp1a-trusted.stm32(烧写位置:TF卡 / EMMC)uboot镜像文件:u-boot-stm32mp157a-fsmp1a-trusted.stm32(烧写位置:TF卡 / EMMC)内核镜像文件:stm32mp157a-fsmp1a.dtb 和 uImage(通过tftp服务器下载)根文件系统:rootfs(通过nfs服务器进行挂载)

2024-04-02 20:56:40 308

原创 3.30号系统移植

1、进入家目录下FSMP1A目录uboot源码目录下2、在uboot源码目录下,执行make distclean清除目标3、在uboot源码目录下,执行安全版本的默认配置文件成功现象:4、在uboot源码目录下,执行make menuconfig,去掉图形化界面配置信息5、在uboot源码目录下,执行make menuconfig,更改默认编译的设备树信息6、在uboot源码顶层目录下,执行make menuconfig,去掉adc电流。

2024-04-02 20:37:48 623

原创 3.29号系统移植

1、进入家目录下FSMP1A目录uboot源码目录下2、在uboot源码目录下,执行make distclean清除目标3、在uboot源码目录下,执行非安全版本的默认配置文件成功现象:4、在uboot源码目录下,打开Makefile文件,配置交叉编译工具链,编译生成arm架构修改为:5、安装库:sudo apt-get install libncurses5-dev6、在uboot源码目录下,执行make menuconfig,进入图形化界面信息。

2024-04-02 19:20:18 688

原创 3.29号系统移植

bootloader:引导加载程序的统称uboot是引导加载程序中的一种。

2024-04-01 20:53:33 1047

原创 3.28号系统移植

系统移植就是给开发板搭建一个linux操作系统。

2024-04-01 20:21:44 916

原创 3.28号arm

控制器局域网(Controller Area Network,CAN),其特点是可拓展性好,可承受大量数据的高速通信,高度稳定可靠,因此常应用于汽车电子领域、工业自动化、医疗设备等高要求环境。CAN是异步通讯,只有CAN_High和CAN_Low两条信号线,且这两条信号线是差分信号线,以差分信号的形式通讯;CAN是半双工的,在同一时刻,一个通讯节点发送消息,其他节点只能接收消息。

2024-04-01 20:01:38 780

原创 3.26号arm

spi是一种同步全双工串行总线,全称串行外围设备接口通常SPI通过4个引脚与外部器件相连:MISO:主设备输入/从设备输出引脚。该引脚在从模式下发送数据,在主模式下接收数据。MOSI:主设备输出/从设备输入引脚。该引脚在主模式下发送数据,在从模式下接收数据。SCK: 串口时钟,作为主设备的输出,从设备的输入。CSN(NSS): 从设备选择。这是一个可选的引脚,用来选择主/从设备。它的功能是用来作为“片选引脚”,让主设备可以单独地与特定从设备通讯,避免数据线上的冲突。

2024-04-01 19:23:07 633

原创 3.25号arm

I2C总线是PHLIPS公司在八十年代初推出的一种串行的半双工总线,主要用于连接整体电路。I2C总线为两线制,只有两根双向信号线。一根是数据线SDA,另一根是时钟线SCL。I2C硬件结构简单,接口连接方便,成本较低。因此在各个领域得到了广泛的应用。I2C:同步半双工串行总线i2c支持一主机多从机通信,每个接到I2C总线上的器件都有唯一的地址。

2024-03-25 22:01:58 1097

原创 3.22号arm

实验现象,主函数每一秒循环字符m,当按下按键1,则串口输出1,按下按键2,串口输出2,按下按键3,串口输出3。

2024-03-22 20:48:18 309

原创 3.21号arm

【代码】3.21号arm。

2024-03-21 21:18:28 137

原创 3.20号arm

启动蜂鸣器 ,风扇,马达。

2024-03-20 20:50:10 145

原创 3.19号arm

所谓的混合编程就是c语言资源和汇编资源的相互调用思想:将汇编的标签当作C语言的函数使用将C语言的函数当作汇编的标签使用。

2024-03-20 16:01:03 425

原创 3.18号arm

实现汇编程序跳转的两种方式直接修改PC的值通过跳转指令跳转b 标签@程序跳转到指定的标签下执行,此时LR寄存器不保存返回地址bl 标签@程序跳转到指定的标签下执行,此时LR寄存器保存返回地址。

2024-03-19 21:10:26 474

原创 3.15号arm

汇编文件中由伪操作、伪指令、汇编指令以及代码注释这几部分组成伪操作:ARM的汇编中伪操作以.为前缀,所有的伪操作不占用内存空间,编译汇编时告诉编译器怎么编译当前文件,主要用来修改汇编内容的 .text .global .globl .end .if .else .endif伪指令:不是指令,但是伪指令也会占用指令内存,执行一条伪指令时也会让运算器进行相关运算汇编指令:汇编指令执行时会让运算器进行相关运算数据处理指令跳转指令内存读写指令状态寄存器传送指令。

2024-03-16 09:07:15 690

原创 3.14号arm

输入设备:将数据转换成计算机可以识别,存储,处理的形式,发送到计算机中输出设备:将计算机对程序和数据的运算结果输送到外部的设备存储器:用于将数据保存的模块。有寄存器,存在于CPU内部,用于暂时存放数据。CPU访问没有延时。高速缓存内存外部存储运算器:运算器由算术逻辑单元(ALU)、累加寄存器、数据缓冲寄存器和 状态条件寄存器组成,它是数据加工处理部件,完成计算机的各种算术和逻辑运算。控制器:控制器由程序计数器、指令寄存器、指令译码器、时序产生器和操作控制器组成。

2024-03-15 19:06:10 846

原创 3.7号freeRtoS

配置串口为异步通信设置波特率,数据位,校验位,停止位,数据的方向。

2024-03-08 08:55:21 2019

原创 3.6号freeRtoS

GPIO(General Purpose Input/Output,通用输入/输出)是非常重要的外设,用于与外界数字通信。允许微控制器与外部器件(如传感器、执行器、LED等)进行数据交换,以实现各种功能。

2024-03-07 09:07:28 584

原创 2.26号qt

头文件包含#include<QPoint> //向量类类内声明//鼠标按下//鼠标移动QPoint p;//存放坐标//求出当前窗口的坐标点//鼠标移动// 全局的坐标(向量) 当前窗口的坐标(向量)

2024-02-26 20:36:04 557

原创 2.23号qt

作业头文件Q_OBJECTpublic:~Widget();源文件delete ui;ibtn1->text()=="启动")ui->btn1->setText("关闭");else if(ui->btn1->text()=="关闭")ui->btn1->setText("启动");

2024-02-26 08:59:26 568

原创 2.22号qt

Qss是Qt程序界面中用来设置控件的背景图片、大小、字体颜色、字体类型、按钮状态变化等属性,它是用来美化UI界面。实现界面和程序的分离,快速切换界面。优点:实现简单、便捷。

2024-02-22 21:14:24 512

原创 2.21号qt

signals: //信号权限,该权限下函数 都是信号//只需要声明 不需要实现public slots: //槽函数权限 ,该权限下函数 都是槽函数//需要声明 也要实现自定义的信号,定义在signals权限下,是一个不完整的函数,只要声明,不要实现。自定义 的信号,需要手动触发,使用emit关键字进行发射信号,如果自定义的信号一旦被发射,则会自动执行对应的槽函数处理。

2024-02-21 21:12:20 893

原创 2.20号qt

/1.类似与printf//2. 类似与cout 默认有换行 比较常用的方式qDebug() << "你好";//1.类似与printf//2. 类似与cout 默认有换行 比较常用的方式qDebug() << "你好";

2024-02-20 20:36:16 832

原创 2.19号c++

C++11引入了自动类型推导,和Python不一样,C++中需要auto关键字引导。

2024-02-19 20:40:26 965

原创 2.18号c++

菱形继承又称为钻石继承,是由公共基类派生出多个中间子类,又由多个中间子类共同派生出汇聚子类。汇聚子类会得到多份中间子类从公共基类继承下来的数据成员,会造成空间浪费,没有必要。问题:1> 汇聚子类会得到多份中间子类从公共基类继承下来的数据成员,会造成空间浪费,没有必要。2>会对公共基类的数据成员进行多次初始化,或多次释放。解决问题:虚继承。

2024-02-18 21:33:35 528

原创 2.17号c++

静态数据成员和静态成员函数是属于类的,不属于类的某个实例,它们在类的所有实例中都是共享的。在数据成员前加 static ------>静态数据成员在成员函数前加 static ------>静态成员函数静态数据成员必须在类外初始化,如果不初始化(不建议),默认为0。静态成员函数只能访问静态数据成员,不能访问非静态数据成员。

2024-02-18 21:25:41 178

原创 2.15号作业

一二。

2024-02-16 12:42:29 112

原创 2.14号作业

一二。

2024-02-16 11:30:24 116

原创 2.13号作业

一二三。

2024-02-16 11:21:15 127

原创 2.12号作业

1.第二种好 当判断==写错成=时 会报错。

2024-02-16 11:07:58 121

原创 2.11号作业

一二三。

2024-02-13 16:32:14 350

原创 2.8号作业

3.不能任意情况都能转化,必须是ASC码中有的字符才行,0~255范围内。1.static修饰的局部变量可以延长生命周期,全局可用。2.修饰全局只能文件内可用,其他文件不可用。2.getchar的返回值是ASC码。3.修饰函数只能文件内可用。

2024-02-08 21:29:20 122

空空如也

空空如也

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

TA关注的人

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