📄 main.lss
字号:
main.elf: file format elf32-avr
Sections:
Idx Name Size VMA LMA File off Algn
0 .data 00000124 00800100 000006ae 00000742 2**0
CONTENTS, ALLOC, LOAD, DATA
1 .text 000006ae 00000000 00000000 00000094 2**0
CONTENTS, ALLOC, LOAD, READONLY, CODE
2 .bss 0000009c 00800224 00800224 00000866 2**0
ALLOC
3 .noinit 00000000 008002c0 008002c0 00000866 2**0
CONTENTS
4 .eeprom 00000000 00810000 00810000 00000866 2**0
CONTENTS
5 .stab 00000408 00000000 00000000 00000868 2**2
CONTENTS, READONLY, DEBUGGING
6 .stabstr 00000084 00000000 00000000 00000c70 2**0
CONTENTS, READONLY, DEBUGGING
7 .debug_aranges 00000028 00000000 00000000 00000cf4 2**0
CONTENTS, READONLY, DEBUGGING
8 .debug_pubnames 0000016e 00000000 00000000 00000d1c 2**0
CONTENTS, READONLY, DEBUGGING
9 .debug_info 00000aaf 00000000 00000000 00000e8a 2**0
CONTENTS, READONLY, DEBUGGING
10 .debug_abbrev 00000241 00000000 00000000 00001939 2**0
CONTENTS, READONLY, DEBUGGING
11 .debug_line 0000067a 00000000 00000000 00001b7a 2**0
CONTENTS, READONLY, DEBUGGING
12 .debug_str 0000034a 00000000 00000000 000021f4 2**0
CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:
00000000 <__vectors>:
0: 0c 94 46 00 jmp 0x8c <__ctors_end>
4: 0c 94 63 00 jmp 0xc6 <__bad_interrupt>
8: 0c 94 63 00 jmp 0xc6 <__bad_interrupt>
c: 0c 94 63 00 jmp 0xc6 <__bad_interrupt>
10: 0c 94 63 00 jmp 0xc6 <__bad_interrupt>
14: 0c 94 63 00 jmp 0xc6 <__bad_interrupt>
18: 0c 94 63 00 jmp 0xc6 <__bad_interrupt>
1c: 0c 94 63 00 jmp 0xc6 <__bad_interrupt>
20: 0c 94 63 00 jmp 0xc6 <__bad_interrupt>
24: 0c 94 63 00 jmp 0xc6 <__bad_interrupt>
28: 0c 94 63 00 jmp 0xc6 <__bad_interrupt>
2c: 0c 94 63 00 jmp 0xc6 <__bad_interrupt>
30: 0c 94 63 00 jmp 0xc6 <__bad_interrupt>
34: 0c 94 63 00 jmp 0xc6 <__bad_interrupt>
38: 0c 94 63 00 jmp 0xc6 <__bad_interrupt>
3c: 0c 94 63 00 jmp 0xc6 <__bad_interrupt>
40: 0c 94 63 00 jmp 0xc6 <__bad_interrupt>
44: 0c 94 63 00 jmp 0xc6 <__bad_interrupt>
48: 0c 94 63 00 jmp 0xc6 <__bad_interrupt>
4c: 0c 94 63 00 jmp 0xc6 <__bad_interrupt>
50: 0c 94 63 00 jmp 0xc6 <__bad_interrupt>
54: 0c 94 63 00 jmp 0xc6 <__bad_interrupt>
58: 0c 94 63 00 jmp 0xc6 <__bad_interrupt>
5c: 0c 94 63 00 jmp 0xc6 <__bad_interrupt>
60: 0c 94 63 00 jmp 0xc6 <__bad_interrupt>
64: 0c 94 63 00 jmp 0xc6 <__bad_interrupt>
68: 0c 94 63 00 jmp 0xc6 <__bad_interrupt>
6c: 0c 94 63 00 jmp 0xc6 <__bad_interrupt>
70: 0c 94 63 00 jmp 0xc6 <__bad_interrupt>
74: 0c 94 63 00 jmp 0xc6 <__bad_interrupt>
78: 0c 94 63 00 jmp 0xc6 <__bad_interrupt>
7c: 0c 94 63 00 jmp 0xc6 <__bad_interrupt>
80: 0c 94 63 00 jmp 0xc6 <__bad_interrupt>
84: 0c 94 63 00 jmp 0xc6 <__bad_interrupt>
88: 0c 94 63 00 jmp 0xc6 <__bad_interrupt>
0000008c <__ctors_end>:
8c: 11 24 eor r1, r1
8e: 1f be out 0x3f, r1 ; 63
90: cf ef ldi r28, 0xFF ; 255
92: d0 e1 ldi r29, 0x10 ; 16
94: de bf out 0x3e, r29 ; 62
96: cd bf out 0x3d, r28 ; 61
00000098 <__do_copy_data>:
98: 12 e0 ldi r17, 0x02 ; 2
9a: a0 e0 ldi r26, 0x00 ; 0
9c: b1 e0 ldi r27, 0x01 ; 1
9e: ee ea ldi r30, 0xAE ; 174
a0: f6 e0 ldi r31, 0x06 ; 6
a2: 00 e0 ldi r16, 0x00 ; 0
a4: 0b bf out 0x3b, r16 ; 59
a6: 02 c0 rjmp .+4 ; 0xac <__do_copy_data+0x14>
a8: 07 90 elpm r0, Z+
aa: 0d 92 st X+, r0
ac: a4 32 cpi r26, 0x24 ; 36
ae: b1 07 cpc r27, r17
b0: d9 f7 brne .-10 ; 0xa8 <__do_copy_data+0x10>
000000b2 <__do_clear_bss>:
b2: 12 e0 ldi r17, 0x02 ; 2
b4: a4 e2 ldi r26, 0x24 ; 36
b6: b2 e0 ldi r27, 0x02 ; 2
b8: 01 c0 rjmp .+2 ; 0xbc <.do_clear_bss_start>
000000ba <.do_clear_bss_loop>:
ba: 1d 92 st X+, r1
000000bc <.do_clear_bss_start>:
bc: a0 3c cpi r26, 0xC0 ; 192
be: b1 07 cpc r27, r17
c0: e1 f7 brne .-8 ; 0xba <.do_clear_bss_loop>
c2: 0c 94 0b 01 jmp 0x216 <main>
000000c6 <__bad_interrupt>:
c6: 0c 94 00 00 jmp 0x0 <__vectors>
000000ca <write>:
BYTE BrBwTable[9][9];
BYTE asciiString[11];
void write(unsigned char *str)
{
ca: fc 01 movw r30, r24
while (*str != 0)
{
UART0_WAIT_AND_SEND(*str++);
cc: 80 81 ld r24, Z
ce: 88 23 and r24, r24
d0: 69 f0 breq .+26 ; 0xec <write+0x22>
d2: 80 91 9b 00 lds r24, 0x009B
d6: 85 ff sbrs r24, 5
d8: fc cf rjmp .-8 ; 0xd2 <write+0x8>
da: 80 91 9b 00 lds r24, 0x009B
de: 8f 7d andi r24, 0xDF ; 223
e0: 80 93 9b 00 sts 0x009B, r24
e4: 81 91 ld r24, Z+
e6: 80 93 9c 00 sts 0x009C, r24
ea: f0 cf rjmp .-32 ; 0xcc <write+0x2>
ec: 08 95 ret
000000ee <writeln>:
}
}
void writeln(unsigned char *str)
{
write(str);
ee: 0e 94 65 00 call 0xca <write>
write("\n\r");
f2: 83 e2 ldi r24, 0x23 ; 35
f4: 91 e0 ldi r25, 0x01 ; 1
f6: 0e 94 65 00 call 0xca <write>
fa: 08 95 ret
000000fc <sysInit>:
}
void sysInit(void);
int main(void)
{ UINT32 i;
UINT32 packetsReceived = 0;
UINT8 *length;
BOOL flag;
for (i=0;i<100;i++) halWait(200);
//系统初始化
sysInit();
//一些提示信息
writeln("Welcome to IBSS");
writeln("This is written by Wang Chaoyan");
writeln("This is a Simple Demo RX for CCxx00...");
// Reset CCxx00 and write rf setting to config registers
// CC1100芯片上电复位
writeln("wait for Reset CCxxx0!!!!");
POWER_UP_RESET_CCxxx0();
writeln("Reset Cxxx0 oK!!");
//寄存器设置
halRfWriteRfSettings(&rfSettings);
writeln("Config resister oK!!");
//发射功率设定
halSpiWriteBurstReg(CCxxx0_PATABLE, paTable, sizeof(paTable));
writeln("Config paTable OK!!!");
//提示信息
writeln("Now Enjoying the show!!!");
while(1)
{
//初始化接收的数据包长度
length = sizeof(rxBuffer);
//若收到显示接收结果
flag=halRfReceivePacket(rxBuffer, length);
if (flag)
{
SET_LED_RDY();
intToAscii(++packetsReceived);
write("Received: ");
write(asciiString);
write(" - ");
writeln(rxBuffer);
CLR_LED_RDY();
}
}
}
void sysInit(void)
{
fc: cf 93 push r28
unsigned char i;
//口初始化
PORT_INIT();
fe: 87 e0 ldi r24, 0x07 ; 7
100: 87 bb out 0x17, r24 ; 23
102: 8f e3 ldi r24, 0x3F ; 63
104: 88 bb out 0x18, r24 ; 24
106: 14 ba out 0x14, r1 ; 20
108: 85 bb out 0x15, r24 ; 21
10a: 88 e8 ldi r24, 0x88 ; 136
10c: 81 bb out 0x11, r24 ; 17
10e: 8f e7 ldi r24, 0x7F ; 127
110: 82 bb out 0x12, r24 ; 18
//SPI 初始化
SPI_INIT ();
112: 80 e5 ldi r24, 0x50 ; 80
114: 8d b9 out 0x0d, r24 ; 13
116: c4 e0 ldi r28, 0x04 ; 4
//等待一下,晶振稳定
for (i=0;i<5;i++) halWait(200);
118: 88 ec ldi r24, 0xC8 ; 200
11a: 0e 94 2e 03 call 0x65c <halWait>
11e: c1 50 subi r28, 0x01 ; 1
120: c7 ff sbrs r28, 7
122: fa cf rjmp .-12 ; 0x118 <sysInit+0x1c>
//初始化串口为: 9600,8N1
INIT_UART0 ( UART_BAUDRATE_9K6, (
124: 10 92 98 00 sts 0x0098, r1
128: 83 e3 ldi r24, 0x33 ; 51
12a: 80 93 99 00 sts 0x0099, r24
12e: 86 e8 ldi r24, 0x86 ; 134
130: 80 93 9d 00 sts 0x009D, r24
UART_OPT_8_BITS_PER_CHAR |
UART_OPT_NO_PARITY |
UART_OPT_ONE_STOP_BIT ) );
//串口开
ENABLE_UART0();
134: 80 91 9a 00 lds r24, 0x009A
138: 88 61 ori r24, 0x18 ; 24
13a: 80 93 9a 00 sts 0x009A, r24
DISABLE_UART0_INT();
13e: 80 91 9a 00 lds r24, 0x009A
142: 8f 75 andi r24, 0x5F ; 95
144: 80 93 9a 00 sts 0x009A, r24
// ENABLE_UART0_RX_INT(); // Enable Receive interrupt
// ENABLE_GLOBAL_INT(); // Enable all interrupts
SET_LED_RDY();
148: 97 9a sbi 0x12, 7 ; 18
14a: cf 91 pop r28
14c: 08 95 ret
0000014e <intToAscii>:
}
//-------------------------------------------------------------------------------------------------------
// void intToAscii(UINT32 value)
//
// DESCRIPTION:
// Takes a 32 bits interger as input and converts it to ascii. Puts the result in the global
// variable asciiString[]
//
// ARGUMENTS:
// UINT32 value
// The value to be converted
//-------------------------------------------------------------------------------------------------------
void intToAscii(UINT32 value) {
14e: 7f 92 push r7
150: 8f 92 push r8
152: 9f 92 push r9
154: af 92 push r10
156: bf 92 push r11
158: cf 92 push r12
15a: df 92 push r13
15c: ef 92 push r14
15e: ff 92 push r15
160: 0f 93 push r16
162: 1f 93 push r17
164: cf 93 push r28
166: df 93 push r29
168: 7b 01 movw r14, r22
16a: 8c 01 movw r16, r24
UINT8 i;
UINT8 j = 0;
16c: 99 24 eor r9, r9
UINT8 digit_start = 0;
16e: 79 2c mov r7, r9
UINT16 digit = 0;
UINT32 denom = 1000000000;
170: a1 2c mov r10, r1
172: 2a ec ldi r18, 0xCA ; 202
174: b2 2e mov r11, r18
176: 2a e9 ldi r18, 0x9A ; 154
178: c2 2e mov r12, r18
17a: 2b e3 ldi r18, 0x3B ; 59
17c: d2 2e mov r13, r18
if (value == 0) {
17e: 61 15 cp r22, r1
180: 71 05 cpc r23, r1
182: 81 05 cpc r24, r1
184: 91 05 cpc r25, r1
186: 31 f4 brne .+12 ; 0x194 <intToAscii+0x46>
asciiString[0] = '0';
188: 80 e3 ldi r24, 0x30 ; 48
18a: 80 93 75 02 sts 0x0275, r24
asciiString[1] = NULL;
18e: 90 92 76 02 sts 0x0276, r9
192: 33 c0 rjmp .+102 ; 0x1fa <intToAscii+0xac>
} else {
for(i = 10; i > 0; i--) {
194: 9a e0 ldi r25, 0x0A ; 10
196: 89 2e mov r8, r25
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -