Linux学习记录60(ARM篇)本文目录Linux学习记录60(ARM篇)一、SPI总线1.概念2.硬件连接二、SPI总线协议三、SPI总线通信模式四、对比IIC总线和SPI总线1.相同点2.不同点思维导图一、SPI总线1.概念1、SPI总结是Motorola首先提出的全双工三线/四线同步串行总线2、采用主从模式(MasterSlave)架构3、支持多slave模式应用,一般仅支持单Master,多从机使用4、时钟由Master控制5、在时钟移位脉冲下,数据按位传输,先发送高位,在发送低位,也可以先发送低位,在发送高位6、SPI接口有2根单向数据线,为全双工通信7、目前应用中的数据速率可达几
使用系统:WSL2——Kali(MicrosoftStore)命令列表rustuptargetlist#当前官方支持的构建目标架构列表rustuptargetaddaarch64-unknown-linux-gnu#添加目标架构sudoapt-getinstallgcc-13-aarch64-linux-gnugcc-13-aarch64-linux-gnu#下载目标工具链,可以把13删了sudodpkg--add-architecturearm64#解决后面使用qemu-aarch64的lib问题sudoaptupdatesudoaptinstalllibc6:arm64cargonewTe
经过前两篇的步骤,现在板子上已经有了系统内核镜像文件,就差提供一个内核可挂载的根文件系统了. 制作根文件系统的方式有很多种, 如果是第一次制作根文件系统建议使用busybox, 因为busybox整体结构比较简陋, 纯粹是提供了一些基础工具, 还需要开发者自己移植一些库文件, 制作一些脚本文件, 移植一些自己需要的文件, 但是在一步步制作的过程中能学会很多东西. 但是直接使用Ubuntu文件系统的好处就是能在较短的时间内获得一个完善的文件系统. 首先在官方网站中下载,在这个界面中可以选择想要安装的版本:然后点击想要下载的版本,然后点release,然后在如下界面选择arm64的.gz压缩包
文章目录B.NE指令格式CBNZ指令格式b指令和f及b的关系上篇文章:ARM常见汇编指令学习3–ARM64无符号位域提取指令UBFX下篇文章:ARM常见汇编指令学习5–arm64汇编指令wzr和xzrB.NE指令格式B.NElabel>B.NE指令的含义是:如果上一个指令的结果不等于零(即条件标志位Z为0),那么跳转到指定的地址。如果结果等于零,则继续执行下一个指令。wait_rd: ldrx7,=0x18ac0000 ldrw9,[x7,#0x0] ubfxw9,w9,#0,#1 cmpw9,#0x1 b.newait_rd dsbsy isb上面汇编代码是判断w9与0x1是否相等,cmp指
文章目录extern"C"介绍extern"C"使用示例1.2.2作用场景上篇文章:ARM嵌入式编译系列4.1–GCC编译属性likely与unlikely学习下篇文章:ARM嵌入式编译系列5–GCC内建函数__builtin介绍extern“C”介绍extern“C”是一种链接规范,它用于告诉C++编译器按照C语言的方式来链接代码。这个关键字主要用于在C++代码中调用C语言的函数库。C++语言对函数进行了名字修饰(NameMangling),也就是说,C++编译器在编译函数的时候会给函数的名字添加一些额外的信息,例如函数的参数类型和数量。这样做的目的是为了支持函数的重载。然而,C语言不支持函
前注:本文章主要讲解【调试】【固件库(标准库)】【HAL库】内容为'_Snake_'编写,日常学习总结,内容如有不足、不妥之处请私信告知,谢谢! 1.打开工程进入调试界面 进入调试界面需要连接芯片 2.选择需要查看的变量 3.右击选中“Add'sys_clk'to... ”的变量,watch1,watch都可。 4.找到窗口。窗口中的值为当前变量值 5.右击 去勾√Hex显示(16禁止)以十进制显示(人看的那个) 6.实时查看数值在菜单栏中找到view选中PeriodicWindowUpdate(实时显示串口) 7.在watch窗口查看数值右边为变量类型 Memory为
通常情况下,对于一些成熟的STM32开发板,在其电路原理图的设计中,MCU外接了两个晶振。一个是低速晶振32.768kHz,另一个是高速晶振8MHZ。下文探讨二者的作用。文章目录1.STM32原理图2.CubeMX时钟配置图2.1低速晶振32.768kHz2.2高速晶振8MHZ3.参考文献1.STM32原理图通常情况下,一些成熟的开发板在对STM32芯片进行原理图设计时,会使用两个晶振,如下图:在进行晶振贴片时,由于晶振的体积比四周电阻体积大很多,晶振会占用较多的空间。如下图:这对我们制作一些超小型电路板是不利的,因为板子空间有限。为此,我们需要理解这两个晶振的作用,尤其是低速晶振32.768
.global_start_start: /*movr0,#0x5 movr1,#0x6 blLoop Loop:cmpr0,r1 beqstopsubhir0,r0,r1 subccr1,r1,r0 movpc,lr */ movr0,#0x1 movr1,#0x0 movr2,#0x64 blLoop Loop: cmpr0,r2 bhistop addr1,r1,r0 addr0,r0,#0x01 movpc,lrstop: Bstop .end
实践制作DIY-GC0045(2)-WIFI手机APP智能窗户窗帘控制系统一、功能说明:基于51单片机设计-WIFI手机APP智能窗户窗帘控制系统功能介绍:STC89C52(AT89C52)系列最小系统板+5VUSB电源+ESP8266WIFI模块+ULN2003控制的步进电机+5个按键+DS1302时钟芯片+LCD1602显示器+光敏电阻结合ADC0832采集光强+DHT11温度湿度传感器+LED表示当前状态1.可以通过按键选择或者手机APP设置,手动模式、环境自动模式、时间自动模式。2.手动模式:此模式下,按下按键或者手机APP可实现手动控制窗帘打开(180度)ULN2003控制的步进电机
记录一下armbacktrace分析过程什么是ARMbacktraceARMbacktrace指的是在ARM架构下的程序调试过程中,获取当前函数调用栈帧的信息,以便定位问题所在。调用栈(CallStack)是一种数据结构,用于记录函数调用的顺序和嵌套关系,每次函数调用都会在栈上分配一个栈帧(StackFrame),保存了函数的局部变量、参数和返回地址等信息。backtrace是指获取调用栈的逆序列表,即从当前函数回溯到最开始的函数调用。ARMbacktrace通常用于调试应用程序中的错误,如崩溃、段错误等。通过分析backtrace信息,开发人员可以定位问题发生的位置,从而进行修复。在Linu