Собственно этим и занимаюсь...
CODE
DBGU_Init(9600);
1000f0: e59f3094 ldr r3, [pc, #148] ; 10018c <main+0xec>
1000f4: e3a00d96 mov r0, #9600 ; 0x2580
1000f8: e1a0e00f mov lr, pc
1000fc: e12fff13 bx r3
void DBGU_Init(unsigned int BaudRate)
{
1002f0: e92d4010 push {r4, lr}
// сброс приемника и передачика
AT91C_BASE_DBGU->DBGU_CR = AT91C_US_RSTRX | AT91C_US_RSTTX;
1002f4: e3a0300c mov r3, #12 ; 0xc
1002f8: e3e04c0d mvn r4, #3328 ; 0xd00
1002fc: e50430ff str r3, [r4, #-255]
// запрет прерываний
AT91C_BASE_DBGU->DBGU_IDR = 0xFFFFFFFF;
100300: e3e03000 mvn r3, #0 ; 0x0
// установка скорости передачи
AT91C_BASE_DBGU->DBGU_BRGR = CHIP_MCK / (BaudRate * 16);
100304: e1a01200 lsl r1, r0, #4
{
// сброс приемника и передачика
AT91C_BASE_DBGU->DBGU_CR = AT91C_US_RSTRX | AT91C_US_RSTTX;
// запрет прерываний
AT91C_BASE_DBGU->DBGU_IDR = 0xFFFFFFFF;
100308: e50430f3 str r3, [r4, #-243]
// установка скорости передачи
AT91C_BASE_DBGU->DBGU_BRGR = CHIP_MCK / (BaudRate * 16);
10030c: e59f0040 ldr r0, [pc, #64] ; 100354 <DBGU_Init+0x64>
100310: e59f3040 ldr r3, [pc, #64] ; 100358 <DBGU_Init+0x68>
100314: e1a0e00f mov lr, pc
100318: e12fff13 bx r3
// устанвока режима работы
// (asynchronous, 8bit, no parity)
AT91C_BASE_DBGU->DBGU_MR = AT91C_US_PAR_NONE | AT91C_US_CHMODE_NORMAL;
10031c: e3a03b02 mov r3, #2048 ; 0x800
// запрет прерываний
AT91C_BASE_DBGU->DBGU_IDR = 0xFFFFFFFF;
// установка скорости передачи
AT91C_BASE_DBGU->DBGU_BRGR = CHIP_MCK / (BaudRate * 16);
100320: e50400df str r0, [r4, #-223]
// устанвока режима работы
// (asynchronous, 8bit, no parity)
AT91C_BASE_DBGU->DBGU_MR = AT91C_US_PAR_NONE | AT91C_US_CHMODE_NORMAL;
100324: e50430fb str r3, [r4, #-251]
// отключаем DMA канал
AT91C_BASE_DBGU->DBGU_PTCR = AT91C_PDC_RXTDIS | AT91C_PDC_TXTDIS;
100328: e59f302c ldr r3, [pc, #44] ; 10035c <DBGU_Init+0x6c>
// подключаем линии ввода-вывода к DBGU
// запрещаем прерывания
AT91C_BASE_PIOA->PIO_IDR = AT91C_PA10_DTXD | AT91C_PA9_DRXD;
10032c: e3e01c0b mvn r1, #2816 ; 0xb00
// устанвока режима работы
// (asynchronous, 8bit, no parity)
AT91C_BASE_DBGU->DBGU_MR = AT91C_US_PAR_NONE | AT91C_US_CHMODE_NORMAL;
// отключаем DMA канал
AT91C_BASE_DBGU->DBGU_PTCR = AT91C_PDC_RXTDIS | AT91C_PDC_TXTDIS;
100330: e5843021 str r3, [r4, #33]
// подключаем линии ввода-вывода к DBGU
// запрещаем прерывания
AT91C_BASE_PIOA->PIO_IDR = AT91C_PA10_DTXD | AT91C_PA9_DRXD;
100334: e3a02c06 mov r2, #1536 ; 0x600
AT91C_BASE_PIOA->PIO_ASR = AT91C_PA10_DTXD | AT91C_PA9_DRXD;
// передача управления перефирии
AT91C_BASE_PIOA->PIO_PDR = AT91C_PA10_DTXD | AT91C_PA9_DRXD;
// разрешаем работу приемника и передатчика
AT91C_BASE_DBGU->DBGU_CR = AT91C_US_RXEN | AT91C_US_TXEN;
100338: e3a03050 mov r3, #80 ; 0x50
// отключаем DMA канал
AT91C_BASE_DBGU->DBGU_PTCR = AT91C_PDC_RXTDIS | AT91C_PDC_TXTDIS;
// подключаем линии ввода-вывода к DBGU
// запрещаем прерывания
AT91C_BASE_PIOA->PIO_IDR = AT91C_PA10_DTXD | AT91C_PA9_DRXD;
10033c: e50120bb str r2, [r1, #-187]
// разрешаем внутренний подтягивающий резистор
AT91C_BASE_PIOA->PIO_PPUER = AT91C_PA10_DTXD | AT91C_PA9_DRXD;
100340: e501209b str r2, [r1, #-155]
// подключение к перифирии А
AT91C_BASE_PIOA->PIO_ASR = AT91C_PA10_DTXD | AT91C_PA9_DRXD;
100344: e501208f str r2, [r1, #-143]
// передача управления перефирии
AT91C_BASE_PIOA->PIO_PDR = AT91C_PA10_DTXD | AT91C_PA9_DRXD;
100348: e50120fb str r2, [r1, #-251]
// разрешаем работу приемника и передатчика
AT91C_BASE_DBGU->DBGU_CR = AT91C_US_RXEN | AT91C_US_TXEN;
10034c: e50430ff str r3, [r4, #-255]
}
100350: e8bd8010 pop {r4, pc}
100354: 02dc6c00 .word 0x02dc6c00
100358: 001003d4 .word 0x001003d4
10035c: 00000202 .word 0x00000202
001003d4 <__aeabi_uidiv>:
1003d4: e2512001 subs r2, r1, #1 ; 0x1
1003d8: 012fff1e bxeq lr
1003dc: 3a000036 bcc 1004bc <__aeabi_uidiv+0xe8>
1003e0: e1500001 cmp r0, r1
1003e4: 9a000022 bls 100474 <__aeabi_uidiv+0xa0>
1003e8: e1110002 tst r1, r2
1003ec: 0a000023 beq 100480 <__aeabi_uidiv+0xac>
1003f0: e311020e tst r1, #-536870912 ; 0xe0000000
1003f4: 01a01181 lsleq r1, r1, #3
1003f8: 03a03008 moveq r3, #8 ; 0x8
1003fc: 13a03001 movne r3, #1 ; 0x1
100400: e3510201 cmp r1, #268435456 ; 0x10000000
100404: 31510000 cmpcc r1, r0
100408: 31a01201 lslcc r1, r1, #4
10040c: 31a03203 lslcc r3, r3, #4
100410: 3afffffa bcc 100400 <__aeabi_uidiv+0x2c>
100414: e3510102 cmp r1, #-2147483648 ; 0x80000000
100418: 31510000 cmpcc r1, r0
10041c: 31a01081 lslcc r1, r1, #1
100420: 31a03083 lslcc r3, r3, #1
100424: 3afffffa bcc 100414 <__aeabi_uidiv+0x40>
100428: e3a02000 mov r2, #0 ; 0x0
10042c: e1500001 cmp r0, r1
100430: 20400001 subcs r0, r0, r1
100434: 21822003 orrcs r2, r2, r3
100438: e15000a1 cmp r0, r1, lsr #1
10043c: 204000a1 subcs r0, r0, r1, lsr #1
100440: 218220a3 orrcs r2, r2, r3, lsr #1
100444: e1500121 cmp r0, r1, lsr #2
100448: 20400121 subcs r0, r0, r1, lsr #2
10044c: 21822123 orrcs r2, r2, r3, lsr #2
100450: e15001a1 cmp r0, r1, lsr #3
100454: 204001a1 subcs r0, r0, r1, lsr #3
100458: 218221a3 orrcs r2, r2, r3, lsr #3
10045c: e3500000 cmp r0, #0 ; 0x0
100460: 11b03223 lsrsne r3, r3, #4
100464: 11a01221 lsrne r1, r1, #4
100468: 1affffef bne 10042c <__aeabi_uidiv+0x58>
10046c: e1a00002 mov r0, r2
100470: e12fff1e bx lr
100474: 03a00001 moveq r0, #1 ; 0x1
100478: 13a00000 movne r0, #0 ; 0x0
10047c: e12fff1e bx lr
100480: e3510801 cmp r1, #65536 ; 0x10000
100484: 21a01821 lsrcs r1, r1, #16
100488: 23a02010 movcs r2, #16 ; 0x10
10048c: 33a02000 movcc r2, #0 ; 0x0
100490: e3510c01 cmp r1, #256 ; 0x100
100494: 21a01421 lsrcs r1, r1, #8
100498: 22822008 addcs r2, r2, #8 ; 0x8
10049c: e3510010 cmp r1, #16 ; 0x10
1004a0: 21a01221 lsrcs r1, r1, #4
1004a4: 22822004 addcs r2, r2, #4 ; 0x4
1004a8: e3510004 cmp r1, #4 ; 0x4
1004ac: 82822003 addhi r2, r2, #3 ; 0x3
1004b0: 908220a1 addls r2, r2, r1, lsr #1
1004b4: e1a00230 lsr r0, r0, r2
1004b8: e12fff1e bx lr
1004bc: e52de008 str lr, [sp, #-8]!
1004c0: eb000007 bl 1004e4 <__aeabi_idiv0>
1004c4: e3a00000 mov r0, #0 ; 0x0
1004c8: e49df008 ldr pc, [sp], #8
001004cc <__aeabi_uidivmod>:
1004cc: e92d4003 push {r0, r1, lr}
1004d0: ebffffbf bl 1003d4 <__aeabi_uidiv>
1004d4: e8bd4006 pop {r1, r2, lr}
1004d8: e0030092 mul r3, r2, r0
1004dc: e0411003 sub r1, r1, r3
1004e0: e12fff1e bx lr
001004e4 <__aeabi_idiv0>:
1004e4: e12fff1e bx lr