2019-04-17

【小记】

  APP的IAR工程中的中断向量表偏移是在系统库中的 __iar_program_start 处实现的

  启动代码 stm32f769xx.s

 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; Default interrupt handlers.
;;
THUMB
PUBWEAK Reset_Handler
SECTION .text:CODE:NOROOT:REORDER()
Reset_Handler LDR R0, =SystemInit
BLX R0
LDR R0, =__iar_program_start
BX R0 PUBWEAK NMI_Handler
SECTION .text:CODE:NOROOT:REORDER()

  经调试看到 __iar_program_start 的反汇编

 Reset_Handler:
0x80385d0: 0x4801 LDR.N R0, [PC, #0x4] ; SystemInit
BLX R0
0x80385d2: 0x4780 BLX R0
LDR R0, =__iar_program_start
0x80385d4: 0x4801 LDR.N R0, [PC, #0x4] ; __iar_program_start
BX R0
0x80385d6: 0x4700 BX R0
SECTION .text:CODE:NOROOT:REORDER()
0x80385d8: 0x0802586d DC32 SystemInit
SECTION .text:CODE:NOROOT:REORDER()
0x80385dc: 0x080385f9 DC32 __iar_program_start
0x80385e0: 0x70636573 DC32 0x70636573 ()
0x80385e4: 0x72363532 DC32 0x72363532 ()
0x80385e8: 0x00000031 DC32 0x31 ()
0x80385ec: 0x72617453 DC32 0x72617453 ()
0x80385f0: 0x00000074 DC32 0x74 ()
0x80385f4: 0x00544f49 DC32 0x544f49 ()
__iar_program_start:
0x80385f8: 0xf3af 0x8000 NOP.W
0x80385fc: 0xf7ff 0xff90 BL __iar_init_vfp ; 0x8038520
0x8038600: 0xf7ff 0xffb0 BL ?main ; 0x8038564
APBPrescTable:
0x8038604: 0x00000000 DC32 0x0 ()
0x8038608: 0x04030201 DC32 0x4030201 ()
0x803860c: 0x002e0000 DC32 0x2e0000 ()
0x8038610: 0x0043 DC16 ; 'C.'
B WWDG_IRQHandler
 __iar_init_vfp:
0x8038520: 0xf64e 0x5188 MOVW R1, # ; 0xed88
0x8038524: 0xf2ce 0x0100 MOVT R1, # ; 0xe000
0x8038528: 0x6808 LDR R0, [R1]
0x803852a: 0xf440 0x0070 ORR.W R0, R0, # ; 0xf00000
0x803852e: 0x6008 STR R0, [R1]
0x8038530: 0xf3bf 0x8f4f DSB
0x8038534: 0xf3bf 0x8f6f ISB
0x8038538: 0xf04f 0x7000 MOV.W R0, # ; 0x2000000
0x803853c: 0xeee1 0x0a10 VMSR FPSCR, R0
0x8038540: 0x4770 BX LR
0x8038542: 0x0000 MOVS R0, R0
Region$$Table$$Base:
0x8038544: 0xfffdb3e7 DC32 0xfffdb3e7 (-)
0x8038548: 0x000220dc DC32 0x220dc ()
0x803854c: 0x20000204 DC32 xStart
0x8038550: 0x00000000 DC32 0x0 ()
0x8038554: 0xfffdb2b7 DC32 0xfffdb2b7 (-)
0x8038558: 0x00000262 DC32 0x262 ()
0x803855c: 0x000001a2 DC32 0x1a2 ()
0x8038560: 0x20000000 DC32 global_hooks
?main:
Region$$Table$$Limit:
__cmain:
0x8038564: 0xf000 0xf80d BL __low_level_init ; 0x8038582
0x8038568: 0x2800 CMP R0, #
0x803856a: 0xd001 BEQ.N _call_main ; 0x8038570
0x803856c: 0xf7ff 0xffb2 BL __iar_data_init3 ; 0x80384d4

学习STM32F769DK-OTA例程之APP中断向量表重映射的更多相关文章

  1. 痞子衡嵌入式:利用i.MXRT1060,1010上新增的FlexSPI地址重映射(Remap)功能可安全OTA

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是i.MXRT部分型号上新增的FlexSPI Remap功能. OTA升级设计几乎是每个量产客户都绕不开的话题,产品发布后免不了要做固件( ...

  2. STM32F0系列MCU中断向量表的重映射

    最近使用了一款Cortex-M0内核的芯片STM32F030CC,发现它中断向量表的重映射方法与STM32F10x系列的有所区别,在这里记录与分享一下. 由于需要通过IAP进行固件升级,所以芯片的FL ...

  3. MapServer Tutorial——MapServer7.2.1教程学习——第一节用例实践:Example1.6 Defining Projections and Extents

    MapServer Tutorial——MapServer7.2.1教程学习——第一节用例实践:Example1.6 Defining Projections and Extents 一.前言 当在m ...

  4. MapServer Tutorial——MapServer7.2.1教程学习——第一节用例实践:Example1.5 Adding a raster layer

    MapServer Tutorial——MapServer7.2.1教程学习——第一节用例实践:Example1.5 Adding a  raster layer 一.前言 MapServer不仅支持 ...

  5. 逆向工程之App脱壳

    http://www.cnblogs.com/ludashi/p/5725743.html iOS逆向工程之App脱壳 本篇博客以微信为例,给微信脱壳."砸壳"在iOS逆向工程中是 ...

  6. MapServer Tutorial——MapServer7.2.1教程学习——第一节用例实践:Example1.7 Adding a wms layer

    MapServer Tutorial——MapServer7.2.1教程学习——第一节用例实践:Example1.7 Adding a wms layer 前言 Add OGC WMS Layers( ...

  7. MapServer Tutorial——MapServer7.2.1教程学习——第一节用例实践:Example 1.4 Labeling the Map

    MapServer Tutorial——MapServer7.2.1教程学习——第一节用例实践:Example 1.4 Labeling the Map 一.前言 MapServer拥有非常灵活的标签 ...

  8. MapServer Tutorial——MapServer7.2.1教程学习——第一节用例实践:Example1.3 Displaying Classes in a Layer

    MapServer Tutorial——MapServer7.2.1教程学习——第一节用例实践:Example1.3 Displaying Classes in a Layer 一.前言 关于第一节的 ...

  9. MapServer Tutorial——MapServer7.2.1教程学习——第一节用例实践:Example1.2 Static Map with Two Layers

    MapServer Tutorial——MapServer7.2.1教程学习——第一节用例实践:Example1.2 Static Map with Two Layers 一.前言 上一篇博客< ...

随机推荐

  1. EF基于方法的查询语法

    实体框架(Entity Framework )是 ADO.NET 中的一套支持开发面向数据的软件应用程序的技术. LINQ to Entities 提供语言集成查询 (LINQ) 支持,它允许开发人员 ...

  2. jQuery里面的DOM操作(查找,创建,添加,删除节点)

    一:创建元素节点(添加) 创建元素节点并且把节点作为元素的子节点添加到DOM树上 append(): 在元素下添加元素 用法:$("id").append("定义的节点& ...

  3. shiro缓存管理

    一. 概述 Shiro作为一个开源的权限框架,其组件化的设计思想使得开发者可以根据具体业务场景灵活地实现权限管理方案,权限粒度的控制非常方便.首先,我们来看看Shiro框架的架构图:从上图我们可以很清 ...

  4. Error fetching https://gems.ruby-china.org/: bad response Not Found 404 (https://gems.ruby-china.org/specs.4.8.gz) 报错解决办法

    执行换源操作 gem source -a https://gems.ruby-china.org/ 时报错: Error fetching https://gems.ruby-china.org/: ...

  5. webstorm 2018.2.3 license server

    推荐地址:http://idea.lanyus.com/ 使用前请将“0.0.0.0 account.jetbrains.com”添加到hosts文件中

  6. 【Android】用Cubism 2制作自己的Live2D——初见!

    前言- 现在很多手游的UI上都不约而同的放置一个Live2D模型,这仿佛已经成为了一个业界的潜规则之类的东西.作为一名深受手机游戏毒害的90后,我也没有忘记小时候励志当一名技术宅的梦想,也想试试自己做 ...

  7. Android常用的四种布局(或者说是五种)

    一.FrameLayout(帧布局): 显示特点:所有的子控件默认显示在FrameLayout的左上角,会重叠在一起显示. 常用属性: layout_gravity(设置给子控件,调整控件在容器内的重 ...

  8. C,java,Python,这些名字背后的江湖!

    还记得高中的时候,有一次我们计算机老师问我们班要不要去参加市里面的C语言比赛,当时还小的我对编程世界压根就一片空白.那时候我就想啊,为什么是C语言,那么A语言,B语言或者是D语言又是什么呢? 后来就到 ...

  9. 将CSV文件写入MySQL

    先打开CSV文件查看第一行有哪些字段,然后新建数据库,新建表.(若字段内容很多建议类型text,如果设成char后续会报错) 命令如下: load data infile '路径XXXX.csv' i ...

  10. github在README.md中插入图片

    例子 ![image](https://raw.githubusercontent.com/sunday123/Pendant/master/1.PNG)