单片机
返回首页

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

2020-06-27 来源:eefocus

在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

进入单片机查看更多内容>>
相关视频
  • RISC-V嵌入式系统开发

  • SOC系统级芯片设计实验

  • 云龙51单片机实训视频教程(王云,字幕版)

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

精选电路图
  • 家用电源无载自动断电装置的设计与制作

  • 用数字电路CD4069制作的万能遥控轻触开关

  • 使用ESP8266从NTP服务器获取时间并在OLED显示器上显示

  • 开关电源的基本组成及工作原理

  • 用NE555制作定时器

  • 带有短路保护系统的5V直流稳压电源电路图

    相关电子头条文章