当在S3C6410跑操作系统的时候,我们不太会注意S3C6410的内存使用情况,但是,当我们做裸板测试时,该处理器的8K的片内内存的使用就不得不注意,一旦编写的程序大小超过了片内内存的大小,我们就不能得到正确的结果,究其原因,我们先看一下S3C6410的启动过程。
本文引用地址:http://www.eepw.com.cn/article/203124.htm
S3C6410如果选用NANDflash启动,在我们烧写裸板程序是,先将程序烧写至NANDflash中,S3C6410通过硬件将NANDflash中前8K的程序完整复制到S3C6410片内内存中。若裸板程序较小,程序可以正常运行,若果程序超过了8K,那么裸板测试程序不能完整的复制到片内内存,使得程序出现未知的结果。这时,我们需要关注S3C6410的各种内存的使用情况了。
我们知道,在一个程序文件中,拥有代码段、数据段和bss段,而一个程序的bin文件中是没有bss段,因此,在程序的bin文件中主要完成:
①硬件的初始化
②DDR的初始化
③S3C6410程序的重定位
④拷贝程序至DDR中
⑤清除DDR中bss段
⑥程序链接至DDR中
为进一步说明启动过程,现在进行详细的说明:
S3C6410为NANDflash启动,同时S3C6410外挂DDR,这样,就能解决程序超过8K之后的正常运行。三者之间的连接示意图如下图所示:
我们知道,S3C6410启动的时候,将NANDflash中前8K的程序完整拷贝至S3C6410片内内存中,在这8K程序中,必须完成硬件初始化、DDR初始化和程序从NANDflash中拷贝到DDR中,这样才能保证S3C6410cpu程序可以跳转到DDR,保证程序的顺利进行。在这过程中会涉及到程序的链接地址和程序的重定位方面的知识,如果你对这方面知识不熟悉,请查阅该方面的知识。
三者之间的操作步骤如下:
1、系统上电,S3C6410为NANDflash启动,硬件自动将NANDflash中前8k的程序复制到S3C6410片内内存中;
2、系统从S3C6410片内内存0地址开始执行,此时程序需要完成DDR初始化、将bin程序从S3C6410片内内存或者NANDflash拷贝到DDR链接地址起始位置;
3、将NANDflash程序拷贝到DDR中,通过程序重定位和链接到DDR链接地址开始位置(此时注意,在程序的编写中需要用位置无关跳转指令进行编写,否则程序会因为跳转后找不到链接起始地址和变量而出现错误)
4、当系统完成以上操作后,通过位置相关指令将PC值链接到DDR重定位位置,完成程序的运行(注意此时应使用位置相关指令完成PC值的跳转,若使用位置无关指令,则程序一直循环在S3C6410片内内存中)。
注意:
s3c6410启动时自动拷贝nand flash前4页的内容到片内内存执行,而且拷贝时只拷每页中的前2KByte好像是为了兼容2k页的 所有copy2ddr函数中不要把所有数据全部照搬过去,只搬每页的前2k到ddr连接起来 。可以参考“百问网6410第1期Nand flash的问题”修改nand_read函数!
上一篇:OK6410裸机片内内存中重定位代码
下一篇:OK6410裸机学习之串口实验
推荐阅读
史海拾趣
Arduino平台从一开始就秉持着开源和合作的理念。它的源代码、硬件设计和文档都是公开的,鼓励开发者们共同参与和贡献。这种开放的精神吸引了大量的开发者加入Arduino社区,共同推动Arduino平台的发展。同时,Arduino也与许多企业和机构建立了合作关系,共同推动电子行业的发展和创新。
为了提升产品质量,增强客户信任,灿科盟在2008年成功通过了ISO9001:2000版质量管理体系认证。这一认证标志着公司在质量管理方面达到了国际标准,也为公司赢得了更多客户的青睐。此后,公司继续加强质量管理体系建设,不断提升产品质量和服务水平。
在激烈的市场竞争中,CAROLCABLE公司深知技术创新是企业发展的核心动力。因此,公司不断加大研发投入,引进先进的生产设备和技术人才,推动技术创新和产业升级。经过多年的努力,CAROLCABLE成功研发出了一系列具有自主知识产权的高性能线缆产品,这些产品在传输速度、稳定性和耐用性等方面均达到了行业领先水平。
随着产品技术的不断升级,CAROLCABLE开始积极拓展国内外市场。公司参加了多个国际电子线缆展会,与全球同行交流学习,寻找合作机会。同时,CAROLCABLE还加强与国内大型电子企业的合作,为其提供定制化的线缆解决方案。这些举措不仅为公司带来了更多的商机,也进一步巩固了CAROLCABLE在电子线缆行业的领先地位。
这两个故事仅是对CAROLCABLE公司发展起来的简要描述,实际上,公司的成长历程中还有许多值得探讨的细节和里程碑事件。如需了解更多关于CAROLCABLE公司的故事,建议查阅相关新闻报道或公司官方资料。
在2021年,诚芯微获得了数千万元的Pre-B轮融资,由中信建投和投控东海入股、时代伯乐加投。这笔融资为公司的发展注入了新的动力。同时,公司还完成了股改,正式更名为深圳市诚芯微科技股份有限公司。股改完成后,诚芯微的治理结构更加完善,为公司未来的发展奠定了坚实的基础。
以上故事仅为概述性描述,实际发展过程中可能涉及更多细节和复杂因素。如需更详细的信息,建议查阅相关新闻报道或行业分析报告。
随着电子行业的不断发展,市场对电子元件的需求也在不断变化。为了适应这一变化,DLI不断调整产品战略,推出了更多符合市场需求的新产品。例如,针对商业和工业领域的需求,DLI研发了具有高性能、高可靠性特点的MLCC产品,并成功打开了市场。此外,公司还不断加大研发投入,探索新的技术领域,以保持其在行业中的领先地位。
随着市场需求的不断增长,ERA Transformers公司面临着扩大生产规模的挑战。为了满足客户需求并保持市场竞争力,公司决定投资建设一个新的生产基地。经过精心规划和筹备,新的生产基地顺利建成并投入使用。这不仅大大提高了公司的生产能力,还进一步提升了产品质量和生产效率。新基地的建成标志着ERA Transformers公司在电子行业中的地位更加稳固。
是这样的,我之前在2410的开发板上移植了linux系统,然后用QT作了个图形程序并且一直到了开发板的linux中并且能够正常运行。目前的想法是将之前开发板的LCD换成图形点阵的单色屏,这样的话QT能正常显示在单色屏里吗?望高手指点。。。… 查看全部问答∨ |
|
今天我用cetk来测试我的驱动程序关于AUDIO部分的。 我的音频部分录音很放音平时在机器上测都没有问题。。。都用了很长时间了,起码有3个月了。。但是今天用cetk测试的结果是 *** vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv ...… 查看全部问答∨ |
|
相信很多人都在为自己的手机续航时间太短而苦恼。别着急,现在的一项新技术就能够将手机电池的续航时间延长到现在的12倍!这是由一位就读于加拿大卡尔顿大学(Carleton University)的博士生Atif Shamin发明的新技术。传统手机是通过电线将手机的电路 ...… 查看全部问答∨ |
我用LM336做AD参考电压,我量过336输出2.5V很精确加一个1V(比较稳定)电压,采集数据最大最小相差50个数据。我用过万利的板子测试过他们的AD,他们用的AMS117做参考,误差也不超过5个数据。看看我原理图右问题吗?… 查看全部问答∨ |
#include<reg52.h>#define uchar unsigned char #define uint unsigned intuchar shu=0,count=0;uchar qian,bai,shi,ge;long f;uchar code dutable[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};void display(uchar qian,ucha ...… 查看全部问答∨ |