led裸机程序分析二(头文件option.ini)

在mini2440的myled裸机程序中头文件 中,option.ini这个头文件定义了芯片的相关配置
(对存储器相关寄存器值的配置,这里对寄存器的相关配置最终会被init.s调用来初始化CPU)

;===========================================
; NAME: OPTION.A
; DESC: Configuration options for .S files
; HISTORY:
; 02.28.2002: ver 0.0
; 03.11.2003: ver 0.0	attached for 2440.
; jan E, 2004: ver0.03  modified for 2440A01.
;===========================================
;Start address of each stacks,  
;定义每个栈的起始地址

_STACK_BASEADDRESS	EQU 0x33ff8000
_MMUTT_STARTADDRESS	EQU 0x33ff8000
_ISR_STARTADDRESS	EQU 0x33ffff00

		GBLL	USE_MAIN   ;声明一个全局的逻辑变量USE_MAIN 
;USE_MAIN	SETL	{TRUE}  ;给变量USE_MAIN赋值{FALSE}
USE_MAIN	SETL	{FALSE}

		GBLL 	PLL_ON_START  ;声明一个全局的逻辑变量PLL_ON_START
PLL_ON_START	SETL 	{TRUE}  ;给变量PLL_ON_START赋值{TRUE}


		GBLL	ENDIAN_CHANGE  ;声明一个全局的逻辑变量ENDIAN_CHANGE
ENDIAN_CHANGE	SETL	{FALSE}  ;给变量ENDIAN_CHANGE赋值{FALSE}

		GBLA	ENTRY_BUS_WIDTH ;声明一个全局的算数变量ENTRY_BUS_WIDTH
ENTRY_BUS_WIDTH	SETA	16  ;给变量ENTRY_BUS_WIDTH赋值16


;BUSWIDTH = 16,32
;声明一个全局的算数变量 BUSWIDTH
		GBLA    BUSWIDTH	;max. bus width for the GPIO configuration 【为GPIO配置总线宽度】
BUSWIDTH	SETA    32   ;给变量BUSWIDTH赋值32

		GBLA	UCLK ;声明一个全局的算数变量UCLK
UCLK	SETA	48000000 ;给变量UCLK赋值48000000

		GBLA	XTAL_SEL  ;声明当前晶振大小
		GBLA	FCLK   ;声明一个时钟频率
		GBLA	CPU_SEL  ;声明一个CPU型号



;(1) Select CPU 【选择你的CPU型号】	
;CPU_SEL	SETA	32440000	; 32440000:2440X.  型号S3C2440X
CPU_SEL SETA	32440001	; 32440001:2440A  型号S3C2440A

;(2) Select XTaL
XTAL_SEL	SETA	12000000    ;设置当前晶振为12M
;XTAL_SEL	SETA	16934400    ;设置当前晶振为16.9344M

;(3) Select FCLK
FCLK		SETA	304000000  ;设置目标时钟频率为304000000
;FCLK		SETA	296352000  ;设置目标时钟频率为296352000

;[下面会根据你选择的CPU、晶振、时钟频率,来自动化(编译器来完成)配置相关寄存器]
;--------------------------------------------------------------------------------------
		
;(4) Select Clock Division (Fclk:Hclk:Pclk)【选择时钟分频比】
CLKDIV_VAL	EQU	7	;  0=1:1:1, 1=1:1:1/2, 2=1:1/2:1/2, 3=1:1/2:1/4, 4=1:1/4:1/4, 5=1:1/4:1/8, 6=1:1/3:1/3, 7=1:1/3:1/6
			
;根据晶振,来配置参数(PLLCON)

 [ XTAL_SEL = 12000000
 ;当晶振为12000000时,参数设置如下
	[ FCLK = 271500000
	;根据要设置的时钟频率FCLK,来配置相应的MDIV、PDIV、SDIV
M_MDIV		EQU	173		;Fin=12.0MHz Fout=271.5MHz
M_PDIV		EQU	2
		[ CPU_SEL = 32440001
M_SDIV		EQU	2		; 2440A
   		|
M_SDIV		EQU	1		; 2440X
   		]
	]
	;根据要设置的时钟频率FCLK,来配置相应的MDIV、PDIV、SDIV
	[ FCLK = 304000000
M_MDIV		EQU	68		;Fin=12.0MHz Fout=304.8MHz
M_PDIV		EQU	1
		[ CPU_SEL = 32440001
M_SDIV		EQU	1		; 2440A
		|
M_SDIV		EQU	0		; 2440X
		]
	]

	;根据要设置的时钟频率FCLK,来配置相应的MDIV、PDIV、SDIV
	[ UCLK = 48000000
U_MDIV		EQU	56		;Fin=12.0MHz Fout=48MHz
U_PDIV		EQU	2
U_SDIV		EQU	2
	]
	;根据要设置的时钟频率FCLK,来配置相应的MDIV、PDIV、SDIV
	[ UCLK = 96000000
U_MDIV		EQU	56		;Fin=12.0MHz Fout=96MHz
U_PDIV		EQU	2
U_SDIV		EQU	1

	]

  |	; else if XTAL_SEL = 16.9344Mhz
 ;当晶振为16.9344Mhz时,参数设置如下
	[ FCLK = 266716800
M_MDIV		EQU	118	;Fin=16.9344MHz
M_PDIV		EQU	2
		[ CPU_SEL = 32440001
M_SDIV		EQU	2		; 2440A
		|
M_SDIV		EQU	1		; 2440X
		]
	]
	
	[ FCLK = 296352000
M_MDIV		EQU	97	;Fin=16.9344MHz
M_PDIV		EQU	1
		[ CPU_SEL = 32440001
M_SDIV		EQU	2		; 2440A
		|
M_SDIV		EQU	1		; 2440X
		]
	]
	[ FCLK = 541900800
M_MDIV		EQU	120	;Fin=16.9344MHz
M_PDIV		EQU	2
		[ CPU_SEL = 32440001
M_SDIV		EQU	1		; 2440A
		|
M_SDIV		EQU	0		; 2440X
		]
	]
	
	[ UCLK = 48000000
U_MDIV		EQU	60	;Fin=16.9344MHz Fout=48MHz
U_PDIV		EQU	4
U_SDIV		EQU	2
	]
	[ UCLK = 96000000
U_MDIV		EQU	60	;Fin=16.9344MHz Fout=96MHz
U_PDIV		EQU	4
U_SDIV		EQU	1
	]
	
   ]	; end of if XTAL_SEL = 12000000.
  

	END

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Yfw&武

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值