IAP及其应用以LPC为例讲述IAP功能在实际使用过程(可编辑).docVIP

IAP及其应用以LPC为例讲述IAP功能在实际使用过程(可编辑).doc

  1. 1、本文档共29页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
IAP及其应用以LPC为例讲述IAP功能在实际使用过程(可编辑)

IAP及其应用以LPC为例讲述IAP功能在实际使用过程 2.0GB 0x7FFF FFFF 8 K B Boot Block 重映射 0x7FFF E000 地址重映射 片内静态RAM 1.0GB 0x4000 0000 0x0007 FFFF 8 K B Boot Block 0x0007 E000 片内Flash 0x0000 003F 异常向量表 0.0GB 0x0000 0000? 在 系 统 编 程 (ISP )在系统编程是通过Boot装载程序和UART0对 片内Flash存储器进行擦除/编程的方法。 CPU运行 控制器 RAM Boot代码 A AR RM M7 7 JTAG 处 处理 理器 器核 核 通过ISP对 FLASH 外设 Flash编程 Boot U UA AR RT0 T0 Block 串口? 在 应 用 编 程 (IAP )在应用编程是用户的应用代码对片内Flash存 储器进行擦除/编程的方法。 通过各种途径 CPU运行 控制器 获取用户代码 Boot代码 RAM A AR RM M7 7 JTAG 处 处理 理器 器核 核 通过IAP对 FLASH 外设 Flash编程 Boot UART0 Block? 在 应 用 编 程 (IAP )IAP程序是Thumb代码,位于地址0x7FFF FFF0。在ARM系统中实现状态转换的指令是“BXAddr”,目标地址Addr的最低位(bit0)仅来确定 最终状态,实际的“目的地址 Addr 0xFFFF FFFE”。在调用IAP函数时,不仅要实现跳转而且还 要完成状态转换。 注意:此为示意代码, Bit01使处 实际编程中请用 理器切换到 LDR R0,0x7FFFFFF1 ARM 代 码 Thumb 代 码 Thumb状态 BXR0 ARM状 代码替代。 态字对齐 0x7FFF FFF0 IAP 程 序 入 口 …… 0x0000 4000 0x7FFF FFF2 …… BX 0x7FFF FFF1 0x0000 4004 Thumb状 0x7FFF FFF1 0x7FFF FFFE …… 态半字对齐? 在 应 用 编 程 (IAP )在调用IAP函数时,寄存器R0中的字指针指向 存储器(RAM)中包含的命令代码和参数,它作 为函数的入口参数,函数执行的返回值保存在寄 存器R1中的字指针指向存储器(RAM)中,包含 状态代码和结果。 结果表最大 数目为2 ARM 寄 存 器 命 令 参 数 表 命 令 结 果 表 R0 R0 命 令 代 码 状 态 代 码 命 令 代 码 状 态 代 码 R1 R1 参 数1 结 果1 参 数1 结 果1 …… …… …… …… 参 数n 结 果n 参 数n 结 果n 参数表最大 数目为5? 在 应 用 编 程 (IAP ) #define IAP_LOCATION 0x7FFFFFF1 IAP 程 序 入 口 #define IAP_LOCATION 0x7FFFFFF1 typedef void *IAP unsigned int [ ] , unsigned int [ ]; typedef void *IAP unsigned int [ ] , unsigned int [ ]; …… …… 定 义 函 数 类 型 指 针 IAP iap_entry; IAP iap_entry; 定 义 函 数 指 针 unsigned longcommand[5]; IAP 命 令 表 unsigned longcommand[5]; unsigned longresult[2]; IAP 返 回 值 unsigned longresult[2]; iap_entry IAP IAP_LOCATION; iap_entry IAP IAP_LOCATION; 设 置 函 数 指 针 iap_entry command , result; iap_entry command , result; 调 用IAP执行跳转指令时,如果“目的地址”的bit0 1, 表示处理器需要进行状态切换,由ARM状态切换 到Thumb状态,Thumb代码是“半字”对齐格式,即 地址 0xFFFF FFFE。因此,虽然此处跳转目的地 址 0x7FFFFFF1,实际上跳转到地址0x7FFFFFF0, 同时进行切换到Thumb状态。在 应 用 编 程 (IAP )由于IAP是Thumb代码,因此,需要在ADS编 译选项中,选中ARM/Thumb Interworking选型,这 样ARM和Thumb指令就可以混合编译。在 应 用 编 程 (IAP )IAP程序会使用片内RAM空间的顶部32个字节,

文档评论(0)

ligennv1314 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档