关于从NAND Flash启动的问题,2440 启动问题 , 拷贝4k程序 ,启动代码分析

S3c2440 Nand/Nor Falsh区别 Flash Rom 的种类 NOR FLASH 地址线和数据线分开,来了地址和控制信号,数据就出来。 NAND Flash 地址线和数据线在一起,需要用程序来控制,才能出数据。 通俗的说,只给地址不行,要先命令,再给地址,才能读到 NAND 的数据,在一个总线完成的。 结论是: ARM 无法从 NAND 直接启动。除非装载完程序,才能使用 NAND Flash NAND FLASH 本身是连接 阅读详情

本文来自:http://blog.chinaunix.net/u2/69674/showart_1212448.html

 

用的是S3C2410.见附件start.s 其中关于nand flash启动的那一段一直百思不得其解,按说从NAND FLASH启动时,应该是前4KB映射到NGCS0,其中的代码将NAND中存放的程序拷贝到RAM中,但该文件提供的程序好象是先从NAND拷贝 128K的代码到ResetEntry开始的地方,即地址为0的地方,然后再从ResetEntry处拷到RAM中,但此时NGCS0好象只有4KB的 RAM区,怎么能存储128K的代码,一直没想通.望高手指点,谢谢!

搞明白了,是两条指令的差别

LDR r0,=_entry和ADR r0,_entry

前者是在编译的时候按照load address生成的绝对地址,后者反汇编后是相对当前PC寻址,例如在ADS中设置RO地址为0X30000000,那么前者传给r0的值是 0x30000000,而后者传给r0的值要视当前PC而定,一般从NGCS0中启动时,传给r0的值就是0。

 

amsung S3C2410支持Nor Flash和Nand Flash启动,在SBC-2410X上可以通过BOOTSEL跳线设置启动方式:
    |------|
    | 。。 |      boot from nand flash
    |------|

--
----。。        boot from nor flash

注:
(1) BOOTSEL跳线在"串口"和"usb slave接口"之间

(2) 两个引脚用"跳线卡"连接,则表示从nand flash启动。拔下"跳线卡"表示从nor flash启动。

 

椐了解 NOR FLASH 是容量小,速度快,稳定性好,适合做程序存储器。

NAND FLASH 总容量大,适合做数据存储器
是不能从NAND FLASH启动的,NAND FLASH是的读写时序是不能直接有ARM硬件产生的,要读写NAND FLASH是要通过程序来实现的,很明显能看出来的就是NAND FLASH只有8个数据、地址复用的数据地址接口
2410/2440可以直接从NAND FLASH启动的,因为它把NAND前面的4K映射到了RAM的空间

首先应该先了解Flash ROM的种类

NOR FLASH地址线和数据线分开,来了地址和控制信号,数据就出来。

NAND Flash地址线和数据线在一起,需要用程序来控制,才能出数据。

通俗的说,就是光给地址不行,要先命令,再给地址,才能读到NAND的数据。

而且都是在一个总线完成的。

结论是:ARM无法从NAND直接启动。除非装载完程序,才能使用NAND Flash.

装载程序只能从mask rom 或者Nor flash.

 

三星的2410可以从NF启动程序,它会把第一块的前4KB复制到内部SRAM中然后从SRAM执行,也就是说,你需要编写一个长度小于4K的引导程序,作用是将主程序拷贝到SDRAM中运行(NF地址不是线性的,程序不能直接运行,必须拷贝到线性RAM中)

从Nand Flash启动U-BOOT的基本原理
-------------------------------------------
前4K的问题
    如果S3C2410被配置成从Nand Flash启动(配置由硬件工程师在电路板设置), S3C2410的Nand Flash控制器有一个特殊的功能,在S3C2410上电后,Nand Flash控制器会自动的把Nand Flash上的前4K数据搬移到4K内部RAM中,并把0x00000000设置内部RAM的起始地址,CPU从内部RAM的0x00000000位置开 始启动。这个过程不需要程序干涉。
    程序员需要完成的工作,是把最核心的启动程序放在Nand Flash的前4K中。
启动程序的安排
    由于Nand Flash控制器从Nand Flash中搬移到内部RAM的代码是有限的,所以在启动代码的前4K里,我们必须完成S3C2410的核心配置以及把启动代码(U-BOOT)剩余部分搬到RAM中运行。


    u-boot源码不支持从nand flash启动,可是s3c2410支持从nand flash启动,开发板(sbc-2410x)加电后s3c2410将nand flash的前4k(保存有u-boot的部分功能--拷贝功能--把nand flash中的内容拷贝到SDRAM)拷贝到sram(s3c2410芯片内的sram)。这就需要修改u-boot源码,增加u-boot的功能: 使u-boot在得到执行权后能够将其自身拷贝到开发板上SDRAM中,以便处理器能够执行u-boot

.Nand Flash的命令、地址、数据都通过I/O口发送,管脚复用,这样做做的好处是,可以明显减少NAND FLASH的管脚数目,将来如果设计者想将NAND FLASH更换为更高密度、更大容量的,也不必改动电路板。

 NAND FLASH不能够执行程序,本人总结其原因如下 :

1. NAND FLASH本身是连接到了控制器上而不是系统总线上。CPU启动后是要取指令执行的,如果是SROM、NOR FLASH 等之类的,CPU 发个地址就可以取得指令并执行,NAND FLASH不行,因为NAND FLASH 是管脚复用,它有自己的一套时序,这样CPU无法取得可以执行的代码,也就不能初始化系统了。

 2. NAND FLASH是顺序存取设备,不能够被随机访问,程序就不能够分支或跳转,这样你如何去设计程序。

 

U-BOOT 支持ARM、 PowerPC等多种架构的处理器,也支持Linux、NetBSD和VxWorks等多种操作系统,主要用来开发嵌入式系统初始化代码 bootloader。bootloader是芯片复位后进入操作系统之前执行的一段代码,完成由硬件启动到操作系统启动的过渡,为运行操作系统提供基本 的运行环境,如初始化CPU、堆栈、初始化存储器系统等,其功能类似于PC机的BIOS.



NAND闪存工作原理

       S3C2410开发板的NAND闪存由NAND闪存控制器(集成在S3C2410 CPU中)和NAND闪存芯片(K9F1208U0A)两大部分组成。当要访问NAND闪存芯片中的数据时,必须通过NAND闪存控制器发送命令才能完 成。所以, NAND闪存相当于S3C2410的一个外设,而不位于它的内存地址区。

       NAND闪存(K9F1208U0A)的数据存储结构分层为:1设备(Device) = 4096 块(Block);1块= 32页/行(Page/row);1页= 528B = 数据块 (512B) + OOB块 (16B)
在每一页中,最后16个字节(又称OOB)在NAND闪存命令执行完毕后设置状态,剩余512个字节又分为前半部分和后半部分。可以通过NAND闪存命令00h/01h/50h分别对前半部、后半部、OOB进行定位,通过NAND闪存内置的指针指向各自的首地址。
NAND闪存的操作特点为:擦除操作的最小单位是块;NAND闪存芯片每一位只能从1变为0,而不能从0变为1,所以在对其进行写入操作之前一定要将相应 块擦除;OOB部分的第6字节为坏快标志,即如果不是坏块该值为FF,否则为坏块;除OOB第6字节外,通常用OOB的前3个字节存放NAND闪存的硬件 ECC(校验寄存器)码;
   
从NAND闪存启动U-BOOT的设计思路

       如果S3C2410被配置成从NAND闪存启动,上电后,S3C2410的NAND闪存控制器会自动把NAND闪存中的前4K数据搬移到内部RAM中, 并把0x00000000设置为内部RAM的起始地址, CPU从内部RAM的0x00000000位置开始启动。因此要把最核心的启动程序放在NAND闪存的前4K中。

       由于NAND闪存控制器从NAND闪存中搬移到内部RAM的代码是有限的,所以, 在启动代码的前4K里,必须完成S3C2410的核心配置,并把启动代码的剩余部分搬到RAM中运行。在U-BOOT中, 前4K完成的主要工作就是U-BOOT启动的第一个阶段(stage1)。
根据U-BOOT的执行流程图,可知要实现从NAND闪存中启动U-BOOT,首先需要初始化NAND闪存,并从NAND闪存中把U-BOOT搬移到RAM中,最后需要让U-BOOT支持NAND闪存的命令操作。
  
开发环境

       本设计中目标板硬件环境如下:CPU为S3C2410,SDRAM为HY57V561620,NAND闪存为64MB的K9F1208U0A。

       主机软件环境为Redhat9.0、 u-boot-1.1.3、gcc 2.95.3。修改U-BOOT的Makefile,加入:
wch2410_config : unconfig
@./mkconfig $(@:_config=) arm arm920t wch2410 NULL s3c24x0

       即将开发板起名为wch2410,接下来依次进行如下操作:
mkdir board/wch2410
cp board/smdk2410 board/wch2410
mv smdk2410.c wch2410.c
cp include/configs/smdk2410.h include/configs/wch2410.h
export PATH=/usr/local/arm/2.95.3/bin:$PATH

       最后执行:
make wch2410_config
make all ARCH=arm
生成u-boot.bin,即通过了测试编译。

具体设计

支持NAND闪存的启动程序设计
       因为U-BOOT的入口程序是/cpu/arm920t/start.S,故需在该程序中添加NAND闪存的复位程序,以及实现从NAND闪存中把U-BOOT搬移到RAM中的功能程序。

       首先在/include/configs/wch2410.h中加入CONFIG_S3C2410_NAND_BOOT, 如下:
#define CONFIG_S3C2410_NAND_BOOT 1      @支持从NAND 闪存中启动
然后在/cpu/arm920t/start.S中添加
#ifdef CONFIG_S3C2410_NAND_BOOT
copy_myself:
mov r10, lr
ldr sp, DW_STACK_START         @安装栈的起始地址
mov fp, #0                     @初始化帧指针寄存器
bl nand_reset                  @跳到复位C函数去执行,执行NAND闪存复位
.......
/*从NAND闪存中把U-BOOT拷贝到RAM*/
ldr r0, =UBOOT_RAM_BASE        @ 设置第1个参数: UBOOT在RAM中的起始地址
mov r1, #0x0                   @ 设置第2个参数:NAND闪存的起始地址
mov r2, #0x20000               @ 设置第3个参数: U-BOOT的长度(128KB)
bl nand_read_whole             @ 调用nand_read_whole(),把NAND闪存中的数据读入到RAM中
tst r0, #0x0                   @ 如果函数的返回值为0,表示执行成功
beq ok_nand_read                @ 执行内存比较,把RAM中的前4K内容与NAND闪存中的前4K内容进行比较, 如果完全相同, 则表示搬移成功

       其中,nand_reset (),nand_read_whole()被加在/board/wch2410/wch2410.c中。

支持U-BOOT命令设计
       在U-BOOT下对nand闪存的支持主要是在命令行下实现对nand闪存的操作。对nand闪存实现的命令为:nand info(打印nand Flash信息)、nand device(显示某个nand闪存设备)、nand read(读取nand闪存)、nand write(写nand闪存)、nand erease(擦除nand闪存)、nand bad(显示坏块)等。

       用到的主要数据结构有:struct nand_flash_dev、struct nand_chip。前者包括主要的芯片型号、存储容量、设备ID、I/O总线宽度等信息;后者是具体对NAND闪存进行操作时用到的信息。

a. 设置配置选项
       修改/include/configs/wch2410.h,主要是在CONFIG_COMMANDS中打开CFG_CMD_NAND选项。定义NAND闪存控制器在SFR区中的起始寄存器地址、页面大小,定义NAND闪存命令层的底层接口函数等。

b. 加入NAND闪存芯片型号
       在/include/linux/mtd/ nand_ids.h中对如下结构体赋值进行修改:
static struct nand_flash_dev nand_flash_ids[] = {
......
{"Samsung K9F1208U0A", NAND_MFR_SAMSUNG, 0x76, 26, 0, 3, 0x4000, 0},
.......
                                                 }
这样对于该款NAND闪存芯片的操作才能正确执行。
c. 编写NAND闪存初始化函数
在/board/wch2410/wch2410.c中加入nand_init()函数。
void nand_init(void)
{
/* 初始化NAND闪存控制器, 以及NAND闪存芯片 */
nand_reset();
/* 调用nand_probe()来检测芯片类型 */
printf ("%4lu MB/n", nand_probe(CFG_NAND_BASE) >> 20);
}

该函数在启动时被start_armboot()调用。
    
       最后重新编译U-BOOT并将生成的u-boot.bin烧入NAND闪存中,目标板上电后从串口输出如下信息:
U-Boot 1.1.3 (Nov 14 2006 - 11:29:50)
U-Boot code: 33F80000 -> 33F9C9E4     BSS: -> 33FA0B28
RAM Configuration:
Bank #0: 30000000 64 MB
## Unknown Flash on Bank 0: ID 0xffff, Size = 0x00000000 = 0 MB
Flash:     0 kB
NAND:     64 MB
In:       serial
Out:      serial
Err:      serial
Hit any key to stop autoboot:     0
wch2410 #

结语

       以往将U-BOOT移植到ARM9平台中的解决方案主要针对的是ARM9中的NOR闪存,因为NOR闪存的结构特点致使应用程序可以直接在其内部运行,不 用把代码读到RAM中,移植过程相对简单。从NAND闪存中启动U-BOOT的设计难点在于NAND闪存需要把U-BOOT的代码搬移到RAM中,并要让 U-BOOT支持NAND闪存的命令操作。本文介绍了实现这一设计的思路及具体程序。移植后,U-BOOT在嵌入式系统中运行良好。

参考文献

1 杜春雷 . ARM 体系结构与编程 [M]. 北京 : 清华大学出版社, 2003
2 S3C2410 User's Mannual[Z].Samsung

韦一之2440启动过程、nor/nand介绍、led汇编程序及C启动原理(008课) 第1个ARM裸板程序及引申 韦东山老师 ①nor启动和nand启动不同。 ②ldr str和ldm stm的不同。 阅读详情

相关推荐

arm-linux-gcc 裸机程序(Nandflash启动)

这是用arm-linux-gcc的mini2440裸机程序,可以从nandflash启动运行,实现功能流水灯。

关于s3c2440的NandFlash启动为什么要先加载4K到内存解答

之前迷糊了很久,关于s3c2440从Nand启动为什么要先加载4K到内存的问题,百撕不得骑姐,看了国嵌和韦东山的视频,也没说出来个所以然来,最后还是查看samsung官方的手册知道了原因: 下面就是我从三星的官方手册上面截取下来的内容原因: 三星官方说:由于最近NOR闪存价格一直居高不下,但是NandFlash的价格却比较便宜,为了激励一些用户在NAND闪存上执行启动代码并...

qq_27726651的博客 634

避免踩坑!WIN11 22H2更新后共享打印机失效的终极解决方案

本文详细解析了WIN11 22H2更新后共享打印机失效的问题,特别是常见的0x00000709错误代码。通过系统更新机制分析、错误代码解读,提供从基础到高级的完整解决方案,包括注册表修复、组策略调整和驱动兼容性处理,帮助用户彻底解决打印机共享问题并预防未来故障。

pp12345的博客 533

NAND Flash启动的问题

 从Nand Flash启动U-BOOT的基本原理-------------------------------------------前4K的问题    如果S3C2410被配置成从Nand Flash启动(配置由硬件工程师在电路板设置), S3C2410的Nand Flash控制器有一个特殊的功能,在S3C2410上电后,Nand Flash控制器会自动的把Nand Flash上的前4K数

