1、LPC2468 启动代码设计和分析 INCLUDE LPC2400.INC;/* 引入头文件 */ ;/* 定义堆栈的大小 */SVC_STACK_LEGTH EQU 1FIQ_STACK_LEGTH EQU 50IRQ_STACK_LEGTH EQU 9 * 256 ;/* 每层嵌套需要256个字堆栈, */ ;/* 允许9嵌套层 */ABT_STACK_LEGTH EQU 0UND_STACK_LEGTH EQU 0NoInt EQU 0x80 ;/* 禁止 IRQ 中断宏定义 */NoFIQ EQU 0x40 ;/* 禁止 FIQ 中断宏定义 */USR32Mode EQU 0x10 ;
2、/* 用户模式宏定义 */SVC32Mode EQU 0x13 ;/* 管理模式宏定义 */SYS32Mode EQU 0x1f ;/* 系统模式宏定义 */IRQ32Mode EQU 0x12 ;/* IRQ模式宏定义 */FIQ32Mode EQU 0x11 ;/* FIQ模式宏定义 */;/ 静态RAMWAITWEN0 EQU 0x0F ;/* 配置EMCStaticWaitWen0 */WAITOEN0 EQU 0x08 ;/* 配置EMCStaticWaitOen0 */WAITRD0 EQU 0x04 ;/* 配置EMCStaticWaitRd0 */WAITPAGE0 EQU 0
3、x1F ;/* 配置EMCStaticWaitPage0 */WAITWR0 EQU 0x02 ;/* 配置EMCStaticWaitWr0 */WAITTURN0 EQU 0x0F ;/* 配置EMCStaticWaitTurn0 */;/ 程序存储器WAITWEN1 EQU 0x00 ;/* 配置EMCStaticWaitWen1 */WAITOEN1 EQU 0x02 ;/* 配置EMCStaticWaitOen1 */WAITRD1 EQU 0x03 ;/* 配置EMCStaticWaitRd1 */WAITPAGE1 EQU 0x1F ;/* 配置EMCStaticWaitPage1
4、 */WAITWR1 EQU 0x00 ;/* 配置EMCStaticWaitWr1 */WAITTURN1 EQU 0x00 ;/* 配置EMCStaticWaitTurn1 */;/ 液晶WAITWEN2 EQU 0x00 ;/* 配置EMCStaticWaitWen2 */WAITOEN2 EQU 0x00 ;/* 配置EMCStaticWaitOen2 */WAITRD2 EQU 0x00 ;/* 配置EMCStaticWaitRd2 */WAITPAGE2 EQU 0x00 ;/* 配置EMCStaticWaitPage2 */WAITWR2 EQU 0x00 ;/* 配置EMCSt
5、aticWaitWr2 */WAITTURN2 EQU 0x00 ;/* 配置EMCStaticWaitTurn2 */;/ 未使用WAITWEN3 EQU 0x0F ;/* 配置EMCStaticWaitWen3 */WAITOEN3 EQU 0x0F ;/* 配置EMCStaticWaitOen3 */WAITRD3 EQU 0x0F ;/* 配置EMCStaticWaitRd3 */WAITPAGE3 EQU 0x1F ;/* 配置EMCStaticWaitPage3 */WAITWR3 EQU 0x0F ;/* 配置EMCStaticWaitWr3 */WAITTURN3 EQU 0x
6、0F ;/* 配置EMCStaticWaitTurn3 */BCFG_08DEF EQU 0x00000000 ;/* 8Bit Bus */BCFG_16DEF EQU 0x00000001 ;/* 16Bit Bus */BCFG_32DEF EQU 0x00000002 ;/* 32Bit Bus */;/ | 页模式 | 片选极性 | 字节定位状态 | 延长等待 | 写缓冲区 | 写保护 |;/ | PM | PC | PB | EW | B | P |;/ | 0:禁能1:使能 | 0:低 1:高 | | 0:禁能1:使能 | 0:禁能1:使能 | 0:禁能1:使能|BCFG0 EQ
7、U ( (0x0103) :OR: (0x0006) :OR: (0x0107) :OR: (0x018) :OR: (0x0019) :OR: (0x0020) )BCFG1 EQU ( (0x0003) :OR: (0x0006) :OR: (0x0107) :OR: (0x008) :OR: (0x0019) :OR: (0x0020) )BCFG2 EQU ( (0x0003) :OR: (0x0006) :OR: (0x0107) :OR: (0x008) :OR: (0x0019) :OR: (0x0020) )BCFG3 EQU ( (0x0003) :OR: (0x0006)
8、:OR: (0x0107) :OR: (0x008) :OR: (0x0019) :OR: (0x00= 0x1fc INFO 1,nThe data at 0x000001fc must be 0x87654321.nPlease delete some source before this line. ENDIFCrpData WHILE . 0x1fc NOP WENDCrpData1 DCD 0x87654321 ;/* 当此数为0x87654321时,用户 */ ;/* 程序被保护 */ ENDIFInitStack MOV R0, LR;Build the SVC stack;设置
9、管理模式堆栈 MSR CPSR_c, #0xd3 LDR SP, StackSvc;Build the IRQ stack;设置中断模式堆栈 MSR CPSR_c, #0xd2 LDR SP, StackIrq;Build the FIQ stack;设置快速中断模式堆栈 MSR CPSR_c, #0xd1 LDR SP, StackFiq;Build the DATAABORT stack;设置中止模式堆栈 MSR CPSR_c, #0xd7 LDR SP, StackAbt;Build the UDF stack;设置未定义模式堆栈 MSR CPSR_c, #0xdb LDR SP, St
10、ackUnd;Build the SYS stack;设置系统模式堆栈 MSR CPSR_c, #SYS32Mode LDR SP, =StackUsr BX R0 LTORGStackSvc DCD SvcStackSpace + (SVC_STACK_LEGTH - 1) * 4StackIrq DCD IrqStackSpace + (IRQ_STACK_LEGTH - 1) * 4StackFiq DCD FiqStackSpace + (FIQ_STACK_LEGTH - 1) * 4StackAbt DCD AbtStackSpace + (ABT_STACK_LEGTH - 1) * 4StackUnd DCD UndtStackSpace + (UND_STACK_LEGTH - 1) * 4 AREA MyStacks, DATA, NOINIT, ALIGN = 2; ;/* 分配堆栈空间 */SvcStackSpace SPACE SVC_STA
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1