通过汇编理解cortex-m3:第0章

第0章:准备工作

基本想法:利用汇编和gdb调试,来学习cortex-m3汇编指令,以及一些寄存器的功能。

软件和硬件:

硬件:韦东山瑞士军刀中的最小核心板(STM32F103C8T6)
STLINK-V2(调试器)
软件:
ubuntu操作系统 22.0.4
openocd(用来将二进制文件下载到开发板中)
gdb-multiarch(用来进行调试)
arm-none-eabi系列软件(对汇编代码进行编译,链接)
vim(文件编辑器)

Demo工程模板:后续的工作都会基于该工程模板
当前章节对应的代码在:template文件夹中

运行程序:

  1. 利用STLINK-V2,将开发板与电脑进行连接
  2. 进入到下载文件的根目录下,执行make download,显示如下结果,说明程序编译,下载成功。
    在这里插入图片描述

同时,如果使用的开发板和之前介绍的一模一样,可以观察到,LED灯在不断闪烁。

调试程序步骤:

  1. 首先根据之前的’运行程序’中的步骤,将程序下载到开发板中

  2. 打开两个ternimal,分别运行如下命令:
    ternimal 1: openocd -f /usr/share/openocd/scripts/interface/stlink-v2.cfg -f /usr/share/openocd/scripts/target/stm32f1x.cfg
    在这里插入图片描述

    ternimal 2: gdb-multiarch Demo.elf
    在这里插入图片描述

  3. 通过gdb调试程序,并观察寄存器变换
    执行如下命令:
    source debug.gdb
    得到的结果如下:
    在这里插入图片描述

    通过输入命令:ni可以观察每一行汇编代码执行完之后,stm32中寄存器的变化情况。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux线程编程

Linux线程编程初步 一些历史背景 Linux间接起源于Unix,而Linux诞生时并不存在 "线程"的概念。在20世纪90年代线程才流行起来,POSIX Thread标准于 1995年确立。Unix中引入 Thread 之后,大量函数被重写,信号机制也变得复…

Mybatis-Plus《学习笔记 22版尚硅谷 》——感谢【尚硅谷】官方文档

Mybatis-Plus《学习笔记 22版尚硅谷 》 一、MyBatis-Plus1.简介2.特性3.支持数据库4.框架结构5.官方地址 二、入门案例1.开发环境2.建库建表3.创建工程4.配置编码5.测试查询 三、增删改查1.BaseMapper<T>2.调用Mapper层实现CRUD2.1 插入2.2 删除a、根据ID删除数据b、根据…

OpenAI 董事会与 Sam Altman 讨论重返 CEO 岗位事宜

The Verge 援引多位知情人士消息称&#xff0c;OpenAI 董事会正在与 Sam Altman 讨论他重新担任首席执行官的可能性。 有一位知情人士表示&#xff0c;Altman 对于回归公司一事的态度暧昧&#xff0c;尤其是在他没有任何提前通知的情况下被解雇后。他希望对公司的治理模式进行重…

矩阵代数概论

矩阵代数 共轭转置 对于矩阵 A [ a i j ] A[a_{ij}] A[aij​]&#xff0c;共轭矩阵被定义为 A ‾ [ a ‾ i j ] \overline{A}[\overline{a}_{ij}] A[aij​]&#xff0c;所以 A A A的共轭转置 A ‾ T A T ‾ \overline{A}^T\overline{A^T} ATAT&#xff0c;其中 A ‾ T \ov…

基于PHP+MySql的酒店信息管理系统的设计与实现

一、系统开发环境 运行环境&#xff1a;phpstudy或者wampserver&#xff0c; 开发工具&#xff1a;vscodephpstorm 数据库&#xff1a;mysql 二、酒店管理系统功能 1.前台功能&#xff1a; 首页客房推荐&#xff0c;周边特色介绍 酒店在线预订 订单查询&#xff0c;可以…

腾讯云轻量数据库1核1G评测和租用价格表

腾讯云轻量数据库测评&#xff0c;轻量数据库100%兼容MySQL 5.7和8.0&#xff0c;腾讯云提供1C1G20GB、1C1G40GB、1C2G80GB、2C4G120GB、2C8G240GB五种规格轻量数据库&#xff0c;阿腾云atengyun.com分享腾讯云轻量数据库测评、轻量数据库详细介绍、特性、配置价格和常见问题解…

Spring Framework IOC依赖查找 - 按名称查找解析

IoC按名称查找共分为三类&#xff1a; 按名称按类型按集合 按名称查找 在Spring Framework中&#xff0c;实时加载和延迟加载是指在容器启动时是否立即实例化bean的不同策略。下面我们将分别介绍这两种加载方式及其应用场景。 tips: 当涉及到懒加载和延时加载时&#xff0…

卡尔曼滤波器在车流量检测中的应用

目录 1. 作者介绍2. 卡尔曼滤波器2.1 卡尔曼滤波概述2.2 标志性发展2.3 卡尔曼公式理解 3. 车流量检测3.1 背景介绍3.2 实现过程3.2.1 YOLOv3网络模型结构3.2.2 SORT算法3.2.3 基于虚拟线圈法的车辆统计 4. 算法实现4.1 Kalman.py4.2 完整代码4.3 结果展示 1. 作者介绍 吴思雨…

【机器学习基础】决策树(Decision Tree)

&#x1f680;个人主页&#xff1a;为梦而生~ 关注我一起学习吧&#xff01; &#x1f4a1;专栏&#xff1a;机器学习 欢迎订阅&#xff01;后面的内容会越来越有意思~ ⭐特别提醒&#xff1a;针对机器学习&#xff0c;特别开始专栏&#xff1a;机器学习python实战 欢迎订阅&am…

Polygon zkEVM协议治理、升级及其流程

1. 引言 随着Polygon社区开发者和内部团队的测试深入&#xff0c;当前版本的Polygon zkEVM不可避免地需更新和某些升级。 为激励开发者对Polygon zkEVM做battle-test&#xff0c;已启动了bug-bounty&#xff1a; Rewards by Threat Level 由于zk-Rollup生态系统还处于萌芽阶…

C语言——2.安装并使用VS

文章目录 1.编译器是什么2.编译器的选择2.1.VS2019/2022 的初步了解2.2.为什么不选择其他编译器呢&#xff1f; 3.编译器的安装过程&#xff08;保姆级别教学&#xff09;3.1.检查电脑版本3.2.下载安装包3.3.选择安装选项3.4.重启电脑3.5.创建账户登录3.6.颜色配置3.7.VS&#…

约数个数定理

首先在讲这个定理前&#xff0c;首先科普一下前置知识 约数&#xff1a; 何为约数&#xff0c;只要能整除n的整数就是n的约数&#xff0c;举个例子&#xff0c;3的约束是1和3因为1和3能整除3 质数&#xff1a; 除了这个数字本身和1以外没有其他因子的数字就叫质数&#xff…