国嵌学习——ARM

article/2025/11/6 0:20:07

NOR启动:在片选0位置放置的是2Mnor flash,在片选6位置放置的是内存0x30000000

ARM工作模式

ARM处理器的运行模式可以通过软件改变,也可以通过外部中断或异常处理改变。应用程序运行在用户模式下,当处理器运行在用户模式下时,某些被保护的系统资源是不能被访问的。

除用户模式以外,其余的所有6种模式称为非用户模式,或特权模式(privileged modes);其中出去用户模式和系统模式以外的5种又称为异常模式(exception modes),常用语处理终端或异常,以及需要访问受保护的系统资源等情况。

处理器的开发工具,处理器的工作模式,处理器的寄存器,处理器的指令集

ARM寄存器

ARM处理器共有3732位寄存器,其中31个为通用寄存器,6个为状态寄存器。这些寄存器不能被同时访问,具体哪些寄存器是可以访问的,取决ARM处理器的工作状态及具体的运行模式。但在任何时候,通用局存期R14~R0、程序计数器PC、一个状态寄存器都是可访问的。

ARM工作状态下,任意时刻可以访问16个通用寄存器和一到两个状态寄存器。在非用户模式(特权模式)下,则可访问到特定模式分组寄存器

使用ADS查看寄存器

ARM寻址方式

处理器根据指令中给出的地址信息来寻找物理地址的方式

GPIO

S3c2440130gpio,分为10

每组GPIOGPA-GPJ)们都可以通过3个寄存器来控制与访问,这3个寄存器分别为:

——GPxCONGPIO配置寄存器

——GPxDATGPIO数据寄存器

——GPxUP:上拉电阻控制寄存器:某位为1时,相应引脚无内部上拉电阻;为0时相应的引脚使用内部上拉电阻

