ARM是功能更加强大的单片机,在学习裸机程序设计的过程中,发现ARM比一般的单片机集成了更多的外设,包含更多的GPIO,有更多的寄存器,通过寄存器的设置和启用来控制相关引脚,从而控制相关设备。这导致ARM的编程和一般单片机的编程有所不同,ARM9一般是32位。而现在单片机一般为8位和16位,编程时在单片机上对于某个位一般直接赋值,而对于ARM则习惯使用位操作,一方面容易实现操作,另一方面不影响寄存器其他位的值。
S3C2440为32位的CPU,故从理论计算其应该有4GB的寻址范围,但实际上只有1GB被使用来连接外设,另一部分作为CPU的内部存储器地址,其余未被使用。其中1GB的寻址范围又分为BANK0~BANK7,其中BANK6和BANK7的大小是可编程的,一般接SDRAM,BANK0~BANK5固定是128M,,CPU对外引出8根片选信号nGCS0~nGCS7,对应于BANK0~BANK7,故可达到1GB的寻址空间。
支持两种方式的启动:NOR FLASH和NAND FLASH。NOR FLASH的接口与ARM完全相同,可直接访问任意地址,支持XIP,故选择从NOR FLASH启动可直接讲引导代码放在NOR FLASH中执行引导。NAND FLASH的访问必须为串行访问。CPU内部有4KB的缓冲RAM,成为“steppingstone”,当从NAND FLASH启动时,CPU先将NAND FLASH的前面4KB的代码复制到steppingstone中,然后跳到地址0处开始执行,故只需将引导代码放在NAND FLASH的前4KB中就可以执行引导启动。
关键字:S3C2440的 内存分配 启动方式
引用地址:
关于S3C2440的学习总结(一)--内存分配和启动方式
推荐阅读最新更新时间:2024-11-04 17:25
学习笔记—S3C2440的内存管理器
今天逃了一天的课用来学习S3C2440的内存管理器,这是在学习stm32的时候没有学过的,stm32增强型大容量的芯片带有FSMC(灵活的静态存储单元)用来接外部存储器,当时学的也是云里雾里,当时是要用FSMC来控制LCD显示屏,到昨天为止还有好多问题不知道如何解答,不过今天学完这一部分算是把以前关于外部存储器的疑问都解决了。首先要说说S3C2440是如何启动的,S3C2440有两种启动方式: 1.NOR启动 2.NAND启动这里只说说NAND启动方式: 上电之后NAND的前4拷贝到S3C2440内部4K的SRAM中,且设为0地址,地址从这部分开始运行 初始化内存管理器 把程序从SRAM复制到SDRAM继续执行 再来说
[单片机]
s3c2440裸机之中断向量的写法(一)
直接使用跳转指令(B) b reset b undefined_instruction b software_interrupt b prefetch_abort b data_abort b not_used b irq b fiq /* ... */ 反汇编后是这个样子的(链接时的起始地址为0x33f80000): 33f80000 .text : 33f80000: ea000006 b 33f80020 reset 33f80004: ea000006 b 33f80024 undefined_instruction 33f80008: ea000006 b 33f80028 software_interrupt 3
[单片机]
基于DM9000AE的S3C2440嵌入式系统的以太网接口设计
本文介绍了一个基于三星ARM9芯片S3C2440嵌入式系统的以太网接口电路设计方案,采用了工业级以太网控制器DM9000AEP成功实现了嵌入式系统网络数据交换。论文在重点阐述了网络接口电路基础之上,对Windows CE系统控制软件部分DM9000AEP的驱动程序和注册表项进行了具体分析。 随着微电子技术和计算机技术的发展,嵌入式技术得到广阔的发展,已成为现代工业控制、通信类和消费类产品发展的方向。以太网在实时操作、可靠传输、标准统一等方面的卓越性能及其便于安装、维护简单、不受通信距离限制等优点,已经被国内外很多监控、控制领域的研究人员广泛关注,并在实际应用中展露出显著的优势。本文提出了一种基于DM9000AE网络接口芯片和32位
[单片机]
S3C2440定时器的使用
#include mytimer.h #include lhg_def.h #include uart.h #include lhg_def.h #include 2440addr.h //Timer input clock Frequency = PCLK / {prescaler value+1} / {divider value} //PCLK=50Mhz //prescaler : 0~255 #define prescaler234 99 //divider : 1/2,1/4,1/8,1/16 选择为(0,1,2,3) #define divider4 2 //定时器设置为62500HZ void __irq ti
[单片机]
S3C2440—5.UART的使用
一.S3C2440中的UART介绍 UART(universal asynchronous receive transmitter)通用异步收发器,用来收发串行数据,以全双工的形式进行通信,UART使用的电平标准是TTL/CMOS,一帧数据通常包含开始位、数据位、校验位、停止位,UART传输的双方要统一波特率。 S3C2440中有三个UART独立通道,功能类似,下面分块介绍一下UART比较重要的部分。 UART的用途一般有俩种: 1.作为与上位机的通信接口,打印调试信息 2.作为外设模块的驱动接口,连接驱动外设,比如:蓝牙、GPS等 1.1 电平匹配 ARM串口电平为TTL,要根据PC的匹配电平来选择电平转换芯
[单片机]
U-Boot移植(4)增加对S3C2440的支持 (修改编译错误)
9、第一次make all,出现如下错误。 从上面错误可以看出明显是结构体中没有定义CAMDIVN,于是要找到定义这个时钟变量的地方,增加它。进入include/s3c24x0.h,找到下面的typedef struct处: typedef struct 的最后一行为新增的。 修改完后保存,再次回到顶层中,先make distclean。 10、再一次make all,又出现了如下错误: 上面到底是什么错误呢?一时是想不通,吃个饭再说吧! 吃完饭来到实验室之后,上网查了些资料,终于明白。 要么U-Boot源码问题,要么是编译器的问题。源码是从官方下的,一般是不会有问题的,那么就是编译器问题,那编译器
[单片机]
s3c2440之IIS(4)S3C2440的I2S控制器
I2S音频总线学习(三)S3C2440的I2S控制器 一、I2S控制器结构框图 S3C2440A的Inter-IC Sound (IIS)总线接口作为一个编解码接口连接外部8/16位立体声音频解码IC用于迷你碟机和可携式应用。IIS总线接口支持IIS总线数据格式和MSB-justified数据格式。该接口对FIFO的访问采用了DMA模式取代了中断。它可以在同一时间接收和发送数据。 图1 结构框图 1 、总线接口,寄存器组和状态机(BRFC):总线接口逻辑和FIFO 访问由状态机控制。 2、5 位双预定标器(IPSR):一个预定标器用于IIS 总线接口的主时钟发生器,另外一个用作外部编解码时钟发生器。 3、64 位FIF
[单片机]
s3c2440 外中断的按钮实现
根据TQ2440开发板的原理图,按键接的是S3C2440可用于外部中断的EINT0,1,2,4引脚,GPFCON可以设置这些引脚的功能。 EXTINT0寄存器可以设置这四个引脚的中断产生的条件,需要注意的是EINT0~2都有自己的中断向量,而EINT4~7则共用一个中断向量。 因此使用EINT4时还要在EINTMASK寄存器开相应中断允许位,进入EINT4中断后还要清EINTPEND寄存器的中断位。 以下是中断处理函数的流程图,这四个按钮实现的方法都一样: 以下是程序: /******************************* s3c2440外部中断按键实验 L
[单片机]