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. 【学习笔记】分布式Tensorflow

    目录 分布式原理 单机多卡 多机多卡(分布式) 分布式的架构 节点之间的关系 分布式的模式 数据并行 同步更新和异步更新 分布式API 分布式案例 Tensorflow的一个特色就是分布式计算.分布式 ...

  2. vue学习记录③(路由)

    上篇文章我们用vue-cli脚手架工具做了个简单的hello world页面,但是我们破坏了原来的流程,而正常的访问页面应该是通过路由来实现的. 那么什么是路由呢? 路由就是通过不同的url来访问不同 ...

  3. http header Content-Type之常用三种

    Content-Type 用于指示资源的MIME类型 在响应头中,告诉客户端实际返回内容的类型 在请求头中,告诉服务器实际发送的数据类型 句法: Content-Type: text/html; ch ...

  4. Hadoop综合大作业

    Hadoop综合大作业 要求: 用Hive对爬虫大作业产生的文本文件(或者英文词频统计下载的英文长篇小说)词频统计. 用Hive对爬虫大作业产生的csv文件进行数据分析 1. 用Hive对爬虫大作业产 ...

  5. DVWA 黑客攻防演练(十)反射型 XSS 攻击 Reflected Cross Site Scripting

    XSS (Cross-site scripting) 攻击,为和 CSS 有所区分,所以叫 XSS.又是一种防不胜防的攻击,应该算是一种 "HTML注入攻击",原本开发者想的是显示 ...

  6. MySQL随笔(1)

    mysql是一种关系型数据库,和SQL ,oracle一样是较为常用的关系型数据库,属于oracle旗下的产品,在web应用方面,MySQL是最好的RDBMS(relational database ...

  7. C语言货架01

    教材: < C程序设计(第四版) >  谭浩强著    清华大学出版社 教材目录 第1章     程序设计和C语言 第2章     算法——程序的灵魂 第3章     最简单的C程序设计— ...

  8. c#面试题汇总(1)

    c#面试题汇总 From: https://www.cnblogs.com/suzhiyong1988/p/5069385.html   下面的参考解答只是帮助大家理解,不用背,面试题.笔试题千变万化 ...

  9. js 学习之路10:try异常处理和第一个js小程序

    try 语句测试代码块的错误. catch 语句处理错误. throw 语句创建自定义错误. 1. try/catch语句 catch语句用来捕获try代码块中的错误,并执行自定义的语句来处理它. 语 ...

  10. rank() partition by 排名次

    rank()排名 partition by分组与group by相比各有优势,在这里就省略100字.... 以下为案例: create table student -- 学生表(sid integer ...