嵌入式系统课程学习记录(2)

一、ARM Core-tex-M4微处理器

1.内部结构概要

(1)M4内核

        Cortex-M4微处理器支持Thumb指令集和Thumb-2技术,具备IEEE 754单精度浮点单元和除法指令,拥有中断处理程序和线程模式,支持指令和调试状态。它在处理中断时可自动保存处理器状态,定点运算速度是Cortex-M3的两倍,浮点运算速度快10倍,功耗减半

(2)嵌套向量中断器

        嵌套向量中断控制器(NVIC)是Cortex-M4内嵌的中断控制器,在STM32系列芯片中支持64个中断源,优先等级为0到7,其中0为最高。NVIC支持中断优先级分组,实现抢占和非抢占级别。M4微处理器通过NVIC实现中断尾链和迟到功能,无需处理状态保存和恢复,自动保存和恢复中断入口。NVIC采用向量中断机制,自动调用中断服务例程,减少延时,并集成可选的唤醒中断控制器(WIC),在低功耗模式下快速进入超低功耗状态,只能被WIC唤醒。M4内核还包含一个24位倒计时定时器SysTick,即使在睡眠模式下也能工作,有助于实时操作系统移植。

(3)存储保护单元

        存储器保护单元(MPU)用于保护选定的内存单元,将存储器划分为8个子区域,优先级可自定义。处理器可以使这些区域禁用或启用,以实现灵活的内存保护

(4)调试访问端口

        调试访问端口可以访问存储器和寄存器,支持SWD或JTAG调试访问,或同时支持两种。Flash修补和断点(FPB)单元用于硬件断点和代码修补。数据监视点及追踪(DWT)单元实现观察点、触发资源和系统分析。指令跟踪宏单元(ITM)支持printf()类型调试。跟踪端口接口单元(TPIU)用于连接跟踪端口分析仪,包括单线输出模式。

(5)总线接口

        Cortex-M4微处理器提供先进的高性能总线(AHB-Lite)接口,包括I-code存储器接口、D-code存储器接口、系统接口和基于高性能外设总线(ASB)的外部专用外设总线(PPB)。其位段操作支持原子级的读写,对存储器的访问是对齐的,并在写数据时使用写缓冲区方式。

(6)浮点运算单元

        Cortex-M4微处理器能处理32位单精度指令数据,结合乘法和累积指令提高计算精度。硬件支持加减法、乘除法和平方根运算,并支持所有IEEE数据四舍五入模式。它拥有32个专用32位单精度寄存器,也可作为16个双字寄存器寻址。采用解耦三级流水线,加快处理器运行速度。

2.内部寄存器

二、指令

1.数据传送类

取数指令

存数指令

传送指令

堆栈操作指令

ADR指令

2.数据操作类

算数运算指令

逻辑运算指令

移位指令

位测试指令

数据序转指令

拓展类指令

3.跳转控制类

4.其他指令

三、伪指令

1.系统预定义的段

.text是只读的代码区;.data是可读可写的数据区;.bss是可读可写且没有初始化的数据区

它们的地址排序分别是text,然后是data,最后是bss;

2.常量的定义

可以使用.equ汇编指令

也可以使用.set汇编指令

3.程序中插入常量

插入方式参考下图

4.条件伪指令

. if 条件伪指令后面紧跟一个恒定的表达式(即该表达式的值为真),并且最后要以.ifend结尾。中间如果有其他条件,可以用.else填写汇编语句

5.文件包含伪指令

6.其他常用伪指令

用来给用户自定义一个段

用来定义一个全局变量

用来引入外部函数

用来填充字节,使其能够对齐 

作业

1.理解并学习main.s汇编源文件。

打开04-Software/ch02/CH02-1-20220118工程目录编译下载运行

进行串口更新,结果如下

2.修改main.s源文件

修改main.s源文件,增加以下内容
1、在第一行显示“广州大学”字样

2、编写一个1+2+..+10的程序,将求和结果存入名为“sumresult”的内存单元中,并将求和结果用printf显示出来。

1.在数据段定义要输出的信息以及变量

2.在代码段实现1至10的累加

3.将所有信息输出

运行结果

​​​​​​​

(可以看到成功输出自己的信息与累加结果)

(小灯也顺利的亮起来)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值