zoukankan      html  css  js  c++  java
  • 从链接和汇编指令看单片机

    objdump帮助理解链接过程。Linker将各种*.o的文件链接在一起。使用objdump可以看到很多信息。

    objdump  -d  the_file.o

    可以看到含有汇编助记符的指令。

    objdump  -t  the_file.o

    该文件可以在安装目录C:NXPS32DS_Power_v2017.R1Cross_Toolspowerpc-eabivle-4_9inpowerpc-eabivle-objdump.exe下找到。

    通过使用objdump就可以将目标文件(*.o)分析清楚。从来了解链接器的工作机制。

    MPC5744P中,有一个问题在于,我们在C语言中定义的各种uint32_t  int32_t ,其实只在汇编级别的代码中是几乎完全看不到这种信息的。

    这一点需要明确。在powerpc的汇编体系中,一个char和一个int的区别就是,一个采用的是stw(store word),另外一个是stb(store byte)

    发生函数调用的时候一般和堆栈相关。在powerpc架构中,寄存器R1被用来当做SP。在有一些参数为void的函数进入该函数之前,都会使用以下汇编语句

    e_stwu   r1,-0x10(r1)

    该语句的二进制表示为(使用十六进制):

    182106F0

    s19文件(srec)中搜索关键字“182106F0”,如果找到了。这说明这是一个发生函数调用的地方。但并不是所有发生函数调用的形式都是这个样子。

    关于powerpc的汇编指令,其指令集的形式规定并不是特别严格。同一种操作可能有不同的记法。如果仅仅只理解别人已经写好的汇编(比如单片机工程中的一些*.s的文件),对于初学者靠猜可能会帮助理解。因为在短时间内掌握完全不可能。

  • 相关阅读:
    二、缴费证明(完税凭证)开具渠道
    DateTime的具体用法
    获取HTML页面高度和分辨率
    JS获取当前日期及时间
    CSS textindent 属性
    combotree初始化加载折叠
    关于C#中将数字转换为指定格式
    jquery cookie用法(获取cookie值,删除cookie)
    如何在Sql Server中读取最近一段时间的记录,比如取最近3天的或最近3个月的记录。
    定位/定位偏移量
  • 原文地址:https://www.cnblogs.com/praiseslow/p/9397885.html
Copyright © 2011-2022 走看看