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

📄 init.s

📁 linux驱动源码
💻 S
字号:
/********************************************************************
'	创建日期:	2006/04/18
'	文件名称: 	init.S
'	文件作者:	GENE.SHAO (E-Mail: sjiang1981@163.com)
'	
'	文件功能:	基本的硬件初始化
'   文件描述:	该程序在Samsung的s3c2410处理器上测试通过,你可以重新发
				布或修改该程序,如果对该程序有何疑问请通过Email联系作者。 
*********************************************************************/

#include "header.h"

	.global _start
_start:
	/* 中断向量表*/
	b	reset						@ 复位
    ldr	pc, undefined_instruction	@ 未定义的指令
    ldr	pc, software_interrupt		@ 软件中断
    ldr	pc, prefetch_abort			@ 指令预取终止
    ldr	pc, data_abort				@ 数据访问终止
    ldr	pc, not_used				@ 保留
    ldr	pc, irq						@ 外部中断请求
    ldr	pc, fiq						@ 快速中断请求

undefined_instruction:
software_interrupt:
prefetch_abort:
data_abort:
not_used:
irq:
fiq:
	.balign 4

reset:
	/*禁用看门狗 */
	ldr	r0,=WTCON      
	mov	r1,#0x0         
	str	r1,[r0]
	
	/*屏蔽所有的中断*/
	ldr	r0,=INTMSK
	mvn	r1,#0x0
	str	r1,[r0]
	
	/*屏蔽所有的子中断*/
	ldr	r0,=INTSUBMSK
	ldr	r1,=0x3ff
	str	r1,[r0]
	
	/*初始化LED外部输出口*/
	ldr	r0, =GPFCON			@ 4个LED使用GPF4, GPF5, GPF6, GPF7四个IO端口
	ldr	r1, =0x55aa			@ 将GPF4-GPF7设置为输出口, 可参考s3c2410处理器手册。
	str	r1, [r0]	
	ldr	r0, =GPFUP
	mov	r1, #0xff
	str	r1, [r0]

	/*设置时钟周期 */
	ldr	r0,=LOCKTIME
	mvn	r1,#0xff000000
	str	r1,[r0]	

	ldr	r0,=CLKDIVN			@ FCLK:HCLK:PCLK = 1:2:4
	mov	r1,#0x3		
	str	r1,[r0]

    ldr	r0,=MPLLCON
    ldr	r1,=((M_MDIV<<12)+(M_PDIV<<4)+M_SDIV)  @ CPU 时钟设置为200MHz
    str	r1,[r0]

	ldr	r1,=MISCCR
	ldr	r0,[r1]
	bic	r0,r0,#SCK_NORMAL
	str	r0,[r1]
	
	.align 2
	.global call_main
call_main:
	ldr	sp,STACK_START		@ 设置堆栈底地址
	mov	fp,#0           
        
	mov	a1, #0         
	mov	a2, #0				@ 设置main函数的参数
	bl	main				@ 跳转到main函数

STACK_START:
        .word   STACK_BASE

⌨️ 快捷键说明

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