S3C2440的启动过程

合集下载

S3C2440开发板上实现按键点亮LED驱动开发的详细过程01

S3C2440开发板上实现按键点亮LED驱动开发的详细过程01

文章记录了作者在S3C2440开发板上实现按键点亮LED驱动开发的详细过程,还记录了一些容易出现的错误,以及怎么解决这些错误。

一、驱动开发流程Linux驱动开发不同于应用程序的开发。

驱动开发是直接和硬件打交道的,通过对硬件的操作给应用程序提供一些接口函数,使得应用程序能够“间接”的控制硬件来工作。

对于按键点亮LED的驱动开发流程如下。

二、驱动开发具体步骤1、查看开发板TQ2440底板原理图,找到按键和LED模块,如下图:图-2 按键和LED电路图从上图我们可以清楚地看到K1~K4对应的管脚是ENT1~ENT4,LED1~LED4对应的管脚是nLED_1~nLED_4.2、查看TQ2440_核心板原理图,找到对应的CPU管脚,如下图:图-3 按键和LED对应CPU管脚电路图3、查看s3c2440芯片手册,查看CPU管脚的模式,如下图从上图我们可以看出按键对应的CPU管脚GPF0~GPF4都是占两位(如:GPF0[1:0])。

按键是一种中断,要想让按键工作在中断模式下,就要设置GPF0~GPF4(GPF3除外)管脚都设置在中断模式下,即为10。

对于LED对应的CPU管脚GPB5~GPB8也是占两位。

要想让LED工作,就要让LED工作在输出模式下,即对应管脚设置为01.4、编写按键点亮LED驱动程序/*调用内核头文件,和应用程序调用的头文件不一样*/#include <linux/module.h>#include <linux/kernel.h>#include <linux/fs.h>#include <linux/init.h>#include <linux/delay.h>#include <asm/irq.h>#include <linux/interrupt.h>#include <asm/uaccess.h>#include <asm/arch/regs-gpio.h>#include <asm/hardware.h>#include <linux/device.h>#include <linux/poll.h>#define DEVICE_NAME "tope-buttons" //自定义驱动称为“tope-buttons”。

BootLoader启动过程分析

BootLoader启动过程分析

BootLoader启动过程分析一、 Boot Loader的概念和功能1、嵌入式Linux软件结构与分布在一般情况下嵌入式Linux系统中的软件主要分为以下及部分:(1)引导加载程序:其中包括内部ROM中的固化启动代码和Boot Loader两部分。

而这个内部固化ROM是厂家在芯片生产时候固化的,作用基本上是引导Boot Loader。

有的芯片比较复杂,比如Omap3,他在flash中没有代码的时候有许多启动方式:USB、UART 或以太网等等。

而S3C24x0则很简单,只有Norboot和Nandboot。

(2)Linux kernel 和drivers。

(3)文件系统。

包括根文件系统和建立于Flash内存设备之上的文件系统(EXT4、UBI、CRAMFS等等)。

它是提供管理系统的各种配置文件以及系统执行用户应用程序的良好运行环境的载体。

(4)应用程序。

用户自定义的应用程序,存放于文件系统之中。

在Flash 存储器中,他们的一般分布如下:但是以上只是大部分情况下的分布,也有一些可能根文件系统是initramfs,被一起压缩到了内核映像里,或者没有Bootloader参数区,等等。

2、在嵌入式Linux中为什么要有BootLoader在linux内核的启动运行除了内核映像必须在主存的适当位置,CPU还必须具备一定的条件:【1】CPU寄存器设置:R0=0;R1=Machine ID(即Machine Type Number,定义在linux/arch/arm/tools/mach-types);R2=内核启动参数在RAM中起始基地址;【2】CPU模式:必须禁止中断(IRQs和FIQs);CPU 必须工作在是超级保护模式(SVC) 模式;【3】Cache和MMU的设置:MMU 必须关闭;指令Cache可以打开也可以关闭;数据Cache必须关闭;但是在CPU刚上电启动的时候,一般连内存控制器都没有配置过,根本无法在内存中运行程序,更不可能处在Linux内核的启动环境中。

基于MDK4.11调试MINI2440操作过程

基于MDK4.11调试MINI2440操作过程

