自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 资源 (1)
  • 收藏
  • 关注

原创 ARM架构之异常处理

本文内容主要从四个方面介绍ARM中断。1、介绍中断和异常相关的内容。2、介绍ARM中断响应和退出过程。3、介绍SWI软件中断异常处理程序4、介绍FIQ和IRQ异常中断处理程序。

2024-06-19 20:00:10 1017

原创 ARM架构之编程模型

从ARM的编程模型来看,内容似乎不多,看起来也很简单,相比CM3内核似乎内容少的很多。相比较而言,ARM内核更加复杂,CM3的很多操作有硬件完成,而ARM更多是有软件来处理,即ARM的灵活度更高,难度更大。

2024-06-18 16:56:22 724

原创 Cortex_M3之中断的具体行为

在本文中,如无特殊说明,“中断”与“异常”这两个术语都是同一个意思,可以互换使用。

2024-05-27 19:23:31 800

原创 Cortex_M3之NVIC与中断控制

正如前文已经多次提到的,向量中断控制器,简称NVIC,是Cortex‐M3不可分离的一部分,它与CM3内核的逻辑紧密耦合,有一部分甚至水乳交融在一起。NVIC与CM3内核同声相应,同气相求,相辅相成,里应外合,共同完成对中断的响应。NVIC的寄存器以存储器映射的方式来访问,除了包含控制寄存器和中断处理的控制逻辑之外,NVIC还包含了 MPU的控制寄存器、SysTick定时器以及调试控制等设备。NVIC共支持1至240个外部中断输入(通常外部中断写作 IRQs)。具体的数值由芯片厂商在设计芯片时决定。

2024-05-27 18:52:13 998

原创 Cortex_M3之异常

在CM3中,优先级对于异常来说很关键的,它会影响一个异常是否能被响应,以及何时可以响应。优先级的数值越小,则优先级越高。CM3支持中断嵌套,使得高优先级异常会抢(preempt)低优先级异常。有3个系统异常:复位,NMI以及硬fault,它们有固定的优先级,并且它们的优先级号是负数,从而高于所有其它异常。所有其它异常的优先级则都是可编程的(但不能编程为负数)。CM_3的每个中断源都使用一个字节管理优先级,原则上,CM3支持3个固定的高优先级和多达256级的可编程优先级,并且支持128级抢占。

2024-05-27 17:10:48 1021

原创 Cortex_M3之启动文件和MDK编译讲解

本小节总结一下CM3的启动文件和MDK编译相关的内容,启动文件是系统上电之后执行的第一个指令文件,是程序入口,C环境的运行是在此文件代码执行完成之后开始执行的。启动文件由汇编指令编写,本文主要是基于MDK平台介绍启动文件内容。由于STM32也是CM3的内核,所以启动文件内容取自STM32的官方文件。废话少说,干货开始。

2024-03-25 20:52:07 1055

原创 嵌入式软件之链接脚本

编译:将源代码(如C或C++)转换为汇编语言。汇编:将汇编语言转换为机器代码。链接:将多个对象文件和库合并成一个单一的可执行文件。RAM:用于存储变量和程序数据。ROM:用于存储程序代码和常量数据。Stack:用于存储局部变量和函数调用的返回地址。Heap:用于动态内存分配。ELF(Executable and Linkable Format)是一种常用的可执行文件格式。它包含了程序的代码、数据、符号表等信息,可以帮助链接器正确地组合各个代码和数据段。

2024-03-22 16:16:57 1078

原创 Cortex_M3基础

Cortex‐M3 的基础主要包含寄存器组,处理器操作模式,异常和中断堆栈区的操作 部分知识。需要特别掌握的知识是处理器的模式和堆栈指针的使用,特别是双堆的使用方式,虽然在工作过程中不需要我们操作这些寄存器,但是对于需要移植操作系统的工程师来说,理解这部分的知识是非常有必要的。为什么CM3要有两个堆栈指针。这么设计的好处是什么?可以带着这个问题阅读下面内容。

2024-03-18 19:35:13 1219

原创 Cortex_M3之内核概览

Cortex-M3 是一个 32 位处理器内核。内部的数据路径是 32 位的,寄存器是 32 位的,存储器接口也是 32 位的。CM3 采用了哈佛结构,拥有独立的指令总线和数据总线,可以让取指与数据访问并行不悖。但是另一方面,指令总线和数据总线共享同一个存储器空间(一个统一的存储器系统),寻址空间为 4GB。简化框图如下图所示:指令执行单元:由指令预取单元、指令译码、算数逻辑运算单元、寄存器组组成跟踪调试系统存储器接口:提供AHB接口信号的指令总线和数据总线。中断控制器(NVIC)

2024-03-11 17:01:39 2131

原创 CPU知识简介

指令集架构主要分为复杂指令集(CISC)和精简指令集(RISC),这两者的区别如下:CISC不仅包含了处理常用的指令,还包含了许多不常用的特殊指令,其指令数目比较多,所以称为复杂指令集.RISC只包含处理器常用的指令,对对于不常用的操作,则通过执行多条常用指令的方式来达到同样的效果,由于其指令数目比较精简,所以称为精简指令集。自从RISC诞生后,基本上所有现代指令集架构都选择使用RISC架构。指令集是设计CPU的灵魂。

2024-03-11 10:32:05 539

原创 Modelesim脚本仿真学习笔记

Modelesim脚本仿真学习笔记

2024-02-01 19:20:33 861

原创 Python学习总结

计算机在解决某个具体问题时,主要有3中情形,分别为顺序执行所有语句,选择执行部分语句和循环执行部分语句。位运算符是把数字看作二进制进行计算,主要按位与(&)、按位或(|)、按位异或(^)、按位取反(~)、左移位()。如果表达式的值为真,执行语句块,否则跳过语句块继续执行后面的语句,这种形式的语句相当于汉语里面的“如果…先计算中间的条件(a>b),如果结果为True,则返回if语句左边的值,否则返回else后面的值。主要有=、+=、-=、*=、/=、%=、**=、//=等。

2024-01-03 19:53:01 363

原创 NIOS II程序Flash固化

NIOS II程序Flash固化

2023-03-07 17:47:33 793

modelsim脚本仿真示例DEMO

modelsim脚本仿真示例DEMO

2024-02-01

modelsim脚本仿真

modelsim脚本仿真

2024-02-01

NIOS II 程序flash固化.doc

本文讲述在alteral公司的FPGA移植NIOS II软核后,将sof文件和elf打包烧写至flash,实现断电自启动。

2021-06-06

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除