资源简介
包括全部时钟程序的源码,以及makefile文件,生成的可执行文件。
代码片段和文件信息
#include “s3c2410.h“
#include “init.h“
#include “mmu.h“
/* SDRAM 13个寄存器的值 */
unsigned long const mem_cfg_val[]={ 0x22111110 //BWSCON
0x00000700 //BANKCON0
0x00000700 //BANKCON1
0x00000700 //BANKCON2
0x00000700 //BANKCON3
0x00000700 //BANKCON4
0x00000700 //BANKCON5
0x00018005 //BANKCON6
0x00018005 //BANKCON7
0x008e04f4 //REFRESHHCLK=12MHz:0x008e07a3HCLK=100MHz:0x008e04f4
0x000000b2 //BANKSIZE
0x00000030 //MRSRB6
0x00000030 //MRSRB7
};
/*上电后,WATCH DOG默认是开着的,要把它关掉 */
void disable_watch_dog()
{
WTCON = 0;
}
/**************************************************************************
* 设置控制SDRAM的13个寄存器
* 含有数组的代码,不是位置无关的,所以memsetup只能在连接位置执行
* 如果要使用位置无关代码,请使用memsetup_2
*
* REFRESH寄存器[10:0]的计算公式为:R_CNT = 2^11 + 1 - HCLK(MHz) * 7.8125
* 未使用PLL时,HCLK=12MHz,R_CNT=0x7a3
* 调用clock_init函数后,HCLK=100MHz,R_CNT=0x4f4
**************************************************************************/
void memsetup()
{
int i = 0;
unsigned long *p = (unsigned long *)MEM_CTL_base;
for(; i < 13; i++)
p[i] = mem_cfg_val[i];
}
void memsetup_2()
{
unsigned long *p = (unsigned long *)MEM_CTL_base;
p[0] = 0x22111110; //BWSCON
p[1] = 0x00000700; //BANKCON0
p[2] = 0x00000700; //BANKCON1
p[3] = 0x00000700; //BANKCON2
p[4] = 0x00000700; //BANKCON3
p[5] = 0x00000700; //BANKCON4
p[6] = 0x00000700; //BANKCON5
p[7] = 0x00018005; //BANKCON6
p[8] = 0x00018005; //BANKCON7
p[9] = 0x008e04f4; //REFRESHHCLK=12MHz:0x008e07a3HCLK=100MHz:0x008e04f4
p[10] = 0x000000b2; //BANKSIZE
p[11] = 0x00000030; //MRSRB6
p[12] = 0x00000030; //MRSRB7
}
/* 在第一次实用NAND Flash前,复位一下NAND Flash */
void reset_nand()
{
int i=0;
NFCONF &= ~0x800;
for(; i<10; i++);
NFCMD = 0xff; //reset command
wait_idle();
}
/* 初始化NAND Flash */
void init_nand()
{
NFCONF = 0xf830;
reset_nand();
}
/*************************************************************************
* 以下读NAND Flash的代码来自mizi公司的bootloader vivi
*************************************************************************/
#define BUSY 1
inline void wait_idle(void) {
int i;
while(!(NFSTAT & BUSY))
for(i=0; i<10; i++);
}
#define NAND_SECTOR_SIZE 512
#define NAND_BLOCK_MASK (NAND_SECTOR_SIZE - 1)
/* low level nand read function */
void nand_read_ll(unsigned char *buf unsigned long start_addr int size)
{
int i j;
if ((start_addr & NAND_BLOCK_MASK) || (size & NAND_BLOCK_MASK)) {
return ; /* invalid alignment */
}
/* chip Enable */
NFCONF &= ~0x800;
for(i=0; i<10; i++);
for(i=start_addr; i < (start_addr + size);) {
/* READ0 */
NFCMD = 0;
/* Write Address */
NFADDR = i & 0xff;
NFADDR = (i >> 9) & 0xff;
NFADDR = (i >> 17) & 0xff;
NFADDR = (i >> 25) & 0xff;
wait_idle();
for(j=0; j < NAND_SECTOR_SIZE; j++ i++) {
*buf = (NFDATA & 0xff);
buf++;
}
}
/* chip Disable */
NFCONF |= 0x800; /* chip disable */
return ;
}
/***************************************************************************
*
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 3004 2005-11-15 12:41 CLOCK\clock
文件 75 2005-06-11 07:39 CLOCK\clock.lds
文件 2312 2005-06-15 18:18 CLOCK\head.s
文件 4967 2005-06-15 18:18 CLOCK\init.c
文件 301 2005-06-11 07:51 CLOCK\init.h
文件 558 2005-06-11 07:39 CLOCK\interrupt.c
文件 20 2005-06-11 07:39 CLOCK\interrupt.h
文件 619 2005-06-11 14:12 CLOCK\main.c
文件 609 2005-06-11 09:48 CLOCK\Makefile
文件 3923 2005-06-11 07:39 CLOCK\mmu.c
文件 311 2005-06-11 14:04 CLOCK\mmu.h
文件 2778 2005-06-11 15:43 CLOCK\s3c2410.h
文件 670 2005-06-11 08:55 CLOCK\serial.c
文件 84 2005-06-11 07:39 CLOCK\serial.h
文件 27185 2005-11-15 12:41 CLOCK\ttt.s
目录 0 2005-11-15 20:45 CLOCK
----------- --------- ---------- ----- ----
47416 16
- 上一篇:rufus-2.18
- 下一篇:有源电力滤波器APF
相关资源
- 电子相册--QT
- 嵌入式系统课程设计报告
- 基于嵌入式的电子相册设计
- 嵌入式系统设计课程设计
- STM32的DS3231时钟芯片驱动串口测试程序
- 2014达内嵌入式.txt
- TI的msp430f5529读取DS1302时钟芯片,可以
- 数电设计 数字电子时钟---proteus
- 韦东山嵌入式开发视频
- 2018电子设计竞赛TI公司ADS1118keil源码
- 嵌入式AD转换
- 三线制实时时钟的读写
- 计算机图形学课程设计
- swf格式的时钟 flash小时钟
- 嵌入式Linux视频教程完整视频
- 用verilog语言写的CPU,支持外部中断与
- 嵌入式LGUI源代码-学习嵌入式GUI设计开
- 嵌入式系统课后习题答案
- minigui clock时钟
- HTK嵌入式ARM移植步骤
- 1602电子时钟万年历isis仿真文件,程序
- 黑莓上的嵌入式邮件SmartMail
- 基于STC89C52单片机的秒表程序
- gardner位同步算法
- 基于Linux嵌入式网络视频监控系统
- 数字时钟,采用555构成的多协振荡器
- Live555基于h264嵌入式linux下rtsp项目的裁
- 嵌入式软件课程设计
- 电子时钟的设计显示时,分,秒
- 数字时钟基于Multisim
评论
共有 条评论