学习STM32F769DK-OTA例程之APP中断向量表重映射
2019-04-17
【小记】
APP的IAR工程中的中断向量表偏移是在系统库中的 __iar_program_start 处实现的
启动代码 stm32f769xx.s
1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 2 ;; 3 ;; Default interrupt handlers. 4 ;; 5 THUMB 6 PUBWEAK Reset_Handler 7 SECTION .text:CODE:NOROOT:REORDER(2) 8 Reset_Handler 9 10 LDR R0, =SystemInit 11 BLX R0 12 LDR R0, =__iar_program_start 13 BX R0 14 15 PUBWEAK NMI_Handler 16 SECTION .text:CODE:NOROOT:REORDER(1)
经调试看到 __iar_program_start 的反汇编
1 Reset_Handler: 2 0x80385d0: 0x4801 LDR.N R0, [PC, #0x4] ; SystemInit 3 BLX R0 4 0x80385d2: 0x4780 BLX R0 5 LDR R0, =__iar_program_start 6 0x80385d4: 0x4801 LDR.N R0, [PC, #0x4] ; __iar_program_start 7 BX R0 8 0x80385d6: 0x4700 BX R0 9 SECTION .text:CODE:NOROOT:REORDER(1) 10 0x80385d8: 0x0802586d DC32 SystemInit 11 SECTION .text:CODE:NOROOT:REORDER(1) 12 0x80385dc: 0x080385f9 DC32 __iar_program_start 13 0x80385e0: 0x70636573 DC32 0x70636573 (1885562227) 14 0x80385e4: 0x72363532 DC32 0x72363532 (1916155186) 15 0x80385e8: 0x00000031 DC32 0x31 (49) 16 0x80385ec: 0x72617453 DC32 0x72617453 (1918989395) 17 0x80385f0: 0x00000074 DC32 0x74 (116) 18 0x80385f4: 0x00544f49 DC32 0x544f49 (5525321) 19 __iar_program_start: 20 0x80385f8: 0xf3af 0x8000 NOP.W 21 0x80385fc: 0xf7ff 0xff90 BL __iar_init_vfp ; 0x8038520 22 0x8038600: 0xf7ff 0xffb0 BL ?main ; 0x8038564 23 APBPrescTable: 24 0x8038604: 0x00000000 DC32 0x0 (0) 25 0x8038608: 0x04030201 DC32 0x4030201 (67305985) 26 0x803860c: 0x002e0000 DC32 0x2e0000 (3014656) 27 0x8038610: 0x0043 DC16 67 ; 'C.' 28 B WWDG_IRQHandler
1 __iar_init_vfp: 2 0x8038520: 0xf64e 0x5188 MOVW R1, #60808 ; 0xed88 3 0x8038524: 0xf2ce 0x0100 MOVT R1, #57344 ; 0xe000 4 0x8038528: 0x6808 LDR R0, [R1] 5 0x803852a: 0xf440 0x0070 ORR.W R0, R0, #15728640 ; 0xf00000 6 0x803852e: 0x6008 STR R0, [R1] 7 0x8038530: 0xf3bf 0x8f4f DSB 8 0x8038534: 0xf3bf 0x8f6f ISB 9 0x8038538: 0xf04f 0x7000 MOV.W R0, #33554432 ; 0x2000000 10 0x803853c: 0xeee1 0x0a10 VMSR FPSCR, R0 11 0x8038540: 0x4770 BX LR 12 0x8038542: 0x0000 MOVS R0, R0 13 Region$$Table$$Base: 14 0x8038544: 0xfffdb3e7 DC32 0xfffdb3e7 (-150553) 15 0x8038548: 0x000220dc DC32 0x220dc (139484) 16 0x803854c: 0x20000204 DC32 xStart 17 0x8038550: 0x00000000 DC32 0x0 (0) 18 0x8038554: 0xfffdb2b7 DC32 0xfffdb2b7 (-150857) 19 0x8038558: 0x00000262 DC32 0x262 (610) 20 0x803855c: 0x000001a2 DC32 0x1a2 (418) 21 0x8038560: 0x20000000 DC32 global_hooks 22 ?main: 23 Region$$Table$$Limit: 24 __cmain: 25 0x8038564: 0xf000 0xf80d BL __low_level_init ; 0x8038582 26 0x8038568: 0x2800 CMP R0, #0 27 0x803856a: 0xd001 BEQ.N _call_main ; 0x8038570 28 0x803856c: 0xf7ff 0xffb2 BL __iar_data_init3 ; 0x80384d4
转载于:https://www.cnblogs.com/skullboyer/p/10724151.html
学习STM32F769DK-OTA例程之APP中断向量表重映射相关推荐
- STM32F0芯片IAP实现之中断向量表重映射(没有中断向量表偏移寄存器SCB->VTOR的应对方法)
问题背景 项目使用STM32F030,需要通过IAP进行固件升级,在FLASH里面要烧录两份代码:一个Boot loader,一个用户应用程序APP.在开发应用程序APP时,外设中断不能正确响应进到对 ...
- OpenCV学习笔记(十四):重映射:remap( )
OpenCV学习笔记(十四):重映射:remap( ) 图像的坐标映射是通过原图像与目标图像之间建立一种映射关系,这种映射关系有两种,一种是计算原图像任意像素在映射后图像的坐标位置,另一种是计算变换后 ...
- 《OpenCV3编程入门》学习笔记7 图像变换(三 )重映射
7.3 重映射 7.3.1 概念 1.重映射是把图像中某位置的像素放置到另一图片指定位置的过程,通过重映射表达像素位置: g(x,y)=f(h(x,y)) ...
- 痞子衡嵌入式:利用i.MXRT1060,1010上新增的FlexSPI地址重映射(Remap)功能可安全OTA...
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是i.MXRT部分型号上新增的FlexSPI Remap功能. OTA升级设计几乎是每个量产客户都绕不开的话题,产品发布后免不了要做固件( ...
- for根据ID去重_汽车ECU参数标定之配置Overlay RAM实现Qorivva MPC57xx系列MCU参数在线标定和代码重映射原理和方法详解...
内容提要 引言 1. MPC5744P的Overlay RAM工作原理介绍 2 MPC5744P的Flash Overlay配置详解 2.1 平台Flash标定区域描述字寄存器配置字0--PFLASH ...
- Pr 时间重映射卡点
哈喽,各位小伙伴!今天我们来学习一下如何通过用Pr时间重映射做出卡点的效果~ 卡点音乐 一首适合卡点(群青为例)的音乐可以帮助我们更好的掌握视频的节奏,卡点可以采用手动卡点,方法可以通过在峰值最高处标 ...
- MapServer Tutorial——MapServer7.2.1教程学习——第一节用例实践:Example1.5 Adding a raster layer...
MapServer Tutorial--MapServer7.2.1教程学习--第一节用例实践:Example1.5 Adding a raster layer 一.前言 MapServer不仅支持 ...
- [OpenCV] cv.remap() 重映射学习笔记/map1 map2易混点
文章目录 一.背景 二.Notes (一)更新几个小例子方面理解remap 1. 利用remap 进行 copy 2.进行翻转 学习remap的时候发现map1和map2的参数跟我的直观理解略有差别, ...
- 微信小程序学习:(二)app.js及index.js详解
微信小程序学习:(二)app.js及index.js详解 项目地址:https://github.com/leoricding/- 在用ide创建小程序项目时,系统默认为我们创建了一个hellowor ...
- stm32学习日记--重映射
目录 前言 重映射 操作方法 代码 总结 前言 今天学习了重映射,故输出一篇学习日记去增强理解. 重映射 优点 1:把一个管脚的功能转移到另一个管脚上面,布线更简单. 优点 2:无缘无故增加了功能的数 ...
最新文章
- mysql-mybatis 8.0版本配置====解决could not create connection to database server.
- ASP.NET WebApi OWIN 实现 OAuth 2.0
- numpy库中的extend()函数使用
- Citrix WebInterface 配置向导
- SQL Server Management Studio清除历史登陆记录
- Java快速入门学习笔记3 | Java语言中的表达式与操作符
- php mysql_fetch_array 不要0_1_php – mysql_fetch_array不适用于1行查询结果
- lwip netbuf_ref: invalid buf“
- JavaSE: SuppressWarnings[转]
- 扫描枪取消回车二维码_如何使条码扫描枪录入完不自动回车呢-百度经验
- 汇编语言:协处理器浮点指令:FILD
- C语言计算抛硬币问题
- web应用防火墙的部署方式
- Java算法_优先队列和PriorityQueue——HDU 1873:看病要排队
- 同事间一些搞笑的事情
- Charles4.6.2版本手机抓包设置,抓包失败的解决方法详解
- 清理android桌面
- opencv中cvtcolor()函数用法总结(07)
- 1391 B(a).Fix You(规律+构造)
- 更新后的Hbuilder X 报错 error: cannot find module ‘open‘
热门文章
- “IT男等级”对照表|找找你在哪?
- R语言空间插值的几种方法及案例应用
- bzoj3714 [PA2014]Kuglarz
- JavaSE_集合_Deque
- sql server 日期时间操作
- 【Cocos2d游戏开发之八】开启高清(960*640)模式问题与解答、图片适配以及设置iphone横竖屏...
- 代码生成工具系列-----代码生成工具(CodeEasy)介绍
- 从输入URL到页面加载的全过程
- 输错密码?这个 sudo 会“嘲讽”你
- 绝对经典的滑轮新闻显示(javascript+css)