基于MDK4.11调试MINI2440操作过程刚天刚刚买了一个JLINK V8,刚一拿到手,迫不急待的开始进行一下仿真,但是,在ADS1.2环境下,老是卡死,也不知道是什么原因,也许是本人的电脑(1G内存)或者操作系统有问题(操作系统是有问题,但是资料太多,不敢重装系统,重装一次系统估计两天也不能完全配置好),所以在网上听说MDK不错,就去下载了MDK4.11,和相应的注册机(有想要朋友,请跟我联系),折腾了一天,才能真正的进行仿真。

(1) 首先造建一个功能,打开始MDK4.11,选择Project- Nes uVision Project..,如下图所示:(2)保存建立的工程,这里所建的工程为My_Led,如下图所示(3)选择CPU,由于MINI2440的CPU为S3C2440,所以在此我们选择S3C2440。

如下图所示:上面操作点击OK键后,会出现下面的对话框:在这里我们选择“是”,这是系统默认生成启动程序。

点击“是”后就会返回主界面,如下图所示:(4) 向工程中增加文件,由于本测试中只用到一个Main.c文件,所以,就以增加Main.c文件进行说明,如下图所示。

选择文件:增加成功后如下图:(5)从你的MDK4.11中拷贝Ext_RAM.ini到当前目录,本人的目录为:C:\Keil\ARM\Boards\Samsung\S3C2440\RTX_Blinky并把LOAD Obj\Blinky.axf INCREMENTAL 修改为LOAD .\My_Led.axf INCREMENTAL(6)下面进行配置相应的环境:按下图进入。

配置Target,按下面进行配置:如果需要生成bin文件的话,请按下图进行配置:配置Linker,如下图:配置Debug最后配置Utilities通过上面的配置,已经可以,通过编译过,连接等后就可以进行仿真了。

这些只是本人在实验过程中的一点总结,有可能不一定都得这样做,所以,如果我亲爱的读者有更好的方法,请告诉本人,让本人也进行学习一下。

Nandflash原理与启动详解

Nandflash原理与启动详解

NandFlash原理与启动详解一、Nandflash内部是怎么工作的:1片Nandflash=1设备;1设备=4096块;1块=32页;1页=528字节=数据大小(512字节)+oob块大小(16字节)(oob用于Nandflash命令执行完成后设置状态)可以通过NAND Flash命令00h/01h/50h分别对前半部、后半部、OOB进行定位,通过NAND Flash内置的指针指向各自的首地址。

存储操作特点有:擦除操作的最小单位是块;NAND Flash芯片每一位只能从1变为0,而不能从0变为1,所以在对其进行写入操作之前一定要将相应块擦除(擦除即是将相应块的位全部变为1);OOB部分的第6字节(即517字节)标志是否是坏块,值为FF时不是坏块,否则为坏块。

除OOB第6字节外,通常至少把OOB的前3字节用来存放NAND Flash硬件ECC码。

(ECC:"Error Correcting Code" "错误检查纠正",带有奇偶校验的内存的主要功能。

)1.Nand flash以page为单位进行读写,以block为单位进行擦除,没页分为main区和spare区,main区用于存放正常的数据,spare区用于存放一些附加信息2.S3c2440 支持从Nand 启动是因为内部有一个叫做Steppingstone的SRAM buffer,当启动的时候,nand 的前4k的将会代码将被拷贝到steppingstone中执行,注意前4k代码是不会经过ECC校验的,所以必须确保这些代码的准确3.对nand的操作都是通过使用命令来实现,有的操作只要一个命令就可以完成,而有的需要两个命令才能完成,下面是K9F1G08U0B的命令表:4 Flash烧写程序原理及结构基本原理:将在SDRAM中的一段存储区域中的数据写到NAND Flash存储空间中。

烧写程序在纵向上分三层完成。

GEC2440开发板用户手册-v1.0

GEC2440开发板用户手册-v1.0

ARM9GEC2440开发板用户手册粤嵌中心广州广嵌电子科技有限公司/中心简介粤嵌中心是最早期从事嵌入式产品研发及技术培训的机构,中心拥有自己的产品研发、产品测试、课程技术培训平台,面向社会企业、高校提供技术创新、课程技术培训等一体化服务。

粤嵌中心是广东省政府为了普及嵌入式软件技术知识,提高省内外嵌入式人才的素质,满足社会对嵌入式技术应用人才的需求,面向全社会开展嵌入式相关技术系列培训课程的服务机构。

