⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 head-de2.s

📁 底层驱动开发
💻 S
字号:
#include <linux/config.h>#if defined(CONFIG_RAM32MB)#define	MEM_END	0x02000000	/* Memory size 32Mb */#elif defined(CONFIG_RAM16MB)#define	MEM_END	0x01000000	/* Memory size 16Mb */#else#define	MEM_END	0x00800000	/* Memory size 8Mb */#endif#undef CRT_DEBUG.macro	PUTC CHAR#ifdef CRT_DEBUG	moveq	#\CHAR, %d7	jsr	putc#endif.endm	.global	_start	.global _rambase	.global _ramvec	.global	_ramstart	.global	_ramend		.data/* *	Set up the usable of RAM stuff */_rambase:	.long	0_ramvec:	.long	0_ramstart:	.long	0_ramend:	.long	0	.text_start:/* * Setup initial stack */	/* disable all interrupts */	movew	#0x2700, %sr	movel	#-1, 0xfffff304	movel	#MEM_END-4, %sp	PUTC	'\r'	PUTC	'\n'	PUTC	'A'	PUTC	'B'/* *	Determine end of RAM */	movel	#MEM_END, %a0	movel	%a0, _ramend	PUTC	'C'/* *	Move ROM filesystem above bss :-) */	moveal	#_sbss, %a0			/* romfs at the start of bss */	moveal	#_ebss, %a1			/* Set up destination  */	movel	%a0, %a2			/* Copy of bss start */	movel	8(%a0), %d1			/* Get size of ROMFS */	addql	#8, %d1				/* Allow for rounding */	andl	#0xfffffffc, %d1	/* Whole words */	addl	%d1, %a0			/* Copy from end */	addl	%d1, %a1			/* Copy from end */	movel	%a1, _ramstart		/* Set start of ram */1:	movel	-(%a0), %d0			/* Copy dword */	movel	%d0, -(%a1)	cmpl	%a0, %a2			/* Check if at end */	bne	1b	PUTC	'D'/* * Initialize BSS segment to 0 */	lea	_sbss, %a0	lea	_ebss, %a1	/* Copy 0 to %a0 until %a0 == %a1 */2:	cmpal	%a0, %a1	beq	1f	clrl	(%a0)+	bra	2b1:	PUTC	'E'/* * Load the current task pointer and stack */	lea	init_thread_union, %a0	lea	0x2000(%a0), %sp	PUTC	'F'	PUTC	'\r'	PUTC	'\n'/* * Go */	jmp	start_kernel/* * Local functions */ #ifdef CRT_DEBUGputc:	moveb	%d7, 0xfffff9071:	movew	0xfffff906, %d7	andw	#0x2000, %d7	beq	1b	rts#endif

⌨️ 快捷键说明

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