摘要:S3C2440启动方式研究不管S3C2440的启动设备是什么,它都是从0x0000 0000地址开始执行程序的,所不同的是地址的映射不一样。基于S3C2440的嵌入式系统上电之后,需要首选选择启动设备,2440的启动方式选择是通过模式引脚OM1和OM0来配置的,如图1 所示为2440的启动方式选择说明:图1 S3C2440启动方式说明由上图可知,S3C2440支持两种启动模式:NAND和非NAND(这里是Nor Flash),具体采用的方式取决于OM0、OM1两个引脚的状态。OM[1:0所决定的启动方式 OM[1:0]=00时,处理器从NAND Flash启动OM[1:0]=01时,处理器从1
阅读全文
摘要:S3C2440对Nand Flash操作和电路原理(基于K9F2G08U0A)S3C2440内部集成了一个Nand flash控制器。S3C2440的Nand flash控制器包含了如下的特性:l 一个引导启动单元l Nand Flash存储器接口,支持8位或16位的每页大小为256字,512字节,1K字和2K字节的Nand flashl 软件模式:用户可以直接访问Nand Flash存储器,此特性可以用于Nand Flash存储器的读、擦除和编程。l S3C2440支持8/16位的Nand Flash存储器接口总线l 硬件ECC生成,检测和指示(软件纠错)。l Steppingstone接口
阅读全文
摘要:Nand Flash 原理简介 NAND flash是东芝公司开发的一种非易失闪存技术,具较高的单元密度,可以达到高存储密度,写入和擦除速度较快。NAND flash的单元尺寸几乎是NOR器件的一半,可以在给定的模具尺寸内提供更高的容量,具有很快的写入和擦除速度,主要功能是存储资料,目前主要用在数码相机闪存卡和MP3播放机中。NOR和NAND是现在市场上两种主要的非易失闪存技术。Intel于1988年首先开发出NOR flash技术,彻底改变了原先由EPROM和EEPROM一统天下的局面。紧接着,1989年,东芝公司发表了NAND flash结构,强调降低每比特的成本,更高的性能,并且象磁盘一
阅读全文
摘要:1、UART原理简介在介绍2440的UART控制器之前,我们首先来了解一下UART的原理UART:Universal Asynchronous Receiver/Transmitter(通用异步收发送器),用来传输串行数据,发送数据时,CPU将并行数据写入UART,UART按照一定格式在TxD线上串行发出;接收数据时,UART检测到RxD线上的信号,将串行收集放到缓冲区中,CPU即可读取UART获得的这些数据。UART最精简的连线形式只有3根线,TXD用于发送,RXD用于接收,GND用于提供参考电平。UART之间以帧作为数据传输单位,帧由具有完整意义的若干位组成,它包含开始位、数据位、校验位和
阅读全文
摘要:一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。 volatile修饰符的主要目的是提示编译器该对象可能在编译器未监测到的情况下被改变,因此不要对引用这些对象的代码做优化处理。关键点:1、在编译器监测范围之外被改变。2、对引用这些对象的代码不做优化处理。实现方法:每次要获取该变量的值时都从内存中获取而不直接读取存储该变量的寄存器。会发生的情况举例:主要是中断等情况,如一个被系统始终更新的变量。中断函数中会改变值的变量。这些情况编译器
阅读全文
摘要:这篇文章是从网上摘录的,觉得蛮有用的,所以保存下来IMPORT |Image$$RO$$Base| ; Base of ROM codeIMPORT |Image$$RO$$Limit| ; End of ROM code (=start of ROM data)IMPORT |Image$$RW$$Base| ; Base of RAM to initialiseIMPORT |Image$$ZI$$Base| ; Base and limit of areaIMPORT |Image$$ZI$$Limit| ; to zero initialiseIMPORT MMU_SetAsyncBu
阅读全文
摘要:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; When EINT0 is pressed, Clear SDRAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; check if EIN0 button is pressed;这一段检测EINT0是否被按下,假如EINT0被按
阅读全文
摘要:看了好几天的启动代码了,终于把大部分的东西都看懂了,在此整理下自己对TQ2440开发板启动代码的理解(参考了网上找的一些资料),并贴出来供大家看一下,希望对大家有帮助,如果有什么错了的地方,也请大家不吝赐教。;=========================================; NAME: 2440INIT.S; DESC: C start up codes; Configure memory, ISR ,stacks; Initialize C-variables;=========================================启动代码主要是在主程序运行之前
阅读全文
摘要:前一段时间,拿到了天嵌公司的TQ2440的板子,刚拿到的时候兴奋了半天--我也要开始搞嵌入式了 拿到板子研究了几天之后才发现原来没有那么简单。以前的只有单片机和微机原理的基础,对软件不算了解,对操作系统、bootloader等较底层的东西也是一知半解。原来以为搞嵌入式主要是Linux,驱动什么的,后来在学习的过程中,逛了不少的网站和论坛,似乎大家一致的声调是:要学好ARM和Linux,一定要打好基础,要对体系结构很清晰,不然以后如果做驱动或者底层的东西会很悲剧,所以跑了一段时间的裸奔。 刚开始的时候,主要是照着天嵌提供的测试程序来跑的。照着天嵌的例子走下来,感觉似乎很简单,一下就过去了,可是仔
阅读全文