历史上的今天
今天是:2025年06月27日(星期五)
2020年06月27日 | 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
史海拾趣
|
由于车载GPS设备有较大的触摸屏,我想选一款市场上的车载GPS设备,在它上面开发自己的应用程序。我需要在车载GPS上做一个GUI,PDA与我自己的另一个模块通过串口相连,程序需要是实现的就是接收模块发来的消息在GPS屏幕上的GUI上显示,GPS根据用户在 ...… 查看全部问答> |
|
接收只能使用通道0和1,EN_RXADDR配置为多通道(>0x03)则无法接受,纠结了很久,求高手指点啊! 部分配置程序: WriteBuf(W_REGISTER+RX_ADDR_P0, RX_ADDRESS_P0, RX_ADDR_WIDTH);//写接收通道P0地址 WriteBuf(W_REGISTER+RX_ADDR_P1, RX ...… 查看全部问答> |
|
#include<reg52.h> #define uint unsigned int#define uchar unsigned char uchar code shumaguan[] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};uchar code table[] = {0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; uchar key = ...… 查看全部问答> |
|
概述 当前,电子界正在逐渐脱离传统的测试和测量哲学,而转向更加混合的方法。几年前,如果要求生成或测量极其精确的数据点,除了台式仪器,几乎没有可用的解决方案。不过,随着电子元器件的持续进展,现在已经可以制作高精密电压源和高分辨率A/ ...… 查看全部问答> |
|
把程序下载到富士通开发版出现 Failed to load flash loader错误 今天用了一上午时间,才把我的64位WIN7系统装好MLINK驱动。REBUILD ALL 之后,下载程序,总是出现如下错误提示:Wed Jun 13, 2012 13:20:21: Loaded macro file: D:\\IAR Systems\\Embedded Workbench 6.0 Evaluation\\arm\\config\\flas ...… 查看全部问答> |
|
关于按键软件消抖中的释放抖动 按键释放的时候也是有抖动的,大家一般是怎么考虑的?特别是单独使用IO中断的按键。为什么? [ 本帖最后由 wangfuchong 于 2012-10-31 10:48 编辑 ]… 查看全部问答> |
|
LM3S9B90 UDP通信为什么总是进入死循环呢,是按照历程上面来改的。麻烦大师指导指... #include \"inc/hw_ints.h\" #include \"inc/hw_memmap.h\" #include \"inc/hw_nvic.h\" #include \"inc/hw_types.h\" #include \"driverlib/ethernet.h\" #include \"driverlib/flash.h\" #include \"driverlib/gpio.h\" #include \"driver ...… 查看全部问答> |




