首页 > 编程语言 >[ARM 汇编]高级部分—ARM汇编编程实战—3.3.2 嵌入式开发环境搭建

[ARM 汇编]高级部分—ARM汇编编程实战—3.3.2 嵌入式开发环境搭建

时间:2023-06-26 09:15:31浏览次数:62  
标签:汇编 烧录 led blink 3.3 安装 ARM

搭建一个嵌入式开发环境主要包括以下几个部分:

  1. 安装交叉编译器
  2. 配置集成开发环境(IDE)
  3. 安装调试工具
  4. 下载和烧录程序

接下来,我们将详细介绍每个部分,并提供相应的实例。

  1. 安装交叉编译器

交叉编译器是用于将您编写的ARM汇编代码编译成可执行文件的工具。在本教程中,我们将使用GNU ARM Embedded Toolchain作为交叉编译器。

请按照以下步骤安装GNU ARM Embedded Toolchain:

  • 访问 GNU ARM Embedded Toolchain官方网站 下载相应的安装包。根据您的操作系统选择合适的版本(Windows、Linux或macOS)。

  • 下载完成后,解压并安装。确保将安装目录的bin子目录添加到系统的PATH环境变量中,这样您可以在命令行中直接运行交叉编译器。

  • 打开命令行窗口,输入以下命令以验证安装是否成功:

arm-none-eabi-gcc --version

成功安装后,您应该能看到类似的输出信息:

arm-none-eabi-gcc (GNU Arm Embedded Toolchain 10.3-2021.07) 10.3.1 20210701 (release)
Copyright (C) 2021 Free Software Foundation, Inc.
  1. 配置集成开发环境(IDE)

集成开发环境(IDE)是用于编写、编译、调试和运行代码的软件。在本教程中,我们将使用Visual Studio Code(VS Code)作为IDE。

请按照以下步骤安装和配置VS Code:

  1. 安装调试工具

为了在嵌入式系统上调试程序,您需要一个硬件调试器(如ST-Link、J-Link等)和相应的调试软件。在本教程中,我们将使用ST-Link作为硬件调试器,以STM32F103微控制器为例。

请按照以下步骤安装调试工具:

  • 访问 ST-Link官方网站 下载并安装ST-Link驱动程序。

  • 根据您的操作系统下载并安装 STM32CubeProgrammer。STM32CubeProgrammer是用于下载程序到STM32微控制器的工具。

  1. 下载和烧录程序

现在,我们已经准备好搭建嵌入式开发环境。接下来,我们将演示如何编写一个简单的ARM汇编程序,然后将其烧录到STM32F103微控制器上。

假设我们要编写一个程序,使得STM32F103的一个LED灯以1Hz的频率闪烁。我们将使用ARM汇编语言编写代码,并使用我们刚刚搭建的开发环境进行编译、下载和烧录。

a. 编写汇编代码

在VS Code中创建一个名为led_blink.s的新文件,并输入以下汇编代码:

.syntax unified
.cpu cortex-m3
.thumb

.global _start
_start:

// 初始化堆栈
ldr r0, =_stack_top
mov sp, r0

// 调用main函数
bl main

// 无限循环
loop_forever:
    b loop_forever

.section .text.main
.thumb_func
.align 2
main:
    // 在此编写闪烁LED的汇编代码

    // 返回
    bx lr

.section .stack
.align 3
_stack_top:

b. 编译汇编代码

打开命令行窗口,进入到led_blink.s文件所在的目录,然后运行以下命令编译汇编代码:

arm-none-eabi-as -mcpu=cortex-m3 -mthumb -g -o led_blink.o led_blink.s
arm-none-eabi-ld -Ttext 0x08000000 -o led_blink.elf led_blink.o
arm-none-eabi-objcopy -O binary led_blink.elf led_blink.bin

这将生成一个名为led_blink.bin的二进制文件,我们将把这个文件烧录到STM32F103微控制器上。

c. 烧录程序

确保您的ST-Link调试器已连接到STM32F103微控制器,然后运行以下命令使用STM32CubeProgrammer将程序烧录到微控制器上:

STM32_Programmer_CLI -c port=SWD -w led_blink.bin 0x08000000

完成烧录后,您应该能看到STM32F103微控制器上的LED灯以1Hz的频率闪烁。

通过以上步骤,您已经成功搭建了一个嵌入式开发环境,并使用ARM汇编编写、编译、下载和烧录了一个简单的程序。接下来,您可以尝试编写更复杂的程序,深入学习ARM汇编编程。
推荐阅读:

https://mp.weixin.qq.com/s/dV2JzXfgjDdCmWRmE0glDA

