
E1-> MCU ARM FPGA CPLD
yeqishi
博观而约取,厚积而薄发
展开
-
S3C2410 MMU
MMU,全称Memory Manage Unit, 中文名——存储器管理单元。许多年以前,当人们还在使用DOS或是更古老的操作系统的时候,计算机的内存还非常小,一般都是以K为单位进行计算,相应的,当时的程序规模也不大,所以内存容量虽然小,但还是可以容纳当时的程序。但随着图形界面的兴起还用用户需求的不断增大,应用程序的规模也随之膨胀起来,终于一个难题出现在程序员的面前,那就是应用程序太大以至于内存容转载 2009-10-19 23:29:00 · 679 阅读 · 0 评论 -
嵌入式Linux的串口驱动
<br /> CPU : s3c2410PLAT : 由smdk2410修改来的一块板子。(资料依旧非常有限)<br /> 这次的项目,板子上面串口部分非常怪异。我们知道,samsung s3c2410这款芯片的UART控制器一共可以支持3个串行端口,如果不够用,还可以通过8250之类的芯片来扩展。而我手上的板子却不是这样实现的,它一共设计了7个端口,但是使用的方式比较特殊,port[1]和port[3]~port[6]这5个端口在任意时刻,只有一个有可能会被使用,考虑到这种特殊的使用方式,转载 2010-10-11 23:46:00 · 3638 阅读 · 0 评论 -
I/O内存内存操作
<br />I/O内存内存操作<br />访问寄存器和访问普通的SDRAM是不同的。<br />特殊寄存器在2410上映射在虚拟地址的0xf0000000开始的地方。<br />具体可以参考map.h的定义。<br />#define ioread8(p) ({ unsigned int __v = __raw_readb(p); __v; })<br />#define ioread16(p) ({ unsigned int __v = le16_to_cpu(__raw_readw(p));转载 2010-10-12 00:51:00 · 929 阅读 · 0 评论 -
UART设备驱动分析
<br />尽管一个特定的UART设备驱动完全可以遵循14.2~14.5的方法来设计,即定义tty_driver并实现其中的成员函数,但是Linux已经在文件 serial_core.c中实现了UART设备的通用tty驱动层(姑且称其为串口核心层),这样,UART驱动的主要任务演变成实现serial- core.c中定义的一组uart_xxx接口而非tty_xxx接口,如图14.5所示。<br /> serial_core.c串口核心层完全可以被当作14.2~14.5节tty设备驱动的实例,它实现了U转载 2010-10-24 14:43:00 · 1783 阅读 · 0 评论 -
UART设备驱动
博主提示:本文作者不详,但内容很有含量,相信对您一定很有帮助!同时感谢作者的奉献!<br /> 尽管一个特定的UART设备驱动完全可以遵循14.2~14.5的方法来设计,即定义tty_driver并实现其中的成员函数,但是Linux已经在文件 serial_core.c中实现了UART设备的通用tty驱动层(姑且称其为串口核心层),这样,UART驱动的主要任务演变成实现serial- core.c中定义的一组uart_xxx接口而非tty_xxx接口,如图14.5所示。<br /> serial转载 2010-10-27 23:53:00 · 4571 阅读 · 0 评论 -
mips处理器学习笔记
摊上了移植bootloader和OS的事情,没办法,得把mips工作机制弄明白了才能干好啊。今天托我家狗狗了买了本 《see mips run》。就用它为主了。争取用一个月的时间走一遍。同时把学习笔记和心得记录到这里。本篇为第一章。从mips体系结构开始。 一.mips汇编语言 1.借助c预处理器,在汇编代码中避免使用寄存器编号。尽量使用寄存器名称。 2. 在一个单词后加 ":"表示这是个标号,标号可以包含各种字符,以及定义代码入口点和指定数据段的存储地址。 /*转载 2011-04-07 15:26:00 · 1321 阅读 · 0 评论 -
ARM 与 MIPS 比较
<br />[前言]<br /> 这是一个几年以来我一直想做的“功课”,之所以称之为“功课”,而不能说是“文章”,是因为我觉得自己的知识还远远不够,不管是深度还是广度,也不管是全面性还是透彻性,我都不敢。但是我实在是很想把我的一些理解写出来,然后能和其他朋友一起探讨,纠正错误,补充完善,最终目的就是要加深对ARM和MIPS 这两种CPU架构的认识。<br /> 这里的目前最多只能算个草稿吧,请大家不断的补充。 <br />[正文]<br />1.流水线结构 pipeline<br />转载 2011-04-07 15:27:00 · 961 阅读 · 0 评论 -
C8051与SRAM的高速接口
摘要:C8051是美国Cygnal公司生产的、与标准51兼容的高速单片机,速度高达25 MIPS,但它扩展外部SRAM的方式与标准51单片机不同。单片机访问外部存储器的速度直接影响系统的性能。本文介绍两种提高C8051访问外部存储器速度的接口方法,其速度均超过现有文献所给出的接口方法。 关键词:单片机 SRAM C8051 接口方法C8051系列单片机没有与标准的51单片机那样的数据...转载 2010-10-19 13:39:00 · 1839 阅读 · 0 评论 -
嵌入式Linux系统中nandflash的寻址方式(以k9f1208 nandflash---64M x 8 Bit NAND Flash Memory为参考说明)
1.NAND Flash的寻址方式:NAND Flash Addressing Mode NAND Flash的寻址方式和NAND Flash的memory组织方式紧密相关。NAND Flash的数据是以bit的方式保存在memory cell(存储单元),一般来说,一个cell中只能存储一个bit。这些cell以8个或者16个为单位,连成bit line,形成所谓的byte(x8)/w...转载 2010-12-30 14:29:00 · 1371 阅读 · 0 评论 -
MIPS构架简介
MIPS体系结构首先是一种RISC架构1 MIPS32架构中有32个通用寄存器,其中$0(无论你怎么设置,这个寄存器中保存的数据都是0)和$31(保存函数调用jal的返回地址)有着特殊的用途,其它的寄存器可作为通用寄存器用于任何一条指令中。虽然硬件没有强制性的指定寄存器使用规则,在实际使用中,这些寄存器的用法都遵循一系列约定。这些约定与硬件确实无关,但如果你想使用别人的代码,编译器和操作系统...转载 2011-03-30 10:30:00 · 1911 阅读 · 0 评论 -
K9F1G08驱动程序
如果你认为本程序对您有价值,请反馈意见 /*********************************************************************************************************************** 工程名称: QDT64481BC终端主板控制器程序*** 文件名称: K9F1G08_Driver.C**...原创 2010-12-20 20:12:00 · 3214 阅读 · 0 评论 -
ARM-linux启动的流程
<br />ARM-linux启动的流程----转载<br />下面是我收藏的一篇好文章,就是忘记是那位仁兄,写的了,如果您正好看到这篇文章,请补注您的作者信息<br />------------------------------------<br />首先,porting linux的时候要规划内存影像,如小弟的系统有64m SDRAM, <br />地址从0x 0800 0000 -0x0bff ffff,32m flash,地址从0x0c00 0000-0x0dff ffff. <br />规划如下转载 2010-10-11 22:56:00 · 1329 阅读 · 0 评论 -
miniGUI移植到s3c2440
源码下载地址:http://sourceforge.net/projects/minigui/files/minigui/GPL-V1.6.10/(一)准备工作下载软件包libminigui-1.6.10.tar.gz --主要的库文件mg-samples-1.6.10.tar.gz --示例代码minigui-res-1.6.10.tar.gz --资源文件mg-sample...原创 2010-05-28 19:50:00 · 1226 阅读 · 0 评论 -
ARM空间分段(lst文件夹下map文件)
对于ARM,堆是向上生长的,栈是向下生长的。局部变量占用栈(stack)空间。程序中动态申请的如malloc()和new函数申请的内存空间占用堆(heap)空间。|Image$$RO$$Base| 表示RO输出段运行时起始地址,也可以说是程序代码存放的起始地址,由-ro-base这个参数指定;|Image$$RO$$Limit|表示RO输出段运行时存储区域界限,其值可通过|Image$转载 2010-04-14 19:42:00 · 1585 阅读 · 1 评论 -
ARM中断处理过程
1.寄存器R16用作CPSR(Current Program Status Register,当前程序状态寄存器),CPSR可在任何运行模式下被访问,它包括条件标志位、中断禁止位、当前处理器模式标志位,以及其他一些相关的控制和状态位。 每一种运行模式下又都有一个专用的物理状态寄存器,称为SPSR(Saved Program Status Register,备份的程序状态寄存器),当异常发生时,转载 2010-04-14 20:10:00 · 1067 阅读 · 0 评论 -
ARM中C和汇编混合编程及示例
1. 在C语言中内嵌汇编在C中内嵌的汇编指令包含大部分的ARM和Thumb指令,不过其使用与汇编文件中的指令有些不同,存在一些限制,主要有下面几个方面:a. 不能直接向PC寄存器赋值,程序跳转要使用B或者BL指令b. 在使用物理寄存器时,不要使用过于复杂的C表达式,避免物理寄存器冲突c. R12和R13可能被编译器用来存放中间编译结果,计算表达式值时可能将R0到R3、R12及R14用于...转载 2010-04-14 20:32:00 · 906 阅读 · 1 评论 -
ARM汇编指令应用总结
/**************请使用Ctrl+F查找你所想要的 ******************/ADD : 加法(Addition)ADD{条件}{S} <dest>, <op 1>, <op 2> dest = op_1 + op_2ADD 将把两个操作数加起来,把结果放置到目的寄存器中。操作数 1 是一个寄存器,操作数 2 可以是...原创 2010-04-29 16:32:00 · 1215 阅读 · 0 评论 -
S3c2410 LCD驱动学习心得
一 实验内容简要描述1.实验目的学会驱动程序的编写方法,配置S3C2410的LCD驱动,以及在LCD屏上显示包括bmp和jpeg两种格式的图片2.实验内容 (1)分析S3c2410实验箱LCD以及LCD控制器的硬件原理,据此找出相应的硬件设置参数,参考xcale实验箱关于lcd的设置,完成s3c2410实验箱LCD的设置(2)在LCD上显示一张BMP图片或JPEG图片3.实验条件(软硬件环境)P转载 2010-05-04 11:26:00 · 2349 阅读 · 0 评论 -
S3C2410时钟
一、对clock的基本认识 第七部分是“clock & power management”,总结如下: 1 s3c2410的clock & power management模块包含三个部分:clock control、usb control、power control。现在的关注点是clock control。 2、s3c2410有两个pll(phase l原创 2010-05-07 22:31:00 · 1146 阅读 · 0 评论 -
S3C2410 SDRAM寄存器初始化设置
几天前看初始化SDRAM代码时觉得比较困难,主要是因为之前没有接触过这方面,毫无经验,现在看来不难,麻烦在需要根据datasheet进行设置,好在是移植,很多强人的文章可参考。自己很容易忘事,就记录下来吧。 我的板子是s3c2410,使用两片容量为32MB、位宽16bit的HY57V561620CT-H芯片拼成容量为64M、32bit的SDRAM存储器。根据2410datasheet转载 2010-05-24 09:37:00 · 3182 阅读 · 0 评论 -
vivi开发笔记: MMU分析|ARM,vivi
这几天一直在看MMU部分,现在有了基本的认识,还不深入,解决了初级问题,并且仿照vivi完成了一个测试实例,对深入理解和验证推论的结果很有帮助。在学习的过程中,体会到几种方法还是比较实用的: · 从历史的角度去了解技术,梳理清楚发展主线,效率更高。 · 采用软硬件结合的方法分析,理解更为深入。 · 与同一爱好的朋友交流,可以发现认识的盲区,认识更为全面。转载 2010-05-23 21:24:00 · 1001 阅读 · 0 评论 -
2410Init.s
工程里面的头文件 2410Init.s包括了板子上电后的初始话,具体有几个步骤:讲述S3C2410启动程序设计1. 屏蔽所有中断,关看门狗。2. 根据工作频率设置PLL寄存器3. 初始化存储控制相关寄存器4. 初始化各模式下的栈指针5. 设置缺省中断处理函数6. 将数据段拷贝到RAM中,将零初始化数...转载 2010-05-25 10:21:00 · 937 阅读 · 0 评论 -
拼接式PDP数据传输中电磁干扰的消除
背景:最近在使用S3C2410 LCD控制器驱动TFT屏,直接驱动没有问题,但中间加LVDS转换传输后导致显示出现抖动现象,抖动程度因LVDS连接线长、连接线做工、通信频率而异。目前来看抖动是因为LVDS连接线和系统电源处理欠妥引起的。特发此文,以供大家参考,讨论。摘 要:阐述了在拼接式等离子体显示器数据传输过程中遇到的电磁干扰问题,并结合实际工作从硬件的改进和软件的编程人手采用...原创 2010-05-28 00:28:00 · 1791 阅读 · 0 评论 -
2440平台下linux串口开发源码示例(2440双串口间通信)
/***************************************************************************** 程序说明:示例程序演示了2440平台下linux串口应用开发,可实现2440串口2与串口3的通讯*** 硬件设置:将2440板子上的串口2、3TXD、RXD交叉短接*** 编译运行:在宿主机上编译程序源码,打开超级终端(可与2...原创 2010-04-26 23:44:00 · 3172 阅读 · 1 评论