亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? main.c

?? 這是上月
?? C
字號(hào):
#define COMMAND_LINE_SIZE         1024#define SZ_64M                  0x04000000#define DRAM_SIZE		     SZ_64M/*#define DRAM_BASE               0x30000000 */#define KERNEL_ROM_ADDR				0x00030000       /*kernel zImage 在  nand flash 中的位置.  */#define KERNEL_SIZE       0x001d0000#define MACH_TYPE 193#define MT_SMC_S3C2410 3#define LINUX_KERNEL_OFFSET	0x8000#define LINUX_PARAM_OFFSET	0x100#define SZ_4K                           0x00001000#define LINUX_PAGE_SIZE		SZ_4K#define LINUX_PAGE_SHIFT	12#define LINUX_ZIMAGE_MAGIC	0x016f2818int printk(const char *fmt, ...);/* This is the old deprecated way to pass parameters to the kernel */struct param_struct {union {struct {unsigned long page_size; /* 0 */unsigned long nr_pages; /* 4 */unsigned long ramdisk_size; /* 8 */unsigned long flags; /* 12 */#define FLAG_READONLY 1#define FLAG_RDLOAD 4#define FLAG_RDPROMPT 8unsigned long rootdev; /* 16 */unsigned long video_num_cols; /* 20 */unsigned long video_num_rows; /* 24 */unsigned long video_x; /* 28 */unsigned long video_y; /* 32 */unsigned long memc_control_reg; /* 36 */unsigned char sounddefault; /* 40 */unsigned char adfsdrives; /* 41 */unsigned char bytes_per_char_h; /* 42 */unsigned char bytes_per_char_v; /* 43 */unsigned long pages_in_bank[4]; /* 44 */unsigned long pages_in_vram; /* 60 */unsigned long initrd_start; /* 64 */unsigned long initrd_size; /* 68 */unsigned long rd_start; /* 72 */unsigned long system_rev; /* 76 */unsigned long system_serial_low; /* 80 */unsigned long system_serial_high; /* 84 */unsigned long mem_fclk_21285; /* 88 */} s;char unused[256];} u1;union {char paths[8][128];struct {unsigned long magic;char n[1024 - sizeof(unsigned long)];} s;} u2;char commandline[COMMAND_LINE_SIZE];};#define UART_CTL_BASE		0x50000000#define oUTRSTAT		0x10	#define oUTXHL			0x20	#define __REGl(x)	(*(volatile unsigned long *)(x))#define __REGb(x)	(*(volatile unsigned char *)(x))#define bUART(x, Nb)		__REGl(UART_CTL_BASE + (x)*0x4000 + (Nb))#define bUARTb(x, Nb)		__REGb(UART_CTL_BASE + (x)*0x4000 + (Nb))#define UTRSTAT0		bUART(0, oUTRSTAT)#define UTXH0			bUARTb(0, oUTXHL)#define UTRSTAT_TX_EMPTY	(1 << 2)#define SERIAL_WRITE_READY()	((UTRSTAT0) & UTRSTAT_TX_EMPTY)#define SERIAL_WRITE_CHAR(c)	((UTXH0) = (c))#define PROC_SERIAL_PUTC(c)	\	({ while (!SERIAL_WRITE_READY()); \	   SERIAL_WRITE_CHAR(c); })void putc(char c){	PROC_SERIAL_PUTC(c);} void putnstr(const char *str, int n){	if (str == "")		return;	while (n && *str != '\0') {		putc(*str);		str++;		n--;	}}int strlen(const char* str){int i=0;while(*str++) i++;return i;} void putstr(const char *str){	putnstr(str, strlen(str));}   #define MAX_PART_NAME             16typedef struct mtd_partiton {        char name[MAX_PART_NAME];       /* partition name */        unsigned long offset;        unsigned long size;        unsigned long flag;} mtd_partition_t;#define MF_BONFS          0x00000004mtd_partition_t default_mtd_partitions[] = {        {                name:           "vi",                offset:         0,                size:           0x00020000,                flag:           0        }, {                name:           "param",                offset:         0x00020000,                size:           0x00010000,                flag:           0        }, {                name:           "kernel",                offset:         0x00030000,                size:           0x001d0000,                flag:           0        }, {                name:           "root",                offset:         0x00200000,                size:           0x02300000,                flag:           MF_BONFS        },{					 name:				"yaffs",					 offset:				0x02500000,					 size:				0x01b00000,					 flag:				0}};#define SZ_1M                           0x00100000#define SZ_16K                          0x00004000#define SZ_64M                          0x04000000#define DRAM_BASE0		0x30000000      /* base address of dram bank 0 */#define DRAM_BASE		DRAM_BASE0#define DRAM_SIZE		SZ_64M#define VIVI_RAM_SIZE		SZ_1M#define VIVI_RAM_BASE		(DRAM_BASE + DRAM_SIZE - VIVI_RAM_SIZE)#define HEAP_SIZE		SZ_1M#define HEAP_BASE		(VIVI_RAM_BASE - HEAP_SIZE)#define MMU_TABLE_SIZE		SZ_16K#define MTD_PART_SIZE		SZ_16K#define PARAMETER_TLB_SIZE	SZ_16K#define LINUX_CMD_SIZE		SZ_16K#define MMU_TABLE_BASE		(HEAP_BASE - MMU_TABLE_SIZE)#define VIVI_PRIV_SIZE		(MTD_PART_SIZE + PARAMETER_TLB_SIZE + LINUX_CMD_SIZE)#define VIVI_PRIV_RAM_BASE        (MMU_TABLE_BASE - VIVI_PRIV_SIZE)#define MTD_PART_OFFSET		0x00000000#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))int default_nb_part = ARRAY_SIZE(default_mtd_partitions);int *nb_mtd_parts = (int *)(VIVI_PRIV_RAM_BASE + MTD_PART_OFFSET + 8);const char mtd_part_magic[8] = {'V', 'I', 'V', 'I', 'M', 'T', 'D', 'P'};int get_default_mtd_partition(void){     		char *src_parts = (char *)&default_mtd_partitions;	char *dst_parts = (char *)(VIVI_PRIV_RAM_BASE + MTD_PART_OFFSET);	int num = default_nb_part;		putstr("begin to transfer mtd partition table \n");	if (src_parts == "") return -1;	/* printk("number of mtd partitions: %d\n", num); */	*(nb_mtd_parts) = num;	if ((sizeof(mtd_partition_t)*num + 16) > MTD_PART_SIZE) {		/*printk("too large mtd partition table\n"); */		return -1;	}	memcpy(dst_parts, mtd_part_magic, 8);	/* copy mtd magic */	dst_parts += 16;	/* copy partition table */	memcpy(dst_parts, src_parts, (sizeof(mtd_partition_t)*num));		return 0;}#include <config.h>#define __REGb(x)	(*(volatile unsigned char *)(x))#define __REGi(x)	(*(volatile unsigned int *)(x))#define NF_BASE		0x4e000000#define NFCONF		__REGi(NF_BASE + 0x0)#define NFCMD		__REGb(NF_BASE + 0x4)#define NFADDR		__REGb(NF_BASE + 0x8)#define NFDATA		__REGb(NF_BASE + 0xc)#define NFSTAT		__REGb(NF_BASE + 0x10)#define BUSY 1inline 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 */intnand_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 -1;	/* 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 0;}static inline void cpu_arm920_cache_clean_invalidate_all(void){__asm__(	"	mov	r1, #0\n"	"	mov	r1, #7 << 5\n"		  /* 8 segments */	"1:	orr	r3, r1, #63 << 26\n"	  /* 64 entries */	"2:	mcr	p15, 0, r3, c7, c14, 2\n" /* clean & invalidate D index */	"	subs	r3, r3, #1 << 26\n"	"	bcs	2b\n"			  /* entries 64 to 0 */	"	subs	r1, r1, #1 << 5\n"	"	bcs	1b\n"			  /* segments 7 to 0 */	"	mcr	p15, 0, r1, c7, c5, 0\n"  /* invalidate I cache */	"	mcr	p15, 0, r1, c7, c10, 4\n" /* drain WB */	);}void cache_clean_invalidate(void){	cpu_arm920_cache_clean_invalidate_all();}static inline void cpu_arm920_tlb_invalidate_all(void){	__asm__(		"mov	r0, #0\n"		"mcr	p15, 0, r0, c7, c10, 4\n"	/* drain WB */		"mcr	p15, 0, r0, c8, c7, 0\n"	/* invalidate I & D TLBs */		);}void tlb_invalidate(void){	cpu_arm920_tlb_invalidate_all();}void  call_linux(long a0, long a1, long a2){	cache_clean_invalidate();	tlb_invalidate();__asm__(	"mov	r0, %0\n"	"mov	r1, %1\n"	"mov	r2, %2\n"	"mov	ip, #0\n"	"mcr	p15, 0, ip, c13, c0, 0\n"	/* zero PID */	"mcr	p15, 0, ip, c7, c7, 0\n"	/* invalidate I,D caches */	"mcr	p15, 0, ip, c7, c10, 4\n"	/* drain write buffer */	"mcr	p15, 0, ip, c8, c7, 0\n"	/* invalidate I,D TLBs */	"mrc	p15, 0, ip, c1, c0, 0\n"	/* get control register */	"bic	ip, ip, #0x0001\n"		/* disable MMU */	"mcr	p15, 0, ip, c1, c0, 0\n"	/* write control register */	"mov	pc, r2\n"	"nop\n"	"nop\n"	: /* no outpus */	: "r" (a0), "r" (a1), "r" (a2)	);}/* * pram_base: base address of linux paramter */static void setup_linux_param(long param_base){	struct param_struct *params = (struct param_struct *)param_base; 	char *linux_cmd;	/*printk("Setup linux parameters at 0x%08lx\n", param_base);*/	memset(params, 0, sizeof(struct param_struct));	/* 部坷苛 秦拎具 瞪 巴甸.. 抄叼啊 版氰利欄肺 措面 嘛籃 巴.. */	params->u1.s.page_size = LINUX_PAGE_SIZE;	params->u1.s.nr_pages = (DRAM_SIZE >> LINUX_PAGE_SHIFT);#if 0	params->u1.s.page_size = LINUX_PAGE_SIZE;	params->u1.s.nr_pages = (dram_size >> LINUX_PAGE_SHIFT);	params->u1.s.ramdisk_size = 0;	params->u1.s.rootdev = rootdev;	params->u1.s.flags = 0;	/* TODO */	/* If use ramdisk */	/*	params->u1.s.initrd_start = ?;	params->u1.s.initrd_size = ?;	params->u1.s.rd_start = ?;	*/#endif	/* set linux command line */	/*linux_cmd = get_linux_cmd_line();*/	linux_cmd= "noinitrd root=/dev/mtdblock/1 init=/linuxrc confole=ttyS0";		if (linux_cmd == "") {			putstr("boot args is null");	} else {		memcpy(params->commandline, linux_cmd, strlen(linux_cmd) + 1);			putstr("loading linux boot args is ok !"); 	}       }int boot_kernel(void){		unsigned long boot_mem_base;		unsigned long mach_type;unsigned long dst;boot_mem_base = 0x30000000;dst = 0x30008000;mach_type = MACH_TYPE;			setup_linux_param(boot_mem_base + LINUX_PARAM_OFFSET);/*	get_default_mtd_partition(); */	putstr ("MACH_TYPE = 193  \n");		putstr("NOW, Booting Linux......\n");  	call_linux(0, mach_type, dst);	return 0;	}	/*static void error(void){	putstr("Sorry. We can not run vivi\n"); 	for (;;) } */int main(int argc, char *argv[]){	boot_kernel();			return 0;}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美国产一区在线| 欧美精品第1页| 亚洲午夜久久久久久久久电影院| 欧美日韩一区不卡| 国产伦精品一区二区三区免费迷| 亚洲欧美偷拍三级| 久久这里只精品最新地址| 99久久99久久久精品齐齐| 日本成人在线视频网站| 亚洲婷婷在线视频| 久久免费偷拍视频| 欧美精品99久久久**| 成人午夜免费电影| 精品中文字幕一区二区| 亚洲一线二线三线视频| 国产精品久久久久久户外露出 | 国产综合色视频| 亚洲国产综合视频在线观看| 欧美国产日韩在线观看| 欧美一区二区免费| 91久久精品网| 国产精品一区在线| 奇米精品一区二区三区在线观看| 亚洲色图在线视频| 欧美国产精品一区二区| 日韩欧美另类在线| 制服丝袜亚洲色图| 欧美午夜电影网| 色综合久久久久综合99| 国产福利视频一区二区三区| 奇米精品一区二区三区在线观看 | 亚洲欧美日本韩国| 国产精品免费视频观看| 久久精品一区二区三区四区| 日韩视频不卡中文| 7777精品伊人久久久大香线蕉经典版下载 | 5月丁香婷婷综合| 欧美视频一区二区在线观看| 91天堂素人约啪| 成人ar影院免费观看视频| 国产乱妇无码大片在线观看| 精品无人码麻豆乱码1区2区 | 久久免费看少妇高潮| 日韩美女一区二区三区四区| 91精品国产乱| 日韩一级免费观看| 欧美刺激午夜性久久久久久久| 欧美老年两性高潮| 日韩午夜在线观看| 久久综合一区二区| 国产欧美日韩综合| ...xxx性欧美| 亚洲成人综合网站| 日韩电影网1区2区| 久久99精品久久久久久动态图 | 国产精品久久毛片a| 国产精品蜜臀av| 国产精品久久久久一区| 国产精品久久久久永久免费观看| 国产欧美日韩久久| 精品乱人伦小说| 中文字幕高清不卡| 国产精品毛片久久久久久久| 国产精品女人毛片| 国产精品第一页第二页第三页| 国产日韩欧美电影| 中文一区二区在线观看| 亚洲国产高清aⅴ视频| 中文字幕不卡在线观看| 国产精品久久久久影院老司 | 欧美国产精品一区二区| 中文乱码免费一区二区| 国产精品盗摄一区二区三区| 亚洲欧洲色图综合| 五月综合激情网| 久久国产精品第一页| 成人不卡免费av| 色狠狠色噜噜噜综合网| 91精品国产欧美一区二区| 日韩精品专区在线| 中文字幕字幕中文在线中不卡视频| 18涩涩午夜精品.www| 日本大胆欧美人术艺术动态| 狠狠色狠狠色综合| 国产精品久久久久影院老司| 依依成人综合视频| 蓝色福利精品导航| 成人午夜又粗又硬又大| 欧美日韩激情一区二区三区| 日韩免费看的电影| 亚洲美女少妇撒尿| 奇米亚洲午夜久久精品| 99久免费精品视频在线观看| 欧美日韩精品欧美日韩精品一| 制服丝袜亚洲网站| 久久精品免费在线观看| 亚洲欧美一区二区不卡| 男女男精品网站| 不卡区在线中文字幕| 欧美视频完全免费看| 久久在线观看免费| 亚洲精品乱码久久久久久黑人 | 国产日韩欧美制服另类| 亚洲地区一二三色| 国产成人午夜精品影院观看视频| 91麻豆免费看片| 日韩欧美资源站| 自拍偷自拍亚洲精品播放| 日日欢夜夜爽一区| 高清在线成人网| 欧美一区二区三区免费观看视频| 国产视频在线观看一区二区三区| 午夜国产不卡在线观看视频| 国产成人免费在线| 欧美日韩中文精品| 国产农村妇女精品| 首页国产欧美久久| 99久久er热在这里只有精品15| 91麻豆精品国产自产在线| 国产精品美女视频| 麻豆成人91精品二区三区| 丁香激情综合五月| 欧美一区二区大片| 亚洲一区二区视频| 99久久婷婷国产综合精品电影 | 亚洲精品国产视频| 老司机午夜精品99久久| 色噜噜久久综合| 91精品国产综合久久福利| 一区二区三区在线免费播放| 国产高清久久久久| 日韩欧美国产精品| 亚洲国产欧美一区二区三区丁香婷 | 久久久久久亚洲综合影院红桃| 亚洲国产精品一区二区尤物区| 一本到三区不卡视频| 国产欧美日本一区二区三区| 韩日欧美一区二区三区| 91精品国产欧美一区二区18| 午夜激情一区二区| 欧美吻胸吃奶大尺度电影 | 亚洲国产一区在线观看| 91麻豆swag| 日韩一区中文字幕| 91视频www| **欧美大码日韩| 在线观看国产91| 三级在线观看一区二区| 91色在线porny| 国产午夜亚洲精品理论片色戒| 蜜桃视频在线观看一区二区| 欧美日免费三级在线| 亚洲午夜久久久久久久久久久| 波多野结衣中文字幕一区二区三区 | 粉嫩高潮美女一区二区三区| 久久久久国产一区二区三区四区| 国产一区二区主播在线| www欧美成人18+| 国产最新精品免费| 国产亚洲欧美在线| 国产成人午夜视频| 国产精品久久久久精k8| 99久久免费视频.com| 亚洲欧洲精品一区二区三区不卡| 成人av高清在线| 亚洲欧美激情小说另类| 色又黄又爽网站www久久| 一区二区三区欧美激情| 91高清视频免费看| 亚洲综合另类小说| 欧美疯狂性受xxxxx喷水图片| 欧美一区二区不卡视频| 亚洲黄网站在线观看| 欧美视频在线一区二区三区 | 成人短视频下载| 亚洲欧洲日韩av| 97久久精品人人做人人爽50路| 亚洲天堂a在线| 欧美久久久久久蜜桃| 日精品一区二区| 久久蜜桃香蕉精品一区二区三区| 高清国产一区二区三区| 亚洲色图第一区| 欧美在线视频你懂得| 国产一区三区三区| 亚洲欧美一区二区视频| 欧美性色综合网| 另类的小说在线视频另类成人小视频在线 | 日韩av一区二区在线影视| 精品国产免费一区二区三区四区| 国产一区二区三区久久久| 国产精品久久久久四虎| 在线欧美日韩精品| 久久99精品久久久久久国产越南 | 91亚洲男人天堂| 日韩主播视频在线| 欧美高清在线一区| 欧美性生活久久| 国产一区二区三区黄视频| 中文字幕综合网|