资源简介
包括全部时钟程序的源码,以及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
相关资源
- STM32 led 时钟
- Micrium.RTOS.1.0.0.pack
- ISE_14.7_license.lic
- stm32f103c8t6 4 oled.rar
- mpu6050+hmc5883L.rar
- 嵌入式图形界面MiniGUI的示例程序9例
- 单片机电子时钟 闹钟 日历
- ARM嵌入式项目实战
- 单片机数字时钟包附电路图 源程序
- 软件方法测试RTX时钟
- (MFC) 时钟日期程序
- uCOS编译环境建立 BC45 TASM
- stm32 用SPI 方式读写 SDHC
- 图形学集成程序dda、中点算法、多边
- 自动售货机的内部嵌入式系统
- 51单片机中使用ucos ii的优缺点
- 嵌入式实时操作系统ucos-II 第二版 源
- 基于串口设备的嵌入式Web服务器系统
- 基于LW IP的嵌入式串口服务器的设计与
- 一种嵌入式串口共享服务器的设计
- 21天学会嵌入式开发STM32.zip
- 嵌入式智能平台为城市一卡通打造智
- 研祥“EVOC”嵌入式智能平台在
- ARM7TDMI-S在嵌入式系统中的Bootloader代码
- LPC2000系列微控制器应对嵌入式需求
- 嵌入式实时操作系统μC/OS-II与eCos的
- 基于STM32的嵌入式双目图像采集系统设
- 嵌入式实时操作系统在DATU中的应用
- 嵌入式实时操作系统μC/OS-II下通用驱
- 嵌入式实时操作系统μC/OS-II在ARM上的
评论
共有 条评论