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

📄 boot.s

📁 Hermit-at-1.1.3,一款bootloader
💻 S
字号:
/* * boot.S: assembly language bootstrap * * Copyright (c) 2000 Blue Mug, Inc.  All Rights Reserved. */#include "memregions.h"	.section .flash.boot	.global _start_flash_start_flash:	.long	0x53555243		/* CRUS */	mov	r0, #0			/* MMU mandatory */	mcr	p15, 0, r0, c1, c0, 0	/* MMU init */	mcr	p15, 0, r0, c7, c7, 0	/* flush v3/v4 cache */	mcr	p15, 0, r0, c8, c7, 0	/* flush v4 TLB */	mov	r3, #0x80000000		/* I/O base */	orr	r0, r3, #0x840000	mov	r1, #0x08	str	r1, [r0, #0x00]	str	r1, [r0, #0x10]	mov	r1, #0x20	str	r1, [r0, #0x14]	mov	r1, #0xf0	str	r1, [r0, #0x18]	mov	r1, #0x50	str	r1, [r0, #0x08]	mov	r1, #0x00	str	r1, [r0, #0x1c]	str	r1, [r0, #0x20]	mov	r1, #0xff	str	r1, [r0, #0x24]	mov	r1, #0x00	str	r1, [r0, #0x34]	mov	r1, #0x0c	str	r1, [r0, #0x3c]	mov	r1, #0x00	str	r1, [r0, #0x38]	mov	r1, #0x00	str	r1, [r0, #0x44]	orr	r0, r3, #0x080000	mov	r1, #0x18000000	orr	r1, r1, #0x4d00	orr	r1, r1, #0x23	str	r1, [r0, #0x18]	mov	r1, #0x4700	orr	r1, r1, #0xe3	str	r1, [r0, #0x04]	orr	r1, r1, #0x10000000	str	r1, [r0, #0x08]	orr	r0, r3, #0x930000	mov	r1, #0x02000000	orr	r1, r1, #0xd00000#if !defined(PLL_HI) || !defined(PLL_LO)	/* S*29/31*29 = 400.033858MHz */	/*orr	r1, r1, #0xe300*/	/*orr	r1, r1, #0x9e*/	/* S*21/24*31 = 399.974400MHz */	orr	r1, r1, #0xa300	orr	r1, r1, #0xd7	/* S*21/16*19 = 367.718400MHz */	/*orr	r1, r1, #0xa200*/	/*orr	r1, r1, #0x4f*/#else	orr	r1, r1, #PLL_HI	orr	r1, r1, #PLL_LO#endif	str	r1, [r0, #0x20]	nop	nop	nop	nop	nop	mov	r1, #0x30000000	orr	r1, r1, #0x0d0000	orr	r1, r1, #0xc300	orr	r1, r1, #0x17	str	r1, [r0, #0x24]	mrc	p15, 0, r1, c1, c0, 0	orr	r1, r1, #0xc0000000	mcr	p15, 0, r1, c1, c0, 0	mov	r1, #801:	subs	r1, r1, #1	bne	1b	orr	r0, r3, #0x060000	mov	r1, #0x210000	orr	r1, r1, #0x1000000	orr	r1, r1, #0x28	str	r1, [r0, #0x10]	mov	r2, #0x80000000	orr	r1, r2, #0x03	str	r1, [r0, #0x04]	mov	r1, #1601:	subs	r1, r1, #1	bne	1b	orr	r1, r2, #0x01	str	r1, [r0, #0x04]	mov	r1, #10	str	r1, [r0, #0x08]	mov	r1, #801:	subs	r1, r1, #1	bne	1b	mov	r1, #780	str	r1, [r0, #0x08]	orr	r1, r2, #0x02	str	r1, [r0, #0x04]	mov	r4, #0xc0000000	orr	r4, r4, #0x8800	ldr	r1, [r4]	str	r2, [r0, #0x04]	mov r4, #0xc0000000	ldr r1, [r4]	orr r5, r4, #0x400000	ldr r1, [r5]	orr r5, r4, #0x800000	ldr r1, [r5]	orr r5, r4, #0xc00000	ldr r1, [r5]	orr	r0, r3, #0x060000	mov	r1, #0x210000	orr	r1, r1, #0x28	str	r1, [r0, #0x10]	orr	r0, r3, #0x930000	mov	r1, #0x02000000	orr	r1, r1, #0xa40000#if !defined(PLL_HI) || !defined (PLL_LO)	/* S*29/31*29 = 400.033858MHz */	/*orr	r1, r1, #0xe300*/	/*orr	r1, r1, #0x9e*/	/* S*21/24*31 = 399.974400MHz */	orr	r1, r1, #0xa300	orr	r1, r1, #0xd7	/* S*21/16*19 = 367.718400MHz */	/*orr	r1, r1, #0xa200*/	/*orr	r1, r1, #0x4f*/#else	orr	r1, r1, #PLL_HI	orr	r1, r1, #PLL_LO#endif	str	r1, [r0, #0x20]	nop	nop	nop	nop	nop	orr	r0, r3, #0x930000	mov	r2, #0xaa	str	r2, [r0, #0xc0]	ldr	r1, [r0, #0x04]	orr	r1, r1, #0x20000000	str	r1, [r0, #0x04]	str	r2, [r0, #0xc0]	ldr	r1, [r0, #0x80]	orr	r1, r1, #0x08000000	orr	r1, r1, #0x140000	str	r1, [r0, #0x80]	orr	r0, r3, #0x8c0000	orr	r2, r3, #0x8d0000	mov	r1, #0	str	r1, [r0, #0x014]	str	r1, [r2, #0x014]	str	r1, [r0, #0x100]	str	r1, [r0, #0x004]	str	r1, [r2, #0x004]	str	r1, [r0, #0x00c]	str	r1, [r2, #0x00c]	mov	r1, #7	str	r1, [r0, #0x010]	str	r1, [r2, #0x010]	mov	r1, #0x60	str	r1, [r0, #0x008]	str	r1, [r2, #0x008]	mov	r1, #1	str	r1, [r0, #0x014]	str	r1, [r2, #0x014]	mov	r0, #0x10000000	mov	r1, #0	str	r1, [r0, #0x0e]	mov	sp, #0xc0000000		/* init stack pointer */	add	sp, sp, #0x10000	bl	entry			/* see entry.c */1:	b	1b	.section .ram.boot	.global _start_ram_start_ram:	bl	hmain2:	b	2b

⌨️ 快捷键说明

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