s3c2410架构描述
aaronychen
性格适中,爱好运动
展开
-
2410的初始化过程
2410的初始化流程1 在mach-smdk2410.c中先通过MACHINE_START()定义了machine_desc的变量,其中注册了smdk2410_map_io(), s3c2410_init_irq(), smdk2410_init()这3个回调函数. 这3个回调函数会在系统起来的时候setup_arch()里面逐个调用来进行虚实地址映射, 中断初始化, clock初始化,片上设原创 2008-04-17 09:47:00 · 1867 阅读 · 0 评论 -
2410下寄存器地址虚实映射的实现
2410下寄存器地址虚实映射的实现我们知道在我们的驱动里面一般操作的寄存器的地址都是虚拟地址, 然而一般在cpu的datasheet里描述的寄存器的地址都是物理地址, 那linux内核是如何把我们驱动中指定操作的虚拟地址转换成正真可寻址并操作的物理地址的呢? 这篇文档以s3c2410为例, 将详细的描述这么一个实现流程。 S3c2410使用的是arm920T的核,它支持MMU,原创 2009-09-11 10:06:00 · 8006 阅读 · 1 评论 -
2410下clock源码分析
2410下clock源码分析Author:aaron 这篇文章主要使用2.6.22下2410方面关于clock的源码来进行简单的分析, 希望通过这篇文档能对系统中的clock的使用问题有个了解. 写这篇文档除了参考了源码外, 还要参考2410的datasheet, 毕竟代码都是按照spec来写的嘛.我们先来看下2410下各种clock是如何产生的:原创 2009-05-22 11:05:00 · 5919 阅读 · 0 评论 -
s3c 2410 DMA驱动源码分析1
2410下DMA驱动源码分析Author:aaron 关于2410下的DMA操作模式等信息的介绍请参考我的另外一篇文章 S3C2410:DMA介紹>>, 这里主要以kernel为2.6.22的源码来对2410DMA的驱动源码的做个分析.首先我们由kconfig和makefile来获取DMA方面相关文件(即源码): Arch/arm/plat-s3c24xx/Dma.原创 2009-04-08 09:54:00 · 7537 阅读 · 0 评论 -
s3c2410 DMA驱动源码分析2
Arch/arm/plat-s3c24xx/dma.c:/* s3c2410_dma_getposition * * returns the current transfer points for the dma source and destination*/int s3c2410_dma_getposition(dmach_t channel, dma_addr_t原创 2009-04-08 09:56:00 · 8328 阅读 · 0 评论 -
S3C2410:DMA介紹
S3C2410:DMA介紹之所以要介绍DMA,因为它对性能太重要了!只有活用了DMA,CPU的性能才能上去!S3c2410有四个DMA,每个DMA支持工作方式基本相同,但支持的source Dest可能略有不同,具体见Datasheet。 这里具体DMA CONTROL寄存器(DCON)的配置说明,进而引出DMA的各种工作方式。Atomic transfer:指的是DMA的单次原转载 2009-04-03 09:23:00 · 5817 阅读 · 0 评论 -
LCD控制器驱动流程
LCD控制器驱动流程LCD是一个片上设备,该设备对象及资源是静态初始化的并在系统启动时被添加到系统中去,/* LCD Controller */static struct resource s3c_lcd_resource[] = { /*LCD资源*/ [0] = { .star原创 2008-05-28 10:13:00 · 2076 阅读 · 0 评论 -
UART控制器驱动流程
UART控制器驱动流程UART控制器也属于片上设备, 因此它的流程也如其他的片上设备类似,流程可参考《2410下soc上的设备的驱动流程(RTC, watchdog等)》。首先是静态的初始化好这个设备的相关信息,包括中断号,寄存器地址等 在arch/arm/mach-s3c2410/devs.c下/* Serial原创 2008-05-26 10:51:00 · 2516 阅读 · 0 评论 -
IIC控制器驱动流程
IIC控制器驱动流程IIC控制器也属于片上设备, 因此它的流程也如其他的片上设备类似。首先是静态的初始化好这个设备的相关信息, 在arch/arm/mach-s3c2410.c下/* I2C */static struct resource s3c_i2c_resource[] = { [0] = {原创 2008-05-23 12:59:00 · 3601 阅读 · 0 评论 -
2410下MMU介绍
MMU,全称Memory Manage Unit, 中文名——存储器管理单元。 许多年以前,当人 们还在使用DOS或是更古老的操作系统的时候,计算机的内存还非常小,一般都是以K为单位进行计算,相应的,当时的程序规模也不大,所以内存容量虽然小, 但还是可以容纳当时的程序。但随着图形界面的兴起还用用户需求的不断增大,应用程序的规模也随之膨胀起来,终于一个难题出现在程序员的面前,那就是应用程 序太大以转载 2008-04-21 10:45:00 · 2053 阅读 · 4 评论 -
2410上NAND的初始化及驱动流程
一 NAND设备及资源的定义和注册我们通过MACHINE_START定义了smdk2410的machine_desc对象,这个对象里面有个init_machine的函数指针, 这里指向smdk_machine_init(), 我们的NAND设备就是在这个函数里注册到系统的.void __init smdk_machine_init(void){ …. s3c_devic原创 2008-04-21 10:44:00 · 2598 阅读 · 1 评论 -
2410下rtc驱动分析
首先RTC设备是一种片上设备, 用platform_device来表示 该设备(即platform_device的RTC对象)在设备的初始化过程中就已经注册进了系统(可以参考2410下soc上的设备的驱动流程(RTC, watchdog等)), 因此我们在RTC驱动的初始化里把RTC驱动注册到系统后,系统会probe到这个RTC设备,最后调用我们RTC驱动的probe函数.下面就重点分析241原创 2008-04-17 09:49:00 · 2182 阅读 · 0 评论 -
2410下片上设备如何添加并使用
在的初始化过程>>一文中我们看到了2410下的片上设备如何被添加到系统并和驱动配合使用的, 本文以RTC设备为例详细描述这个过程.首先在arch/arm/s3c-2410/devs.c下添加静态描述的RTC设备资源及代表RCT设备的platform_device对象./* RTC */static struct resource s3c_rtc_resource[] = {原创 2008-04-17 09:49:00 · 924 阅读 · 0 评论 -
2410下的中断流程分析
2410下的中断流程分析1 中断初始化参见 arch/arm/mach-s3c2410/Irq.cvoid __init s3c24xx_init_irq(void){ … /* 1. 清除所有pending的中断 */ last = 0; for (i = 0; i pend = __raw_readl(S3C24XX原创 2008-04-17 09:48:00 · 1370 阅读 · 0 评论 -
S3C2410 LCD 驱动程序移植及GUI程序编写
S3C2410 LCD 驱动程序移植及GUI程序编写1. 为了不让大家觉枯燥,让朋友们更好的理解,我以一个实例来叙述 S3C2410 下一个驱动程序的编写(本文的初始化源码以华恒公司提供的 s3c2410fb.c 为基础)及简单的 GUI程序的编写。 2. 拿到一块 LCD,首先要将 LCD的各个控制线与 S3C2410 的 LCD控制信号相接,当然,电源也一定要接入了,否则不亮可别转载 2009-09-15 09:53:00 · 6101 阅读 · 2 评论