📄 main.s79
字号:
//////////////////////////////////////////////////////////////////////////////
// /
// IAR ARM ANSI C/C++ Compiler V4.40A/W32 EVALUATION 21/Jul/2006 19:33:13 /
// Copyright 1999-2005 IAR Systems. All rights reserved. /
// Time limited license: 21 days left /
// /
// Cpu mode = interwork /
// Endian = little /
// Stack alignment = 4 /
// Source file = E:\Project\ucos-ii\lcd\App\main.c /
// Command line = E:\Project\ucos-ii\lcd\App\main.c -lCN /
// E:\Project\ucos-ii\lcd\Debug\List\ -lA /
// E:\Project\ucos-ii\lcd\Debug\List\ -o /
// E:\Project\ucos-ii\lcd\Debug\Obj\ -s9 --no_cse /
// --no_unroll --no_inline --no_code_motion --no_tbaa /
// --no_clustering --no_scheduling --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 /
// Evaluation\ARM\LIB\dl4tptinl8n.h" -I /
// E:\Project\ucos-ii\lcd\ -I /
// E:\Project\ucos-ii\lcd\App\ -I /
// E:\Project\ucos-ii\lcd\ARM\ -I /
// E:\Project\ucos-ii\lcd\BSP\ -I /
// E:\Project\ucos-ii\lcd\uCOS-II\ -I "E:\Program /
// Files\IAR Systems\Embedded Workbench 4.0 /
// Evaluation\ARM\INC\" /
// List file = E:\Project\ucos-ii\lcd\Debug\List\main.s79 /
// /
// /
//////////////////////////////////////////////////////////////////////////////
NAME main
RTMODEL "StackAlign4", "USED"
RTMODEL "__cpu_mode", "__pcs__interwork"
RTMODEL "__data_model", "absolute"
RTMODEL "__dlib_file_descriptor", "0"
RTMODEL "__endian", "little"
RTMODEL "__rt_version", "6"
RSEG CSTACK:DATA:NOROOT(2)
PUBWEAK `?*?DATA_ID`
MULTWEAK ??BSP_Init??rT
MULTWEAK ??ChkBusy??rA
??DataTable0 EQU 0
??DataTable1 EQU 0
??DataTable10 EQU 0
??DataTable12 EQU 0
??DataTable2 EQU 0
??DataTable3 EQU 0
??DataTable4 EQU 0
??DataTable5 EQU 0
??DataTable6 EQU 0
??DataTable7 EQU 0
??DataTable8 EQU 0
??DataTable9 EQU 0
MULTWEAK ??DisplayText??rA
MULTWEAK ??OSInit??rT
MULTWEAK ??OSStart??rT
MULTWEAK ??OSTaskCreate??rT
MULTWEAK ??TaskStart??rA
MULTWEAK ??WrDat??rA
MULTWEAK ??WrOp??rA
MULTWEAK ??main??rA
PUBWEAK ?init?tab?DATA_I
PUBWEAK ?init?tab?DATA_Z
PUBLIC ChkBusy
FUNCTION ChkBusy,0201H
LOCFRAME CSTACK, 4, STACK
PUBLIC DisplayText
FUNCTION DisplayText,0203H
LOCFRAME CSTACK, 8, STACK
PUBLIC TaskStart
FUNCTION TaskStart,0603H
LOCFRAME CSTACK, 4, STACK
PUBLIC TaskStartStk
PUBLIC WrDat
FUNCTION WrDat,0203H
LOCFRAME CSTACK, 8, STACK
PUBLIC WrOp
FUNCTION WrOp,0203H
LOCFRAME CSTACK, 8, STACK
PUBWEAK _A_IOCLR
PUBWEAK _A_IODIR
PUBWEAK _A_IOPIN
PUBWEAK _A_IOSET
PUBWEAK _A_PINSEL0
PUBLIC main
FUNCTION main,0a03H
LOCFRAME CSTACK, 4, STACK
PUBLIC txt
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
BSP_Init SYMBOL "BSP_Init"
OSInit SYMBOL "OSInit"
OSStart SYMBOL "OSStart"
OSTaskCreate SYMBOL "OSTaskCreate"
??BSP_Init??rT SYMBOL "??rT", BSP_Init
ChkBusy SYMBOL "ChkBusy"
??ChkBusy??rA SYMBOL "??rA", ChkBusy
DisplayText SYMBOL "DisplayText"
??DisplayText??rA SYMBOL "??rA", DisplayText
??OSInit??rT SYMBOL "??rT", OSInit
??OSStart??rT SYMBOL "??rT", OSStart
??OSTaskCreate??rT SYMBOL "??rT", OSTaskCreate
TaskStart SYMBOL "TaskStart"
??TaskStart??rA SYMBOL "??rA", TaskStart
WrDat SYMBOL "WrDat"
??WrDat??rA SYMBOL "??rA", WrDat
WrOp SYMBOL "WrOp"
??WrOp??rA SYMBOL "??rA", WrOp
main SYMBOL "main"
??main??rA SYMBOL "??rA", main
EXTERN BSP_Init
FUNCTION BSP_Init,0202H
EXTERN OSInit
FUNCTION OSInit,0202H
EXTERN OSStart
FUNCTION OSStart,0202H
EXTERN OSTaskCreate
FUNCTION OSTaskCreate,0202H
// E:\Project\ucos-ii\lcd\App\main.c
// 1
// 2
// 3 #include <includes.h>
ASEGN DATA_AN:DATA:NOROOT,0e002c000H
// union <unnamed> volatile __data _A_PINSEL0
_A_PINSEL0:
DS8 4
ASEGN DATA_AN:DATA:NOROOT,0e0028000H
// union <unnamed> const volatile __data _A_IOPIN
_A_IOPIN:
DS8 4
ASEGN DATA_AN:DATA:NOROOT,0e0028004H
// union <unnamed> volatile __data _A_IOSET
_A_IOSET:
DS8 4
ASEGN DATA_AN:DATA:NOROOT,0e0028008H
// union <unnamed> volatile __data _A_IODIR
_A_IODIR:
DS8 4
ASEGN DATA_AN:DATA:NOROOT,0e002800cH
// union <unnamed> volatile __data _A_IOCLR
_A_IOCLR:
DS8 4
// 4 #define rs (1<<8)
// 5 #define rw (1<<9)
// 6 #define en (1<<10)
// 7 #define busy (1<<7)
// 8
// 9 #define TASK_STK_SIZE 64
RSEG DATA_Z:DATA:SORT:NOROOT(2)
// 10 OS_STK TaskStartStk[TASK_STK_SIZE];
TaskStartStk:
DS8 256
// 11
// 12 void TaskStart(void *data);
RSEG DATA_I:DATA:SORT:NOROOT(2)
// 13 INT8U txt[]={"helloworld"};
txt:
DS8 12
REQUIRE `?<Initializer for txt>`
RSEG CODE:CODE:NOROOT(2)
CFI Block cfiBlock0 Using cfiCommon0
CFI NoFunction
ARM
??ChkBusy??rA:
ADD R12,PC,#+1
BX R12
CFI EndBlock cfiBlock0
REQUIRE ChkBusy
// 14 /****************************************************************************
// 15 * 名称:ChkBusy()
// 16 * 功能:检查总线是否忙
// 17 ****************************************************************************/
RSEG CODE:CODE:NOROOT(2)
CFI Block cfiBlock1 Using cfiCommon1
CFI Function ChkBusy
THUMB
// 18 void ChkBusy()
// 19 {
ChkBusy:
PUSH {LR}
CFI ?RET Frame(CFA, -4)
CFI CFA R13+4
// 20 PINSEL0=0xffc00000;
LDR R0,??ChkBusy_0 ;; 0xe002c000
LDR R1,??ChkBusy_0+0x4 ;; 0xffc00000
STR R1,[R0, #+0]
// 21 IODIR=0x700;
LDR R0,??DataTable13 ;; 0xe0028008
LSRS R1,R0,#+21
B.N ??ChkBusy_1
// 22 while(1)
// 23 {
// 24 IOCLR=rs;
// 25 IOSET=rw;
// 26 IOSET=en;
// 27 if(!(IOPIN & busy))break;
// 28 IOCLR=en;
??ChkBusy_2:
LDR R0,??DataTable15 ;; 0xe002800c
??ChkBusy_1:
STR R1,[R0, #+0]
LDR R0,??DataTable15 ;; 0xe002800c
MOVS R1,#+128
LSLS R1,R1,#+1 ;; #+256
STR R1,[R0, #+0]
LDR R0,??DataTable11 ;; 0xe0028004
LSLS R1,R1,#+1
STR R1,[R0, #+0]
LSLS R1,R1,#+1
STR R1,[R0, #+0]
LDR R0,??ChkBusy_0+0x8 ;; 0xe0028000
LDR R0,[R0, #+0]
LSLS R0,R0,#+24
BMI ??ChkBusy_2
// 29 }
// 30 IODIR=0x7ff;
LDR R0,??DataTable13 ;; 0xe0028008
LDR R1,??DataTable14 ;; 0x7ff
STR R1,[R0, #+0]
// 31 }
POP {R0}
BX R0 ;; return
Nop
DATA
??ChkBusy_0:
DC32 0xe002c000
DC32 0xffc00000
DC32 0xe0028000
CFI EndBlock cfiBlock1
RSEG CODE:CODE:NOROOT(2)
CFI Block cfiBlock2 Using cfiCommon0
CFI NoFunction
ARM
??WrOp??rA:
ADD R12,PC,#+1
BX R12
CFI EndBlock cfiBlock2
REQUIRE WrOp
// 32 /****************************************************************************
// 33 * 名称:WrOp()
// 34 * 功能:写函数
// 35 ****************************************************************************/
RSEG CODE:CODE:NOROOT(2)
CFI Block cfiBlock3 Using cfiCommon1
CFI Function WrOp
THUMB
// 36 void WrOp(INT8U dat)
// 37 {
WrOp:
PUSH {R4,LR}
CFI ?RET Frame(CFA, -4)
CFI R4 Frame(CFA, -8)
CFI CFA R13+8
MOVS R4,R0
// 38
// 39 ChkBusy();
BL ChkBusy
// 40 IOCLR=rs; //全部清零
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -