keil调试环境下S3C2440s的分析报告.docx

上传人:b****0 文档编号:9014354 上传时间:2023-05-16 格式:DOCX 页数:34 大小:21.85KB
下载 相关 举报
keil调试环境下S3C2440s的分析报告.docx_第1页
第1页 / 共34页
keil调试环境下S3C2440s的分析报告.docx_第2页
第2页 / 共34页
keil调试环境下S3C2440s的分析报告.docx_第3页
第3页 / 共34页
keil调试环境下S3C2440s的分析报告.docx_第4页
第4页 / 共34页
keil调试环境下S3C2440s的分析报告.docx_第5页
第5页 / 共34页
keil调试环境下S3C2440s的分析报告.docx_第6页
第6页 / 共34页
keil调试环境下S3C2440s的分析报告.docx_第7页
第7页 / 共34页
keil调试环境下S3C2440s的分析报告.docx_第8页
第8页 / 共34页
keil调试环境下S3C2440s的分析报告.docx_第9页
第9页 / 共34页
keil调试环境下S3C2440s的分析报告.docx_第10页
第10页 / 共34页
keil调试环境下S3C2440s的分析报告.docx_第11页
第11页 / 共34页
keil调试环境下S3C2440s的分析报告.docx_第12页
第12页 / 共34页
keil调试环境下S3C2440s的分析报告.docx_第13页
第13页 / 共34页
keil调试环境下S3C2440s的分析报告.docx_第14页
第14页 / 共34页
keil调试环境下S3C2440s的分析报告.docx_第15页
第15页 / 共34页
keil调试环境下S3C2440s的分析报告.docx_第16页
第16页 / 共34页
keil调试环境下S3C2440s的分析报告.docx_第17页
第17页 / 共34页
keil调试环境下S3C2440s的分析报告.docx_第18页
第18页 / 共34页
keil调试环境下S3C2440s的分析报告.docx_第19页
第19页 / 共34页
keil调试环境下S3C2440s的分析报告.docx_第20页
第20页 / 共34页
亲,该文档总共34页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

keil调试环境下S3C2440s的分析报告.docx

《keil调试环境下S3C2440s的分析报告.docx》由会员分享,可在线阅读,更多相关《keil调试环境下S3C2440s的分析报告.docx(34页珍藏版)》请在冰点文库上搜索。

keil调试环境下S3C2440s的分析报告.docx

keil调试环境下S3C2440s的分析报告

;StandarddefinitionsofModebitsandInterrupt(I&F)flagsinPSRs;向量中断模式/非向量中断模式设置

;通过PSRs(程序状态寄存器)来设置

;系统工作模式设定

;CPSR是当系统前程序状态寄存器,SPSR是备份程序状态寄存器。

其中CPSR共用一个物理寄存器,而SPSR一共有5个物理寄存器

;CPSR寄存器设定:

CPSR[4..0]为M4-M0,通过它可以设定处理器的工作模式

Mode_USREQU0x10;用户模式

Mode_FIQEQU0x11;快速中断模式

Mode_IRQEQU0x12;外部中断模式

Mode_SVCEQU0x13;超级用户模式

Mode_ABTEQU0x17;数据访问终止模式

Mode_UNDEQU0x1B;未定义指令终止模式

Mode_SYSEQU0x1F;系统模式

I_BitEQU0x80;whenIbitisset,IRQisdisabled外部中断屏蔽位,置1,关闭中断,置0,打开中断

F_BitEQU0x40;whenFbitisset,FIQisdisabled快速中断屏蔽位,置1,关闭中断,置0,打开中断

;-----------------------StackandHeapDefinitions----------------------------

;//StackConfiguration(StackSizesinBytes)

;//UndefinedMode<0x0-0xFFFFFFFF:

8>

;//SupervisorMode<0x0-0xFFFFFFFF:

8>

;//AbortMode<0x0-0xFFFFFFFF:

8>

;//FastInterruptMode<0x0-0xFFFFFFFF:

8>

;//InterruptMode<0x0-0xFFFFFFFF:

8>

;//User/SystemMode<0x0-0xFFFFFFFF:

8>

;//

;栈配置,系统的栈空间设定

UND_Stack_SizeEQU0x00000000;未定义模式的栈大小

SVC_Stack_SizeEQU0x00000008;超级用户模式的栈大小

ABT_Stack_SizeEQU0x00000000;数据访问终止模式的栈大小

FIQ_Stack_SizeEQU0x00000000;快速中断模式的栈大小

IRQ_Stack_SizeEQU0x00000080;外部中断模式的栈大小

USR_Stack_SizeEQU0x00000400;用户模式的栈大小

ISR_Stack_SizeEQU(UND_Stack_Size+SVC_Stack_Size+ABT_Stack_Size+\

FIQ_Stack_Size+IRQ_Stack_Size);所有模式的堆栈相加得到总堆栈的大小

;ARM的汇编程序由段组成,段是相对独立的指令或数据单位,每个段由AREA伪指令定义,并定义段的属性。

----READWRITE(读写)、READONLY(只读)

AREASTACK,NOINIT,READWRITE,ALIGN=3;开辟一个堆栈段,段名字为STACK,定义为可读可写,

;不初始化内存单元,或将内存单元初始化为0

Stack_MemSPACEUSR_Stack_Size;

__initial_spSPACEISR_Stack_Size;汇编代码的地址标号

Stack_Top;堆栈段内容结束,在这里放个标号,用来获得堆栈顶部地址

;//HeapConfiguration

;//HeapSize(inBytes)<0x0-0xFFFFFFFF>

;//

Heap_SizeEQU0x00000000;堆大小设置

AREAHEAP,NOINIT,READWRITE,ALIGN=3;开辟一个段,名字为HEAP可读可写,不初始化内存单元,或者初始化为0

__heap_base

Heap_MemSPACEHeap_Size

__heap_limit

;-----------------------MemoryDefinitions------------------------------------

;InternalMemoryBaseAddresses;片上SRAM的基地址,即内存基地址

IRAM_BASEEQU0x40000000

;-----------------------WatchdogTimerDefinitions----------------------------

WT_BASEEQU0x53000000;WatchdogTimerBaseAddress看门狗定时器基地址

WTCON_OFSEQU0x00;WatchdogTimerControlRegisterOffset看门狗控制寄存器偏移地址,相对于基址

WTDAT_OFSEQU0x04;WatchdogTimerDataRegisterOffset看门狗数据寄存器偏移地址,相对于基址

WTCNT_OFSEQU0x08;WatchdogTimerCountRegisterOffset看门狗计数寄存器偏移地址,相对于基址

;//WatchdogTimerSetup

;//WatchdogTimerControlRegister(WTCON)

;//PrescalerValue<0-255>

;//WatchdogTimerEnable

;//ClockDivisionFactor

;//<0=>16<1=>32<2=>64<3=>128

;//InterruptGenerationEnable

;//ResetEnable

;//

;//WatchdogTimerDataRegister(WTDAT)

;//CountReloadValue<0-65535>

;//

;//WatchdogTimerSetup

WT_SETUPEQU1;看门狗设置

WTCON_ValEQU0x00000000;看门狗控制寄存器设置,关闭看门狗

WTDAT_ValEQU0x00008000;看门狗数据寄存器设置,初始值即为0x8000

;-----------------------ClockandPowerManagementDefinitions----------------

CLOCK_BASEEQU0x4C000000;ClockBaseAddress;时钟基地址

LOCKTIME_OFSEQU0x00;PLLLockTimeCountRegisterOffset;锁相环锁定时间计数寄存器偏移地址,相对于基址

MPLLCON_OFSEQU0x04;MPLLConfigurationRegisterOffset;MPLL配置寄存器偏移地址,相对于基址,主时钟源PLL

UPLLCON_OFSEQU0x08;UPLLConfigurationRegisterOffset;UPLL配置寄存器偏移地址,相对于基址,USB时钟源PLL

CLKCON_OFSEQU0x0C;ClockGeneratorControlRegOffset;时钟控制寄存器偏移地址,相对于基址

CLKSLOW_OFSEQU0x10;ClockSlowControlRegisterOffset;时钟减慢控制寄存器偏移地址,相对于基址

CLKDIVN_OFSEQU0x14;ClockDividerControlRegisterOffset;时钟分频器控制寄存器偏移地址,相对于基址

