自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 u-boot、环境变量

 nand dump[.oob] off - dump page 打印出从off处开始的 dump page 页的数据。内存查看命令md [.b, .w, .l] address [# of objects]需要注意的是修改环境变量之后要保存,保存就 是把参数写入到nand-flash中去。内存修改命令(地址不自增) nm [.b, .w, .l] address。内存修改命令(地址自增) mm [.b, .w, .l] address。 nand erase.chip nand-flash整片擦除。

2024-04-18 09:16:55 287

原创 数模转换(ADC)、IIC、2440内部IIC寄存器、主机发送、主机接收

3、数据传输时,时钟线 SCL 上的信号为高电平期间,数据线 SDA 上的数据必须保持稳定;一条专用串行数据线(SDA)和一条专用 串行时钟线(SCL)传递连接到 IIC 总线的总线主控和外设之间的信息。有效应答位ACK:接收器在第9个时钟脉冲之前的低电平期间将数据线SDA拉低,并且确保在该时钟的高电平期间为稳定的低电平。而数字信号是由一系列离散的数字表示,只能取有限的值,通常以二进制的形式表示。5、发送方发送完最后一个bit后,需要发送一个结束标志位:SCL为高电平时,数据线SDA由低向高跳变。

2024-04-16 21:24:29 858

原创 定时器、PWM定时器、UART串口通信

波特率时钟是通过 16 和由 UART 波特率分频寄存器(UBRDIVn)指定的 16 位分频系数来分频源时钟(PCLK,FCLK/n 或 UEXTCLK)产生的。波特率时钟是通过 16 和由 UART 波特率分频寄存器(UBRDIVn)指定的 16 位分频系数来分频源时钟(PCLK,FCLK/n 或 UEXTCLK)产生的。UBRDIVn = (int)( UART 时钟 / ( 波特率 × 16) ) - 1。UBRDIVn = (int)( UART 时钟 / ( 波特率 × 16) ) - 1。

2024-04-15 17:26:07 776

原创 2440LED点灯、K1~K6按键、24401中断、2440时钟

(由于我写的startup.s用的是IRQ异常,故将中断处理为IRQ异常)中断偏移寄存器中的值表明了是哪个 IRQ 模式的中断请求在 INTPND 寄存器中。中断处理完成后需要清除那些数据中被设置为 1 的相应 位置的 SRCPND 位。写在中断处理函数中(interrupt_handle)这里的时钟指的是处理器运算时的主频(即程序运行一条指令所需要的时间)必须在中断服务程序中清除了 SRCPND 寄存器后清除此寄存器。写在中断处理函数中(interrupt_handle)

2024-04-14 20:37:03 820

原创 2440栈的实现类型、b系列指令、汇编掉用c、c调用汇编、切换工作模式、初始化异常向量表、中断处理、

但是在进行操作之前,我们必须告诉2440栈底的位置,这里我们把栈底设置为0x40001000,从地址0x40000000开始的0x1000这段内存空间对应的是2440内部的一段ram,其中Rn表示栈底指针寄存器,< registers >表示需要入栈保护的寄存器,!中Rn表示栈底指针寄存器,< registers >表示需要入栈保护的寄存器,!答:此时的sp为sp_svc,不是user模式下的sp,故需要设置sp_user,且要从栈顶往后走1k。bx指令:将某个寄存器的保存的地址写入 pc 寄存器。

2024-04-14 10:56:12 1039

原创 ARM内核、内核寄存器及作用、ARM最小系统、半导体器件、存储器、ARM工作方式、ARM寄存器个数、立即数、汇编指令的s/c后缀

bic指定位清零:BIC{S}<c> <Rd>, <Rn>, #<const>:将Rn中的字数据const为1的比特清零,把结果放入rd。orr指定位置1:ORR{S}<c> <Rd>, <Rn>, #<const>:按位或,Rn与常量const或,或的结果保存到Rd里。SUB{S}<c> <Rd>, <Rn>, <Rm>{, <shift>}:寄存器Rn减寄存器Rm的值,减完存储到寄存器Rd。SUB{S}<c> <Rd>, <Rn>, #<const>:将寄存器Rn的值减const之后存储到寄存器Rd。

2024-04-12 12:28:09 1384

原创 DS18B20与单片机的通信、DS18B20采集温度、MODBUS协议、练习框架

答:在该总线上外接一个上拉电阻(4.7k ~ 10k)(因为51的内部构造,导致51的上拉电平非常弱,因此需要这个电阻来添一把力,保证它是高电平),这样在单片机和DS18B20同时拉高时,该总线一定是高电平。空闲时总线上呈现高电平,如果要发送1,就把总线电平拉低,拉低时间大于1微秒后,立刻又将电平拉高,拉高时间为:至少(MIN)拉高15微秒,典型(TYP)拉高30微秒,最多(MAX)拉高60微秒。单片机P37和DS18B20总线连接起来,要是P37要拉低电平,总线要拉高电平,那到底是高电平还是低电平?

2024-04-11 19:52:45 1014

原创 PWM、通信、串口通信、UART、TTL、51单片机串口通信、定时器初值的计算公式

由于采用的是压差,RS485在传输数据的某一时刻,两根线都要用到,所以他是半双工的。通常指芯片引脚产生的电压,这个电压值跟选择的芯片有关,在51单片机系统下是5V;指将数据拆分成一个个比特,按照先后次序在一根总线上进行发送,串行通信有着系统占用资源少,结构简单等优点,是主机间通信的常用方式。,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中。28 这里的8来自定时器的工作方式,因为我们使用的是8位自动重装方式,所以是8。

2024-04-11 10:59:18 1042

原创 位运算、芯片封装方式、中断、定时器

当中央处理机CPU正在处理某件事的时候外界发生了紧急事件请求,要求CPU暂停当前的工作,转而去处理这个紧急事件,处理完以后,再回到原来被中断的地方,继续原来的工作,这样的过程称为中断。

2024-04-07 21:07:20 1136

原创 项目框架、FrameBuffer、RGB、RGB显示操作、显示图片、显示文字、串口

物联网 = 嵌入式 + 网络网络:Lora一对多、Zigbee一对多。

2024-03-27 18:10:23 1110

原创 哈希存储、哈希表、哈希表的基本操作、算法的一些概念

主要为了进行二分查找,由于根节点选择不合适,容易造成树不平衡,故产生了平衡二叉树。

2024-03-25 18:23:11 575

原创 循环队列、循环队列的基本操作

存在问题:假溢出——解决办法:循环队列空队列、满队列如何判断?满队列:rear + 1 = front空队列:rear = front。

2024-03-25 08:27:33 410

原创 树型结构、二叉树、二叉树的创建销毁、二叉树的四种遍历、二叉树层序遍历与队列结合

特性: 一对多。

2024-03-24 21:42:24 786

原创 系统栈、数据结构栈、栈的基本操作、队列、队列的基本操作

先进后出、后进先出。

2024-03-21 20:20:54 615

原创 双向链表、单双向链表比较、双向链表的基本操作

双向链表操作:创建、插入、遍历、查找、修改、删除、销毁

2024-03-20 19:19:13 455

原创 内存泄漏检测、单向链表的操作

上图表示申请了10个空间,释放了10个空间,没有内存泄漏上图申请了11个空间,释放了10个空间,存在内存泄漏(leaked memory)

2024-03-19 18:23:25 591

原创 数据结构、数据间关系、单向列表(操作的程序)

用来组织存储数据一组用来保存一种或多种特定关系的数据的集合(组织和存储数据)程序 = 数据结构 + 算法。

2024-03-18 18:21:39 605 1

原创 通过编程使用数据库

安装sqlite3库sudo apt-get install libsqlite3-dev。

2024-03-13 21:48:00 390

原创 SQL数据库-SQL命令-SQL语言

关系型数据库:MysqlOracleSqlServerSqlite非关系型数据库(相当于在内存中搞了一块空间),能够快速完成对用户的响应RedisNoSQL。

2024-03-12 17:24:08 1191

原创 TCP多线程模型、IO模型(select、poll、epoll)

缺点:创建线程会带来资源开销,能够现的并发量比较有限。

2024-03-11 21:04:02 1368

原创 UDP实现文件的发送、UDP实现全双工的聊天、TCP通信协议

处理等待链接队列中的第一个链接请求,若没有人发送链接请求会阻塞等待,直到有连接请求。backlog:允许等待的尚未被处理的三次握手请求的最大个数。addrlen:存放IP地址大小空间首地址。addr:存放IP地址的空间首地址。addr:目的地址存放空间首地址。addrlen:IP地址的大小。sockfd:套接字的描述符。buf:发送数据空间的首地址。sockfd:套接字描述符。sockfd:套接字描述符。sockfd:套接字描述符。sockfd:套接字描述符。功能:监听客户端发送的链接请求,不会阻塞。

2024-03-08 20:52:12 748

原创 TCP包头、TCP为什么安全可靠、UDP和TCP的区别、http协议

发送端发送数据包的编号。

2024-03-08 15:40:07 684

原创 接收端编程、UDP编程练习、wireshrak抓包工具、UDP包头

功能:从套接字中接收数据参数:sockfd:套接字文件描述符buf:存放数据空间首地址flags:属性,默认为0;src_addr:存放IP地址信息空间的首地址addrlen:存放接收到ip地址大小空间的首地址、返回值:成功返回实际接收字节数,失败返回-1;

2024-03-08 08:31:21 842

原创 有名信号量、网络协议模型、UDP编程发送端

功能:创建一组信号量参数:key:IPC对象的key值nsems:信号量的个数返回值:成功返回信号量ID,失败返回-1;

2024-03-05 17:18:12 1060

原创 IPC对象、消息队列 、共享内存

内存文件,如何查看?

2024-03-04 17:52:36 783

原创 信号:pause、alarm、kill;第二个项目:基于Mplayer的视频播放器

功能:让进程睡眠直到接收到捕捉的信号才能继续向下执行。

2024-02-29 15:27:06 702

原创 二维数组传参练习题

二维数组传参,外部函数要接收指针数组。重点在于如何处理二维数组。

2024-02-28 20:28:07 188

原创 进程间通信,无名管道pipe,有名管道mkfifo,信号的基础概念,signal函数

总共6种通信方法,主要是前五种方式。

2024-02-28 17:26:50 721

原创 线程分离、线程传参、线程互斥(互斥锁)、线程同步(信号量)

线程结束后自动会后线程空间。

2024-02-27 17:05:42 825

原创 exec函数族;线程的创建、调度、消亡;pthread_~~~函数接口、二级指针的应用

功能:利用进程空间执行另外一份代码。

2024-02-26 17:28:10 893

原创 进程的相关命令,进程的创建、调度、消亡,进程相关函数接口

程序:存放在外存中的一段数据组成的文件进程:是一个程序动态执行的过程,包括进程的创建、进程的调度、进程的消亡。

2024-02-23 17:34:22 802

原创 时间获取:time/localtime/mktime、文件属性和权限的获取:stat/readlink

功能:返回1970-1-1到现在的秒数(格林威治时间)参数:tloc:存放秒数空间首地址返回值:成功返回秒数,失败返回-1;

2024-02-20 17:16:18 698

原创 利用read和write实现文件内容的拷贝、主函数传参、文件IO、目录IO

练习1:利用read和write实现文件内容的拷贝(将src.jpg中的内容拷贝到dst.jpg文件中)新知识点:主函数传参,在编译之后运行的时候将参数传入主函数参数:argc:要传的参数个数argv:要传的参数的首地址(char* 型)cahr *argv[ ]:存放要操作的文件的地址的数组(指针数组)

2024-02-19 18:25:33 832

原创 标准IO完成文件拷贝、文件IO、文件的相关知识、文件IO的函数接口:open\close\write\read

:标准IO 普通文件(存放数据,图片,音频,压缩包,文本文件)O_TRUNC 文件存在截断(清0)b:block 块设备文件(按块扫描设备信息的文件)c:character 字符设备文件(按字符扫描设备信息的文件)d:directory 目录文件(存放文件)返回值:成功返回文件描述符(很小的非负整数),失败返回-1。功能:打开文件并且获得文件描述符(和文件一 一对应)

2024-02-18 17:43:02 1025

原创 标准IO的函数接口:fgetc\fputc\fgets\fpus\fwrite\fread\fscanf\fprintf、fgetc\fputc和getchar\putchar的区别、流的定位

文件内容拷贝。

2024-02-05 17:22:02 528 1

原创 Linux、shell、工作方式、man手册、shell命令、让虚拟机上网、IO、标准IO

一、IO编程多任务编程(进程、线程)网络编程数据库编程二、数据结构。

2024-02-03 18:55:19 1289 1

原创 我要成为嵌入式高手之2月2日第十七天!!

define 宏名 宏值 (表示定义了一个 宏)作用:在代码中用到宏值的地方都可以用宏名代替预处理阶段:文本的原样替换注意:①(#define 宏名 宏值)后面不能写分号② 宏名一般写大写结束宏定义的操作:#undef N。

2024-02-02 22:31:33 442

原创 结构体、共用体、枚举、链表、尾插、头插

1.在32位的平台上,默认都是按4字节对齐的。////64位的平台 默认是8字节2.对于成员变量,各自在自己的自然边界上对齐。//整个结构体的对齐3.如果 成员变量中有比4字节大。此时 整个结构体按照4字节对齐。4.如果 成员变量中没有有比4字节大。此时 整个结构体按照最大的那个成员对齐。注意:1.结构体类型,可以定义在 函数里面,但是此时作用域就被限定在改函数中2.结构体的定义的形式:形式1: 先定义类型,后定义变量struct stu...形式2: 定义类型的同时定义变量。

2024-02-01 20:18:40 1099 1

原创 我要成为嵌入式高手之1月31日第十五天!!

用变量a给出下面的定义:a) 一个整型数 // int a;b) 一个指向整型数的指针 // int *a;c) 一个指向指针的的指针,它指向的指针是指向一个整型数(二级指针)d) 一个有10个整型数的数组 // int a[10];e) 一个有10个指针的数组,该指针是指向一个整型数的 // int * a[10];(存放了指针的数组)

2024-01-31 21:24:54 789

原创 我要成为嵌入式高手之1月30日第十四天!!

do= '\n');s--;*s = '\0';while (*s!= '\0')++s;*end = t;++begin;--end;Gets(s);Puts(s);return 0;int i = 0;int j = 0;for (i = 0;i < row;j < 4;return 0;

2024-01-30 22:35:57 498 1

空空如也

空空如也

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

TA关注的人

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