eclipse 中创建汇编工程
- [一. 安装编译器和相关工具](#一. 安装编译器和相关工具)
- [二. 创建工程](#二. 创建工程)
- [三. 创建各类文件](#三. 创建各类文件)
-
- [1. 创建 Makefile 文件](#1. 创建 Makefile 文件)
- [2. 创建链接脚本文件](#2. 创建链接脚本文件)
- [3. 创建汇编文件](#3. 创建汇编文件)
- [4. 编译程序](#4. 编译程序)
- [5. 创建连接仿真器的文件](#5. 创建连接仿真器的文件)
- [四. 在开发板运行,并用eclipse中调试](#四. 在开发板运行,并用eclipse中调试)
-
- [1. 连接开发板,打开调试串口](#1. 连接开发板,打开调试串口)
- [2. 运行openOCD](#2. 运行openOCD)
- [3. 配置eclipse,调试程序](#3. 配置eclipse,调试程序)
-
- [3.1. 设置elf文件](#3.1. 设置elf文件)
- [3.2. 配置编译器](#3.2. 配置编译器)
- [3.3. 设置初始化指令](#3.3. 设置初始化指令)
- [3.4. 点击调试,会看到如下界面](#3.4. 点击调试,会看到如下界面)
- [3.5. 单步调试程序,查看寄存器变化](#3.5. 单步调试程序,查看寄存器变化)
参考:Cortex-A7 开发环境搭建
本文的目的在于帮你在主机上搭建一套完整的 Cortex-A7 交叉开发环境,从工具链安装到仿真、烧录与调试,为后续驱动与系统开发打下基础。假定你已学会了 Linux 基础命令、嵌入式交叉编译概念。
本文解决的问题有:
- 选择并配置适合
Cortex-A7的交叉编译工具链 - 搭建适用于
Linux/Windows/macOS的主机开发环境 - 构建常见软件栈:
U-Boot、Linux内核、根文件系统(BusyBox/Buildroot) - 使用
QEMU进行Cortex-A7模拟调试 - 向真实开发板烧录镜像并进行串口/JTAG 调试
- 常见问题定位与环境复现方法
一. 安装编译器和相关工具
总体流程拆解
1.搭建主机依赖环境
2.安装交叉工具链并配置环境变量
3.获取并编译三大件:U-Boot、Linux、根文件系统
4.在 QEMU 上验证基础环境
5.连接真实硬件完成烧录与调试
6.建立自动化脚本与版本管理
二. 创建工程

三. 创建各类文件
1. 创建 Makefile 文件

内容如下:
bash
SHELL = C:\Windows\System32\cmd.exe
CROSS_COMPILE := arm-none-eabi-
NAME := h_project
CPPFLAGS := -nostdlib -nostdinc -g
CFLAGS := -Wall -O2 -fno-builtin -g
LD := $(CROSS_COMPILE)ld
CC := $(CROSS_COMPILE)gcc
OBJCOPY := $(CROSS_COMPILE)objcopy
OBJDUMP := $(CROSS_COMPILE)objdump
export CC LD OBJCOPY OBJDUMP CPPFLAGS CFLAGS
objs := start.o
all: $(objs)
$(LD) -T map.lds -o $(NAME).elf $^
$(OBJCOPY) -O binary $(NAME).elf $(NAME).bin
$(OBJDUMP) -D $(NAME).elf > $(NAME).dis
%.o: %.S
$(CC) $(CPPFLAGS) $(CFLAGS) -o $@ $< -c
%.o: %.c
$(CC) $(CPPFLAGS) $(CFLAGS) -o $@ $< -c
clean:
rm *.o *.elf *.bin *.dis
2. 创建链接脚本文件

内容如下:
bash
OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
ENTRY(_start)
OUTPUT_ARCH(arm)
SECTIONS
{
. = 0xc2000040;
. = ALIGN(4);
.text :
{
start.o(.text)
*(.text)
}
. = ALIGN(4);
.rodata :
{
*(.rodata)
}
. = ALIGN(4);
.data :
{
*(.data)
}
. = ALIGN(4);
.bss :
{
*(.bss)
}
}
3. 创建汇编文件

内容如下:
bash
.text
.global _start
_start:
mov r0, #0x9
nop
mov r1, #0x7
bl add_sub
stop:
b stop
add_sub:
add r2, r0,r1
sub r3, r0,r1
mul r4, r0,r1
mov pc,lr
4. 编译程序
编译:

生成一下文件:

5. 创建连接仿真器的文件

内容如下:
bash
target remote localhost:3334
monitor halt
四. 在开发板运行,并用eclipse中调试
1. 连接开发板,打开调试串口

2. 运行openOCD

输入下面命令:
bash
.\openocd.exe -s .\scripts\ -f board\stm32mp15x_fsmp1a.cfg
3. 配置eclipse,调试程序
3.1. 设置elf文件

3.2. 配置编译器

3.3. 设置初始化指令

3.4. 点击调试,会看到如下界面

3.5. 单步调试程序,查看寄存器变化

以上,欢迎有从事同行业的电子信息工程、互联网通信、嵌入式开发的朋友共同探讨与提问,我可以提供实战演示或模板库。希望内容能够对你产生帮助!