链接地址学习笔记

发布者:EnchantedMelody最新更新时间:2024-10-15 来源: cnblogs关键字:链接地址  学习笔记  启动过程 手机看文章 扫描二维码
随时随地手机看文章

bits, and added to the PC. 

偏移量offset  6<<2 =6*2*2=24

Pc=pc+24

   =(当前指令+8)+24 

   =(c+8)+24=(12+8)+24=44=0x2c

*/   

 

 

   c:   eb000006      Bl  test ldr pc, =test

   10:   e59ff018        ldr     pc, [pc, #24]   ; 30 

  14:   e59f0018        ldr     r0, [pc, #24]   ; 34 

  18:   e3a01000        mov     r1, #0

  1c:   e5801000        str     r1, [r0]

  20:   e3a0da02        mov     sp, #8192       ; 0x2000

  24:   eb00001f        bl      a8 

 

00000020 :

  20: eafffffe  b 20 

 

/*跳转到此位置*/

0000002c :

  2c:   e1a0f00e        mov     pc, lr

  30:   0000002c        andeq   r0, r0, ip, lsr #32

  34:   07e00400        strbeq  r0, [r0, r0, lsl #8]!

  38:   00002541        andeq   r2, r0, r1, asr #10

  3c:   61656100        cmnvs   r5, r0, lsl #2

  40:   01006962        tsteq   r0, r2, ror #18

  44:   0000001b        andeq   r0, r0, fp, lsl r0

  48:   4d524105        ldfmie  f4, [r2, #-20]  ; 0xffffffec

  4c:   36373131        undefined instruction 0x36373131

  50:   2d465a4a        vstrcs  s11, [r6, #-296]        ; 0xfffffed8

  54:   09060053        stmdbeq r6, {r0, r1, r4, r6}

  58:   01090108        tsteq   r9, r8, lsl #2

  5c:   0000020a        andeq   r0, r0, sl, lsl #4

 

00000054 :

  54: e52db004  push {fp} ; (str fp, [sp, #-4]!)

  58: e28db000  add fp, sp, #0

  5c: e24dd00c  sub sp, sp, #12

  60: e3a03a01  mov r3, #4096 ; 0x1000

  64: e50b3008  str r3, [fp, #-8]

  68: e1a00000  nop ; (mov r0, r0)

  6c: e51b3008  ldr r3, [fp, #-8]

  70: e3530000  cmp r3, #0

  74: 03a02000  moveq r2, #0

  78: 13a02001  movne r2, #1

  7c: e6ef2072  uxtb r2, r2

  80: e2433001  sub r3, r3, #1

  84: e50b3008  str r3, [fp, #-8]

  88: e3520000  cmp r2, #0

  8c: 1afffff6  bne 6c 

  90: e28bd000  add sp, fp, #0

  94: e8bd0800  pop {fp}

  98: e12fff1e  bx lr

 

0000009c 

:

  9c: e92d4800  push {fp, lr}

  a0: e28db004  add fp, sp, #4

  a4: e24dd008  sub sp, sp, #8

  a8: e59f3060  ldr r3, [pc, #96] ; 110 

  ac: e50b3008  str r3, [fp, #-8]

  b0: e59f305c  ldr r3, [pc, #92] ; 114 

  b4: e50b300c  str r3, [fp, #-12]

  b8: e51b3008  ldr r3, [fp, #-8]

  bc: e59f2054  ldr r2, [pc, #84] ; 118 

  c0: e5832000  str r2, [r3]

  c4: e59f3050  ldr r3, [pc, #80] ; 11c 

  c8: e5933000  ldr r3, [r3]

  cc: e1a02003  mov r2, r3

  d0: e51b300c  ldr r3, [fp, #-12]

  d4: e5832000  str r2, [r3]

  d8: e59f303c  ldr r3, [pc, #60] ; 11c 

  dc: e5933000  ldr r3, [r3]

  e0: e2832001  add r2, r3, #1

  e4: e59f3030  ldr r3, [pc, #48] ; 11c 

  e8: e5832000  str r2, [r3]

  ec: e59f3028  ldr r3, [pc, #40] ; 11c 

  f0: e5933000  ldr r3, [r3]

  f4: e3530010  cmp r3, #16

  f8: 1a000002  bne 108 

  fc: e59f3018  ldr r3, [pc, #24] ; 11c 

 100: e3a02000  mov r2, #0

 104: e5832000  str r2, [r3]

 108: ebffffd1  bl 54 

 10c: eaffffec  b c4 

 110: 7f008800  svcvc 0x00008800

 114: 7f008808  svcvc 0x00008808

 118: 00001111  andeq r1, r0, r1, lsl r1

 11c: 00000124 andeq r0, r0, r4, lsr #2

 

Disassembly of section .data:

 

00000120 :

 120: 12345678  eorsne r5, r4, #125829120 ; 0x7800000

 

Disassembly of section .bss:

 

00000124 :

 124: 00000000  andeq r0, r0, r0

 

00000128 :

 128: 00000000  andeq r0, r0, r0

 

0000012c :

 12c: 00000000  andeq r0, r0, r0

 

Disassembly of section .comment:

 

00000000 <.comment>:

   0: 3a434347  bcc 10d0d24 

   4: 74632820  strbtvc r2, [r3], #-2080 ; 0x820

   8: 312d676e  teqcc sp, lr, ror #14

   c: 312e382e  teqcc lr, lr, lsr #16

  10: 2941462d  stmdbcs r1, {r0, r2, r3, r5, r9, sl, lr}^

  14: 352e3420  strcc r3, [lr, #-1056]! ; 0x420

  18: Address 0x00000018 is out of bounds.

 

 

Disassembly of section .ARM.attributes:

 

00000000 <.ARM.attributes>:

   0: 00003341  andeq r3, r0, r1, asr #6

   4: 61656100  cmnvs r5, r0, lsl #2

   8: 01006962  tsteq r0, r2, ror #18

   c: 00000029  andeq r0, r0, r9, lsr #32

  10: 4d524105  ldfmie f4, [r2, #-20] ; 0xffffffec

  14: 36373131  undefined instruction 0x36373131

  18: 2d465a4a  vstrcs s11, [r6, #-296] ; 0xfffffed8

  1c: 09060053  stmdbeq r6, {r0, r1, r4, r6}

  20: 01090108  tsteq r9, r8, lsl #2

  24: 0412020a  ldreq r0, [r2], #-522 ; 0x20a

  28: 01150114  tsteq r5, r4, lsl r1

  2c: 01180317  tsteq r8, r7, lsl r3

  30: 031b021a  tsteq fp, #-1610612735 ; 0xa0000001


[1] [2]
关键字:链接地址  学习笔记  启动过程 引用地址:链接地址学习笔记

上一篇:DDR学习笔记
下一篇:arm学习笔记一(arm概述及其基本编程模型)

推荐阅读最新更新时间:2024-11-04 19:36

MSP430单片机个人学习笔记
上点复位信号 :POR(Power On Reset) 上电清除信号 :PUC (Power Up Clear) CPU产生条件: POR产生时 启动看门狗时,看门狗定时器计满。 看门狗写入错误安全参数值 片内Falsh写入错误的安全参数 POR与PUC都会引发复位 复位后初始状态: /RST引脚被设置为复位模式 所有I/O引脚被设置为输入 外围模块被初始化 状态寄存器SR复位 看门狗激活,进入工作模式 程序计数器PC装入0xFFFEH处的地址,从此地址开始执行程序。 内部RC振荡器 系统复位后内部RC振荡器磨人为系统时钟,但精度比较差,不适合使用诸如串口通信场合波特率会随温度和电压变化而变化,不建议使用(约800
[单片机]
MSP430单片机个人<font color='red'>学习</font><font color='red'>笔记</font>
FLASH调试_HCS12学习笔记(6)
停了一阶段没有调试FLASH的程序,调了一阶段的CAN,无果,CAN的程序也很麻烦,不过今天早上终于把FLASH的程序调通了,其实,程序本身应该是没有什么问题的,但是因为程序没有分段存储,所以直接导致FLASH的分页寄存器没有能够读出来,今早,我把我的所有.C文件全部标明代码存储到0x4000这个位置上,FLASH的程序直接调试成功。这里贴我的部分改动,以作存档。 // Flash擦写-------------------------------------------------------* //本文件包含:
[单片机]
51单片机启动过程
STC8G2K64S4-48PIN 系列、STC8G2K64S2-48PIN 系列单片内部集成了 64K 字节【0000H-FFFFH】的 Flash 程序存储器(ROM)。 1:单片机复位后,程序计数器(PC)的内容为 0000H,从 flash的0000H 单元开始执行程序。【PC是一个16位的计数器。用于存放和指示下一条要执行的指令的地址。寻址范围达64KB。PC有自动加1功能,以实现程序的顺序执行。PC没有地址,是不可寻址的,无法用指令对它进行读写。但在执行转移、调用、返回等指令时能自动改变其内容,以改变程序的执行顺序。】 2:另外中断服务程序的入口地址(又称中断向量)也位于程序存储器单元。在程序存储器中,每个中断
[单片机]
STM32上电启动过程分析
单片机上电后执行的第一段代码 1.初始化堆栈指针 SP=_initial_sp 2.初始化 PC 指针=Reset_Handler 3.初始化中断向量表 4.配置系统时钟 5.调用 C 库函数_main 初始化用户堆栈,然后进入 main 函数。 在正式讲解之前,我们需要了解STM32的启动模式。 STM32的启动模式 手册可以在Keil中跳转查看 STM32的三种启动模式 首先要讲一下STM32的启动模式,因为启动模式决定了向量表的位置,STM32有三种启动模式: 1. 主闪存存储器(Main Flash memor
[单片机]
STM32上电<font color='red'>启动</font><font color='red'>过程</font>分析
STM32入门学习笔记之文件系统FatFs的移植3
21.2.2 ffsystem.c文件的修改 (1)内存分配ff_memalloc void* ff_memalloc( UINT msize ) { return ( void* )mymalloc( SRAMIN, msize ) ; } (2)内存释放ff_memfree void ff_memfree( void* mblock ) { myfree( SRAMIN, mblock ) ; } 21.2.3 exfuns.c与exfuns.h文件的创建 (1)创建exfuns.h文件,并输入以下代码。 #ifndef _EXFUNS_H #define _EXFUNS_H #i
[单片机]
STM32入门<font color='red'>学习</font><font color='red'>笔记</font>之文件系统FatFs的移植3
MSP432学习笔记:GPIO的使用与配置
有官方提供的库函数中有以下库函数,让我们来一一解答。 个人认为GPIO函数主要分两类一类是GPIO中断配置函数 主要有以下几个参数设置大同小异,selectedPort可选有 GPIO_PORT_P1 GPIO_PORT_P2 GPIO_PORT_PA 而selectedPins可选有 GPIO_PIN0 GPIO_PIN1 GPIO_PIN2 GPIO_PIN3 GPIO_PIN4 GPIO_PIN5 GPIO_PIN6 GPIO_PIN7 GPIO_PIN8 GPIO_PIN9 GPIO_PIN10 GPIO_PIN11 GPIO_PIN12 GPIO_PIN13 GPIO_PIN14 GPIO_PIN15 //GPI
[单片机]
STM32CubeMX学习笔记6:按键控制DMA串口发送
MCU:STM32F103ZET6 IDE: MDK-ARM V5 +STM32CubeMX5.0.0 串口调试助手:SSCOM3.2 功能描述:通过KEY_UP按键控制DMA串口1数据的传送。 需要配置DMA,串口USART1,使能按键中断,LED提示灯。 一. 在 Pinout&Configuration---System Core中: 1. 首先设置时钟RCC的HSE(外部高速时钟)为晶振模式:Crystal/ceramic Resonator 2. 设置系统SYS的Debug为Serial Wire: 3. 设置GPIO中的LED管脚。 在MCU管脚图中找到PC0和PC1管脚(查原理图对应
[单片机]
STM32CubeMX<font color='red'>学习</font><font color='red'>笔记</font>6:按键控制DMA串口发送
STM32F10x 学习笔记之独立看门狗IWDG 模块
按照STM32参考手册的说法:“独立看门狗(IWDG)由专用的低速时钟(LSI)驱动,即使主时钟发生故障它也仍然有效。IWDG最适合应用于那些需要看门狗作为一个在主程序之外,能够完全独立工作,并且对时间精度要求较低的场合。WWDG最适合那些要求看门狗在精确计时窗口起作用的应用程序。” 简单的说,STM32 中的IWDG 其核心就是一个12bits的向下递减的计数器,当计数器计数到零时就会触发系统复位。因此,要在每次计数到零之前将其复位到一个初始值。这个初始值就在重装载寄存器(IWDG_RLR)中存放,其默认值为0xFFF,我们也可以将其改为其他值。 计数器的时钟由LSI时钟经过分频后提供,预分频因子由预分频寄存器(IWDG
[单片机]
STM32F10x <font color='red'>学习</font><font color='red'>笔记</font>之独立看门狗IWDG 模块
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved