ARM9启动分析存储器区分和启动流程解析

发布者:qq8174350最新更新时间:2016-06-06 来源: eefocus关键字:ARM9  启动分析  存储器区分  启动流程 手机看文章 扫描二维码
随时随地手机看文章
最近遇到一个大大的问题,其实以前都一直有问题,但是我没有去深究过!主要是我自己想来弄点新东西,打算用J-link烧写ARM9的处理器,如果能够将j-link的强大调试功能也移到arm9上,那将是一件多么美妙的事情啊。就带着这个问题我一直看资料,最开始我是有两块开发板的,具体点说是三块。但是我当初只用了一块的时候,我没发现什么问题。我当时就是按照别人给我的说明书上进行操作的,也没有去理解和分析为什么!但是最近因为有了那个打算,就发现问题了。我在一块板子上用H-JTAG可以进行烧写,在另外一块上也可以,但是都有一个共同点就是,两块板子都是arm9的(分别是S3C2410和S3C2440),同样我在实际应用中还用到了LPC2478.用J-link来调试和烧写ARM7是件很简单的事情。我想我都具备了这么多条件应该很容易就可以用j-link来烧写arm9了吧!实际上是我想错了!我遇到了这个问题好多天了,一直在弄。最后才发现是我没弄清楚流程,下面分享下我对这些处理器的启动流程和代码存储的分析。

首先,理清几个概念。NOR flash:(概念最用我自己的语言概括了)是早期的flash,存储量少,存储速度慢,但是执行速度快,可以在flash上执行。可以用来存储代码和作为SDRAM。NAND flash :是用来做海量存储的,一般用来存储数据,文件系统等,烧写速度快。SDRAM :动态存储器,用来进行数据存储,数据刷新,和代码执行。但是不能存储代码。要理解SDRAM和NOR flash的区别,NOR flash是可以用来做为SDRAM,但是不是SDRAM。

我们开始讨论代码存放的地方了,注意的是我在这里给代码加一个限制,(是固化的程序,区别开linux系统文件和bootlooder,我在这里定义bootlooder为程序而linux文件系统为数据)。代码有很多存放的方式,一、存储在单片机的flash上,像ARM7一类的单片机(LPC2478就带有512k的flash)。二、存放在NOR flash中,就是是SDRAM中(如果是SDRAM的芯片就没法存储了如有的开发板用的是HY57V641620 SDRAM芯片,代码是没法存储的)三、存放在NAND flash中,一般的代码都存放在NAND flash中在。

还需要知道的知识就是,存储器的地址映射,下面我们看一种方式的地址映射。代码存放在NAND flash中,用SDRAM的芯片做为动态存储的例子:如下图:

ARM9启动分析存储器区分和启动流程解析

看到这个图,我们是否发现了理解了一点点启动流程了啊?如果还有疑问让我们再来分析一下S3C2440的存储控制模块,实际就是存储地图。如下图所示:

ARM9启动分析存储器区分和启动流程解析

解释下上图,有多种启动方式的,一种是利用NAND flash启动。一种是不用,不用的方式就是直接用SROM(S就是动态的存储空间,其实就是NOR flash)。重点介绍利用NAND flash启动的流程。

大家看到的是通过M[10]=00的方式设置启动方式为用NAND flash启动的方式,S3C2440内部有一个4K的SRAM。这个是芯片自带的。为了支持NAND flash起动,S3C2410内建了内部的4k的SRAM缓存“Steppingstone”。当起动时,NAND flash最初的4k字节将被读入”Steppingstone”然后开始执行起动代码。通常起动代码会把NAND flash中的内容拷到SDRAM中以便执行主代码。注意boot过程是要设置成autoboot的,是通过硬件来设置的。在复位和上电启动过程都要经过这样的一个启动过程,这是最初一步的启动过程。下面就是在通过bootlooder的代码设置系统时钟和初始化寄存器等一系列的工作,在完成后通过跳转指令跳转到系统引导阶段。完成启动。最近还移植了一个最新的u-boot,支持的东西还是挺多的。对这个整体了解也有了一些加深。

在我理解了这么多了后,后来我就解决了那个问题,我的错误是没认真分析,我一直在用j-link flasher烧写SDRAM,难怪问题一直解决不了!!其实就是没有好好的去总结自己所看到的东西!做产品设计还真的是要脱了几层皮你的东西才能过关!!

关键字:ARM9  启动分析  存储器区分  启动流程 引用地址:ARM9启动分析存储器区分和启动流程解析

上一篇:Arm启动流程解析
下一篇:ARM裸机开发222440中断原理

推荐阅读最新更新时间:2024-03-16 14:56

基于ARM9的道路交通数据采集系统设计
国内外实践经验证明,解决城市交通问题不能单纯依靠修建道路基础设施,而智能交通系统(ITS)是解决交通拥堵、减少交通事故、防止交通污染,提高交通管理水平的最有效的方法和手段。其特点是信息技术使管理者和使用者可同时获得同样的信息。交通参与者在已知路网运行状态条件下可以自主选择和实现交通诱导,对提高交通的机动性、安全性、有序化,通行能力和道路系统的交通效率提供了技术支持。因此,道路交通实时动态信息采集成为ITS最为基础的环节。 信号控制作为城市道路交通管理的主要手段之一,在改善城市交通秩序、减少事故、提高道路利用率等方面有着重要的作用。近年来我国城市交通信号控制发展迅速,目前已有一些城市通过引进国外产品,如英国的SCOOT,澳大利亚的
[单片机]
基于<font color='red'>ARM9</font>的道路交通数据采集系统设计
基于USB接口的ARM9微控制器外部存储器下载工具— MOLY-DO
目前市场上部分ARM系列微控制器没有自带烧写外部存储器的bootloader或者只能通过串口等实现对各种存储器的烧写。鉴于串口速度过慢、产品批量生产等原因,我们可以开发一个通过 USB 接口,对 ARM9微控制器(本文以 LPC3250 为例) 的外部存储器进行读写操作,实现映像文件烧写的 USB 下载工具 — MOLY-DO 。    MOLY-DO 分为两个部分,其一为上位机,即常用的 Windows 应用程序,提供对 LPC3250 的各种操作;其二为下位机,即可独立运行在 LPC3250 上的固件程序,它包括 LPC3250 各种外围设备的驱动程序以及下位机主体 USB Device 子系统。    硬件
[嵌入式]
ARM9协处理器CP15、MCR/MRC指令
在基于ARM的嵌入式应用系统中,存储系统通常是通过系统控制协处理器CP15完成的。CP15包含16个32位的寄存器,其编号为0~15。 访问CP15寄存器的指令 MCR ARM寄存器到协处理器寄存器的数据传送 MRC 协处理器寄存器到ARM寄存器的数据传送 MCR指令和MRC指令只能在处理器模式为系统模式时执行,在用户模式下执行MCR指令和MRC指令将会触发未定义指令的异常中断。 MCR指令 MCR指令将ARM处理器的寄存器中的数据传送到协处理器寄存器中。如果协处理器不能成功地执行该操作,将产生未定义的指令异常中断。 指令语法格式 MCR{ cond } p , opcode_1 , Rd , CRn , CRm
[单片机]
<font color='red'>ARM9</font>协处理器CP15、MCR/MRC指令
ARM9中LDR SP , = 4*1024 / LDR SP , = 0x34000000 的分析
reset: ldr sp, = 4*1024 @ SP=4096,设置栈指针,后面会调用C函数,调用C前需要设好栈 bl disable_watch_dog @ 关闭WATCHDOG,否则CPU会不断复位 bl clock_init @ 设置MPLL,改变FCLK、HCLK、PCLK bl memsetup @ 设置存储控制器以使用SDRAM bl copy_steppingstone_to_sdram @ 复制代码到SDRAM中 ldr pc, =on_sdram @ 跳到SDRAM中继续执行 on_sdram: msr
[单片机]
基于ARM9处理器的嵌入式Boa服务器的网络远程监测实现方案
随着高科技技术逐渐融入到传统的农副业,温室培养已成为生产反季节作物的方式。介绍了基于S3C2410处理器的温室监测控制系统的设计,并设计了一种基于ARM9处理器的嵌入式Boa服务器的网络远程监测实现方案,用户通过以太网对温室内的环境进行监测和一些设备的控制,提高远端机器的安全可靠性。 随着经济的快速发展和科技的进步,人们的生活水平不断提高,对生活质量的要求越来越高,对春茶的需求也大大增加。使得春茶供不应求,从而提出了温室培养茶树,以缓解人们对春茶的需求。 随着Internet技术的兴起,在嵌入式设备的管理与交互中,基于Web方式的应用成为目前的主流,这种程序结构也就是大家非常熟悉的B/S结构,即在嵌入式设备上运行一个支持脚
[单片机]
基于<font color='red'>ARM9</font>处理器的嵌入式Boa服务器的网络远程监测实现方案
cortex-a8 uboot系列:第十一章 uboot源码分析 uboot如何启动内核1
一、Uboot和内核到底是什么(从系统启动角度看) 1.Uboot Uboot的本质是一个复杂的裸机程序。 2.内核 操作系统内核本身也是一个裸机程序,和uboot、其他裸机程序并没有什么本质区别。 但是和其他裸机程序的区别:操作系统运行起来后在软件上分为内核层和应用层,分层后两层的权限不同,内核访问和设备操作的管理上更加精细(内核可以随意访问各种硬件,而应用程序只能被限制的访问硬件和内存地址)。 Uboot的镜像是u-boot.bin,linux系统镜像是zImage,这两个文件都是两个裸机程序bin文件镜像。 二、SD卡中的分区 一个完整的软件+硬件的嵌入式系统,未上电时,bootloader、kernel、roo
[单片机]
cortex-a8 uboot系列:第十一章 uboot源码<font color='red'>分析</font> uboot如何<font color='red'>启动</font>内核1
测试ARM9的外部中断功能
/******************************************* * 文件名称:EINT.c * 实现功能:测试外部中断的操作 * 作者:jianqi * 版本:1.0 **********************************************/ #include 2440addr.h //包含2440相关寄存器的设置 #include def.h #define LED1 5 #define LED2 6 #define LED3 7 #define LED4 8 #define KEY1 1 #define KEY2 4 #def
[单片机]
基于ARM9的嵌入式网关的研究
   摘 要: 介绍了一种基于ARM9的嵌入式以太网的设计方案。基于ARM内核微处理器S3C2410的功能特点及其外扩组成部分,分析了以太网控制器芯片RTL8019AS的性能以及与S3C2410的接口。在软件设计上,分析了BootLoader的作用,介绍了Linux的移植,并给出了通信程序的流程图,实现了嵌入式以太网的数据传输。    关键词: 嵌入式系统;网关;ARM;移植    引 言   无所不在的网络给网络接入设备带来了巨大的发展机遇。而随着网络接入市场的迅速增长,嵌入式网络接入开始成为嵌入式系统技术中最令人关注的一个领域。在嵌入式网络技术的推动下将会形成这样一个局面:在网络上传输的信息中,将有70%的信息来自嵌入式
[嵌入式]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved