准备分析
经过了《S5PV210的NandFlash应用(三)》对从NandFlash中拷贝数据是确定可行了。这次主要是把“特殊的二进制文件AB”换成一个LED闪烁的程序。由于前边没有了那16bit的校验和,这时程序的链接地址,拷贝目的地址以及跳转地址可以统一起来了。这里用CONFIG_SYS_TEXT_BASE来代替,值为0xD0024000。
资源工具
同《 S5PV210的LED应用(一)》
NandFlash: K9GAG08U0F (2G)
对应代码:7.nand_to_iram_4
着手写程序
(1) Makefile。
CONFIG_SYS_TEXT_BASE :=0xD0024000
all:led.bin 210.bin
led.bin: start.o main.o nand_cp.o uart.o
arm-linux-ld -Ttext $(CONFIG_SYS_TEXT_BASE) -o led.elf $^
arm-linux-objcopy -O binary led.elf led.bin
arm-linux-objdump -D led.elf > led_elf.dis
gcc mkv210_image.c -o mkv210
./mkv210 led.bin BL1.bin
210.bin:
cat BL1.bin led.bin> 210.bin
%.o : %.S
arm-linux-gcc -o $@ $< -c -fno-builtin
%.o : %.c
arm-linux-gcc -DCONFIG_SYS_TEXT_BASE=$(CONFIG_SYS_TEXT_BASE) -o $@ $< -c -fno-builtin
下载运行
同《 S5PV210的LED应用(一)》
下载文件:210.bin
运行调试
程序可以运行起来了,如图所示:
遗留问题
1.无
关键字:S5PV210 NandFlash
引用地址:
S5PV210的NandFlash应用(四)
推荐阅读最新更新时间:2024-11-18 19:31
三星s5pv210启动过程(ARM Cortex-A8)
S5PV210内部有96Kb的IRAM和64Kb的IROM。 DRAM0的地址:0x2000_0000——0x3FFF_FFFF(512MB)(自带内存) DRAM1的地址:0x4000_0000——0x7FFF_FFFF(1024MB)(扩展内存) SROM的地址: 0x8000_0000——0xAFFF_FFFF(128MB*6)(扩展内存) IROM的地址: 0xD000_0000——0xD000_FFFF(64Kb) ISRAM的地址: 0xD002_0000——0xD003_7FFF(96Kb) SFR的地址: 0xE000_0000——0xFFFF_FFFF(512Mb) IROM结构: BL0:64Kb。 ISRA
[单片机]
S5PV210中断的介绍与配置
一、介绍 1、三星S5PV210中断体系介绍 异常向量表(矢量中断控制器) 异常向量表是CPU中某些特定地址的特定定义,当中断发生的时候,中断要通知CPU处理中断,在CPU设计时,定义了CPU中一些特定地址作为特定异常的入口地址,异常向量表的实现,是基于SoC内部的矢量中断控制器。 关于矢量中断控制器的描述,这里摘录了网友“亦大乐谍“的博客: S5PV210是三星推出的一款基于Cortex-A8的Soc,其内部集成的中断控制器由4个ARM PrimeCell PL192矢量中断控制器级连(daisy-chain)而成,每个PL192 VIC(Vectored Interrupt Controller)支持32个中断源,所以
[单片机]
linux下的nandflash驱动分析(1)——基于s3c6410平台
源码主要在S3c_nand.c (linux2.6.28driversmtdnand)文件中。 1、模块加载和卸载 module_init(s3c_nand_init); module_exit(s3c_nand_exit); static void __exit s3c_nand_exit(void) { platform_driver_unregister(&s3c2450_nand_driver); platform_driver_unregister(&s3c6400_nand_driver); platform_driver_unregister(&s3c6410_nand_driver); platform
[单片机]
S5PV210开发 -- 前言
都说学习嵌入式的基础是 C语言+数据结构+一款CPU体系结构。 其中对于我来说第一掌握了C语言、第二熟悉UNIX操作系统和数据结构与算法,第三有针对TI和海思板卡的软硬件开发经验,然后熟悉图像和流媒体技术等。 所以接下来的总结会根据培训时的进度分 ARM、系统移植、驱动开发 这三部分来讲。 了解完硬件设计篇、开发基础篇、系统移植篇,会优先搭建 Android 操作系统。要能写一个简单的APP demo。 最后顺便要把之前转载的设备驱动部分的博客归类总结,该删除的删了。 首先要了解一下什么是嵌入式。 更多知识点,参看:嵌入式基本知识必备 一、什么是嵌入式系统 (1)嵌入式系统定义 嵌入式系统是以应用
[单片机]
【ARM】S5PV210芯片的启动流程
S5PV210芯片的设计者的思想 (1)芯片启动后执行iRom(BL0)的内容,进行时钟和看门狗等外设的初始化,将BL1和BL2拷贝到片内SRAM; (2)跳转到片内SRAM执行,完成外部SDRAM的初始化,并将OS从存储设备拷贝到SDRAM内; (3)跳转到SRAM内执行OS的起始代码。 由于U-BOOT的大小的限制,无法全部拷贝到片内的SRAM,所以U-BOOT的设计者设计了一下流程 (1)芯片启动后执行iRom(BL0)的内容,进行时钟和看门狗等外设的初始化,将BL1拷贝到片内SRAM; (2)跳转到片内SRAM内进行执行,完成SDRAM的初始化,将BL2拷贝到SDRAM内,执行。 (3)跳转到SDRAM内的BL2进行执行
[单片机]
S5PV210(TQ210)学习笔记——系统时钟和串口
TQ210的系统时钟配置和串口配置非常简单,本文从TQ210的系统时钟配置开始讨论。 TQ210的时钟配置跟2440/6410的时钟配置差不多,只是锁相环的个数略有不同,配置步骤是一样的。配置系统时钟,无非要经过以下几个步骤: (1)设置系统PLL锁定时间 (2)配置PLL (3)配置各模块分频系数 (4)切换到PLL时钟 简单的看着四步似乎没有头绪,但是看到手册中的 S5PV210时钟生成线路图 就可以理解了,现在截图如下: 上图中无非就三种模块,PLL、MUX和DIV,MUX控制时钟源选择,PLL负责生成PLL时钟,DIV负责分频。 为了系统稳定,在设计电路时我们一般不会使用太高频率的晶振(避免高频线间/层间干
[单片机]
2.3NandFlash的操作
1.NandFlash分类: 2.MLC和SLC对比: 3.信号引脚: Nandflash的读: 页读:页地址 随机读:页地址+列地址 今天是要实现页读:需要页的地址。 我们来看芯片手册K9F2G08U0A.pdf:找到桉叶读的工作原理图: 寄存器NFCONT: 在这个寄存器里的【1】位: 上面就是选择操作nandflash的位: nandflash的statue寄存器: 第四位: 清除RB:第四位为1是,清除RB。 接下来是发送的操作: 寄存器: 发送: NFDATA: 主方法: Make:编译 要实现nandf
[单片机]
s3c2440裸机-nandflash编程-1-nandflash原理及结构简介
1.nandflash的原理图如下: 引脚属性见下表: 引脚名称 引脚功能 IO0~IO7 数据输入输出(命令、地址、数据共用数据总线) CLE 命令使能 ALE 地址使能 /CE 芯片使能(片选) /RE 读使能 /WE 写使能 R/B 就绪/忙输出信号(低电平表示操作还在进行中,高电平表示操作完成) ##2.nandflash内部存储结构 nandflash内部存储结构如下: 我们常见的Nand Flash,内部只有一个chip,每个chip只有一个plane。但也有些复杂的,容量更大的Nand Flash,内部有多个chip,每个chip有多个plane,这类的Nan
[单片机]