随笔分类 -  嵌入式ARM

摘要:1 Overview 开发一个OS,尽管绝大部分代码只需要用C/C++等高级语言就可以了,但至少和硬件相关部分的代码需要使用汇编语言,另外,由于启动部分的代码有大小限制,使用精练的汇编可以缩小目标代码的Size。另外,对于某些需要被经常调用的代码,使用汇编来写可以提高性能。所以我们必须了解汇编语言, 阅读全文
posted @ 2024-05-11 17:42 咸鱼书生 阅读(116) 评论(0) 推荐(0) 编辑
摘要:ASM是C++中的一个关键字,用于在C++源码中内嵌汇编语言。ASM能写在任何C++合法语句中,目前asm还不是C的标准关键字,C11标准未加入正文,仅在Annex J中标记为“公共扩展”。本篇文章主要教大家如何使用__asm__ __volatile__内嵌汇编,让我们一起来看看它的用法! asm 阅读全文
posted @ 2024-05-11 17:39 咸鱼书生 阅读(1237) 评论(0) 推荐(0) 编辑
摘要:Documentation - Arm Developer 阅读全文
posted @ 2024-04-30 10:53 咸鱼书生 阅读(21) 评论(0) 推荐(0) 编辑
摘要:前言 本文主要介绍在实际工作 DS-5 常见的一些用法,DS-5 相关资料可以访问其官网:https://developer.arm.com/tools-and-software/embedded/legacy-tools/ds-5-development-studio 1.1 ARM DS-5 简 阅读全文
posted @ 2024-04-11 11:42 咸鱼书生 阅读(171) 评论(0) 推荐(0) 编辑
摘要:1.1.1 DS-5 工程创建在使用ARM DS-5 连接 board(或者PFGA)之前首先需要能够扫描到相应的硬件信息,比如对应的cpu的相关信息:coresight 相关组件信息,Cache信息等。 创建好工程项目后按照下图黄线的指示进行扫描操作(通常是完成扫描后才会去执行 “build pl 阅读全文
posted @ 2024-04-11 11:37 咸鱼书生 阅读(166) 评论(0) 推荐(0) 编辑
摘要:1.1 DS-5 Debug 方法梳理 通常在调试过程中需要打断点来进行单步调试,这个时候可以按照下面步骤来进行: 在使用 DS-5 Debug 之前需要先 load 所编译的 elf 文件: 设置好路径: 1.2.1 DS-5 设置断点 Debug 在上面完成 elf 文件的 load 及 路径设 阅读全文
posted @ 2024-04-11 11:28 咸鱼书生 阅读(203) 评论(0) 推荐(0) 编辑
摘要:1.1 ARM DS-5 Trace接着上文完成 ARM DS5的环境配置之后,这篇文章介绍如何使用ARM DS5(DS-5)进行 DATA Trace 和 指令Trace 1.1.1 ETM 数据 Trace 和指令 Trace1)新建一个"Debugger" core 连接, 创建步骤如下图所示 阅读全文
posted @ 2024-04-11 11:10 咸鱼书生 阅读(191) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2024-04-02 16:50 咸鱼书生 阅读(46) 评论(0) 推荐(0) 编辑
摘要:前言 本期和大家主要分享的ARM汇编指令集中的内存操作类指令,涉及到内存操作,不得不说CPSR,SP,LR,PC是非常重要的几个寄存器,所以接下来就来具体观察一下其内存窗口的具体变化! 一、跳转指令 1.1 相对跳转 相对跳转: b fun 基于当前pc前后32M范围寻找标号,跳转到标号处执行代码 阅读全文
posted @ 2024-03-29 14:38 咸鱼书生 阅读(4033) 评论(0) 推荐(0) 编辑
摘要:CPSR简介: 全称:程序状态寄存器(current program status register) 用户级编程时用于存储条件码 任何处理器模式下被访问 两种运行状态:ARM状态(32位)、Thumb状态(16位),两种状态之间可任意切换 七种运行模式:usr(用户)、fiq(快速中断)、irq( 阅读全文
posted @ 2024-03-29 14:24 咸鱼书生 阅读(3026) 评论(0) 推荐(1) 编辑
摘要:嵌入式arm开发过程中,需要用到 jlink 进行调试开发,需要搭建eclipse arm linux gcc + jlink 调试环境,按照以下步骤搭建的环境可以识别到jlink。 0 环境搭建概述所需工具:(1)Eclipse Eclipse的本身只是一个框架平台,但是众多插件的支持,使得Ecl 阅读全文
posted @ 2024-03-12 15:28 咸鱼书生 阅读(542) 评论(0) 推荐(0) 编辑
摘要:前言 嵌入式项目中经常涉及到需要通过分析编译后的汇编文件,来确定异常代码,对一些常用的指令进行了汇总。 一、处理器内部数据传输指令 在ARM架构中,包括Cortex-A7处理器内部,有一些专门用于数据传输的指令,这些指令用于在寄存器之间移动数据或在寄存器和内存之间进行数据传输。 MOV: 将数据从一 阅读全文
posted @ 2024-02-19 17:11 咸鱼书生 阅读(1629) 评论(0) 推荐(2) 编辑
摘要:我们常常听说的PC,LR到底是什么关系,我这次终于弄明白了。我们都知道,LR是指向PC下一次要执行的地址,但是ARM不同的工作模式,他们有不同的关系。ARM有如下几种工作模式:用户模式,FIQ模式,IRQ模式,系统模式,终止模式,数据访问终止模式,未定义模式。 ARM是三级流水线的:取指,译码,执行 阅读全文
posted @ 2024-01-26 14:58 咸鱼书生 阅读(688) 评论(0) 推荐(0) 编辑
摘要:堆栈的实现方法 在随机存储器区划出一块区域作为堆栈区,数据可以一个个顺序地存入(压入)到这个区域之中,这个过程称为‘压栈’(push )。通常用一个指针(堆栈指针 SP—StackPointer)实现做一次调整,SP总指向最后一个压入堆栈的数据所在的数据单元(栈顶)。从堆栈中读取数据时,按照堆栈 指 阅读全文
posted @ 2024-01-26 14:52 咸鱼书生 阅读(2878) 评论(0) 推荐(0) 编辑
摘要:ARM中所有寄存器都是32位的。这里以cortex-a7内核的MX6ULL处理器为例,按照功能可以分为两类:运行需要寄存器(程序正常运行所需要的,比如变量暂存,pc制作等,总共43个),系统管理控制寄存器(存在于协处理器cp15的16个寄存器,用于mmu存储管理控制,cache控制,中断控制,浮点运 阅读全文
posted @ 2024-01-26 14:37 咸鱼书生 阅读(2650) 评论(0) 推荐(0) 编辑
摘要:ARM寄存器(R13/R14/R15) 一、ARM工作状态下的寄存器组织 ARM微处理器共有37个32位寄存器,其中31个为通用寄存器,6个位状态寄存器。但是这些寄存器不能被同时访问,具体哪些寄存器是可以访问的,取决ARM处理器的工作状态及具体的运行模式。但在任何时候,通用寄存器R14~R0、程序计 阅读全文
posted @ 2023-04-24 16:14 咸鱼书生 阅读(293) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示