S3C2440运行裸机小程序需烧录到NAND Flash

2020-06-30来源: eefocus关键字:S3C2440  裸机小程序  烧录  NAND  Flash

对于韦东山的S3C2440开发板,当运行LED等简单的小程序时,必须烧录到NAND Flash,原因如下:

(1)NOR Flash虽然可以向内存一样进行读操作,但不可以像内存一样进行写操作,所以假如要从NOR Flash启动,一般先在代码的开始部分使用汇编指令初始化外接的内存器件(外部RAM),然后将代码复制到外存中,最后跳转到外存中继续执行。(这段初始化代码比较复杂,需要后面再学习)。


(2)S3C2440中有称为“Steppingstone”的4KB内存RAM,当选择从NAND Flash启动CPU时,CPU会通过内部的硬件将NAND Flash开始的4KB字节数据复制到这4KB的内部RAM中(此时内部RAM的起始地址为0),然后跳转到地址0开始执行。(即有内部硬件自动执行复制操作)。


所以对于小程序,一般将它烧入NAND Flash中,借助CPU内部RAM直接运行。


将小程序烧入NAND Flash的方法:

(1)使用韦东山提供的专用工具EOP(普通JLINK只能烧录NOR Flash,不能烧录NAND Flash);


(2)先烧录提供的u-boot到NOR Flash,再设置从NOR启动,启动后按空格键停留在u-boot指令等待界面,通过u-boot和上位机的DNW软件配合,将小程序烧录到NAND Flash。最后关机,设置从NAND启动,重启开发板,即可验证程序效果。

关键字:S3C2440  裸机小程序  烧录  NAND  Flash 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic501613.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:ARM IMPORT Image$$RO$$Limit 的含义
下一篇:ARM集成开发环境eclipse的安装(for Linux)

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

Keil+S3C2440裸机代码编译环境搭建
***************************************************************************************************************软硬件说明***************************************************  Keil: Keil uVision V4.10   ************************************************** CPU: S3C2440   
发表于 2020-06-07
s3c2440 ads程序移植到keil中(二) 初步完成
如果我把参数配置发生改变呢然后再一次编译 要包错误如下所示错误如下这个错误解决不了最后查看了网上网友的方法 又可以修改 但是引入了nand文件最后反正知道了2440init.s文件要修改许多 所以我就不再这里继续整了 浪费时间直接运用网上网友的东西即可网友编写的地址https://blog.csdn.net/hannibaychty/article/details/44873327从买板子到现在,想想也有2个月啦,开始就想跑裸奔的,可是工程都是在ADS下,win7系统根本不能用,于是就想着怎么在MDK跑,可是MDK上s3c2440的启动文件是不完整的,因此不推荐使用,为此蛋疼聊好长一段时间,查了很多资料都不成功,可能是
发表于 2020-06-07
s3c2440 ads程序移植到keil中(二) 初步完成
s3c2440 ads程序移植到keil中(三) 初步完成
如果我把参数配置发生改变呢然后再一次编译 要包错误如下所示其实我们到这里离 在s3c2440 ads程序移植到keil中(二)中看到这个网友不值提供了方法 而且提供了几个文件的下载地址http://download.csdn.net/detail/googlemi/5176844 我直接下载下来了 把其中的2440init.s文件直接拷贝复制替代我工作中的2440init.s 该错误消失了但是出现了这一个错误 反正修改就能解决然后 提示了一个错误 意思 就nand.c和nand.h 没有加上去 让后加上去了 编译成功没有错误这种方式到此结束
发表于 2020-06-07
s3c2440 ads程序移植到keil中(三) 初步完成
ADS1.2使用jlink调试程序(调试芯片s3c2440arm9)
点击Configure Target…点击Add,把JLINK安装目录下的JLinkRDI.ddl添加进来,然后退出ADX软件,再做以下工作:开发板上好电。J-link连接上开发板。(确保驱动已正确安装)把开发板设置从norflash启动,否则会失败。再打开ADX软件,如下图会自动弹出Jlink配置窗口:型号选择(s3c2440芯片是arm9的,所以这里选这个如果开发板正确连接会自动识别id):双击选择型号后,如下图表示已经配置成功,接下来就可以调试程序了。点击Edit,选择DebugRel Setings,编辑编译与调试的相关参数:点击Debug图标调试程序(会自动跳转AXD界面):接下来你就可以开始调试你的程序了。
发表于 2020-06-06
ADS1.2使用jlink调试程序(调试芯片s3c2440arm9)
对mini2440存储器的理解和使用
S3C2440是32位的处理器理论寻址范围为2^32即4G,S3C2440使用[26:0]作为地址线,寻址范围128M,使用[29:27]作为bank选择信号,所以S3C2440可以连接8个外设,如果全部连接存储器就可以达到1GB的内存。在S3C2440中内存为64MB,它使用了第6和第7个bank连接两片32MB的SDAM。由于外设多种多样其位宽也不尽相同,所以每个bank的数据宽度是可以软件编程控制的。为什么下载程时要下载到0x30000000地址单元执行,或下载文件到0x30000000地址单元再通过写操作写到NAND FLASH?因为两片SDARM在bank6和bank7上面连接,通过[29:27]的信号决定选择那块
发表于 2020-05-20
对mini2440存储器的理解和使用
一起学mini2440裸机开发(三)--S3C2440时钟学习
前言首先,我们应该知道一点,mini2440开发板在没有开启时钟前,整个开发板全靠一个12MHz的外部晶振提供频率来工作运行的,也就是说CPU、内存、UART、ADC等所有需要用到时钟频率的硬件都工作在12MHz下,而S3C2440A可以正常工作在400MHz下,可想而知两者速度相差会有多大了。如果CPU工作在12MHz频率下,开发板的使用效率非常低,所有依赖系统时钟工作的硬件,其工作效率也很低,比如,我们电脑里面经常提到的超频,超频就是让CPU工作在更高的频率下,让电脑运算速度更快,虽然频率是越高越好,但是由于硬件特性决定了任何一个设备都不可能无止境的超频,电脑超频时要考虑到CPU或主板发热过大,烧坏的危险,同样开发板的主板
发表于 2020-05-14
一起学mini2440裸机开发(三)--S3C2440时钟学习
小广播
何立民专栏 单片机及嵌入式宝典

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

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