(其中xAB......HJ

LED控制思想

1.先将相应的引脚设置为输出模式;

2.再向相应的引脚输出低电平即可点亮LED灯。

ARM中断机制

1.查询方式

程序不断地查询各设备的状态,并作出相应的反应。该方式实现简单,常用在比较单一的系统中,比如一个温控系统中可以使用查询方式不断检测温度的变化。

2.中断方式

当事件发生时,硬件会设置某个寄存器CPU每执行完一个指令时,查看这个寄存器,如果所关注的时间发生了,则中断当前程序,跳转到一个固定的地址处理这个事件,处理完后返回到被中断的程序中继续运行

中断处理流程

1.中断控制器汇集各类外设发出的中断信号,然后通知CPU

2.CPU存当前程序的运行环境,然后调用中断服务程序(ISR)来处理中断

3.在ISR中通过读取外设的相关寄存器来设别中断的类型,并进行相应的处理

4清除中断:通过读写相关中断控制寄存器和外设相关寄存器来实现

5恢复被中断程序的执行环境,继续执行被中断的程序

 

S3c244060个中断源

SUBSRCPND

SUBSRCPND寄存器用来标明子中断(如:INT_RXD0)是否发生.S3C244015个子中断,SUBSRCPND中每一位对应一个子中断,当这些子中断发生时,相应的位被置为1.清除子中断只需向SUBSRCPND寄存器中相应位写入1page-392

INTSUBMSK

INTSUBMSK寄存器用来屏蔽SUBSRCPND寄存器所标示的中断。INTSUBMSK寄存器中某位被设为1时,相应的子中断被屏蔽。设置为0时,标示子中断被允许。(s3c2440.pfd page-395

SRCPND

SRCPND中每一位用来标明一个(或一类)中断是否已经发生。例如:SUBSRCPND寄存器中的子中断INT_RXD0发生了,且没有被INTSUBMSK屏蔽,则SRCPNDINT_UART0位被置1.SRCPND寄存器的清除与SUBSRCPND寄存器相似,若想清除某一位,往此位写入1

INTMSK

INTMSK寄存器用来屏蔽SRCPND所标示的中断。INTMSK某位被设置为1时,对应的中断被屏蔽,设置为0时,相应中断被允许。INTMSK只能屏蔽设为IRQ的中断,不能屏蔽设为FIQ的中断page-388

INTMOD

INTMOD寄存器中某位被设置为1时,它所对应的中断源会被设置为FIQ模式,即此中断发生时,CPU将进入快速中断模式,这通常用来处理特别紧急的中断。当该位被置为0时,表示为IRQ模式(page-387

FIQ&IRQ

IRQ模式下,中断处理程序需要自己保存R8R12这几个寄存器,退出中断处理时需要自己恢复这几个寄存器,而FIQ模式由于这几个寄存器都有back寄存器(fiq_R8....,模式切换时CPU自动保存这些值到back寄存器,退出FIQ模式时自动恢复,所以这个过程FIQIRQ快。FIQIRQ有更高优先级,如果FIQIRQ同时发生,那么FIQ先处理

优先级选择-分析(page-382

INTPND

经过中断优先级仲裁器选出优先级高的中断后,这个中断在INTPND寄存器中的相应位被置1,随后,CPU将进入中断模式处理它。同一时间内,此寄存器只有1位被置1;在ISR中可以根据这个位确定中断类型。清除该中断时,往这个位写入0

 


http://chatgpt.dhexx.cn/article/5RGNXjBv.shtml

相关文章

国嵌C语言(6-10)

国嵌六: 空结构体的内存: struct D {}; int main(void) {struct D d1;struct D d2;printf("%d\n",sizeof(struct D));printf("%d,%0x\n",sizeof(d1),&d1);printf("%d,%0x\n",sizeof(d2),&d2); } 0 0&#xff…

【嵌入式】

一.进制转换:分别有以下前缀,2进制常用0B表示,8进制常用0O,16进制常用0X表示;1位八进制数等于3位二进制数,1位十六进制数等于4位二进制数,在二进制转化为八,十六进制数时。如果位数不…

关于嵌入式系统

说实话,笔者是对嵌入式有兴趣的,为什么,因为对于我这样的懒人,是希望以后出去找个稳定的工作,随着年龄的增长工资越高,经验越多,就越吃香,而不是当个最底层的码农,35岁之…

国嵌,够欠!---ARM在线教育误区

大家好,先自我介绍一下,我是国嵌学院的一个很普通的学员,因为应届生不好找工作,去培训机构培训又和上课时间冲突,所以选择了自主学习。在机缘巧合之下,购买了国嵌学院的嵌入式Linux开发课程,在此…

国嵌C语言总结(1-5)

国嵌一: 什么是数据类型? 数据类型是固定内存大小的别名,是创建变量的模子; 变量的本质? 变量是一段实际连续存储空间的别名;程序通过变量来申请并命名存储空间;通过变量的名字可以使用存储空…

使用新版IDEA创建JavaWeb项目详细图文教程

版权声明 本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl 示例概述 三月中下旬了,答辩的日子也越来越近了。之前忙于考研的童鞋,之前忙着玩的童鞋,之前忘记做毕业设计的童鞋都开始忙碌起来了。奈…

idea2022创建javaweb项目

idea版本2022 1.2 //记录一下javaweb的创建 ​​​​​​ name项目名称 location存储地址 Application server:选择new 选中Tomact service 点击下一步 点击下一步就创建成功了

idea创建一个javaweb项目

前提 java环境以及tomcat的安装 1、IDEA创建Web项目 此处以Idea 2020.3.4举例 1、新建普通Java项目 注意:Idea2020无法直接新建JavaWeb项目,只能通过新建普通Java项目的方式间接新建JavaWeb项目。 选择项目位置和普通Java项目相同,此处略过…

java web项目_一个完整JavaWeb项目开发总结

一个JavaWeb项目开发总结 曾经,我跟朋友说我要去学Java,到现在1个月,我总算是七拼八凑的写出了我人生中的第一个Javaweb项目,虽然只是一次简单的爬虫,但是却也更坚定了我学Java的决心 就手写一份我做这次Javaweb项目得…

Linux服务器部署JavaWeb项目

目录 1.搭建JavaWeb环境1.1 安装Java环境1.2 安装 MySQL1.2.1 下载并安装 MySQL1.2.2 启动 MySQL 服务1.2.3 查看 MySQL 默认密码1.2.4 登录 MySQL1.2.5 修改密码1.2.6 为root赋值远程管理权限1.2.7 退出服务器测试 MySQL 连接1.3 安装 Tomcat 2.部署JavaWeb项目2.1 将项目打包…

javaweb项目的文件结构

javaweb项目的文件结构 1、前言 最近使用Intellij idea搭建一个springmvc的web项目时,突然发现,自己好像对web项目的文件结构不是很清晰,对于项目中应该有那些文件夹、文件夹里面又是怎么的文件、他们的作用又是什么?这些好像有点…

JavaWeb项目打包运行

简单记录下JavaWeb项目打包运行 文章目录 项目打包tomcat运行项目 一、项目打包 1.选择out输入目录路径 这里我们可以新建一个文件夹 然后选择 项目打包完就在这个目录底下 2.创建一个工件 3.这里的Name默认的是unnamed 这个 我们这里修改成项目名称 先选择output ro…

JavaWeb项目的热部署配置

版权声明 本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl 热部署概述 我们通常期望:修改页面和Java代码后不用重新手动部署项目就可即刻生效;这就是最理想的热部署。然而;理想有多丰满&#xff0…

161个Javaweb项目免费

161个javaweb’项目加qq群&#xff08;105613691&#xff09;自取。网上一些假货我当时找半天找不到费事而且贼生气。现在分享出 如下 <% page language"java" pageEncoding"utf-8"%> <%String path request.getContextPath();String basePat…

JavaWeb项目结构使用Vue项目

提示&#xff1a;javaweb项目中引用Vue项目的案例 文章目录 前言一、JavaWeb项目结构项目启动顺序 二、Vue项目结构Vue结构粗略解释思考 三、使用Vue1、使用vue.js, 在html引用2、使用webpack 构建Vue脚手架第一步&#xff1a; 到webapp包下&#xff0c;输入命令 npm init -y第…

JavaWeb项目结构

4.1 web结构 必需严格按照一种规范来完成 咱们要开发Javaweb的程序,必需要严格参照javaweb提供的一个规范来存放我们的资源…… 结果分析如下: 注意:WEB-INF里面的程序是不可见的,必需通过我们的程序访问 现在:web.xml都不是必需的(但是我们要求必需留着)–这个web.xml可…

eclipse部署Javaweb项目

目录 0.安装Tomcat1.配置Eclipse项目的Tomcat Server2.导入Java Web项目3.设置Tomcat4.配置数据库5.运行项目 0.安装Tomcat 请自行百度搜索如何安装Tomcat&#xff0c;每个项目对Tomcat的版本要求不同&#xff0c;安装之前自行查询你的项目所需要的Tomcat版本。 1.配置Eclips…

linux 部署Javaweb项目

目录 一、配置Java环境1.正确开启linux镜像服务器 二、配置MySQL环境 三、运行Java项目1.在/opt/soft目录下找到apache-tomcat-8.5.81.tar.gz文件并解压 一、配置Java环境 1.正确开启linux镜像服务器 2.正确通过xshell工具链接linux镜像服务器 ip a 3.关闭防火墙 systemct…

IDEA 导入别人的javaweb项目进行部署

前言 我主要是进行java的springboot项目和vue项目的开发&#xff0c;但是架不住在这些框架兴起之前&#xff0c;公司内部已经是有其他的老的框架&#xff0c;我需要在这些老的框架进行修改和调整代码。原本我是使用的eclipse软件进行部署&#xff0c;也比较简单&#xff1b; …

eclipse导入javaWeb项目

eclipse如何正确导入web项目&#xff0c;参考视频&#xff1a;https://www.bilibili.com/video/BV1tV411x7Fb?spm_id_from333.337.search-card.all.click&vd_source825d3d7ea7fd6488824d9e1ce89f8716 二、我遇到的问题 Target runtime Apache Tomcat v7.0 is …