目前,粤嵌中心已形成嵌入式技术与产品解决方案、嵌入式系统评测认证、技术培训服务和电子商务平台四大业务体系,以“专业诚信、开拓创新、行业引领、齐商共赢”的中心精神为指导,努力为客户的技术创新和产品升级提供支持。

在开发板系列产品方面,GEC目前已经形成了完善的产品体系结构,包括以下四个方面:1、多样化的开发板产品:目前GEC开发板系列产品包括2410开发板、2440开发板、开发板等一系列产品,目标是向有志于从事嵌入式学习及开发的高校、学生、工程师以及企业客户提供完善的嵌入式开发平台的整体解决方案。

2、严谨的产品评测过程:本中心设立了专门的嵌入式产品评测团队,拥有完善的评测设备,保证每个出厂产品都经过严谨的评测过程,从而保证了产品的质量。

3、完善的售后服务:开发板产品出现质量问题10天包换,12个月免费保修。

保修时间之长堪称国内之最。

4、强大的技术支持:本中心拥有雄厚的技术研发团队,拥有强大的技术研发力量,技术领域涉及到嵌入式开发的各个方面,为开发板客户提供全面的技术支持。

目录中心简介 (2)目录 (3)第一章GEC2440V1.0开发板介绍 (4)1.1GEC2440开发板布局 (4)1.2GEC2440开发板实物图 (4)1.3、选配模块 (5)1.4GEC2440开发板硬件构成 (6)1.5硬件资源分配 (7)1.5.1地址空间分配以及片选信号定义 (7)1.5.2接口资源及按键说明 (8)1.6开发板开发套件包含的内容 (10)1.7操作系统支持的驱动 (10)第二章粤嵌GEC2440开发板使用 (13)2.1GEC2440开发板快速使用入门 (13)2.1.1串口连接 (13)2.1.2PC端USB驱动安装 (14)2.2启动LINUX和WINCE (14)2.2.1启动LINUX (14)2.2.2启动WINCE (15)2.3GEC2440的BIOS功能说明 (16)2.4非操作系统下的外围资源测试 (17)2.4.1运行测试程序 (17)2.4.2相关外围资源测试 (19)2.6用SJF2440工具将BIOS烧写到FLASH (26)第三章烧写和启动linux (29)3.1烧写LINUX内核 (29)3.2烧写根文件系统 (30)3.3启动LINUX (31)3.3.1通过BIOS的3号功能启动LINUX (31)3.3.2LINUX的自启动 (32)第四章烧写WINCE和启动WINCE (34)4.1下载运行WINCE (34)4.2烧写WINCE (35)4.3自启动WINCE (35)第一章GEC2440V1.0开发板介绍1.1GEC2440开发板布局1.2GEC2440开发板实物图1.3、选配模块1蓝牙模块选配,实现数据图象等文件的传输,1Mbps 传输速率,USB 1.1总线,支持蓝牙1.1(兼容1.2)版本协议,2.4GHz-2.4835GHz 频谱带宽。

基于S3C2440的U-boot启动分析

