zoukankan      html  css  js  c++  java
  • Part3_lesson1---ARM汇编编程概述

    bootloader以及内核需要使用汇编语言,特别是在初始化的时候!以及在效率要求很高的地方会使用。

    汇编程序框架:

    其入口在_start处,这个入口需要用一个关键字为.global来声明它是一个全局的标号,那么在外部文件才能够引用到它。

    .section表示这是一个段,.text表示这是一个代码段。

    简化之后的框架

    要调试某个文件是把格式为elf的文件烧写到内存里面去调试。

    要下载某个文件是要把格式为二进制的文件烧写到nandflash里面去运行。

    start.S文件

    makefile文件的编写:

    all:start.o

      arm-linux-ld -Ttext 0x50000000  -o start.elf $^

    %.o :%.S

      arm-linux-gcc -g -o $@ $^ -c

    clean:

      rm *.o *.elf

    这里不使用链接器脚本文件,因为我是想把这个程序放到内存里面去运行,希望指定这个程序的链接地址应该是从内存里面的某一个地址开始。那么怎么来指定这一点呢,我们可以使用-T,也就是说这个程序的代码段的起始地址应该是从什么地方开始的。-Ttext,它就指明了程序代码段的起始地址是从什么地方开始的,也就是0x50000000.

    也可以在链接器脚本里面来指定!

  • 相关阅读:
    大数加法、乘法实现的简单版本
    hdu 4027 Can you answer these queries?
    zoj 1610 Count the Colors
    2018 徐州赛区网赛 G. Trace
    1495 中国好区间 尺取法
    LA 3938 动态最大连续区间 线段树
    51nod 1275 连续子段的差异
    caioj 1172 poj 2823 单调队列过渡题
    数据结构和算法题
    一个通用分页类
  • 原文地址:https://www.cnblogs.com/gary-guo/p/5730693.html
Copyright © 2011-2022 走看看