驱动开发知识点

news2024/9/21 19:59:29

 裸机开发 ——————————————linux驱动

SOC:

  • 定义:SOC,全称System on Chip,是一种集成了多个功能模块的芯片,包括处理器、内存、外设、接口等。它将原本分散在多个芯片上的功能集成到一个芯片上,形成一个完整的系统。
  • 特点:集成度高、功耗低、体积小、性能优越。SOC芯片的出现,使得嵌入式系统可以实现更多的功能,提高了系统的性能和可靠性。

kernel:

Kernel是操作系统的核心,负责管理和控制计算机的硬件资源,以及提供系统服务。

X86:x86内核在性能方面通常具有优势,尤其是在需要处理大量数据和复杂计算的应用场景中。然而,x86处理器的功耗相对较高,这可能限制了其在某些低功耗应用场景中的使用。

ARM:ARM内核在功耗方面表现出色,特别适用于需要长时间运行且对功耗有严格要求的移动设备和物联网设备。尽管ARM内核在性能上可能略逊于x86内核,但其在功耗方面的优势使得它在这些领域具有更强的竞争力。

APB:(Advanced Peripheral Bus)高级外围总线,主要用于连接处理器和外设之间的通信。APB总线具有简单、灵活、可靠等特点,特别适用于低功耗和低带宽的外围设备

外设:GPIO,I2C,UART   , LCD

AHB:(Advanced High-performance Bus)AHB总线通常作为高性能的系统总线,连接处理器、内存和其他高性能的外围设备

存储器的分类:

RAM (随机存储器)RAM中的数据在断电后会丢失,因此它通常用于存储当前正在运行的程序和数据。

ROM(只读存储器) ROM中的数据在断电后不会丢失,因此它通常用于存储固定的、不需要频繁更改的信息。

nor   flash :可以寻址

and flash :不可寻址

ALU(Arithmetic Logic Unit,算术逻辑单元)是计算机中央处理器(CPU)中的一个重要组成部分。它是负责执行算术运算(如加、减、乘、除)和逻辑运算(如与、或、非、异或)的单元。ALU的输入通常来自CPU的寄存器或内存,而它的输出则可以被存储回寄存器或内存中,供进一步的处理。

ARM:

arm的7个基本工作模式:

 

ARM处理器的七种主要异常处理类型:
重置异常(Reset):系统启动时触发,初始化处理器状态。

未定义指令异常(Undefined Instruction):遇到未识别的指令时触发,处理器进入未定义模式。

软件中断异常(Software Interrupt):由软件请求系统服务时触发,通常用于调用操作系统功能。

预取异常(Prefetch Abort):当指令预取失败(如访问非法内存)时触发。

数据异常(Data Abort):在数据访问失败时触发,如访问非法地址。

IRQ中断(IRQ Interrupt):普通中断,处理优先级较低的外部中断。

FIQ中断(FIQ Interrupt):快速中断,处理优先级较高的外部中断,响应速度更快。

ARM寄存器:
通用寄存器(R0-R15):

R0-R12:用于数据处理和存储临时变量。
R13(SP):栈指针,指向当前栈顶。
R14(LR):链接寄存器,存储返回地址。
R15(PC):程序计数器,指向当前执行指令的地址。
特殊寄存器:

CPSR:当前程序状态寄存器,包含标志位和当前处理模式信息。
SPSR:保存程序状态寄存器,用于保存异常发生时的CPSR状态。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2144664.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一个基于 laravel 和 amis 开发的后台框架, 友好的组件使用体验,可轻松实现复杂页面(附源码)

前言 随着互联网应用的发展,后台管理系统的复杂度不断增加,对于开发者而言,既要系统的功能完备,又要追求开发效率的提升。然而,传统的开发方式往往会导致大量的重复劳动,尤其是在构建复杂的管理页面时。有…

不限学历!这个证书在上海太香了!利于积分、落户、抵扣个税...

一、软考是什么? “软考”全称:计算机技术与软件专业技术资格(水平)考试,关于它你需要知道: 1、软考是全国性考试:软考实行全国统一规划,实行统一大纲,统一试题&#xff…

【vulhub】Os-hackNos-1

🏘️个人主页: 点燃银河尽头的篝火(●’◡’●) 如果文章有帮到你的话记得点赞👍收藏💗支持一下哦 【vulhub】Os-hackNos-1 环境搭建漏洞复现 环境搭建 进入vulnhub官网 https://vulnhub.com 下载镜像 在虚拟机中打开镜像文件…

100行Python代码实现FastAPI Websocket 聊天室(纯协程方案)

本文发表于入职啦(公众号: ruzhila) 大家可以访问入职啦学习更多的编程实战。 项目地址 代码已经开源, fastapi_chatroom 👏 欢迎Star 代码运行效果: 所有的项目都在github上开源:100-line-code 欢迎Star 👏 用100行…

open sora1.1容器构建教程指南

一、介绍 Open-Sora 1.1 项目是 Colossal AI 团队开发的一个完全开源的视频生成项目,该项目致力于高效制作高质量视频,并通过开源原则实现先进视频生成技术的低成本普及。 1. 项目背景与目标 Open-Sora 项目旨在通过提供开源的模型、工具和内容&#…

idea使用阿里云服务器运行jar包

说明&#xff1a;因为我用的阿里云服务器不是自己的&#xff0c;所以一些具体的操作可能不太全面。看到一个很完整的教程&#xff0c;供参考。 0. 打包项目 这里使用的是maven打包。 在pom.xml中添加以下模块。 <build><plugins><plugin><groupId>org…

JDBC导图

