LCD控制器

[点此回顾上课学习内容](http://blog.csdn.net/pz0605/article/details/53246715) 2440的lcd控制器可以驱动 STN LCD 和 TFT LCD 本文以较为常见的 TFT LCD 来讲解使用方法: 基础知识:首先, 我们来看下2440的 lcd controller 组成框图: REGBANK: LCD控制器的寄存器组, 含有17个寄存器及...
阅读(5692) 评论(0)

uart_stdio实验

目的:在串口0上实现printf、scanf等函数,它使用scanf、sscanf、printf等函数从串口接收一个十进制数字序列,然后将它转化为十六进制输出。 大致内容和uart实验类似,这里只分析两个文件。 stdio.lds SECTIONS { . = 0x00000000; .init : AT(0){ head.o init.o nand.o} /*将上面文件对应的运...
阅读(136) 评论(0)

Uart串口实验

[点此回顾上课学习内容] 目的:在串口上输入一个字符,单板结合接收到后将它的ASCII值+1后,从串口输出。 首先设置MPLL,提高系统时钟,令PCLK=50MHz,Uart选择PCLK为时钟源。然后代码复制到SDRAM中之后,调用main函数。 uart.lds SECTIONS { . = 0x30000000;/*设置当前运行地址为0x30000000*/ .text...
阅读(5566) 评论(0)

系统时钟MPLL和定时器操作实例

操作流程:首先启动MPLL提高系统时钟,初始化存储控制器使SDRAM工作在新的HCLK下,然后将定时器0设为2.5s产生一次中断,在中断程序里改变LED的状态。 timer.lds SECTIONS { . = 0x30000000;/*设置当前运行地址为0x30000000*/ .text : { *(.text) }/*所有输入文件的代码段*/...
阅读(129) 评论(0)

JZ2440系统时钟和定时器

系统时钟 首先看下各个模块与时钟总线的关系: 芯片刚开始上电时, 运行的时钟就等于晶振的时钟Fin, 通过设置MPLL和UPLL可以提升运行频率.MPLL计算方法: 例: Fout = (2 * (MDIV + 8) * Fin) / ((PDIV + 2) * (2^SDIV)) Fout = 200MHz = (2 * (92 + 8) * 12) / (1 + 2) * (2...
阅读(5562) 评论(0)

JZ2440的中断控制器

[点此回顾上课学习内容] S3C2440的中断分为两大类: 外部中断 和 内部中断. 一 外部中断EXTINT[x]: 用来配置各个引脚的中断触发方式 (高电平触发、低电平触发、下降沿触发、上升沿触发), 注意该寄存器与中断源的对应关系EINTPEND[x]: xxxPEND的寄存器都是状态寄存器, 初始化时先清除标志, 在清除中断的时候将寄存器的值赋值给本身即可EINTMASK[x]: 1...
阅读(168) 评论(0)

NandFlash 控制器操作实例:读Flash

摘要: 本文以S3C2440为例来讲解NAND FLASH控制器的使用方法. 例程中故意将一部分代码放置到 nand 的4k 字节之后, 因无法自动拷贝到steppingstone, 所以需要读取nand中的内容到sdram。代码执行示意图: nand.lds SECTIONS { firtst 0x00000000 : { head.o init.o nand.o} /*hea...
阅读(5531) 评论(0)

JZ2440的NandFlash控制器

芯片的型号:K9F2G08U0C 摘要: 本文以S3C2440为例来讲解NAND FLASH控制器的使用方法. 例程中故意将一部分代码放置到 nand 的4k 字节之后, 因无法自动拷贝到steppingstone, 所以需要读取nand中的内容到sdram, 本例程重点关注nand的初始化和读取. 1. 硬件部分: 1.1 简介: 芯片大小:256...
阅读(226) 评论(0)

JZ2440MMU段映射代码实现

实现流程: JZ2440V3的SDRAM物理地址范围处于0x30000000~0x33FFFFFF,S3C2440的寄存器地址范围都处于0x48000000~0x5FFFFFFF。在前面,通过往GPBCON和GPBDAT这两个寄存器的物理地址0x56000010、0x56000014写入特定的数据来驱动4个LED 开启MMU,并将虚拟地址空间0xA0000000~0xA0100000映射到物理地址空...
阅读(134) 评论(0)

JZ2440的MMU内存管理单元

学习于此 一、有MMU参与的寻址过程简介         首先需要了解3个总线地址概念:虚拟地址(VA,Virtual Address)、转换后的虚拟地址(MVA,Modified Virtual Address)、物理地址(PA,Physical Address)。         JZ2440v3使用2片16bit位宽、32MB容量的SDRAM组合成“一片”32bit位宽、6...
阅读(192) 评论(0)

JZ2440存储管理器学习

为什么存在存储器管理器: 答:CPU不会管太多,CPU只会发出指令从某个地址读数据,此时存储器管理器会根据地址判断是什么设备,并负责数据操作,把CPU想操作的数据反馈给CPU S3C2440的地址空间: 27位地址线,32位数据线,8个片选信号。共8个存储器(BANK0-7)1GB,系统上电将从bank0开始执行。 S3C2440对外引出27根地址线ADDR0-ADDR26,访问范围只有128MB,CPU对外还引出8根片选信号nGCS0-nGCS7,对应BANK0-BANK7,当访问BANKx的地址空间...
阅读(281) 评论(0)

JZ2440存储管理器代码实现(使用SDRAM)

启动文件初始化代码:@************************************************************************* @ File:head.S @ 功能:设置SDRAM,将程序复制到SDRAM,然后跳到SDRAM继续执行 @ 代码流程: @1> 关看门狗 @2> 设置存储控制寄存器(配置) @3> 复制代码到SDRAM中 @4> 设置堆栈 @5>...
阅读(208) 评论(0)

裸机_GPIO实验_C语言

引入:我们执行C语言程序时候,Main函数是被谁调用?执行完要返回给谁? 答:编译器编译代码 = 启动文件(标准库文件) + hello.c;由启动文件来调用main,最后main返回给启动文件。 标准库文件是编译器自动在代码前添加的,用来设置C程序的堆栈(无对战空间没法运行C程序)等,然后调用main函数。所以我们执行裸板的时候,需要自己写启动文件,来得以调用C代码。 启动文件@*******...
阅读(219) 评论(0)

裸机_GPIO实验_汇编

无论是什么开发板,实现LED灯的点亮都应该作为学习的第一步。 汇编点亮LED灯 查看原理图 查看数据手册设置相应的寄存器,配置引脚 学会运用pdf文档的查询功能! 3.汇编实现代码@****************************************************************************** @ File:led_on.S @ 功能:LED点灯程序,点...
阅读(250) 评论(0)

环境和工具介绍

用JZ2440为模版来学习ARM的裸机编程、uboot和内核移植、以及初步驱动的学习。 以下所用所有的工具如未特别标注则在韦东山网盘里都有下载:网盘链接请点我! 详细的介绍请点我!虚拟机: VMware Linux版本: Unbuntu 9.10 代码编辑工具: Notepad++ (需要自己下载) 串口工具: SecureCRT 远程登录工具: FileZilla 代码阅读...
阅读(147) 评论(0)
19条 共2页1 2 下一页 尾页
    个人资料
    • 访问:251526次
    • 积分:6532
    • 等级:
    • 排名:第3861名
    • 原创:304篇
    • 转载:13篇
    • 译文:89篇
    • 评论:83条
    【目录索引】

    闲适音乐

    博客专栏

    Email: 457086306@qq.com