[国嵌笔记][024][ARM汇编编程概述]

汇编程序用途

1.在bootloader与内核初始化时,还没有建立C语言运行环境,需要用到汇编程序

2.在对访问效率要求很高的情况下,需要用到汇编程序

 

ARM汇编分类

1.ARM标准汇编:适合于Windows在平台下使用

2.GUN汇编:适合于Linux在平台下使用

 

汇编程序框架

完整版:

1
2
3
4
5
6
7
8
.section .data   数据段
    <初始化数据>
.section bss   bss段
    <未初始化数据>
.section .text   代码段
.global _start   通过global申明给全局标号,方便被外部引用
_start:   程序入口
    <汇编代码>

简化版:

1
2
3
4
.text
.global _start
_start:
    <汇编代码>

 

建立汇编环境

1.创建汇编文件

   vim start.S

2.编写代码

1
2
3
4
5
6
.text
.global _start
_start:
        mov r1,#1
        mov r2,#2
        mov r3,#3

3.编写Makefile

  vim Makefile

1
2
3
4
5
6
all:start.o
        arm-linux-ld -Ttext 0x30000000 $^ -o start.elf   “-Ttext”表示不指定链接器脚本时,直接指定链接地址。”0x30000000”表示2440内存的起始地址。引用要生成elf文件直接下载到内存中调试
%.o:%.S
        arm-linux-gcc -g -c $^ -o $@
clean:
        rm *.o *.elf

4.连接开发板

  JLinkGDBServer   启动后的窗口不要关掉

5.启动eclipse

  1.创建工程

    file->new->Makefile Project...

  2.编译工程 

    project->build all

  3.配置调试

    1.debug->debug configurations...

    2.添加调试文件   添加elf文件

    3.添加调试工具   arm-linux-gdb,同时去掉stop on main选项

    4.添加初始化脚本   调试器对处理器进行初始化

posted @   盛夏夜  阅读(229)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
点击右上角即可分享
微信分享提示