思维歹徒 一、使用步骤 二、SQL注入 三、数据库查询&#xff08;查询&#xff09; 四、数据库写入&#xff08;增删改&#xff09; 五、Date日期对象处理 六、连接池使用 创建连接是从连接池拿&#xff0c;释放连接是放回连接池 七、事务和批次插入 八、Apache Commons DBUtil…

进程监控与管理详解

一、进程的定义: 进程process是正在运行的程序,包括: 分配的内存地址空间 安全属性、包括所有权和特权 一个或多个线程 进程状态 进程的环境包括: 本地和全局变量 当前调度上下文…

多目标优化算法(Multi-Objective Optimization Algorithms, MOOA)介绍

在现实世界中&#xff0c;许多问题都涉及到多个目标的权衡和优化。例如&#xff0c;在工程设计中&#xff0c;可能需要同时考虑成本、效率和可靠性&#xff1b;在资源管理中&#xff0c;可能需要平衡环境保护和经济效益。多目标优化算法&#xff08;Multi-Objective Optimizati…

bmp格式图片怎么转换jpg?这几种转换方法超级好用!

bmp格式图片怎么转换jpg&#xff1f;BMP格式&#xff0c;这一历史悠久的图像编码方式&#xff0c;正逐渐在数字时代的浪潮中显得力不从心&#xff0c;其边缘化的趋势愈发明显&#xff0c;这一现象的根源&#xff0c;在于BMP格式固有的局限性难以匹配现代用户对于图像处理的多元…

【Python】探索Magenta:音乐与艺术的机器智能创作

下班了&#xff0c;今天的苦就先吃到这里。 在人工智能的浪潮中&#xff0c;机器学习技术正逐渐渗透到艺术创作的各个领域。今天&#xff0c;我们来探索一个特别的项目——Magenta&#xff0c;它是由Google Brain团队发起的&#xff0c;旨在使用机器智能生成音乐和艺术。这个项…

Lucene详解介绍以及底层原理说明

文章目录 什么是Lucene?示意图1. 倒排索引2. 索引创建过程3. 数据存储4. 搜索过程5. 相关性评分 Lucene底层原理1. 倒排索引2. 索引创建过程3. 数据存储4. 搜索过程5. 相关性评分 什么是Lucene? Lucene是一个高性能的全文搜索引擎库&#xff0c;它基于倒排索引技术实现快速、…

Threejs之看房案例(下)

本文目录 前言最终效果1、点精灵1.1 添加点精灵1.2 点精灵效果2、添加事件2.1 鼠标移动事件2.1.1 效果2.2 鼠标点击事件2.2.1 效果2.3 切换互通3. 完整代码前言 在Threejs之看房案例(上)这篇博客中我们已经完成了大厅的3d观看效果,但是我们会发现如果想去其他房间观看,没有…

vue3+ant design vue 中弹窗自定义按钮设置及以冒号为基准布局

1、自定义弹窗按钮&#xff0c;去除取消和确定按钮。&#xff08;网上很多方法都是说通过插槽来实现&#xff0c;但是试了下不生效&#xff0c;那既然插槽不生效的话&#xff0c;干脆直接写按钮就好了&#xff09; <a-modalv-model:open"open"title"人员信息…

为什么现在都流行开放式耳机?四款性能出色的蓝牙耳机推荐

在当下&#xff0c;开放式耳机逐渐成为众多消费者的新宠。与传统入耳式耳机相比&#xff0c;开放式耳机展现出诸多独特之处。它可以呈现出更清晰的音质效果&#xff0c;让用户有更美妙的听觉体验。在佩戴感上&#xff0c;开放式耳机更为舒适&#xff0c;不会给耳朵带来压迫感。…

MYSQL登录失败,确保密码正确,常见问题

今天登录MYSQL时&#xff0c;发现登录不进去,我能确保密码没有错误&#xff0c;并且我昨天以这样的方式登录成功&#xff0c;我已经重启过mysql服务&#xff0c;但是依旧登录不进去。 C:\Users\user>mysql -u root -p Enter password: ****** ERROR 1045 (28000): Access …

tidb 集群搭建

官网的搭建文档&#xff1a;使用 TiUP 部署 TiDB 集群 | TiDB 文档中心 我本地使用三台 centos7.9 服务器搭建&#xff0c;要保证三台服务器之间是可以互相通信的&#xff1b; 搭建集群的命令在其中一台服务器上执行即可&#xff1b; 1、安装tiup&#xff1a; curl --proto …

[附源码]超简洁个人博客网站搭建+SpringBoot+Vue前后端分离

今天带来一款优秀的项目&#xff1a;个人博客系统源码 。 系统采用的流行的前后端分离结构&#xff0c;内含功能包括 "写博客文章"&#xff0c;“修改博客文章”&#xff0c;“富文本编辑器”&#xff0c;“评论管理”“管理员角色”&#xff0c;“游客角色”&#x…

9.18每日作业

使用cout实现输出斐波那契前20项的值 #include <iostream>using namespace std;int main() {int a 1,b 1;int sum;int i;for(i 0;i<20;i){cout << b << endl;sum ab;b a;a sum;}return 0; }使用cin和cout完成&#xff0c;提示并输入一个字符&#…

canvas画笑脸

用到 stroke()控制线条fill()填充区域&#xff1b;fillStyle填充样式beginPath()和closePath() &#xff1a;两个不相关路径间需要配合使用线性渐变createLinearGradient(x0, y0, x1, y1)&#xff0c; x0:起点的 x 轴坐标。y0&#xff1a;起点的 y 轴坐标。x1&#xff1a;终点…