基于S3C2440的U-boot启动分析
o t 动 分析 3 24 昀 b o启
中北 大学信 息与 通信 工程 学院 洪永 学 余 红英
[ 要] 摘 在嵌入 式的世界 中 , 通常没有像 B O 那样 的固件程序 , IS 因此整 个嵌入式 系统的加栽就完全 由B o od r o t ae 来完成, l 所以B o— o t la e是嵌入 式京 统中不可缺 少的重要部分 , 文结合 u b o一 ..部分源代码详细地分析 U— o 启动过程 , o dr 本 — o t 116 Bo t 主要是对 U— o 启 Bo t 动的关键 环节进行较 为详 细的解析 , 其对 U— o t 目 B o在 标板 ¥ C 40 3 2 4 移植分析具有一定的借鉴价值。 [ 关键 词] o t ae U— 0 启动 移植 B ol dr o Bo t 给 内 核 , 代 码 如 下 : g 一 b 一 b a h n m e : d>d >i r — u br _c U B o, — ot全称 为 U iesl ot o dr 即通 用的 B ood r是遵循 MACH TYP S D 2 1 ; 始 化 串 口 函数 只要 是 sr l n , 置 了 nvra B o a e, L ot ae , l E M K4 0初 e a it i— i设 GL P 条款 的开发代码 , 的名字“ 它 通用” 具有两层含义 : 以引导 多种操 U T控制器 , c uam9 0 sc4 Osf .中实现 。 可 AR 在 p / 2f 32 x/e a c r i 1 作 系统 、 支持 多种架构 的 C U P 。它支持如 下操作 系统 :iu 、 e S 、 Lnx N t D B () 2 检测系统 内存映射( e o a ) m m r m p y V Wo s Q X R T S A T S , 持 如 下 C U架 构 : o e C x r 、 N 、 E M 、 RO 等 支 k P Pw r 、 P 对于特定 的开发板 , 内存 的分 布是明确 的, 以可 以直接设 置 , 其 所 o d m k 4 0 m k4 0 rs s e r it m n 函数指定 了开发板 的内存起 M P 、 8 、 R N I 等 。U B o支 持大 多数 C U, 以烧 写 E T 、 b a / d 2 1/ d2 1 .中的da _ i IS x6 A M、 O S — ot P 可 X 2 Y E S 文件系统 映像 , E F2 支持 串口下 载 , 网络下载 , 提供大量 的命令 , 始地址 , 并 代码如下 : it rm i t o ) n a d 相 对于 M z 司的V v, 的使用更复杂 , i公 i i 它 i 但是可 以用来更方便地 调试 n ( i iv d 、 程序 。本文针对 A M架构 中的 s d 2 1 开发板的 U B o启动进行详 R m k4 0 — ot { g > d >b da 0.at HY _ D AM一 ; d- b 一 i rm[]t =P S S R 细分析。 sr 1 g > d >b d m[ .z d一 b - i r O s e=P S S A 2U— o t 动 过 程 分 析 . B o启 a ]i HY _ DR M— — IE lSZ ; 通常 , ot ae 是 严重 地依 赖于硬 件 而实 现的 , 多数 的 B o B l dr o 大 ot — rtr : e u n0 l dr o e启动 过程 分为两个阶段 , a 本文 以开发板 s d 2 1 为例 , U B o m k 40 其 — ot ) 属于两阶段 的B o od r 一阶段 的文件为 cu r 9 0 s r 和 ba / ot ae , l 第 p / m 2 tt . o r a /aS d () 3 获取 U B o操作命 令 — ot s mdk 41  ̄o e e. 2 0 wlv 1 S。 启 动 U B o 后 可 以在 串 口看 到 一 些 打 印 信 号 , 后 会 出 现 — ot 随 2 — ot 一阶段分析 .U B o 1 第 ”MD 4 0#” S K20 字符等待用户输人命令来启动 内核 , 因此 U B o启动内 — ot () 1硬件设备初始化 核 的主要 核心是通 过 U B o命令来 实现 , — ot 在函数 s r a bo 中进行 t _r ot a m t 依次完 成如下设 置 : C U的工作模式设 置为管理 模式 (v ) 关 相 应 的 f s_ i 0 nn — i 等 函数 后 , 入 m i l p0 过 s 将 P sc , l h i t 和 ad i t a n n0 进 a _ o 通 no = 闭 看 门狗 ( T HD G) 设置 P L , L ,C K的 比例 , 闭 MMU gt v Iot d) WA C O , C KHC KF L 关 , en ( om ” e t c 获取U B o命令 , b — ot 然后通过 rn cm a d s0 u_ o m n ( ) , 执行命 cc A HE等 等 。 令, 最终启动内核 。U B o 中的每个命令都通过 u B O M 宏来定 — ot _O TC D 义, 格式如下 : () 2 为加载 B ood r ot ae 的第二段代码 到 R M空间 l A U BOOT C 所 谓 R M空 间 , 是 初始 化 内存芯 片 , 它能 够使 用 。通过 在 A 就 使 MDn m , xrs eetbecm n , sg””e ” (a emaag, p aal, ma d” ae , l ) r o u hp 各项参数的意义 如下 : s rS t t 中调用 l l e i t a. o e l n 函数来设置控制器 , 得外接 S R M。 w v_ i 使 D A L wl v l i t o e e n 部分函数代码 如下 : i ① nm : a e 命令 的名字 , 注意 , 它不是 一个字符 串( 不要 用双引号 括

s3c2440芯片中文手册2

s3c2440芯片中文手册2

第二章处理器工作模式2.1概述S3C2440采用了非常先进的ARM920T内核,它是由ARM(Advanced RISC Machines) 公司研制的。

2.2 处理工作状态从程序员的角度上看,ARM920T可以工作在下面两种工作状态下的一种:● ARM 状态:执行32位字对齐的ARM指令● THUMB 状态:执行16位半字对齐的THUMB指令。

在这种状态下,PC 寄存器的第一位来选择一个字中的哪个半字注意;这两种状态的转换不影响处理模式和寄存器的内容。

2.3 切换状态进入THUMB 状态进入THUMB 状态,可以通过执行BX指令,同时将操作数寄存器的状态位(0位)置1来实现。

当从异常(IRQ,FIQ,UNDEF,ABORT,SWI等)返回时,只要进入异常处理前处理器处于THUMB状态,也会自动进入THUMB状态。

进入ARM状态进入ARM状态,可以通过执行BX指令,并且操作数寄存器的状态位(0位)清零来实现。

当处理进入异常(IRQ,FIQ,RESET,UNDEF,ABORT,SWI等)。

这时,PC值保持在异常模式下的link寄存器中,并从异常向量地址处开始执行处理程序。

存储空间的格式ARM920T将存储器空间视为从0开始由字节组成的线性集合,字节0到3中保存了第一个字节,字节4到7中保存第二个字,以此类推,ARM920T对存储的字,可以按照小端或大端的方式对待。

大端格式:在这种格式中,字数据的高字节存储在低地址中,而字数据的低字节则存放2.4 指令长度指令可以是32位长度(在ARM状态下) 或16位长度(在THUMB状态) 。

数据类型ARM920T支持字节(8位),半字(16位) 和字(32位) 数据类型。

字必须按照4字节对齐,半字必须是2字节对齐。

2.5 操作模式ARM920T支持7种操作模式:● 用户模式(user模式),运行应用的普通模式● 快速中断模式(fiq模式),用于支持数据传输或通道处理● 中断模式(irq模式),用于普通中断处理● 超级用户模式(svc模式),操作系统的保护模式● 异常中断模式(abt模式),输入数据后登入或预取异常中断指令● 系统模式(sys模式),使操作系统使用的一个有特权的用户模式● 未定义模式(und模式),执行了未定义指令时进入该模式]外部中断,异常操作或软件控制都可以改变中断模式。

ATC培训试题(题库一)粤嵌

ATC培训试题(题库一)粤嵌

ARM-ATC认证考试题姓名: __________ 联系电话:_______________ 身份证号码:_________________________一、填空题(每空1分,共10分)1.ARM的英文全称为Advanced RISC Machines。

2. ARM的种跳转指令是: b 、 bl 、 bx 和 blx 。

3. ARM微处理器支持字数据类型来表示有符号数和无符号数,字需要 4 字节对齐。

4. 数据在存储器上的储存格式有两种,分别为大端格式和小端格式。

6. ARM 微处理器支持四种类型的堆栈工作方式,分别为满递增、空递增、满递减、和空递减。

7. ARM汇编伪操作,定义一个数字常量ADDR为0x48000004: ADDR EQU 0x48000004 。

8. ARM9的五级流水线取指--译码--执行--缓冲/数据--回写。

9. 在ARM9中与设置IRQ中断有关的寄存器有:中断模式寄存器、外部中断寄存器、外部屏蔽寄存器、内部屏蔽寄存器。

10.S3C2440拥有 60 个中断源,其中属于外部中断有 24 个。

二、选择题(不定项,错选扣分,漏-选按点计分,每题2分,共30分)1. ARM 属于(A )[A] RISC 架构[B] CISC架构2. ARM 指令集是( C )位宽,Thumb 指令集是( B )位宽的。

[A] 8位[B] 16 位 [C] 32位 [D] 64位3. 复位后,ARM处理器处于(B )模式,( D )状态[A] User [B] SVC [C] System [D] ARM [E] Thumb4. ARM处理器总共( E )个寄存器,System模式下使用( A )个寄存器,SVC模式下使用( B )个寄存器。

