- 博客(93)
- 收藏
- 关注
原创 PCB画板:基尔霍夫定律、PCB结构与组成、PCB的叠层结构、PCB设计流程框架
6.阻焊:在铜层上面覆盖油墨层,油墨层覆盖住铜层上面不需要焊接的线路,防止PCB上的线路和其金属、焊锡等导电物接触导致短路。1.导线:导线具有和原理图对应的网络连接关系导线带有网络,对应电路图结点。②KVL表示回路中的支路电压的约束,与回路中各支路上接的元件性质无关。②KCL表示结点处支路电流间的约束,与支路上的元件性质无关。③KCL方程式按电流参考方向列写的,与电流的实际方向无关。①KVL的实质反映了电路遵从能量守恒定律的。电压定律的实质(KVL)(一)电流定律(KCL)(二)电压定律(KVL)
2025-11-05 10:04:57
498
原创 PCB画板:电阻、电容、电感、二极管、三极管、mos管
②四位数:前三位为有效数字,第四位为0的个数,5112(511×10的2次方),误差1%①三位数:前二位为有效数字,第三位表示0的个数,104(10×10的4次方),误差5%①4条杠:前两条为读数,第三条为乘数(23×1 = 23欧姆)第三条为误差5%②5条杠:前三条为读数,第三条为乘数(470×0.1),误差为1%③带R的小电阻:R010(0.010),R003(0.003)(三)三极管的三种状态(NPN):基极电流看作控制c-->e电流的开关,反偏和正偏。(一)作用:三极管控制电流,场效应管控制电压。
2025-11-04 22:52:53
374
原创 复习总结最终版:C语言
int const *const p(const修饰*p和p):*p和p均不可变,p必须初始化,不然后续无法赋值。(四)指针相关运算符: int num(&num获得变量在空间的首地址,int->int *),int *p(*p,int * ->int)'\0' 字符'\0' ASCII值为0,存放 '\0' 等价于存放0(与 0 等价)int const *p(const修饰*p):指针变量p可变,p指向的空间内容不可变。7.带参宏:只是代码的替换,没有传参过程,所以执行效率高。
2025-10-16 17:42:49
1088
1
原创 复习总结最终版:数据结构
一、数据结构概念 (一)衡量代码的质量和效率 1.时间复杂度:数据量的增长与程序运行时间的增长所呈现的比例函数 ①O(1):程序时间维持恒定 ②O(logn):程序刚开始运行时间可能增长较快,但经过一定数据量后,程序运行时间趋于恒定 ③O(n):程序运行时间随数据量增长呈现固定的比例关系 ④O(nlogn) ⑤O(n^2)... 2.空间复杂度:数据
2025-10-16 09:42:42
1024
原创 项目总结:CAN总线、摄像头、STM32概述
(一)HAL库+STM32CubeMX配置信息生成代码+keil5(二)STM32F1系列,CortexM3内核:8MHZ的晶振。主频配置为为72MHZ(三)哈弗架构(四)GPIO的输入输出模式1.输入模式①浮空输入:这时候GPIO处于高阻抗状态,电平由外部电路决定,容易受干扰②上拉输入:内部接上拉电阻,默认高电平,当外部接地时读到低电平。③下拉输入:内部接下拉电阻,默认低电平,外部接高电平时读到高电平。④模拟输入:用于ADC读取模拟信号,比如温度传感器的电压值,此时引脚不进行数字处理。
2025-10-15 18:53:53
1160
原创 复习总结最终版:Linux软件编程
③从消息队列中接收消息:ssize_t msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg)(六)文件IO函数接口(有三个特殊的文件描述符(非负整数、取未被占用最小非负整数、文件描述符是有上限的,到达上限后再打开会报错误):标准输入(0)、标准输出(1)、标准错误(2))①[](ls file_[1-5].txt、ls file_[1,2,5].txt、ls file_[^3].txt):匹配一位长度,指定字符的文件名。
2025-10-15 10:38:52
1225
原创 复习总结最终版:计算机网络
a.服务器接收的客户端状态为sigin:发送信息给每一个在线的客户端(可以将存在的客户端信息存在链表(数组)里面,然后遍历链表判断状态,发给每一个在线的客户端),将自己的地址尾插法插入链表(发送之后插入可以不用判断自己)。④三者关系:URL 告诉你资源在哪里(地址),HTTP 告诉你如何获取它(交通规则),而 HTML 则是你获取到的资源本身的内容和结构,并且里面包含了更多的 URL(超链接),让你可以继续浏览。枚举用户状态(sigin、chat、quit),结构体(用户状态、用户昵称,用户消息)
2025-10-14 09:11:32
646
原创 Linux驱动新理解
开发板上电之后,先执行bootROM中的程序,这个是芯片厂家事先固化好的程序,这个程序主要是初始化时钟,栈,然后就是寻找bootloader(按一定顺序(emmc,sd卡...)根据bootloader的head信息找正确的bootloader)c.选择sd卡启动(网络启动),然后倒计数结束前按enter可进入修改uboot环境参数界面。初始化外设、解析设备树、(tftp协议下载(读取)kernel到内存的0x80800000地址处,.dtb文件到内存的0x83000000地址处,向内核传参,启动内核。
2025-10-14 09:10:15
838
原创 复习总结最终版:单片机
使用负逻辑和高电压,抗干扰能力强,传输距离较远(几米)(三)Cache(缓存、存储CPU频繁使用的一些东西):书桌(CPU)旁边的小车(Cache)里面放常用数据,避免一直远距离去书架(RAM)拿。(三)控制总线:单向(一份部分是CPU输出命令,另一部分是外部设备输入给CPU的(如状态查询)),所以整体来看是双向。1.CPU(中央处理器):数据运算、指令处理,CPU性能越高,完成指令处理和数据运算的速度越快。3.MPU(微处理器):集成度低,只有一块单独的CPU,需要接外设,存储模块,复杂领域,成本高。
2025-10-13 12:46:42
850
原创 复习总结最终版:ARM裸机
②r14(lr):链接寄存器:调用子函数时,硬件会自动将下一条指令的地址(返回地址)存入lr。②数据传输(全双工):因为已提前设置好采样边沿,所以主设备和从设备采样边沿时会分别在两条数据线采样。⑦stop信号:主设备数据传输结束时,会在SCL高电平时,使SDA产生一个上升沿。①r13(sp):栈指针寄存器:嵌套函数需要压栈和弹栈,对局部变量和地址(因为两个函数可能有同一变量名,防止操作错误)11.str r1,[r0],#4 //先用再偏移,将值存储到r0原来地址,地址偏移4,r0指向偏移后的地址。
2025-10-13 12:11:26
1084
原创 复习总结最终版:Linux驱动
①SD卡烧录:烧录工具系统(mfgtool)下载到SD卡,板子选择SD启动,这个烧录系统会自动将完整的启动程序烧录到emmc对应位置。(四)交叉编译:因为开发板内存不足以提供编译条件,所以在ubuntu编译在开发板运行即可(开发板的根目录挂载的Ubuntu的nfs下)如果驱动和设备匹配(match)成功,注册字符设备驱动(probe),有一方卸载时注销(remove)字符设备驱动。(四)rootfs:根文件系统,按照一定格式组织一堆文件(操作系统启动后第一个挂载的文件系统,一堆文件的集合)
2025-10-12 22:32:43
626
原创 项目总结:platform方式驱动框架、pc版和arm版连通ONENET方式、wireshark抓包mqtt、ONENET创建产品、双网卡配置
(二)添加筛选条件(端口号):tcp.port == 1883(根据通信时设置的端口号筛选)(二)将脚本文件复制到挂载的目录下,修改dou_net文件,使重启后route路径固定。(一)为了更清楚的理解在挂载目录下创建两个文件夹:分别用来搞arm通信和pc通信。2.注册杂项设备,主设备号为10,次设备号从255想下自动分配。(一)使pc端联网分配动态ip,arm端连接使用静态ip并且使arm可上网。2.设备(传感器)节点定义(我定义在200行左右)(二)将一份压缩包和mqtt测试代码分别复制到两个文件中。
2025-10-11 21:57:50
761
原创 习题复习与学习(5)
/4,1,1+2(因为后面的long要按8字节对齐),8 = 16(刚好满足8的整数配)//4,1+3(因为后面的int要按4字节对齐,即8开始),4,1+3(因为总体大小要为最大成员的倍数) = 16。4.GNSS(全球导航卫星系统):四个主要的GNSS系统(星座):GPS(美国)、GLONASS(俄罗斯)、GALILEO(欧盟)、BDS(BeiDou)(中国)③进程的实体通常由三部分组成:程序(代码)、数据(变量等)和进程控制块(PCB,描述进程状态和资源)
2025-10-11 09:00:17
292
原创 项目总结:LVGL图形参数动态变化、开发板的GDB调试、sqlite3移植、MQTT协议、心跳包
2.维持连接不断开:许多网络设备(如NAT路由器、防火墙)会定期清理不活跃的连接映射表(NAT表老化)。(一)消息队列遥测传输协议(基于TCP/IP协议):发布方给服务器的内容,服务器可以选择先存起来,等订阅方需要时可以直接给予。(九)将新建的文件夹下的bin和lib文件里面的内容复制到挂载目录下的bin和lib里面。1.主题(topic):订阅者订阅该主题,就会接收到该主题的消息内容。(二)工作方式:发布者(客户端)-->代理(服务器)-->订阅者(客户端)②未收到(设定超时机制,超时断开即可)
2025-10-10 19:14:49
1227
原创 习题复习与学习(4)
这个操作是原地修改,它改变了列表内部的数据结构(增加了存储空间),但并没有改变变量 a所指向的那个列表对象本身的内存地址。24. python,集合的特性(集合不支持乘法(*)操作,序列类型支持(对于列表:[1, 2] * 2的结果是 [1, 2, 1, 2]))③集合:是一个无序的、不重复的元素序列。①双向索引:指可以通过位置下标(如[0], [1])从正反两个方向访问元素的数据结构,例如列表(list)或元组(tuple)5.若有定义int a[][3] = {1,2,3,4,5,6,7};
2025-10-10 09:08:14
275
原创 项目总结:LVGL图形库使用、习题复习与学习(3)
使用 &s会导致 scanf试图将输入的字符串写入到存储指针 s的内存单元中,而不是 s指向的内存,这通常会导致程序崩溃。//字符串字面量 "ABCDE"实际上包含6个字符:'A', 'B', 'C', 'D', 'E', '\0'。s="ABCDE";//s是一个字符指针, s="ABCDE";①在函数定义时,如果return语句返回的值的类型与函数声明的返回类型不一致,系统会以函数声明的返回类型为准进行自动类型转换。
2025-10-09 18:41:17
885
原创 习题复习与学习(2)
4.C++:vector的大小会增大或者减少,但容量只会增大不会减少、list是双链表实现,插入的元素的复杂度为O(1)、map的迭代器的key是const类型,无法对其进行修改。①重载方式包含函数重载和运算符重载:重载是静态多态的体现,它确实包括函数重载(同一作用域内函数名相同但参数列表不同)和运算符重载(如重载+、-等运算符)。②在类体内定义的成员函数默认是内联的,但这不是唯一方式。13.内联函数:①内联函数的代码展开发生在编译时:内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方。
2025-10-09 08:49:38
367
原创 项目总结:线程邮箱、frambuffer、习题复习与学习(1)
操作系统内核完全不知道这些线程的存在,它只能“看见”这些线程所属的进程。C.观察者模式:正确定义了对象间的一种一对多的依赖关系,当一个对象(称为“主题”或“被观察者”)的状态发生改变时,所有依赖于它的对象(称为“观察者”)都会得到通知并自动更新。第三个字节子网掩码为11,IP为01,相与得到01,所以第三字节大小范围为(64(2的6次方)~127(2的7次方-1))2.若一组记录的排序码为(46,79,56,38,40,84),则利用堆排序的方法建立的初始堆为 (84,79,56,38,40,46)
2025-10-08 18:53:55
844
原创 Linux驱动:I2C驱动、DHT11(单总线温湿度传感器)
1.Platfrom bus:最底层是平台总线,SoC 内部的各个控制器(如 I2C, SPI, USB)都被视为平台设备,挂在平台总线上。它的目标是:让 CPU 具备成为 I2C 主设备 的能力,可以产生 I2C 的时钟信号(SCL)和数据信号(SDA)(三)自旋锁:忙等待锁,当锁被其他线程持有时,自旋锁不被调度,原地等待,可以在中断上下文中使用(spinlock_t spinlock)2.i2c driver:设备驱动,针对特定型号设备(如 LM75)编写的驱动。这是 I2C 通信中寻址的依据。
2025-10-01 10:23:12
1095
原创 Linux驱动:设备树、中断(中断子系统)
1.中断上下文: 和中断处理相关的代码 --- 中断服务程序(中断顶半部) 、软中断、 tasklet -----------不能休眠、不能阻塞 不要做耗时操作。2.进程上下文:和进程操作相关的代码 --- open read write close 、 workqueue -----可以休眠、阻塞 可以做耗时操作。2.修改arch/arm/boot/dts/Makefile //新增一行,wwb.dtb(加到对应的SOC下)1.设备树中定义对应的引脚及设置电器属性。
2025-09-29 21:19:03
847
原创 Linux驱动:系统分配设备号、杂项设备驱动、编译模块(动态加载)、驱动和设备分离
(三)make modules 编译内核模块 //编译所有被配置为M的模块。1.insmod led_misc.ko //加载到内核。(一)在Kconfig中配置定义类型为 tristate(三态有 y n m)3.rmmod led_misc //从内核移除。make zImage //静态编译内核,只编译配置为y的。2.设备(定义资源结构体,在驱动函数调用即可)(四)会在驱动文件的同层目录下生成xxx.ko的内核模块。
2025-09-26 20:31:57
545
原创 Linux驱动:驱动理解、字符设备驱动
(四)编写程序,交叉编译。(一)dev_t dev //设备号,由主设备号及次设备号组成(|=、函数MKDEV)(三)struct cdev cdev //字符设备结构, 设备号及操作方法的组合。1.字符设备和块设备都是按照设备号管理的,字符设备和块设备的设备号都是独立管理的。1.字符设备驱动:数据访问按字节流(按顺序)的形式,绝大多数设备都属于字符设备。3.建立设备号和设备节点(设备名)之间的对应关系。(四)设备号:代表一个具体的设备(驱动程序)--无符号32位。
2025-09-25 21:36:38
1064
原创 Linux驱动:操作步骤
解决:setenv bootargs root=/dev/nfs nfsroot=192.168.1.3:/home/linux/imx6/rootfs ip=192.168.1.100 console=ttymxc0,115200 init=/linuxrc。(四)内核恐慌(kernel panic):内核运行发生致命错误(跟文件系统挂载失败)(四)拷贝默认配置 所有默认配置都在arch/arm/configs/目录下。(五)在驱动对应目录下创建.c文件后,修改Makefile和Kconfig。
2025-09-24 18:12:33
1220
原创 Linux驱动:并发和并行、DMA、Bank、Linux启动流程(重点)、USB—TTL和USB—OTG
3.uboot(开发板的bootloader)启动到最后阶段时搬移(如果emmc方式:读取emmc中的kernel到内存中,如果tftp方式:通过tftp下载kernel到内存中)kernel到内存的0x80800000地址处(搬移dtb文件到内存的ox83000000地址处),向kernel传参,启动内核。的程序中先读取emmc中的HEAD(IVT,DCD)等信息,根据该信息初始化内存,拷贝bootloader到内存中,执行bootloader。此时CPU被解放,可以去执行其他任务。
2025-09-23 12:25:40
1348
原创 Linux驱动:开发板理解、Linux操作系统组成(bootloader、kernel、rootfs)Cache、Flash、看门狗、MMU、三大总线
(一)bootloader概念:一个裸机程序,为kernel启动准备环境并引导kernel启动(二)bootloader程序需要做什么?1.初始化CPU工作模式2.初始化异常向量表3.关看门狗4.初始化时钟5.关中断6.关闭Cache(必须关闭D-Cache)7.关MMU(内存管理单元)8.初始化内存9.初始化相关设备(串口、emmc、nandflash、网口)10.集成相关协议11.搬移内核到内存(向内核传参--根文件系统类型/位置/终端及相关参数)
2025-09-22 19:39:47
1218
原创 ARM裸机开发:SPI、ADXL345、串口通信对比
外设总线(接口)、增强型SPI(多根传输线(二)同步全双工(一)SLCK(二)mosi(三)miso(四)CS(片选、低电平有效):几个从机就得有几个控制输入,接reset低电平片选有效。因此,用例如38译码器可减少资源开销(五)对比IIC:IIC通过发送从机地址确定从机(六)SPI和IIC原理图1.SPI2.IIC。
2025-09-22 18:02:27
896
原创 ARM裸机开发:LCD补充、触摸屏触摸显示坐标
1.触摸屏(如电容 / 电阻屏)通过感应触摸位置输出原始模拟信号,经触摸控制器(如 TSC2046)将信号转换为数字坐标(X/Y 轴)3.触摸屏内部寄存器专门存储触摸后的位置坐标,通过触摸产生中断将数据,通过IIC通信读取里面的数据或许写数据。RGB数据传输:同步传输(通过pclk控制传输节奏)、半双工并行(几根线一块传输数据)(二)可通过int和reset配置触摸屏地址(从机),后面将int作用恢复配置为中断。
2025-09-20 19:11:13
372
原创 ARM裸机开发:LCD、串口格式化移植
9.显示一帧图像所需要的时钟数为:(vspw + vbp + line + vfp) * (hspw + hbp + hozval + hfp) = 515328,60帧需要约31M。1.分辨率:(2k因为1920接近2k)1920 * 1080(p)、1280 * 720(p)都是依据像素点说的。5.稳定显示:依靠同步信号(行同步、厂同步)和时钟信号(像素时钟),确保像素数据与扫描位置一一对应。2.控制屏幕内部的像素单元(液晶分子)的透光率,配合背光层(背光模块)实现图像显示。②PCLK:像素时钟线。
2025-09-19 19:43:00
637
原创 ARM裸机开发:浮点数和整数运算精度复习,PWM脉冲宽度调制背光
(四)set_ratio函数:设置PWM占空比,每调用一次写4个数到FIFO,当FIFO小于等于2时产生中断继续调用函数向FIFO中写4个占空比先存起来了。(一)原理:利用 PWM 输出的高低电平占空比,控制背光驱动电路的平均电流 / 电压,从而改变背光亮度(占空比越高,平均功率越大,亮度越高;有效位数为 52 位(约 15-17 位十进制),可精确表示所有 32 位整数,64 位整数可能丢失精度。有效位数为 23 位(约 6-7 位十进制),若整数超过 2^23(8388608),会丢失精度。
2025-09-18 18:09:18
980
原创 ARM裸机开发:LM75温度寄存器读取(IIC)、ADC、逻辑分析仪
(一)转换原理:各种物理模拟信号,通过对应传感器转换为模拟电压信号。ADC通过对模拟电压信号采样、量化(将采样值映射为离散数值)、编码(转换为二进制代码),最终输出数字量。(二)类型:IMX6ULLADC为逐次逼近型,精度和转换速率均为中性能(双积分型,flash型)2.转换速率:高速ADC(音频),低速ADC(温度)eg:测试电压(3.8V) 参考电压(5V)(二)使用地址将A0,A1,A2焊接在GND端,则地址为0x48。(五)温度寄存器为16位只读寄存器,先读高8位再读低8位。
2025-09-17 19:21:44
482
原创 ARM裸机开发:IIC、AT24C02
如果地址匹配成功,从设备会在接收到主设备发送的最后一位数据后的下一个时钟周期,通过将 SDA 线拉低来发送应答信号(ACK),表示自己已准备好进行后续的数据传输。1.发送地址:起始信号之后,主设备通过 SDA 线发送 7 位或 10 位的从设备地址(取决于 I2C 协议版本,7 位地址更为常见),并且在第 8 位(7 位地址时)或第 11 位(10 位地址时)发送读写标志位(0 表示写操作,1 表示读操作)。1.作用:通知总线上的从设备,主设备将开始一次通信,准备接收主设备发送的设备地址等信息。
2025-09-16 18:13:01
1314
原创 ARM裸机开发:同步异步理解、UART、串口等概念
很明显,为保证每个比特占用数据线的时间,发送方和接收方需按照各自的系统计时且双方之间的误差不能太大。通常不能超过(6%)。就好比在打字一样,每次敲击键盘发送一个字母,速度快慢由打字者自己控制,没规定每敲击一个字母之间要等多久,只要保证接收端能够正确识别并解析即可。就好比在合唱团里,大家一起唱歌的节奏是由指挥员指挥的,每个人都按照指挥员的节奏唱歌,保证大家唱的是同一首歌且节奏一致。(二)RS485为单工通信,差分信号传输方式(抗干扰能力强):两根线电压差来作为高低电平。(一)TTL:通常指引脚产生的电平。
2025-09-15 18:00:34
746
原创 ARM裸机开发:时钟配置、定时器epit、gpt
(一)晶振为24MHZ,通过PLL锁相环电路来倍频,通过PFD来分频,还有一个既可以分频又可以倍频的电路。2.在528 PLL中选择浅蓝色路径,先配置AHB再配置IPG,在配置PERCLK。2.PLL2(528 PLL):又称system PLL固定528MHZ。3.PLL3(480 PLL):又称USB1 PLL固定480MHZ。4.PLL 4(Audio PLL):用于音频设备。5.PLL 5(Video PLL):视频相关配置。(三)528 PLL配置和480 PLL配置。
2025-09-15 08:56:31
683
原创 ARM裸机开发:key、中断、代码封装(满足OCP原则)
3.中断状态寄存器:GPIO->ISR,判断GPIO1的第18个bit是否为1,(与1 <<18 )相与不等于0则进行中断处理。0.DMA:直接内存访问,全部连接在外设上,128个(可使用)+内部自己使用的中断号(32),则ARMV7总共有160。3.此设备(IM6ULL)中断(1个内核):32-159外设可使用中断(参考函数库)①SGI:0-15(软中断),PPI:16-31(私人外设中断)置1表示清0,(区分16-31)中哪一个。1.SGI:0-15(软中断),PPI:16-31(私人外设中断)
2025-09-12 21:42:50
1194
原创 ARM裸机开发:链接脚本、进阶Makefile(bsp)、编译过程、beep实验
理解:makefile中遍历目录寻找.s文件和.o文件时,找到的文件乱序排列,没有使启动代码start.o放在.text数据段的刚开始地址,这样使得代码开始运行时不是启动代码。1.iomuxc配置:因为每个引脚都有对应的iomuxc所以必须配置iomuxc,这里选择iomuxc_snvs中的temper1_gpio5_io01,即寄存器内容全部置0。2.电器特性配置:IOMUXC_SNVS_SNVS_TAMPER1_GPIO5_IO01,配置为0x10B0。1.反汇编目标文件:将elf反汇编为汇编文件。
2025-09-11 20:52:32
1143
原创 ARM裸机开发:开漏与推挽、LED实验、编译处理、GPIO
2.arm-linux-gnueabihf-ld -Ttext 0x87800000 filename.o -o filename.elf //将二进制文件加载到启动代码运行位置。1.arm-linux-gnueabihf-gcc -c -g filename.S -o filename.o //汇编文件生成二进制文件。1.复用功能选择(寄存器):将对应功能标志(0x50)加载(str指令)到对应地址(0x020E0068)
2025-09-10 19:09:41
1099
原创 arm启动代码总结
1.汇编调用c语言:①import+函数名:导入要调用的函数 ②如果参数小于5个值,汇编中使用mov r0, #10形式赋值,返回值默认存储在r0寄存器内 ③如果参数大于4个值,第5个值及后面的值需要压栈和弹栈 ④c语言中正常写此函数。11.str r1, [r0], #4 :*p++ 都是单目运算自右结合,后置++先用再偏移 (这里是地址偏移),值存储在0x40000000中,r0指向了0x40000004。3.stmfd sp!
2025-09-09 18:44:34
938
原创 ARM工作模式和汇编
学习arm汇编的主要目的是为了编写arm启动代码,启动代码启动以后,引导程序到c语言环境下运行。换句话说启动代码的目的是为了在处理器复位以后搭建c语言最基本的需求。2.bl:用于函数调用,跳转前将pc指针中的地址存入链接寄存器(LR)中。(二)工作模式:cpsr(1),spsr(5),pc(1),sp和lr(6)(一)处理器工作模式,ARM内核工作模式有哪些,分别是在什么情况下被切换?1.b:直接跳转到b后面的标志地方执行,与goto类似。3.bx:将链接寄存器LR中的地址赋于pc寄存器中。
2025-09-08 18:52:02
1071
原创 ARM体系结构②
(一)RISC(Complex Instuction Set Comptuer)复杂指令集架构1.定义:设计理念强调通过单条指令完成复杂操作,指令长度可变,操作码和寻址模式多样。典型代表包括x86架构(如Intel、AMD处理器)。2.特点指令数量庞大,支持高级语言直接映射(如内存到内存操作)。微码解码机制:复杂指令由内部微程序控制单元分解为微操作。硬件利用率高,但功耗和设计复杂度显著增加。3.应用场景适合通用计算,尤其在代码密度敏感的场景(如早期嵌入式系统)。
2025-09-07 10:03:00
1242
原创 ARM体系结构①
(四)SOC(System On Chip)片上系统:SOC是一个设计和集成的概念,更像是一个城市的蓝图,把市政府(MPU)、警察局(MPU)、工厂(GPU)、研究所(DSP)、调制解调器(modem)(机场),规划在一起,形成一个功能完善的城市。(一)CPU(Center Processing Unit)中央处理器(CEO脑力劳动者):是一种通用的强大的处理器。(二)GPU(Graphics Processing Unit)图形处理器(体力劳动者)3.pc(program couter):程序计数器。
2025-09-06 17:58:13
1264
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