
嵌入式知识点
文章平均质量分 74
发呆探险家
这个作者很懒,什么都没留下…
展开
-
【无标题】
鼠标作为相对位移输入设备,通常不会直接报告其在屏幕上的绝对位置,而是报告相对于上一个位置的移动量。然而,在软件开发或游戏编程中,我们有时需要知道鼠标的绝对位置。这可以通过一系列的计算和跟踪来实现。原创 2024-08-26 16:41:21 · 460 阅读 · 0 评论 -
原子操作的概念
原子操作是计算机科学中的一个重要概念,它指的是在执行过程中不可分割的操作,即该操作在执行完毕之前不会被任何其他操作打断。原子操作具有两个主要特性:原子性和可见性。原创 2024-08-20 15:10:51 · 327 阅读 · 0 评论 -
【linux】SCP或SSH 连接失败: no matching host key type found. Their offer: ssh-rs
scp或者ssh报错“no matching host key type found. Their offer: ssh-rsa,ssh-dss“原因:OpenSSH 7.0以后的版本不再支持ssh-dss (DSA)算法。原创 2024-08-19 14:13:37 · 1169 阅读 · 0 评论 -
Linux网络环境搭建,开发板网线直连电脑网口,电脑WIFI上网
虚拟机在网络设置中有两个有线网络,其中一个还没有设置 IP 的,是我们的网络适配器 1,用来桥接到开发板和 Windows 的。NAT 模式的网络适配器和前面设置的 VMnet8 是在同一网段的(192.168.18.X),如果不是在同一网段,可能是之前用户有设置过 Ubuntu 的 IP,这里我们可以在这个网络的选项中将它设置为自动模式即可。设置双网卡,注意双网卡的网段不能相同,可以手动设置桥接网卡的ip地址和掩码,不用设置路由和DNS,防止双网卡冲突,产生优先级问题,接下来设置下开发板的 IP。原创 2024-08-19 11:19:24 · 2157 阅读 · 0 评论 -
uboot启动log简析
1、以后带有调试性质的开发,uboot都是烧写到SD卡中的,因为方便烧写。U-Boot启动日志是嵌入式系统启动时产生的关键信息,它提供了硬件初始化、环境变量、内存配置、设备检测等多种重要信息。原创 2024-08-17 23:49:26 · 496 阅读 · 0 评论 -
U-Boot的详细介绍
定义:U-Boot是一种开源的嵌入式引导加载程序,它是启动嵌入式系统的关键组件。主要功能启动加载:U-Boot能够从不同的存储介质(如闪存、硬盘、网络等)加载和启动操作系统。它支持多种启动方式,包括串口、网口、USB等。系统配置:能够配置系统的各种参数,包括CPU频率、内存大小、设备接口等。通过设置环境变量,可以灵活地配置系统。文件系统支持:U-Boot支持各种文件系统,如FAT、ext2、ext3、JFFS2等。它可以从文件系统中加载和启动内核、根文件系统等。网络支持。原创 2024-08-17 23:46:02 · 449 阅读 · 0 评论 -
软件SPI和硬件SPI的区别
软件SPI和硬件SPI各有优劣,选择哪种方式取决于具体的应用场景和需求。在硬件资源充足且对性能要求较高的情况下,推荐使用硬件SPI;而在硬件资源有限或需要特殊配置时,可以考虑使用软件SPI。同时,随着技术的发展和微控制器的不断更新换代,硬件SPI的性能和灵活性也在不断提升,使得其在更多场合下成为首选的SPI实现方式。原创 2024-08-15 23:24:34 · 2254 阅读 · 0 评论 -
硬件I2C和软件I2C(模拟I2C)的区别
硬件I2C和软件I2C(模拟I2C)是两种不同的实现I2C(Inter-Integrated Circuit,集成电路间)通信协议的方式,它们在实现方式、性能特点以及应用场景上存在显著差异。原创 2024-08-15 21:35:19 · 4238 阅读 · 0 评论 -
C语言基础知识:*p++与*(p++),*++p与*(++p),(*p)++ 与 ++(*p),++*p的详细理解
p++ 和 *(p++) 都返回 p 自增之前的值。*++p 和 *(++p) 都返回 p 自增之后指向的值。关键在于理解前缀自增(++p)和后缀自增(p++)之间的区别,以及它们与解引用操作(*)的结合方式。前缀自增先改变指针的值,然后返回新的指针值;后缀自增返回原指针值,然后改变指针的值。解引用操作(*)则用于获取指针当前指向的值。二、(*p)++ 与 ++(*p)在C和C++中,(*p)++ 和 ++(*p) 这两个表达式虽然看起来相似,尽管它们都涉及到指针p。原创 2024-08-14 07:53:07 · 5419 阅读 · 0 评论 -
利用定时器实现按键消抖
但是 t1~t2 和 t2~t3 这两个时间段是小于我们设置的定时器中断周期(也就是消抖时间,比如 10ms),所以虽然 t1 开启了定时器,但是定时器定时时间还没到呢 t2 时刻就重置了定时器,最终只有 t3 时刻开启的定时器能完整的完成整个定时周期并触发中断,我们就可以在定时器的中断处理函数里面做按键处理了,这就是定时器实现按键防抖的原理, Linux 里面的按键驱动用的也是这个原理!如果按键是用中断方式实现的,那就更不能在中断服务函数里面使用延时函数,因为中断服务函数最基本的要求就是快进快出!原创 2024-08-13 13:35:09 · 1147 阅读 · 0 评论 -
51和stm定时器初值计算的区别
51单片机:定时器初值的计算相对简单,主要基于晶振频率和定时器位数进行计算。STM32:定时器初值的计算更为复杂和灵活,需要根据定时器频率、预分频器、计数周期等多个因素进行综合考虑。两者在定时器初值计算上的主要区别在于STM32提供了更多的配置选项和更高的灵活性,而51单片机则相对简单直接。原创 2024-08-13 11:03:22 · 741 阅读 · 0 评论 -
crontab 设置周期性被执行的任务的工具
1.1 crontab 服务管理crontab 服务管理是 Unix 和类 Unix 系统(如 Linux 和 macOS)中用于设置周期性被执行的任务的工具。crontab 服务管理是 "cron table"(cron 表格)的缩写,它允许用户为任务安排在未来某个时间点执行,也可以定期重复执行。1.2 crontab 定时任务设置1) 基本语法crontab [选项]2) 选项说明crontab -lcrontab -e。原创 2024-08-11 23:57:12 · 1115 阅读 · 0 评论 -
裸机开发复位原理
因此,即使开发板在裸机开发时没有显式定义中断向量表或中断复位函数,按下复位键仍然能够实现复位操作。这是因为复位操作依赖于硬件复位电路和微控制器的内置复位机制,而不是中断向量表或中断复位函数。复位后,微控制器会从固定的复位向量地址开始执行代码,并执行必要的初始化操作。原创 2024-08-10 23:30:20 · 544 阅读 · 0 评论 -
汇编文件start.s中清BSS段 ,__bss_start地址对齐问题
orr r0, r0, #0x13 /* r0或上0x13,表示使用SVC模式 */bic r0, r0, #0x1f /* 将r0寄存器中的低5位清零,也就是cpsr的M0~M4 */cmp r0, r1 /* 比较r0和r1,也就是__bss_start和__bss_end的值*/, {r2} /* 向r0的地址写入0,然后r0寄存器保存的地址值加1 *//* 设置sp指针 *//* 清BSS段 */原创 2024-08-10 10:39:25 · 632 阅读 · 0 评论 -
shell脚本
shell脚本支持条件判断,虽然可以通过&&和||来实现简单的条件判断,但是稍微复杂一点的场景就不适合了。它可以用于检查文件的存在性、类型、权限等,也可以用于比较数值的大小、字符串的相等性等。这只是一个简单的示例,shell脚本可以做更复杂的任务,比如文件操作、网络通信等。cmd1 && cmd2 当cmd1执行完并且正确,那么cmd2开始执行,如果cmd1执行完毕错误,那么cmd2不执行。需要注意的是,test命令和方括号之间需要有空格,并且test命令的返回值为0或1,用于判断条件的成立与否。原创 2024-08-08 23:59:46 · 963 阅读 · 0 评论 -
ARM处理器和stm32的一些区别
ARM处理器定义:ARM处理器是英国Acorn有限公司设计的低功耗成本的第一款RISC微处理器,全称为Advanced RISC Machine(高级精简指令集机器)。背景:ARM公司是全球领先的半导体知识产权(IP)提供商,其设计的处理器架构广泛应用于智能手机、平板电脑、嵌入式控制、多媒体数字等领域。STM32定义:STM32是意法半导体(ST)推出的基于ARM Cortex-M内核的32位闪存微控制器系列。背景。原创 2024-08-08 17:33:11 · 1530 阅读 · 0 评论 -
make工具和Makefile文件的引入
make:一般说GNU Make,是一个软件,用于将源代码文件编译为可执行的二进制文件,make工具主要用于完成自动化编译。在上述Makefile中,我们定义了编译器CC,编译选项CFLAGS,源代码文件SRC,目标文件OBJ和目标程序名称TARGET。最后,使用命令make来执行Makefile文件中定义的编译规则,即可自动进行源代码的编译和链接,生成目标程序。执行以上命令后,Make工具会根据Makefile文件中的定义进行编译,生成名为myprogram的目标程序。首先,我们需要安装make工具。原创 2024-08-07 11:55:04 · 685 阅读 · 0 评论 -
vim编辑器
Linux系统都会自带vi编辑器,但是vi编辑器不好用,所以建议大家安装vim编辑器安装命令:sudo apt install vimVim的特点和功能:模态编辑:Vim具有多个编辑模式,包括插入模式、命令模式和可视模式。这些模式使得编辑效率更高,可以快速切换和执行不同的编辑操作。快捷键:Vim使用大量的快捷键来执行常见的编辑任务。这些快捷键可以大大减少手动输入的需要,提高编辑速度。强大的搜索和替换功能:Vim支持正则表达式搜索和替换,可以快速定位和修改文本。原创 2024-08-07 01:56:59 · 991 阅读 · 0 评论 -
Linux文件链接
Linux有两种连接文件:符号连接(软连接)和硬链接,符号链接类似Windows下的快捷方式。硬链接通过文件系统的inode连接来产生新文件名,而不是产生新文件。软链接和硬链接的区别在于:软链接(Symbolic Link)是一个特殊的文件,它只包含了原始文件的路径信息,原始文件和链接文件是两个不同的实体。软链接可以跨越文件系统边界,并且可以链接到目录。符号连接类似Windows下的快捷方式,符号链接也叫做软连接,软连接要用的多。原创 2024-08-07 01:27:38 · 894 阅读 · 1 评论 -
Ubuntu文件操作(压缩与解压缩、用户组管理、权限)
初次创建系统时创建的用户权限比普通用户多,没有root用户多,初次创建的用户可以创建普通用户。上面的tar命令只提供了打包和解包的功能,tar在提供打包和解包的同时使用gzip/bzip2进行压缩,实现类似windwos下winRAR软件的命令。chown命令是一个Linux和Unix操作系统中的命令,用于更改文件或目录的所有者。gzip虽然可以对文件夹进行压缩,但是并不能提供打包的服务,只是对文件夹中的所有文件进行了单独的压缩。请注意,只有具有足够权限的用户才能使用chown命令更改文件或目录的所有者。原创 2024-08-06 23:47:51 · 1375 阅读 · 0 评论 -
Ubuntu文件操作(文件系统结构、磁盘管理)
根目录(Root Directory)是计算机文件系统中的顶级目录,位于文件系统的树形结构的最上层。在Linux系统中,根目录的路径是“/”,是整个文件系统的起始点。所有的目录都是由根目录衍生出来的。/bin 存放二进制可执行文件,这些命令在单用户模式下也能够使用。可以被root和一般的账号使用。/boot Ubuntu内核和启动文件,比如vmlinuz-xxx。gurb引导装载程序。/dev 设备驱动文件的目录/etc 存放一些系统配置文件,比如用户账号和密码文件,各种服务的起始地址。原创 2024-08-06 23:00:26 · 2380 阅读 · 0 评论 -
ubuntu软件安装
锁定文件将会创建 于/var/lib/apt/lists/、/var/lib/dpkg/、/var/cache/apt/archives/ 中。当你没有看到 apt-get 或者 apt 进程的情况下在上面两个不同的文件夹中看到了锁定文件,是因为进程由于某个原因被杀掉了,因此你需删除锁定文件来避免该错误。问题原因还可能在于其它的程序如系统的自动更新、新立得等正在使用apt-get进程,所以解决方法也就是将这一进程关闭。使用apt包管理工具,apt可以自动下载,配置,安装。方法3:删除锁定文件。原创 2024-08-05 16:30:08 · 379 阅读 · 0 评论 -
shell常用命令
打开终端进行命令行操作要打开Ubuntu终端进行命令行操作,可以按下"Ctrl + Alt + T"快捷键,或者按下"Super"键(通常是Windows键)并搜索"Terminal"来打开终端。原创 2024-08-05 14:51:36 · 1982 阅读 · 0 评论