timequark的专栏 1945

华北理工大学以升实验班蓝桥杯选拔赛题解

文章目录华北理工大学以升实验班蓝桥杯选拔赛题解A:期末考试题目描述题目讲解代码B:月份题目描述题目讲解代码C:打饭题目描述题目讲解代码D : 正弦波信号题目描述题目讲解代码E : 亲爱的长方形题目描述题目讲解代码F:挖金子题目描述题目讲解代码G : 金金的游戏题目描述题目讲解代码H : 区间和题目描述题目讲解代码详细视频讲解请关注华北理工大学b站账号。 华北理工大学以升实验班蓝桥杯选拔赛题解 A:期末考试 题目描述 Description 期末考试过去许多天了,如今成绩都出来了,那么现在让我们对成绩我分个类

Qq1739206233的博客 1127

遥感大模型的深度学习从CNN到Vision Transformer以及混合架构的演进之路

深度学习,特别是以卷积神经网络(CNN)和Transformer为代表的“大模型”技术,正以其强大的表征学习能力,深刻地重塑着遥感智能解译的整个技术栈与认知范式。本文将系统性地梳理遥感大模型从局部卷积的奠基,到全局注意力的革命,再到二者融合的混合架构演进这一波澜壮阔的历程。我们将深入剖析每个阶段的核心技术原理,结合遥感数据特性与实际应用案例,详细阐述其在分类、检测、分割等核心任务中的具体应用。

panshengwu的博客 1138

对从NandFlash启动时,关于前4K代码的理解.

设置从nandflash启动时,启动的时候系统自动把4K的数据复制到内部的RAM中去(注意:而不是SDRAM)。 所有如果你的程序大于4K的话,就需要做成两段代码,前边一段要小于4K,并只负责将另一段代码复制到SDRAM中去,可以加少量的打印信息,第二段代码可以很大,甚至可以说是无限制,内容是其它的一些代码,比如显示LED流水灯,读取EBOOT到SDRAM等等。 前4K,不仅是个初始化的过程,还是...

Yfw的博客 1185

模电(十四)差分放大电路

目录 差分放大电路 双端输入双端输出 Q点分析 抑制共模信号 放大差模信号 双端输入单端输出 Q点分析 差模信号分析 共模信号分析 单端输入双端输出 单端输入单端输出 四种接法比较 具有恒流源的差分放大电路 差分放大电路的改进 差分放大电路 采用引入支流负反馈,温度补偿来克服零点漂移(温度变化,直流电源波动,元器件老化产生的输入电压为零,输出电压不为零的...

weixin_43674847的博客 2万+

u-boot在nandflash中的前4k内容分析

u-boot在nandflash中的前4k内容分析       在NorFlash中移植了NOR,DM9000,NandFlash读写,甚至在start.S中都可以用灯了调试,还有串口输出。觉得功能无比的强大了,在调试NandFlash启动时,下载到NandFlash居然一点反应都没有,这个镜像下载到nor中,功能还是无比的强大。我着实无语了,NandFlash启动不是有4k内容自动

Android/Linux的专栏 3946

VS2022错误列表高效处理:从复制到Excel表格的完整指南

本文详细介绍了在Visual Studio 2022中高效处理错误列表的实用技巧,重点讲解了如何将错误信息一键复制并粘贴到Excel表格中。通过基础操作、自定义视图、筛选功能及常见问题解决方案,帮助开发者将杂乱的编译错误整理成清晰、可排序、可筛选的数据表,极大提升了团队协作、错误分析和项目管理的效率。

weixin_28837817的博客 358

用Python的fengwo模块复刻通达信筹码峰(COST/WINNER),选股效率提升10倍

本文介绍了如何使用Python的fengwo模块高效复刻通达信的筹码峰(COST/WINNER)计算,显著提升选股效率。通过C++内核与多线程优化,fengwo模块将传统Python实现的数小时计算压缩至分钟级,解决了量化交易中的性能瓶颈问题。文章详细解析了筹码峰计算原理、fengwo模块的技术架构及实战应用,助力量化开发者构建高效选股系统。

weixin_29062823的博客 438

S3C2440从NAND Flash启动和NOR FLASH启动的问题

1.为什么NAND FLASH不能直接运行程序     NAND FLASH本身是连接到了控制器上而不是系统总线上。CPU运行机制为:CPU启动后是要取指令执行的,如果是SROM、NOR FLASH 等之类的,CPU 通过地址线发个地址就可以取得指令并执行,NAND FLASH不行,因为NAND FLASH 是管脚复用,它有自己的一套时序,这样CPU无法取得可以执行的代码,也就不能初始化系统了。 ...

嵌入式与Linux那些事的博客 8430

实战封神!YOLOv7 轻量化部署全攻略:ONNX格式转换+TensorRT极致加速(速度直接提升3-5倍,精度无损)

部署核心链路,这是YOLO系列部署的最优解,速度提升3~5倍,精度无损;ONNX是桥梁:解决模型兼容性问题,简化后能去掉冗余节点,是TensorRT加速的前提;TensorRT是核心:NVIDIA显卡的极致加速引擎,FP16量化是速度与精度的最优平衡,无需手动配置,一键开启;轻量化终极组合YOLOv7-tiny + 416尺寸 + TensorRT FP16,速度提升5~8倍,满足所有实时检测场景;避坑核心:转换参数必加,推理尺寸必须一致,engine文件显卡专属。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 308

NAND Flash启动和NOR FLASH启动的问题

1.为什么NAND FLASH不能直接运行程序     NAND FLASH本身是连接到了控制器上而不是系统总线上。CPU运行机制为:CPU启动后是要取指令执行的,如果是SROM、NOR FLASH 等之类的,CPU 通过地址线发个地址就可以取得指令并执行,NAND FLASH不行,因为NAND FLASH 是管脚复用,它有自己的一套时序,这样CPU无法取得可以执行的代码,也就不能初始化系统了。     NAN...

dyx1993的博客 3401

STM32 BOOTLOADER配置以及APP跳转实现(裸机)

Bootloader是硬件启动的引导程序,是运行操作系统的前提。在操作系统内核或用户应用程序运行之前运行的一段小代码。对硬件进行相应的初始化和设定,最终为操作系统准备好环境。APP就是我们的应用程序,经过硬件引导程序之后跳转到系统程序运行。

吻等离子的博客 3355

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

程序自动启动_S3C2440从NAND Flash启动和NOR FLASH启动的问题

1.为什么NAND FLASH不能直接运行程序 NAND FLASH本身是连接到了控制器上而不是系统总线上。CPU运行机制为:CPU启动后是要取指令执行的,如果是SROM、NOR FLASH 等之类的,CPU 通过地址线发个地址就可以取得指令并执行,NAND FLASH不行,因为NAND FLASH 是管脚复用,它有自己的一套时序,这样CPU无法取得可以执行的代码,也就不能初始化系统了。 ...

weixin_39643189的博客 170

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

S3C2440开发板 NOR启动 和 NAND启动

 一、NAND启动和NOR启动:        需要检测硬件启动方式,启动方式是由硬件OM0管脚决定的,软件无法检测硬件电平状态,但可以根据CPU的启动特性来检测。1、NAND启动:  如果配置为NAND FLASH启动(启动模式选择开关拔到nand端,此时OM0管脚拉低)S3C2440的NAND控制器会自动把NAND FLASH中的前4K代码数据搬到内部SRAM中(地址为0x40000000),...

MUYI的博客 2374

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

TQ2440 学习笔记—— 7、NOR Flash 和 NAND Flash

非易失闪速存储器Flash 具有速度快、成本低、密度大的特点。 Flash 存储器主要有 NOR Flash 和 NAND Flash两种类型,总的来说, NOR 型比较适合存储程序代码,NAND 型则可用做大容量数据存储。 1、NOR 型 Flash 存储器   NOR Flash 技术是由Intel 公司于1988年首先开发,它的出现彻底改变了原先由EPROM和EEPROM一统天

Cawen的技术博客 2124

s3c2440存储控制器和地址以及启动的理解

<br />1.首先应该先了解Flash ROM的种类<br />NOR FLASH地址线和数据线分开,来了地址和控制信号,数据就出来。<br />NAND Flash地址线和数据线在一起,需要用程序来控制,才能出数据。<br />通俗的说,只给地址不行,要先命令,再给地址,才能读到NAND的数据,在一个总线完成的。<br />结论是:ARM无法从NAND直接启动。除非装载完程序,才能使用NAND Flash.<br />2.Nand Flash的命令、地址、数据都通过I/O口发送,管脚复用,这样做做的好处

liangkaiming的专栏 2600

TQ2440移植u-boot2016.11全过程记录-【7】NAND FLASH方式启动U-BOOT

TQ2440移植u-boot2016.11-NAND FLASH方式启动U-BOOT S3C2440 U-BOOT启动方式说明:         ~~~~~~~~        NOR FLASH启动: S3C2440会直接在NOR上运行...

^_^ 767

u-boot之NAND启动与NOR启动的区别

u-boot之NAND启动与NOR启动的区别 nand启动与nor启动的区别主要分为以下几部分说明: 1、nand flash与nor flash的最主要区别 2、s3c2440的nand启动与nor启动原理 3、nand启动与nor启动的时候uboot做了什么   1、在JZ2440开发板上有两种Flash,分别为nand flash和nor flash。这两种flash的最主要的区别为:nor flash比较稳定,存在里面的数据不易丢失,但是容量小,nor flash在读的时候可以像内存一.

qq_41882586的博客 2650

S2440 nand flash control

 今天看了S2440的DATASHEET 中nand  flash  control ,找了相关的资料.总结了以下的心得,写的不好,大家多指教        1.首先如果用户确定把EBOOT的代码放到nand flash 里面来启动的话,那SDROM 的的nGCS0中会将ARM中的4K空间影射到这里.(ARM中的这4K空间,查了网上的资料称之为 Steppingstone) ,Stepping

Professionaler(自由人)的专栏 2018

移植u-boot-2016.11到JZ2440(三:修改源码之实现NOR启动与NAND启动)

目录 3. 修改源码之实现从NOR启动与NAND启动    3.1 前言    3.2 实现从NOR启动        3.2.1 修改设置时钟            3.2.1.1 CLKDIVN寄存器            3.2.1.2 总线模式            3.2.1.3 MPLL寄存器            3.2.1.4 修改源码        3.2.2 修改初始化存储...

墨、白的博客 2897

14.Nor-Flash操作实例

目录 1.基础知识 2.使用u-boot体验Nor Flash的操作 3.编写NOR-Flash测试程序 源代码 数据手册   1.基础知识 1).Nor Flash 和Nand Flash 的区别? NOR FLASH 和NAND FLASH 的区别   NOR FLASH NAND FLASH 结构 NORflash采用内存的随机读取技术。各单元之间是...

广源的博客 7488

八:mini2440 nand flash和nor flash启动的区别

mini2440及其他类型的开发板一般都有从nand flash和nor flash启动两种方式,那么这两种启动方式有什么区别呢,初学者一般都会一头雾水。下面就讲讲这两种启动方式的区别。 mini2440的nand flash128M,而nor flash只有2M,系统的bootloader一般很小,只有200多KB,而作为一个完整的系统,需要bootloader(200KB),kernel(2M...

wahahaguolinaiyou的博客 474
上一篇: 总结一下U-Boot的编译流程,uboot
下一篇: cos-II+ucGUI390+ARM9s3c2410+LCD+触摸屏基本整合成功
#Page#
博客等级 码龄23年 1691粉丝 360原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值