📄 target.s79
字号:
//////////////////////////////////////////////////////////////////////////////
// /
// IAR ARM ANSI C/C++ Compiler V4.31A/W32 20/Jul/2006 19:00:03 /
// Copyright 1999-2005 IAR Systems. All rights reserved. /
// Time limited license: 29 days left /
// /
// Cpu mode = interwork /
// Endian = little /
// Stack alignment = 4 /
// Source file = E:\Project\examples\IAR\基础实验\EINT1\target.c /
// Command line = E:\Project\examples\IAR\基础实验\EINT1\target.c /
// -lCN E:\Project\examples\IAR\基础实验\EINT1\Debug\L /
// ist\ -lA E:\Project\examples\IAR\基础实验\EINT1\Deb /
// ug\List\ -o E:\Project\examples\IAR\基础实验\EINT1\ /
// Debug\Obj\ -s9 --debug --cpu_mode thumb --endian /
// little --cpu ARM7TDMI-S --stack_align 4 /
// --interwork -e --fpu None --dlib_config /
// "E:\Program Files\IAR Systems\Embedded Workbench /
// 4.0\ARM\LIB\dl4tptinl8n.h" -I "E:\Program /
// Files\IAR Systems\Embedded Workbench 4.0\ARM\INC\" /
// List file = E:\Project\examples\IAR\基础实验\EINT1\Debug\List\t /
// arget.s79 /
// /
// /
//////////////////////////////////////////////////////////////////////////////
NAME target
RTMODEL "ARMv4M", "USED"
RTMODEL "ARMv4T", "USED"
RTMODEL "StackAlign4", "USED"
RTMODEL "__cpu_mode", "__pcs__interwork"
RTMODEL "__data_model", "absolute"
RTMODEL "__endian", "little"
RTMODEL "__rt_version", "6"
RSEG CSTACK:DATA:NOROOT(2)
MULTWEAK ??FIQ_Exception??rA
MULTWEAK ??TargetInit??rA
MULTWEAK ??TargetResetInit??rA
PUBLIC FIQ_Exception
FUNCTION FIQ_Exception,0203H
LOCFRAME CSTACK, 4, STACK
PUBLIC TargetInit
FUNCTION TargetInit,0203H
PUBLIC TargetResetInit
FUNCTION TargetResetInit,0203H
CFI Names cfiNames0
CFI StackFrame CFA R13 HUGEDATA
CFI Resource R0:32, R1:32, R2:32, R3:32, R4:32, R5:32, R6:32, R7:32
CFI Resource R8:32, R9:32, R10:32, R11:32, R12:32, CPSR:32, R13:32
CFI Resource R14:32, SPSR:32
CFI VirtualResource ?RET:32
CFI EndNames cfiNames0
CFI Common cfiCommon0 Using cfiNames0
CFI CodeAlign 4
CFI DataAlign 4
CFI ReturnAddress ?RET CODE
CFI CFA R13+0
CFI R0 Undefined
CFI R1 Undefined
CFI R2 Undefined
CFI R3 Undefined
CFI R4 SameValue
CFI R5 SameValue
CFI R6 SameValue
CFI R7 SameValue
CFI R8 SameValue
CFI R9 SameValue
CFI R10 SameValue
CFI R11 SameValue
CFI R12 Undefined
CFI CPSR SameValue
CFI R14 Undefined
CFI SPSR SameValue
CFI ?RET R14
CFI EndCommon cfiCommon0
CFI Common cfiCommon1 Using cfiNames0
CFI CodeAlign 2
CFI DataAlign 4
CFI ReturnAddress ?RET CODE
CFI CFA R13+0
CFI R0 Undefined
CFI R1 Undefined
CFI R2 Undefined
CFI R3 Undefined
CFI R4 SameValue
CFI R5 SameValue
CFI R6 SameValue
CFI R7 SameValue
CFI R8 SameValue
CFI R9 SameValue
CFI R10 SameValue
CFI R11 SameValue
CFI R12 Undefined
CFI CPSR SameValue
CFI R14 Undefined
CFI SPSR SameValue
CFI ?RET R14
CFI EndCommon cfiCommon1
FIQ_Exception SYMBOL "FIQ_Exception"
??FIQ_Exception??rA SYMBOL "??rA", FIQ_Exception
TargetInit SYMBOL "TargetInit"
??TargetInit??rA SYMBOL "??rA", TargetInit
TargetResetInit SYMBOL "TargetResetInit"
??TargetResetInit??rA SYMBOL "??rA", TargetResetInit
RSEG CODE:CODE:NOROOT(2)
CFI Block cfiBlock0 Using cfiCommon0
CFI NoFunction
CODE32
??FIQ_Exception??rA:
ADD R12,PC,#+1
BX R12
CFI EndBlock cfiBlock0
REQUIRE FIQ_Exception
// E:\Project\examples\IAR\基础实验\EINT1\target.c
// 1 /**--------------文件信息--------------------------------------------------------------------------------
// 2 **文 件 名: target.c
// 3 **描 述: lpc210x(飞利浦的ARM)目标板特殊的代码,包括异常处理程序和目标板初始化程序
// 4 ** 每个工程应当具有这个文件的拷贝,用户根据程序的需要修改本文件。
// 5 **注 意:本文件必须以ARM(32位代码)方式编译,否则,必须更改init.s和vector.s文件
// 6 ** 别的C代码不必使用ARM(32位代码)方式编译
// 7 ********************************************************************************************************/
// 8
// 9 #define IN_TARGET
// 10 #include "config.h"
// 11
// 12 /*********************************************************************************************************
// 13 ** 函数名称: IRQ_Exception
// 14 ** 功能描述: 中断异常处理程序,用户根据需要自己改变程序
// 15 **
// 16 ** 输 入: 无
// 17 **
// 18 ** 输 出: 无
// 19 **
// 20 ** 全局变量: 无
// 21 ** 调用模块: 无
// 22 ********************************************************************************************************/
// 23 //void __irq IRQ_Exception(void)
// 24 //{
// 25 // while(1); // 这一句替换为自己的代码
// 26 //}
// 27
// 28 /*********************************************************************************************************
// 29 ** 函数名称: FIQ_Exception
// 30 ** 功能描述: 快速中断异常处理程序,用户根据需要自己改变程序
// 31 **
// 32 ** 输 入: 无
// 33 **
// 34 ** 输 出: 无
// 35 **
// 36 ** 全局变量: 无
// 37 ** 调用模块: 无
// 38 ********************************************************************************************************/
RSEG CODE:CODE:NOROOT(2)
CFI Block cfiBlock1 Using cfiCommon1
CFI Function FIQ_Exception
CODE16
// 39 void FIQ_Exception(void)
// 40 {
// 41 while(1); // 这一句替换为自己的代码
FIQ_Exception:
??FIQ_Exception_0:
B ??FIQ_Exception_0
CFI EndBlock cfiBlock1
// 42 }
RSEG CODE:CODE:NOROOT(2)
CFI Block cfiBlock2 Using cfiCommon0
CFI NoFunction
CODE32
??TargetInit??rA:
ADD R12,PC,#+1
BX R12
CFI EndBlock cfiBlock2
REQUIRE TargetInit
// 43
// 44 /*********************************************************************************************************
// 45 ** 函数名称: TargetInit
// 46 ** 功能描述: 目标板初始化代码,在需要的地方调用,根据需要改变
// 47 ** 输 入: 无
// 48 **
// 49 ** 输 出: 无
// 50 **
// 51 ** 全局变量: 无
// 52 ** 调用模块: 无
// 53 ********************************************************************************************************/
RSEG CODE:CODE:NOROOT(2)
CFI Block cfiBlock3 Using cfiCommon1
CFI Function TargetInit
CODE16
// 54 void TargetInit(void)
// 55 {
// 56 /* 添加自己的代码 */
// 57 }
TargetInit:
BX LR ;; return
CFI EndBlock cfiBlock3
RSEG CODE:CODE:NOROOT(2)
CFI Block cfiBlock4 Using cfiCommon0
CFI NoFunction
CODE32
??TargetResetInit??rA:
ADD R12,PC,#+1
BX R12
CFI EndBlock cfiBlock4
REQUIRE TargetResetInit
// 58
// 59 /*********************************************************************************************************
// 60 ** 函数名称: TargetResetInit
// 61 ** 功能描述: 调用main函数前目标板初始化代码,根据需要改变,不能删除
// 62 ** 输 入: 无
// 63 **
// 64 ** 输 出: 无
// 65 **
// 66 ** 全局变量: 无
// 67 ** 调用模块: 无
// 68 ********************************************************************************************************/
RSEG CODE:CODE:NOROOT(2)
CFI Block cfiBlock5 Using cfiCommon1
CFI Function TargetResetInit
CODE16
// 69 void TargetResetInit(void)
// 70 {
// 71
// 72 /* 设置系统各部分时钟 */
// 73 /* PLLCON = 1;
// 74 #if ((Fcclk / 4) / Fpclk) == 1
// 75 VPBDIV = 0;
// 76 #endif
// 77
// 78 #if ((Fcclk / 4) / Fpclk) == 2
// 79 VPBDIV = 2;
// 80 #endif
// 81
// 82 #if ((Fcclk / 4) / Fpclk) == 4
// 83 VPBDIV = 1;
// 84 #endif
// 85
// 86 #if (Fcco / Fcclk) == 2
// 87 PLLCFG = ((Fcclk / Fosc) - 1) | (0 << 5);
// 88 #endif
// 89 #if (Fcco / Fcclk) == 4
// 90 PLLCFG = ((Fcclk / Fosc) - 1) | (1 << 5);
// 91 #endif
// 92 #if (Fcco / Fcclk) == 8
// 93 PLLCFG = ((Fcclk / Fosc) - 1) | (2 << 5);
// 94 #endif
// 95 #if (Fcco / Fcclk) == 16
// 96 PLLCFG = ((Fcclk / Fosc) - 1) | (3 << 5);
// 97 #endif
// 98 PLLFEED = 0xaa;
// 99 PLLFEED = 0x55;
// 100 while((PLLSTAT & (1 << 10)) == 0);
// 101 PLLCON = 3;
// 102 PLLFEED = 0xaa;
// 103 PLLFEED = 0x55;
// 104 */
// 105
// 106 /* 设置存储器加速模块 */
// 107 MAMCR = 2; //MAMCR 8u2 00-MAM 功能被禁止、01-MAM功能部分使能、10-MAM功能完全使能
TargetResetInit:
LDR R0,??TargetResetInit_0 ;; 0xe01fc000
MOV R1,#+2
STRB R1,[R0, #+0]
// 108 /* MAMTIM 8u3
// 109 000=0-保留
// 110 001=1-一段时间内只有 1 个处理器时钟(cclk)用于 MAM 取指。
// 111 010=2-一段时间内只有2个处理器时钟(cclk)用于MAM取指。
// 112 011=3-一段时间内只有 3 个处理器时钟(cclk)用于 MAM 取指。
// 113 100=4-一段时间内只有4个处理器时钟(cclk)用于 MAM 取指。
// 114 101=5-一段时间内只有5 个处理器时钟(cclk)用于 MAM 取指。
// 115 110=6-一段时间内只有 6 个处理器时钟(cclk)用于 MAM 取指。
// 116 111=7-一段时间内只有7个处理器时钟(cclk)用于 MAM 取指。
// 117 */
// 118 #if Fcclk < 20000000
// 119 MAMTIM = 1;
// 120 #else
// 121 #if Fcclk < 40000000
// 122 MAMTIM = 2;
// 123 #else
// 124 MAMTIM = 3;
LDR R0,??TargetResetInit_0+0x4 ;; 0xe01fc004
MOV R1,#+3
STRB R1,[R0, #+0]
// 125 #endif
// 126 #endif
// 127
// 128 /* 初始化VIC */
// 129 VICIntEnClr = 0xffffffff;//清所有中断使能,即关中断
LDR R0,??TargetResetInit_0+0x8 ;; 0xfffff014
MOV R1,#+0
MVN R1,R1 ;; #-1
STR R1,[R0, #+0]
// 130 VICVectAddr = 0;//默认向量地址寄存器
MOV R0,#+0
LDR R1,??TargetResetInit_0+0xC ;; 0xfffff030
STR R0,[R1, #+0]
// 131 VICIntSelect = 0;//1:对应的中断请求分配为FIQ。0:对应的中断请求分配为IRQ。
LDR R1,??TargetResetInit_0+0x10 ;; 0xfffff00c
STR R0,[R1, #+0]
// 132
// 133 /* 添加自己的代码 */
// 134
// 135 }
BX LR ;; return
DATA
??TargetResetInit_0:
DC32 0xe01fc000
DC32 0xe01fc004
DC32 0xfffff014
DC32 0xfffff030
DC32 0xfffff00c
CFI EndBlock cfiBlock5
END
// 136
// 137 /*********************************************************************************************************
// 138 ** End Of File
// 139 ********************************************************************************************************/
//
// 80 bytes in segment CODE
//
// 56 bytes of CODE memory (+ 24 bytes shared)
//
//Errors: none
//Warnings: none
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -