ARM启动过程详解.docVIP

  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文档。上传文档
查看更多
ARM启动过程详解 时间 : 2008-11-25 作者:佚名 编辑:辉辉 点击: 4183 [ 评论 ] - - 前言:本人因工作需要,首次接触到了ARM单片机,但因无人指导,走了不少弯路。下面这些笔记是我在一个多月的学习过程中总结的一点心得(可能比较乱,工作忙,没时间整理,各位朋友莫怪!),现在发到网上,与各位网友共享,希望对大家有点小小的帮助。本人购买的是上海勤研电子提供的ARM实验板,使用三星的S3C44B0X芯片,我在学习过程写的一些程序也参考了他们随板提供的一些源代码,特此致谢! 关于ARM和嵌入式我仍是个新手,下面的东东有些可能是错的。因此仅供参考!!并希望网友给予指正。也欢迎各位网友来信共同交流。 系统初始化流程如下: 禁止看门狗——》在中断控制器中屏蔽所有中断——》系统时钟设置——》初始化端口——》DMA设置——》cashe和总线设置——》存储器设置,初始化SDRAM——》初始化堆栈——》设置IRQ和FIQ的入口——》地址重映射 通常系统初始化有两个阶段组成,分别为汇编和C写成。汇编应尽量简单一些,把更多的任务交给C来做,这样可增加整个程序的可读性和灵活性。必须由汇编来完成的任务有:异常中断向量表的设置、IRQ向量表(向量模式)或ISR初始化(非向量模式)、二级ISR地址表的定义、Flash和SDRAM的设置(否则系统无法加载代码)、堆栈设置和模式切换、拷贝RW和ZI代码、设置系统时钟等。而端口初始化、cashe和总线的设置、DMA配置以及其它控制器如LCD、UART、SIO、IP等可以在C中第二阶段初始化程序完成,另外也可以继续更改时钟或存储器配置等。下面是几个关键步骤配置的注意事项。 看门狗设置 watch dog即可以作为普通的timer以产生周期性的中断,也可以周期性的产生reset信号(如果每隔一定时间不被清除的话),以防治程序跑飞。 系统时钟的初始化: 至少设置三个寄存器:LOCKTIME,PLLCON,LOCKCON。 LOCKTIME,地址0x01D8000C。用于指定PLL的初始化时间,在PLL初始化时,系统时钟为晶振输入或外部时钟直接提供,即MCLK=Fin;初始化完成后,切换,MCLK=Fout。初始值为0xfff=4095个输入时钟周期。一般将其设为初始值。 PLLCON,,地址0x01D80000。设置MDIV,PDIV,SDIV三个值,用于确定Fout和Fin的频率分配比值:Fout = (m * Fin) / (p * 2s),其中 m = (MDIV + 8), p = (PDIV + 2), s = SDIV 典型的几个值如下: No.FinFoutMDIVPDIVSDIV 110Mhz40Mhz0x480x30x2 210500x2a0x30x1 310600x340x30x1 44600x340x00x1 53600x480x00x1 610750x3a0x30x1 CLKCON,地址0x01D80004。用于设置是否向外设提供时钟,一般设为默认值0x7ff8,即所有外设提供时钟。 存储器初始化(尤其是SDRAM): ARM7TDMI的地址映射如下: (在ARM体制中,所有的各种内、外存储器,外设,寄存器,cashe,write buffer,通用IO口等全都采用统一编址) 注:00x100047f0为内部cashe/sram 及其Tag和LRU的地址。 BANK0~BANK5为ROM/SRAM/FLASH, BANK6~BANK7为SDRAM/ROM/SRAM/FLASH 要设置的寄存器如下: BWSCON:BANK0~BANK7的UB/LB使能、Wait信号使能、数据线宽度; BANKCON0~BANKCON5:各bank(flash或Sram)的访问时序控制。flash或Sram主要参数如下所示: Tacs [14:13] Address set-up before nGCSn Tcos [12:11] Chip selection set-up nOE Tacc [10:8] Access cycle Toch [7:6] Chip selection hold on nOE Tcah [5:4] Address holding time after nGCSn Tpac [3:2] Page mode access cycle @ Page mode PMC [1:0] Page mode configuration 不同厂家、性能、速度的器件设置有所不同。 BANKCON6~BANKCON7:主要用于SDRAM,当然也可以是Flash或SRAM。SDRAM的时序

文档评论(0)

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

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

1亿VIP精品文档

相关文档