NXP LPC ARM 必须知道的知识.docxVIP

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

NXP LPC ARM 必须知道的知识?寄存器和工作模式:7种工作模式:fiq/irq/abt/und/sys/usr/svc。通过MSR cpsr_c,#0xdx切换。上电时进入svc模式。svc和usr的区别是:svc可以通过MSR cpsr_c,#0xdx自由切换到其它任何模式,但是usr不可以。各模式下有自己的堆栈。要在程序启动后依次进入各个模式分别设置自己的堆栈,最后进入usr模式。好多个寄存器:r0 - r7 (a1 - a4 / v1 - v4),r15(pc) 在所有模式下都可见。r8(v5),r9(sb,v6),r10(sl,v7),r11(fp,v8),r12(ip) fiq模式下有一组独立的映射。r13(sp)/R14(lr) 在usr和sys模式下用同一组映射,其它模式下各有自己的映射。cpsr在所有模式下可见。spsr在usr和sys模式下没有映射。cpsr是一个最特殊的寄存器,结构如下:31 30 29 28 27~8 7 6 5 4 3 2 1 0N Z C V 保留 I F T M4 M3 M2 M1 M0其中,N/Z/C/V分别为负/零/进位/溢出的标志位。在所有模式下都可以进行读操作。I/F为中断/快中断禁止位,M4~M0是工作模式控制位,它们在USR模式下都不可操作。T为Thum/ARM模式位,在所有模式下不可直接操作,否则会天下大乱,预取址错误中断可以捕获这种乱局。只能用BX指令进行Thum/ARM的状态切换。总之,USR模式很不方便。在该模式下只可以通过软中断控制I/F位。cpsr只能够用MSR/MRS指令来操作。各工作模式下的spsr: 在由突发事件引起的模式切换发生时,新模式的spsr自动保存cpsr的值,以备该模式退出时还原cpsr。在程序的控制下进入某模式时,cpsr不会自动保存到相应的spsr。Prefetch Abort和Data Abort模式:Prefetch Abort通常会发生在自修改指令之后。而Data Abort发生于向无效内存中取操作数时,通常是数据指针越过边界了。如果在scatter文件中不指定边界,若编译时内存分配超过了实际物理内存,一定会有Data Abort或Prefetch Abort发生。对特殊功能寄存器的操作:通常都有两个寄存器操作同一个特殊功能。一个是负责置位,另一个是负责清除。如VICIntEnable和VICIntEnClr, IOxSET和IOxCLR等。这样就使得单独操作某一位或某几位变得非常容易,如:IO0SET = 0IO0CLR = 0,只变动特定的位,而不影响其他位。当然也可以用IO0PIN = 0接设置所有的位。--------------------------------------------------------------------------------存储器映射:0-1G(0x0000,0000 - 0x3fff,ffff): 片内Flash.1-2G(0x4000,0000 - 0x7fff,ffff): 片内RAM.2-3.5G(0x8000,0000 - 0xbfff,ffff - 0xdfff,ffff): 片外存储器。3.5G - 3.75G(0xe000,0000 - 0xefff,ffff): VPB外设。3.75G - 4G(0xf000,0000 - 0xffff,ffff): AHB外设。虽然ARM7的寻址空间为4G,但是LPC2200系列只提供A0~A23总共16M的地址。片选信号CS0 - CS3是A24和A25的译码输出,将片外存储区0x8000,0000 - 0x83ff,ffff划分为bank0 - bank3,共16M*4=64M. 这4个bank可以被分别配置为8/16/32位总线宽度。复位时,bank0的总线宽度由Boot1:0引脚决定, bank1为32位,bank2为16位,bank3为8位。字节定位信号(BLS0 - BLS3)协调总线宽度和外存芯片数据线宽度。当Memory由“字节宽度器件”(如62256)或者“未按照字节区分的多字节器件”组成时,应将RBLE设置为0。此时,读访问时EMC将BLS0~BLS3拉高。当Memory由“含有字节选择输入的16位或32位器件”组成时,应将RBLE设置为1。此时,读访问时EMC将BLS0~BLS3拉低。所以,当Memory由62256组成时,由于不需要“片内字节选择输入”,故令RBLE = 0,则BLS0~BLS3只会与nWR同步,可以代替nWR使用。但是,当Memory由IS61LV25616AL组成时,由于该芯片有nLB和nUB控制低/高8位的输入,故令RBLE

文档评论(0)

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

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

1亿VIP精品文档

相关文档