CAMDIVN_OFSEQU0x18;CameraClockDividerRegisterOffset;摄像头时钟分频器控制寄存器偏移地址,相对于基址,UPLL提供

;//ClockSetup

;//PLLLockTimeCountRegister(LOCKTIME)

;//U_LTIME:

UPLLLockTimeCountValueforUCLK<0x0-0xFFFF>

;//M_LTIME:

MPLLLockTimeCountValueforFCLK,HCLKandPCLK<0x0-0xFFFF>

;//

;//MPLLConfigurationRegister(MPLLCON)

;//MPLL=(2*m*Fin)/(p*2^s)

;//m:

MainDividermValue<9-256><#-8>

;//m=MDIV+8

;//p:

Pre-dividerpValue<3-64><#-2>

;//p=PDIV+2

;//s:

PostDividersValue<0-3>

;//s=SDIV

;//

;//UPLLConfigurationRegister(UPLLCON)

;//UPLL=(m*Fin)/(p*2^s)

;//m:

MainDividermValue<8-263><#-8>

;//m=MDIV+8

;//p:

Pre-dividerpValue<2-65><#-2>

;//p=PDIV+2

;//s:

PostDividersValue<0-3>

;//s=SDIV

;//

;//ClockGenerationControlRegister(CLKCON)

;//AC97Enable

;//CameraEnable

;//SPIEnable

;//IISEnable

;//IICEnable

;//ADC+TouchScreenEnable

;//RTCEnable

;//GPIOEnable

;//UART2Enable

;//UART1Enable

;//UART0Enable

;//SDIEnable

;//PWMTIMEREnable

;//USBDeviceEnable

;//USBHostEnable

;//LCDCEnable

;//NANDFLASHControllerEnable

;//SLEEPEnable

;//IDLEBITEnable

;//

;//ClockSlowControlRegister(CLKSLOW)

;//UCLK_ON:

UCLKON

;//MPLL_OFF:

TurnoffPLL

;//SLOW_BIT:

SlowModeEnable

;//SLOW_VAL:

SlowClockDivider<0-7>

;//

;//ClockDividerControlRegister(CLKDIVN)

;//DIVN_UPLL:

UCLKSelect

;//<0=>UCLK=UPLLclock

;//<1=>UCLK=UPLLclock/2

;//HDIVN:

HCLKSelect

;//<0=>HCLK=FCLK

;//<1=>HCLK=FCLK/2

;//<2=>HCLK=FCLK/4ifHCLK4_HALF=0inCAMDIVN,elseHCLK=FCLK/8

;//<3=>HCLK=FCLK/3ifHCLK3_HALF=0inCAMDIVN,elseHCLK=FCLK/6

;//PDIVN:

PCLKSelect

;//<0=>PCLK=HCLK

;//<1=>PCLK=HCLK/2

;//

;//CameraClockDividerControlRegister(CAMDIVN)

;//DVS_EN:

ARMCoreClockSelect

;//<0=>ARMcorerunsatFCLK

;//<1=>ARMcorerunsatHCLK

;//HCLK4_HALF:

HDIVNDivisionRateChangeBit

;//<0=>IfHDIVN=2inCLKDIVNthenHCLK=FCLK/4

;//<1=>IfHDIVN=2inCLKDIVNthenHCLK=FCLK/8

;//HCLK3_HALF:

HDIVNDivisionRateChangeBit

;//<0=>IfHDIVN=3inCLKDIVNthenHCLK=FCLK/3

;//<1=>IfHDIVN=3inCLKDIVNthenHCLK=FCLK/6

;//CAMCLKSelect

;//<0=>CAMCLK=UPLL

;//<1=>CAMCLK=UPLL/CAMCLK_DIV

;//CAMCLK_DIV:

CAMCLKDivider<0-15>

;//CameraClock=UPLL/(2*(CAMCLK_DIV+1))

;//DividerisusedonlyifCAMCLK_SEL=1

;//

;//ClockSetup

CLOCK_SETUPEQU0;时钟设置

LOCKTIME_ValEQU0x0FFF0FFF;PLL锁定时间计数器值

MPLLCON_ValEQU0x00043011;MPLL配置寄存器值

UPLLCON_ValEQU0x00038021;UPLL配置寄存器值

CLKCON_ValEQU0x001FFFF0;时钟配置寄存器值