[A] 17个[B] 18个 [C] 32个 [D] 36个 [E] 37个5. ARM处理器中优先级别最高的异常为( E ),(AC )异常可以用来相应中断[A] FIQ [B] SWI [C] IRQ [D] SVC [E] RESET6. ARM数据处理指令中有效的立即数是(AC EGH )[A] 0X00AB0000 [B] 0X0000FFFF [C ] 0XF000000F [D ] 0X08000012[E] 0X00001F80 [F] 0XFFFFFFFF [G] 0 [H] 0XFF0000007. 在用ARM汇编编程是,其寄存器有多个别名,通常PC是指(D ),LR 是指( C ),SP是指(B )[A] R12[B] R13 [C ] R14 [D ] R158. CPSR寄存器中反映处理器状态的位是( D )[A] J位[B] I位[C ] F位[D ] T位9. ARM7属于(A )结构,ARM9属于(B )结构。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、地址空间的分配
1、s3c2440是32位的,所以可以寻址4GB空间,内存(SDRAM)和端口(特殊寄存器),还有ROM都映射到同一个4G空间里
2、开发板上一般都用SDRAM做内存,flash(nor、nand)来当做ROM。

其中nand flash没有地址线,一次至少要读一页(512B).其他两个有地址线
3、nandflash不用来运行代码,只用来存储代码,NORflash,SDRAM可以直接运行代码
4、s3c2440总共有8个内存banks、6个内存bank可以当作ROM或者SRAM来使用,留下的2个bank除了当作ROM 或者SRAM,还可以用SDRAM(各种内存的读写方式不一样)。

7个bank的起始地址是固定的,还有一个灵活的bank的内存地址,并且bank大小也可以改变
5、s3c2440支持两种启动模式:NAND和非NAND(这里是nor flash)。

具体采用的方式取决于OM0、OM1两个引脚
OM[1:0所决定的启动方式
OM[1:0]=00时,处理器从NAND Flash启动
OM[1:0]=01时,处理器从16位宽度的ROM启动
OM[1:0]=10时,处理器从32位宽度的ROM启动。

OM[1:0]=11时,处理器从Test Mode启动。

二、当从NAND启动时
cpu会自动从NAND flash中读取前4KB的数据放置在片内SRAM里(s3c2440是soc),同时把这段片内SRAM映射到nGCS0片选的空间(即0x00000000)。

cpu是从0x00000000开始执行,也就是NAND flash里的前4KB内容。

因为NAND FLASH连地址线都没有,不能直接把NAND映射到0x00000000,只好使用片内SRAM做一个载体。

通过这个载体把nandflash中大代码复制到RAM(一般是SDRAM)中去执行
三、当从非NAND flash启动时
nor flash被映射到0x00000000地址(就是nGCS0,这里就不需要片内SRAM来辅助了,所以片内SRAM的起始地址还是0x40000000). 然后cpu从0x00000000开始执行(也就是在Norfalsh中执行)。

总结:
arm的启动都是从0地址开始,所不同的是地址的映射不一样。

在arm上电的时候,要想让arm知道以某种方式(地址映射方式)运行,不可能通过你写的某段程序控制,因为这时候你的程序还没启动,这时候arm会通过引脚的电平来判断。

1.当引脚OM0跟OM1有一个是高电平时,这时地址0会映射到外部nGCS0片选的空间,也就是Norflash,程序就会从Norflash中启动,arm直接取Norflash中的指令运行。

2.当OM0跟OM1都为低电平,则0地址内部bootbuf(一段4k的SRAM)开始。

系统上电,arm会自动把NANDflash中的前4K内容考到bootbuf(也就是0地址),然后从0地址运行。

这时NANDFlash中的前4K就是启动代码(他的功能就是初始化硬件然后在把NANDFlash中的代码复制到RAM(SDRAM)中,再把相应的指针指向该运行的地方)
为什么会有这两种启动方式,关键还是两种flash的不同特点造成,NOR FLASH容量小,速
度快,稳定性好,输入地址,然后给出读写信号即可从数据口得到数据,适合做程序存储器。

NAND FLASH 总容量大,但是读写都需要复杂的时序,更适合做数据存储器。

这种不同就造成了NORflash可以直接连接到arm的总线并且可以运行程序,而NANDflash必须搬移到内存(SDRAM)中运行。

在实际的开发中,一般可以把bootloader烧入到Norflash,程序运行可以通过串口进行交互,进行一定的操作,比如下载,调试。

这样就很可以很方便的调试你的一些代码。

Norflash中的Bootloader还可以烧录内核到Norflash等等功能。

相关文档
最新文档