Цитата(Antokha @ Nov 6 2008, 21:52)

Насчёт пункта 1 - до этого приложение было реализовано на микроконтроллере SX52 фирмы Scenix, без компенсации вышеописанных неточностей его производительности хватало (по сравнению с at91rm9200 он быстрее работает с выводами - быстрее осуществляется и чтение и установка выводов в нужное состояние). Для компенсации неточностей "оцифруемого' сигнала его производительности не хватало, я решил взять что-то побыстрее.
AT91RM9200 и другие подобные контроллеры
принципиально не подходят для решения таких задач. Используйте программируемую логику, если нужно получить жесткие времянки.
Цитата(Antokha @ Nov 6 2008, 21:52)

Нет не знал, какая частота шины? PCK идущая с выхода PLLA (у меня 179,... МГц)
Это Master Clock (MCK), обычно PCK/2. PCK без дополнительных телодвижений процессором использоваться не будет.
Цитата(Antokha @ Nov 6 2008, 21:52)

- что представляют собой ячейки таблицы (я так понял что вроде бы это части абсолютных адресов),
Объяснять "на пальцах" будет долго. Лучше найдите время изучить документацию.
Цитата(Antokha @ Nov 6 2008, 21:52)

А насчёт примера это бы очень помогло, если не сильно это вас затруднит.
Пожалуйста:
CODE
; ***************************************************************************
; *
ttb_first_level EQU 0xc03fc000
; ***************************************************************************
; * Cache and MMU Configuration
[ {TRUE}
ldr r0, =ttb_first_level ; set start of Translation Table base (16k Boundary)
mcr p15, 0x00, r0, c2, c0, 0x00 ; write to CP15 register 2
;
; Create translation table for flat mapping
; Top 12 bits of VA is pointer into table
; Create 4096 entries from 000xxxxx to fffxxxxx
;
mov r1, #0x00 ; loop counter
ldr r2, =2_110111110010 ; set access permissions (AP) for full access SVC/USR (11:10)
; set for domain 15 (8:5)
; must be 1 (4)
; set non cachable non bufferable (CB) (3:2)
; set for 1Mb section (1:0)
init_ttb0
orr r3, r2, r1, lsl #0x14
ldr r4, =sections
init_ttb1
ldr r5, [r4], #0x04
tst r5, #0x01
bne init_ttb2
cmp r1, r5, lsr #0x14
addlo r4, r4, #0x08
blo init_ttb1
ldr r5, [r4], #0x04
cmp r1, r5, lsr #0x14
addhs r4, r4, #0x04
bhs init_ttb1
ldr r5, [r4]
orr r3, r3, r5
init_ttb2
str r3, [r0, r1, lsl #0x02]
add r1, r1, #0x01
cmp r1, #0x1000
blo init_ttb0
;
; Init domains
;
mov r0, #(2_01 << 0x1e) ; must define behaviour for domain 15 (31:30), set client
mcr p15, 0x00, r0, c3, c0, 0x00 ; write to CP15 register 5
;
; Set global core configurations
;
mrc p15, 0x00, r0, c1, c0, 0x00 ; read CP15 register 1 into r0
orr r0, r0, #(0x01 << 0x0c) ; enable I Cache
orr r0, r0, #(0x01 << 0x02) ; enable D Cache
orr r0, r0, #(2_11 << 0x1e) ; enable asynchronous clocking mode
orr r0, r0, #0x01 ; enable MMU
;
; Additional configuration options
;
; orr r0, r0, #(0x01 << 0x0e) ; enable Round Robin cache replacement
; orr r0, r0, #(0x01 << 0x0d) ; enable Hi Vectors
orr r0, r0, #(0x01 << 0x01) ; enable data address alignment checking
mcr p15, 0x00, r0, c1, c0, 0x00 ; write cp15 register 1
]
; ***************************************************************************
; *
sections
DCD 0x00000000 ; Flash
DCD 0x00100000
DCD 2_1100 ; wb, buffered
DCD 0xc0000000 ; SDRAM Page 0
DCD 0xc0400000
DCD 2_1100 ; wb, buffered
DCD 0xc4000000 ; SDRAM Page 1
DCD 0xc4400000
DCD 2_0100 ; noncached, buffered
DCD 0xc8000000 ; SDRAM Page 2
DCD 0xc8400000
DCD 2_0100 ; noncached, buffered
; DCD 2_1100 ; wb, buffered
DCD 0xcc000000 ; SDRAM Page 3
DCD 0xcc400000
DCD 2_1100 ; wb, buffered
DCD 0x00000001 ; END
; ***************************************************************************
; *
END
Адреса только переделайте под свою систему.