当前位置: 首页 > article >正文

通过汇编理解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.kler.cn/news/136801.html

相关文章:

  • 【Blender】 学习笔记(一)
  • Android 图片相识度比较(pHash)
  • Windows通过netsh控制安全中心防火墙和网络保护策略
  • MoCoOp: Mixture of Prompt Learning for Vision Language Models
  • 华为云产品介绍
  • 系统登录接口文档Demo
  • .Net中Redis的Hash表操作
  • 使用大语言模型 LLM 做文本分析
  • lnmp极简保姆级教程(nginx+php+mysql)
  • 常用系统函数
  • 万字解析设计模式之 装饰者模式
  • 一文讲清楚MySQL常用函数!
  • 服务器64GB内存、8核CPU的MySQL 8配置参数
  • scala解析命令行参数详解
  • Ajax基础(应用场景|jquery实现Ajax|注意事项)
  • 存储区域网络(SAN)之FC-SAN和IP-SAN的比较
  • AI实践与学习1_Milvus向量数据库实践与原理分析
  • Caché for UNIX®, Linux及macOS的安装及配置
  • OpenGL 绘制点与三角形(Qt)
  • Flask实现cookie 开发
  • 计算机网络(持续更新…)
  • Nuxt3框架全局引用外部JS/CSS文件的相关配置方法
  • 【外汇天眼】投资之道:成功背后的频繁交易陷阱
  • 【C++深度剖析学习总结】28 函数对象分析
  • 服务注册与实现
  • Pytorch完整的模型训练套路