08 2013 档案

s3c2440启动代码学习笔记
摘要:启动代码:设置中断向量,顺序为RESETUDEFSWIPREFETCHUDEFDATAABTNOP //保留地址IRQFIQ共七个中断向量机器上电后从0x00000000地址执行指令,到RESET处初始化系统1.关闭Watchdog,否则cpu会不断重启2. 如果需要使用C函数需要设置sp 注意每个工作模式都有自己的sp,需要设置,另外上电时内存空间只有SteppingStone的4k内部ram,sp不能超过4k ATPCS规定栈为FD,sp指针必须指向栈顶元素,启动代码在跳转到绝对地址运行之前必须使用相对跳转指令3.初始化SDRAM4.设置cpu运行速度5.复制运行代码到SDR... 阅读全文

posted @ 2013-08-20 18:46 lwp513 阅读(2130) 评论(0) 推荐(0)

s3c2440中断学习笔记
摘要:进入异常时cpu将做如下工作1.将中断时pc的值copy到lr(此时pc的值为中断指令位置+8,所以返回的指令地址应该是当前pc值+4)2.CPSR->SPSR_(irq) (相当于bl跳转)3.强制进入irq,ARM工作模式4.跳转到异常制定的指令位置进入异常时应该保护寄存器:stmdb sp!, { r0-r12,lr }退出时恢复寄存器: ldmia sp!, {r0-r12,pc}^ "^":当中有pc寄存器时,表示执行指令后spsr中的值自动复制到cpsr中,如果没有pc寄存器是,^表示操作的是用户模式下的寄存器,而不是当前特权模式的寄存器,也就是说在特权模 阅读全文

posted @ 2013-08-20 13:16 lwp513 阅读(530) 评论(0) 推荐(0)

ARM汇编程序基本知识
摘要:1.汇编程序的基本组成ARM汇编语言程序中,程序是以程序段为单位组织代码的。段是相对独立的指令或者代码序列,拥有特定的名称。段的种类有代码段、数据段和通用段,代码段的内容为执行代码,数据段存放代码运行时需要用到的数据,通用段不包含用户代码和数据,所有通用段共用一个空间。段使用AREA伪操作来定义,并且说明相关属性,如代码段定义 AREA Init, CODE, READONLY …数据段定义 AREA Stack1,DATA,READWRITE,NOINIT,ALIGN=3 ……等一个汇编程序至少应该有一个代码段,可以有零或者多个数据段。在格式上,一个汇编程序需要至少有一个ENTRY(关于EN 阅读全文

posted @ 2013-08-18 12:50 lwp513 阅读(872) 评论(0) 推荐(0)

FCLK、HCKL和PCLK的关系
摘要:三星官方搭载的wince系统的FLCK值为400MHz,HCLK值为100MHz、PCLK值为50MHz。那么这些值通过什么方法计算出来呢?大概过程如下,这些值在外部晶振12MHz的基础上通过PLL的作用倍频到我们需要的核心频率如400MHz,由于该频率过高,需要通过对预分频器进行适当的设置获取外围设备能够正常工作的频率如HCLK 100MHz、PLCK 50MHz。Fclk(给CPU核供给时钟信号,我们所说的s3c2410的cpu主频为200MHz,就是指的这个时钟信号,相应的,1/Fclk即为cpu时钟周期)、Hclk(为AHB bus peripherals供给时钟信号,AHB为adva 阅读全文

posted @ 2013-08-11 00:00 lwp513 阅读(1297) 评论(0) 推荐(0)

ARM C编程
摘要:1、访问绝对地址的内存位置: #define pISR_EINT0 (*(unsigned *) (_ISR_STRATADDRESS+0x74))上述语句把无符号整数_ISR_STRATADDRESS+0x74强制转换为指针,指向RAM,后又取回指向该地址的实例,用下面的语句可以访问它:pISR_EINT0 = (unsigned int)Eint0_ISR,指向该地址的实例的地址又指向一个被强制转换为U32bit的函数地址 为了访问一个绝对地址,把一个整形数强制转换(typecast)为一指针。2、__irq: 为了方便使用高级语言编写异常处理函数,ARM编译器对异常处理函数做了特定扩展, 阅读全文

posted @ 2013-08-10 22:41 lwp513 阅读(365) 评论(0) 推荐(0)

统一编址 独立编址 寻址空间
摘要:概念存储器统一编址,即从存储空间中划出一部分地址给I/O端口。CPU访问端口和访问存储器的指令在形式上完全相同,只能从地址范围来区分两种操作。优点对端口操作的指令类型多,功能全,不仅能对端口进行数据传送,还可以对端口内容进行算术逻辑运算和移位运算;其次是有较大的编址空间;缺点端口占用存储器的地址空间,使存储器的可用地址空间变小;端口指令的长度增加,执行时间变长;由于访问I/O与访问内存的指令一样,在程序中不易分清楚是访问I/O端口还是访问内存,使得阅读困难;端口地址译码器较复杂独立编址在不同的微机系统中,I/O端口的地址编排有两种形式:存储器统一编址和I/O独立编址。I/O独立编址I/O端口编 阅读全文

posted @ 2013-08-08 12:55 lwp513 阅读(879) 评论(0) 推荐(0)

SDRAM工作过程
摘要:SDRAM是SynchronousDynamicRandomAccessMemory(同步动态随机存储器)的简称,它将CPU和RAM通过一个相同的时钟锁在一起,使得RAM和CPU能够共享一个钟周期,以相同的速度同步工作,从而解决了CPU和RAM之间的速度不匹配问题,避免了在系统总线对异步DRAM进行操作时同步所需的额外等待时间,可加快数据的传输速度。:启动初始化:1、同时启动设备核心电源VDD和设备I/O电源VDDQ。声明并维持CKE引脚为高电平(CKE引脚为ClockEnable,时钟使能信号,高电平表示启动内部时钟信号)。2、等到VDD和VDDQ稳定后并且CKE设为高电平,应用稳定时钟。3 阅读全文

posted @ 2013-08-08 12:09 lwp513 阅读(858) 评论(0) 推荐(0)

s3c2440的内存管理机制
摘要:1. Nand Flash、Nor Flash、SDRAM地址区别Nand Flash:ROM,容量大,适用于数据存储,ARM不能从Nand中直接启动,需要把程序从Nand的前4k空间中拷贝到SDRAM,然后再从SDRAM中启动。Nor Flash:ROM,容量小,适用于程序存储,ARM可以从Nor Flash中直接启动。SDRAM: RAM,容量大,操作系统等大型软件都运行在SDRAM中。2. S3c2440寻址空间:S3C2440有27根地址线ADDR[26:0],8根片选信号ngcs0-ngcs7,对应bank0-bank7,当访问bankx的地址空间,ngcsx引脚为低电平,选中外设。 阅读全文

posted @ 2013-08-08 11:55 lwp513 阅读(425) 评论(0) 推荐(0)

导航