https://mp.weixin.qq.com/s/an83QZOWXHqll3SGPYTL5g

file

标签:汇编,烧录,led,blink,3.3,安装,ARM
From: https://www.cnblogs.com/yaoqian/p/17504449.html

相关文章

  • [ARM 汇编]高级部分—ARM汇编编程实战—3.3.3 嵌入式应用程序设计实例
    在本章节中,我们将学习如何使用ARM汇编编写一个简单的嵌入式应用程序。我们将以STM32F103微控制器为例,编写一个程序,实现按下按钮时点亮LED的功能。硬件连接首先,我们需要将STM32F103微控制器的一个GPIO引脚连接到LED(通过一个合适的电阻),另一个GPIO引脚连接到按钮。假设我们使用以......
  • 操作流程:EasyCVR v3.3版本如何接入智能分析网关V3?
    我们在此前的文章中介绍了EasyCVR新版本v3.3接入智能分析网关V1和V2的操作教程,感兴趣的用户可以翻阅往期文章进行了解。今天我们来介绍下新版本如何接入智能分析网关V3。智能分析网关V3是我们近期推出的边缘计算AI硬件网关设备,它内置了20多种AI算法,可针对安全生产、通用园区、智......
  • 【pycharm】替换字符串的三种方法
    一、场景  工作中我们可能需要修改一些字符串为同一字符串,此时pycharm的一些替换功能就很好用 二、快捷键1、基于当前文件CTRL+R2、基于全局的替换 CTRL+SHIFT+R  三、替换的三种方法1、基于Cc的字符串 这种最简单,就是简单的替换某个字符串为另一个,可以......
  • [ARM 汇编]高级部分—性能优化与调试—3.4.1 性能分析与优化策略
    性能优化是嵌入式系统开发中的一个重要环节,尤其是在资源受限的环境下。性能优化的目标是提高代码执行速度、降低功耗和减少内存占用。在本章节中,我们将讨论性能分析与优化策略,并通过实例来学习如何应用这些策略。性能分析方法要优化程序性能,首先需要分析程序的瓶颈。通常,我们......
  • [ARM 汇编]高级部分—性能优化与调试—3.4.2 ARM汇编程序调试技巧
    在ARM汇编程序开发过程中,调试是一个关键环节。适当的调试技巧可以帮助我们更快地定位问题、解决问题,从而提高开发效率。本节将讲解一些ARM汇编程序的调试技巧,并通过实例进行讲解。使用GDB调试GDB(GNU调试器)是一个功能强大的调试工具,它支持ARM汇编程序的调试。以下是使用GDB进行......
  • python入门(二):python安装和pycharm安装
    Python的安装原文|大纲|首页Python是一种高级、通用、解释型的编程语言。它具有简洁明了的语法和强大的功能,因此成为了许多人学习编程的首选语言。1.下载Python首先,你需要从Python官方网站(https://www.python.org)下载最新版本的Python。在网站的首页上,你可以找到一个......
  • ARM平台上支持通过ONIE安装SONiC
    以前一直以为ONIE仅仅支持X86平台,想想也觉得奇观,既然是开放开源的系统,为什么和X86绑定呢?很多开源的东西,在受到业界关注的时候,即使开始的时候是平台绑定的,由于开源提供了检查源代码实现方式的机会,慢慢的社区也会将其移植到其他平台上。ONIE作为一种开放网络操作系统安装环境Open......
  • pycharm 经常遇到模块包已经下载,但是运行提示模块没有找到的问题
    作为新手在使用pycharm启动djang框架服务的过程中经常遇到,明明模块包已经下载安装,但是提示模块没有安装的问题,这个问题一般就是在启动django的时候,python解释器地址不是当前自己包所下载的地址更换到模块包下载的虚拟环境的地址,重新启动即可......
  • pycharm中的gihub copilot中报错Sign in failed. Reason: Request signInInitiate fai
    pycharm中的gihubcopilot中报错Signinfailed.Reason:RequestsignInInitiatefailedwithmessage:getaddri无法使用问题解决方法:idea打开我们的插件settings-plugins-找到插件,点击homepage插件主页跳出的页面下载对应pycharm的github copilot版本安装问题解决......
  • arm-gcc 命名规则
    https://www.cnblogs.com/schips/p/12408334.html 背景在Ubuntu中交叉编译裸机程序的时候,注意到了这个问题;因此对此作为一个总结。命名规则交叉编译工具链的命名规则为:arch[-vendor][-os][-(gnu)eabi]arch-体系架构,如ARM,MIPSverdor-工具链提供商os-目标操作系......