CLKSLOW_ValEQU0x00000004;时钟减慢控制寄存器值

CLKDIVN_ValEQU0x0000000F;时钟分频控制寄存器值

CAMDIVN_ValEQU0x00000000;摄像头分频控制寄存器值

;-----------------------MemoryControllerDefinitions-------------------------

;存储控制器设置

MC_BASEEQU0x48000000;MemoryControllerBaseAddress;存储控制器基地址

BWSCON_OFSEQU0x00;BusWidthandWaitStatusCtrlOffset;总线宽度和等待控制寄存器

BANKCON0_OFSEQU0x04;Bank0ControlRegisterOffset;BANK0---BOOTROM控制寄存器设置

BANKCON1_OFSEQU0x08;Bank1ControlRegisterOffset;BANK1

BANKCON2_OFSEQU0x0C;Bank2ControlRegisterOffset;BANK2

BANKCON3_OFSEQU0x10;Bank3ControlRegisterOffset;BANK3

BANKCON4_OFSEQU0x14;Bank4ControlRegisterOffset;BANK4

BANKCON5_OFSEQU0x18;Bank5ControlRegisterOffset;BANK5

BANKCON6_OFSEQU0x1C;Bank6ControlRegisterOffset;BANK6

BANKCON7_OFSEQU0x20;Bank7ControlRegisterOffset;BANK7

REFRESH_OFSEQU0x24;SDRAMRefreshControlRegisterOffset;DRAM/SDRAM刷新控制

BANKSIZE_OFSEQU0x28;FlexibleBankSizeRegisterOffset;可调的bank大小寄存器

MRSRB6_OFSEQU0x2C;Bank6ModeRegisterOffset;模式控制寄存器bank6

MRSRB7_OFSEQU0x30;Bank7ModeRegisterOffset;模式控制寄存器bank7

;//MemoryControllerSetup

;//BusWidthandWaitControlRegister(BWSCON)

;//ST7:

UseUB/LBforBank7

;//WS7:

EnableWaitStatusforBank7

;//DW7:

DataBusWidthforBank7

;//<0=>8-bit<1=>16-bit<2=>32-bit<3=>Reserved

;//ST6:

UseUB/LBforBank6

;//WS6:

EnableWaitStatusforBank6

;//DW6:

DataBusWidthforBank6

;//<0=>8-bit<1=>16-bit<2=>32-bit<3=>Reserved

;//ST5:

UseUB/LBforBank5

;//WS5:

EnableWaitStatusforBank5

;//DW5:

DataBusWidthforBank5

;//<0=>8-bit<1=>16-bit<2=>32-bit<3=>Reserved

;//ST4:

UseUB/LBforBank4

;//WS4:

EnableWaitStatusforBank4

;//DW4:

DataBusWidthforBank4

;//<0=>8-bit<1=>16-bit<2=>32-bit<3=>Reserved

;//ST3:

UseUB/LBforBank3

;//WS3:

EnableWaitStatusforBank3

;//DW3:

DataBusWidthforBank3

;//<0=>8-bit<1=>16-bit<2=>32-bit<3=>Reserved

;//ST2:

UseUB/LBforBank2

;//WS2:

EnableWaitStatusforBank2

;//DW2:

DataBusWidthforBank2

;//<0=>8-bit<1=>16-bit<2=>32-bit<3=>Reserved

;//ST1:

UseUB/LBforBank1

;//WS1:

EnableWaitStatusforBank1

;//DW1:

DataBusWidthforBank1

;//<0=>8-bit<1=>16-bit<2=>32-bit<3=>Reserved

;//DW0:

IndicateDataBusWidthforBank0

;//<1=>16-bit<2=>32-bit

;//

;//Bank0ControlRegister(BANKCON0)

;//Tacs:

AddressSet-upTimebeforenGCS

;//<0=>0clocks<1=>1clocks<2=>2clocks<3=>4clocks

;//Tcos:

ChipSelectionSet-upTimebeforenOE

;//<0=>0clocks<1=>1clocks<2=>2clocks<3=>4clocks

;//Tacc:

AccessCycle

;//<0=>1clocks<1=>2clocks<2=>3clocks<3=>4clocks

;//<4=>6clocks<5=>8clocks<6=>10cloc

展开阅读全文
相关搜索

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2