mmccore.c

来自「最近在國外網站抓到的作業系統 以Arm為基礎去開發的」· C语言 代码 · 共 75 行

C
75
字号
/*
 * Header for MultiMediaCard (MMC)
 *
 * Copyright (c) 2004 ASIC of SOUTHEAST UNIVERSITY
 *
 * Many thanks to PESIA!
 *
 * Based strongly on code by:
 *
 * Author: Yong-iL Joh <tolkien@mizi.com>
 *
 * Date  : $Date: 2004/12/22 10:02:10 $ 
 *
 * Versation : 1.0 $
 *          
 */
#include "mmccore.h"

struct request g_Request;
struct mmc_dev          g_mmc_dev;
int mmc_nr_sects;
extern g_busy;

int  mmc_init(void) 
{
	int i;
    for(i=0;i<520;i++){
    	
    	*(U32*)(0x1fff0000 + 4*i) = 0xABCDEF;
    } 
	g_mmc_dev.suspended = 0;
	mmc_nr_sects = 64 *1024*1024/512;
	#if 0
	g_Request.cmd = 1 ;
	g_Request.sector =0;
	g_Request.block_len= 512;
	g_Request.nr_sectors=2;
	g_Request.buffer = (U32*)0x1fff0000;
	#endif
	return 0;
}

int  mmc_exit(void)
{
	mmc_nr_sects = 0;
	return 0;
}

void mmc_send_cmd( struct mmc_dev *dev, U32 cmd, U32 arg, U32 nob, U32 block_len)// jzp   
{
      
	unsigned long flags;
	unsigned long psr;
	dev->request.cmd       = cmd;
	dev->request.arg       = arg;
	dev->request.nob       = nob;
	dev->request.block_len = block_len;
	dev->request.buffer    = (U8*) 0;
	if ( nob && dev->io_request )
		dev->request.buffer = dev->io_request->buffer;
	//local_irq_save(flags);  
	psr = ent_cri();
	mmc_cmd_to_reg( &dev->request);
	ret_cri(psr);
	//local_irq_restore(flags);
	
}

int mmc_finish_io_request(  int result )
{
	g_busy = 0;
	return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?