реклама на сайте
подробности

 
 
> Bопрос по АРМ9, Обработчики прерываний
axa09
сообщение Feb 22 2009, 00:03
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 61
Регистрация: 29-01-09
Пользователь №: 44 105



контроллер at91rm9200. частота ядра 180мгц, шина 60мгц. на шине статическая память с 16-битной шиной, с NWS=0(без дополнительных тактов). кеши оба включены-память закеширована write-back, в ней исполняется программа.
обработчики прерываний в этой памяти.

вопрос-
если обработчики разместить во внутренней sram контроллера,будет ли выигрыш в производительности?
или с кешами это не принципиально?
как обработчик прерывания в keil скопировать из одной памяти в другую с учётом коррекции счётчика адреса(РС?)

И ещё-пробовал стек делать во внутренней памяти - на глаз быстродействие не изменилось sad.gif
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
aaarrr
сообщение Feb 24 2009, 14:32
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Запись во внешний медленный порт сильно портит все дело. Вот что получилось у меня (RVDS 2.2, полная оптимизация по скорости):

1. Без записи в порт, вместо регистра пишем кэшируемую память.
Ваш вариант 334 FPS, мой - 397 FPS. Разница заметна.

2. С записью в порт.
Ваш вариант - 215 FPS, мой - 221 FPS. Практически одинаково.

CODE

BlitScreen
$a
.text
0x00000000: e92d07f0 ..-. PUSH {r4-r10}
0x00000004: e1a03000 .0.. MOV r3,r0
0x00000008: e59f03f4 .... LDR r0,[pc,#1012] ; [.bss$5 = 0x404] = 0
0x0000000c: e3a0a000 .... MOV r10,#0
0x00000010: e3a06202 .b.. MOV r6,#0x20000000
0x00000014: e3a050e0 .P.. MOV r5,#0xe0
0x00000018: e3a0401c .@.. MOV r4,#0x1c
0x0000001c: e3a07000 .p.. MOV r7,#0
0x00000020: e5931000 .... LDR r1,[r3,#0]
0x00000024: e5932100 .!.. LDR r2,[r3,#0x100]
0x00000028: e201c0ff .... AND r12,r1,#0xff
0x0000002c: e2018cff .... AND r8,r1,#0xff00
0x00000030: e08083a8 .... ADD r8,r0,r8,LSR #7
0x00000034: e080c08c .... ADD r12,r0,r12,LSL #1
0x00000038: e1dcc0b0 .... LDRH r12,[r12,#0]
0x0000003c: e1d880b0 .... LDRH r8,[r8,#0]
0x00000040: e088c00c .... ADD r12,r8,r12
0x00000044: e20280ff .... AND r8,r2,#0xff
0x00000048: e0808088 .... ADD r8,r0,r8,LSL #1
0x0000004c: e1d880b0 .... LDRH r8,[r8,#0]
0x00000050: e088c00c .... ADD r12,r8,r12
0x00000054: e2028cff .... AND r8,r2,#0xff00
0x00000058: e08083a8 .... ADD r8,r0,r8,LSR #7
0x0000005c: e1d880b0 .... LDRH r8,[r8,#0]
0x00000060: e088c00c .... ADD r12,r8,r12
0x00000064: e004822c ,... AND r8,r4,r12,LSR #4
0x00000068: e1a09e0c .... LSL r9,r12,#28
0x0000006c: e1888f29 )... ORR r8,r8,r9,LSR #30
0x00000070: e005c32c ,... AND r12,r5,r12,LSR #6
0x00000074: e188c00c .... ORR r12,r8,r12
0x00000078: e5c6c007 .... STRB r12,[r6,#7]
0x0000007c: e201c8ff .... AND r12,r1,#0xff0000
0x00000080: e1a01c21 !... LSR r1,r1,#24
0x00000084: e0801081 .... ADD r1,r0,r1,LSL #1
0x00000088: e080c7ac .... ADD r12,r0,r12,LSR #15
0x0000008c: e1dcc0b0 .... LDRH r12,[r12,#0]
0x00000090: e1d110b0 .... LDRH r1,[r1,#0]
0x00000094: e081100c .... ADD r1,r1,r12
0x00000098: e202c8ff .... AND r12,r2,#0xff0000
0x0000009c: e080c7ac .... ADD r12,r0,r12,LSR #15
0x000000a0: e1a02c22 ",.. LSR r2,r2,#24
0x000000a4: e1dcc0b0 .... LDRH r12,[r12,#0]
0x000000a8: e0802082 . .. ADD r2,r0,r2,LSL #1
0x000000ac: e1d220b0 . .. LDRH r2,[r2,#0]
0x000000b0: e08c1001 .... ADD r1,r12,r1
0x000000b4: e0821001 .... ADD r1,r2,r1
0x000000b8: e0042221 !".. AND r2,r4,r1,LSR #4
0x000000bc: e1a0ce01 .... LSL r12,r1,#28
0x000000c0: e1822f2c ,/.. ORR r2,r2,r12,LSR #30
0x000000c4: e0051321 !... AND r1,r5,r1,LSR #6
0x000000c8: e1821001 .... ORR r1,r2,r1
0x000000cc: e5c61007 .... STRB r1,[r6,#7]
0x000000d0: e5b31004 .... LDR r1,[r3,#4]!
0x000000d4: e5932100 .!.. LDR r2,[r3,#0x100]
0x000000d8: e201c0ff .... AND r12,r1,#0xff
0x000000dc: e2018cff .... AND r8,r1,#0xff00
0x000000e0: e08083a8 .... ADD r8,r0,r8,LSR #7
0x000000e4: e080c08c .... ADD r12,r0,r12,LSL #1
0x000000e8: e1dcc0b0 .... LDRH r12,[r12,#0]
0x000000ec: e1d880b0 .... LDRH r8,[r8,#0]
0x000000f0: e088c00c .... ADD r12,r8,r12
0x000000f4: e20280ff .... AND r8,r2,#0xff
0x000000f8: e0808088 .... ADD r8,r0,r8,LSL #1
0x000000fc: e1d880b0 .... LDRH r8,[r8,#0]
0x00000100: e088c00c .... ADD r12,r8,r12
0x00000104: e2028cff .... AND r8,r2,#0xff00
0x00000108: e08083a8 .... ADD r8,r0,r8,LSR #7
0x0000010c: e1d880b0 .... LDRH r8,[r8,#0]
0x00000110: e088c00c .... ADD r12,r8,r12
0x00000114: e004822c ,... AND r8,r4,r12,LSR #4
0x00000118: e1a09e0c .... LSL r9,r12,#28
0x0000011c: e1888f29 )... ORR r8,r8,r9,LSR #30
0x00000120: e005c32c ,... AND r12,r5,r12,LSR #6
0x00000124: e188c00c .... ORR r12,r8,r12
0x00000128: e5c6c007 .... STRB r12,[r6,#7]
0x0000012c: e201c8ff .... AND r12,r1,#0xff0000
0x00000130: e1a01c21 !... LSR r1,r1,#24
0x00000134: e0801081 .... ADD r1,r0,r1,LSL #1
0x00000138: e080c7ac .... ADD r12,r0,r12,LSR #15
0x0000013c: e1dcc0b0 .... LDRH r12,[r12,#0]
0x00000140: e1d110b0 .... LDRH r1,[r1,#0]
0x00000144: e081100c .... ADD r1,r1,r12
0x00000148: e202c8ff .... AND r12,r2,#0xff0000
0x0000014c: e080c7ac .... ADD r12,r0,r12,LSR #15
0x00000150: e1a02c22 ",.. LSR r2,r2,#24
0x00000154: e1dcc0b0 .... LDRH r12,[r12,#0]
0x00000158: e0802082 . .. ADD r2,r0,r2,LSL #1
0x0000015c: e1d220b0 . .. LDRH r2,[r2,#0]
0x00000160: e08c1001 .... ADD r1,r12,r1
0x00000164: e0821001 .... ADD r1,r2,r1
0x00000168: e0042221 !".. AND r2,r4,r1,LSR #4
0x0000016c: e1a0ce01 .... LSL r12,r1,#28
0x00000170: e1822f2c ,/.. ORR r2,r2,r12,LSR #30
0x00000174: e0051321 !... AND r1,r5,r1,LSR #6
0x00000178: e1821001 .... ORR r1,r2,r1
0x0000017c: e5c61007 .... STRB r1,[r6,#7]
0x00000180: e5b31004 .... LDR r1,[r3,#4]!
0x00000184: e5932100 .!.. LDR r2,[r3,#0x100]
0x00000188: e201c0ff .... AND r12,r1,#0xff
0x0000018c: e2018cff .... AND r8,r1,#0xff00
0x00000190: e08083a8 .... ADD r8,r0,r8,LSR #7
0x00000194: e080c08c .... ADD r12,r0,r12,LSL #1
0x00000198: e1dcc0b0 .... LDRH r12,[r12,#0]
0x0000019c: e1d880b0 .... LDRH r8,[r8,#0]
0x000001a0: e088c00c .... ADD r12,r8,r12
0x000001a4: e20280ff .... AND r8,r2,#0xff
0x000001a8: e0808088 .... ADD r8,r0,r8,LSL #1
0x000001ac: e1d880b0 .... LDRH r8,[r8,#0]
0x000001b0: e088c00c .... ADD r12,r8,r12
0x000001b4: e2028cff .... AND r8,r2,#0xff00
0x000001b8: e08083a8 .... ADD r8,r0,r8,LSR #7
0x000001bc: e1d880b0 .... LDRH r8,[r8,#0]
0x000001c0: e088c00c .... ADD r12,r8,r12
0x000001c4: e004822c ,... AND r8,r4,r12,LSR #4
0x000001c8: e1a09e0c .... LSL r9,r12,#28
0x000001cc: e1888f29 )... ORR r8,r8,r9,LSR #30
0x000001d0: e005c32c ,... AND r12,r5,r12,LSR #6
0x000001d4: e188c00c .... ORR r12,r8,r12
0x000001d8: e5c6c007 .... STRB r12,[r6,#7]
0x000001dc: e201c8ff .... AND r12,r1,#0xff0000
0x000001e0: e1a01c21 !... LSR r1,r1,#24
0x000001e4: e0801081 .... ADD r1,r0,r1,LSL #1
0x000001e8: e080c7ac .... ADD r12,r0,r12,LSR #15
0x000001ec: e1dcc0b0 .... LDRH r12,[r12,#0]
0x000001f0: e1d110b0 .... LDRH r1,[r1,#0]
0x000001f4: e081100c .... ADD r1,r1,r12
0x000001f8: e202c8ff .... AND r12,r2,#0xff0000
0x000001fc: e080c7ac .... ADD r12,r0,r12,LSR #15
0x00000200: e1a02c22 ",.. LSR r2,r2,#24
0x00000204: e1dcc0b0 .... LDRH r12,[r12,#0]
0x00000208: e0802082 . .. ADD r2,r0,r2,LSL #1
0x0000020c: e1d220b0 . .. LDRH r2,[r2,#0]
0x00000210: e08c1001 .... ADD r1,r12,r1
0x00000214: e0821001 .... ADD r1,r2,r1
0x00000218: e0042221 !".. AND r2,r4,r1,LSR #4
0x0000021c: e1a0ce01 .... LSL r12,r1,#28
0x00000220: e1822f2c ,/.. ORR r2,r2,r12,LSR #30
0x00000224: e0051321 !... AND r1,r5,r1,LSR #6
0x00000228: e1821001 .... ORR r1,r2,r1
0x0000022c: e5c61007 .... STRB r1,[r6,#7]
0x00000230: e5b31004 .... LDR r1,[r3,#4]!
0x00000234: e5932100 .!.. LDR r2,[r3,#0x100]
0x00000238: e201c0ff .... AND r12,r1,#0xff
0x0000023c: e2018cff .... AND r8,r1,#0xff00
0x00000240: e08083a8 .... ADD r8,r0,r8,LSR #7
0x00000244: e080c08c .... ADD r12,r0,r12,LSL #1
0x00000248: e1dcc0b0 .... LDRH r12,[r12,#0]
0x0000024c: e1d880b0 .... LDRH r8,[r8,#0]
0x00000250: e088c00c .... ADD r12,r8,r12
0x00000254: e20280ff .... AND r8,r2,#0xff
0x00000258: e0808088 .... ADD r8,r0,r8,LSL #1
0x0000025c: e1d880b0 .... LDRH r8,[r8,#0]
0x00000260: e088c00c .... ADD r12,r8,r12
0x00000264: e2028cff .... AND r8,r2,#0xff00
0x00000268: e08083a8 .... ADD r8,r0,r8,LSR #7
0x0000026c: e1d880b0 .... LDRH r8,[r8,#0]
0x00000270: e088c00c .... ADD r12,r8,r12
0x00000274: e004822c ,... AND r8,r4,r12,LSR #4
0x00000278: e1a09e0c .... LSL r9,r12,#28
0x0000027c: e1888f29 )... ORR r8,r8,r9,LSR #30
0x00000280: e005c32c ,... AND r12,r5,r12,LSR #6
0x00000284: e188c00c .... ORR r12,r8,r12
0x00000288: e5c6c007 .... STRB r12,[r6,#7]
0x0000028c: e201c8ff .... AND r12,r1,#0xff0000
0x00000290: e1a01c21 !... LSR r1,r1,#24
0x00000294: e0801081 .... ADD r1,r0,r1,LSL #1
0x00000298: e080c7ac .... ADD r12,r0,r12,LSR #15
0x0000029c: e1dcc0b0 .... LDRH r12,[r12,#0]
0x000002a0: e1d110b0 .... LDRH r1,[r1,#0]
0x000002a4: e081100c .... ADD r1,r1,r12
0x000002a8: e202c8ff .... AND r12,r2,#0xff0000
0x000002ac: e080c7ac .... ADD r12,r0,r12,LSR #15
0x000002b0: e1a02c22 ",.. LSR r2,r2,#24
0x000002b4: e1dcc0b0 .... LDRH r12,[r12,#0]
0x000002b8: e0802082 . .. ADD r2,r0,r2,LSL #1
0x000002bc: e1d220b0 . .. LDRH r2,[r2,#0]
0x000002c0: e08c1001 .... ADD r1,r12,r1
0x000002c4: e0821001 .... ADD r1,r2,r1
0x000002c8: e0042221 !".. AND r2,r4,r1,LSR #4
0x000002cc: e1a0ce01 .... LSL r12,r1,#28
0x000002d0: e1822f2c ,/.. ORR r2,r2,r12,LSR #30
0x000002d4: e0051321 !... AND r1,r5,r1,LSR #6
0x000002d8: e1821001 .... ORR r1,r2,r1
0x000002dc: e5c61007 .... STRB r1,[r6,#7]
0x000002e0: e2877001 .p.. ADD r7,r7,#1
0x000002e4: e3570010 ..W. CMP r7,#0x10
0x000002e8: e2833004 .0.. ADD r3,r3,#4
0x000002ec: 3affff4b K..: BCC {pc} - 0x2cc ; 0x20
0x000002f0: e28aa001 .... ADD r10,r10,#1
0x000002f4: e35a0078 x.Z. CMP r10,#0x78
0x000002f8: e2833c01 .<.. ADD r3,r3,#0x100
0x000002fc: 3affff46 F..: BCC {pc} - 0x2e0 ; 0x1c
0x00000300: e8bd07f0 .... POP {r4-r10}
0x00000304: e12fff1e ../. BX r14


Цитата(axa09 @ Feb 24 2009, 13:45) *
замерял производительность с двумя вариантами стеков: во внутренней срам и во внешней - тоже самое все.
пробовал PALETTE[] расположить во внутренней срам- тоже ничего не поменялось.

Стек не используется, а PALETTE полностью ложится в кэш, так что разницы и не должно быть.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- axa09   Bопрос по АРМ9   Feb 22 2009, 00:03
- - aaarrr   Цитата(axa09 @ Feb 22 2009, 03:03) вопрос...   Feb 22 2009, 14:14
- - sergeeff   Цитата(axa09 @ Feb 22 2009, 03:03) контро...   Feb 22 2009, 15:46
- - axa09   За ответы спасибо! с праздником! можно по...   Feb 22 2009, 22:48
|- - aaarrr   Цитата(axa09 @ Feb 23 2009, 01:48) можно ...   Feb 22 2009, 23:09
|- - sergeeff   Цитата(axa09 @ Feb 23 2009, 01:48) За отв...   Feb 23 2009, 00:15
|- - AndrewN   Цитата(axa09 @ Feb 23 2009, 02:48) таблиц...   Feb 23 2009, 06:16
|- - sergeeff   Цитата(AndrewN @ Feb 23 2009, 09:16) Подс...   Feb 23 2009, 10:58
- - axa09   Надо хотябы на 25% повысить. почему напрасно? как ...   Feb 22 2009, 23:26
|- - aaarrr   Цитата(axa09 @ Feb 23 2009, 02:26) Надо х...   Feb 22 2009, 23:32
- - axa09   Нужно ускорить переброс видеобуфера в дисплейную п...   Feb 23 2009, 00:19
|- - aaarrr   Цитата(axa09 @ Feb 23 2009, 03:19) Нужно ...   Feb 23 2009, 00:34
- - axa09   Пришла в голову мысль расположить таблицу во внутр...   Feb 23 2009, 01:28
- - axa09   В общем удалось ради эксперимента таблицу запихать...   Feb 23 2009, 07:45
|- - aaarrr   Цитата(axa09 @ Feb 23 2009, 10:45) прирос...   Feb 23 2009, 12:22
|- - sergeeff   Цитата(axa09 @ Feb 23 2009, 10:45) В обще...   Feb 23 2009, 13:02
|- - axa09   Цитата(sergeeff @ Feb 23 2009, 04:02) Даж...   Feb 23 2009, 13:32
|- - aaarrr   Цитата(axa09 @ Feb 23 2009, 16:32) Как мо...   Feb 23 2009, 14:28
- - axa09   У меня память 16 бит шина данных. всёравно по 32 б...   Feb 23 2009, 14:47
|- - aaarrr   Цитата(axa09 @ Feb 23 2009, 17:47) У меня...   Feb 23 2009, 15:03
- - sergeeff   Цитата0x00200400 - первый мегабайт SRAM (NCS0) Зн...   Feb 23 2009, 14:56
- - axa09   Вариант идёт с 45 преобразований/с. но это не чист...   Feb 23 2009, 15:14
|- - aaarrr   Цитата(axa09 @ Feb 23 2009, 18:14) Вариан...   Feb 23 2009, 15:41
|- - axa09   Цитата(aaarrr @ Feb 23 2009, 07:41) Т.е. ...   Feb 24 2009, 10:45
- - sergeeff   Совет. Длительность CS для вывода на дисплей соотв...   Feb 23 2009, 16:14
- - axa09   Спасибо! как проверю-напишу результаты и приве...   Feb 23 2009, 21:30
- - aaarrr   RE: Bопрос по АРМ9   Feb 24 2009, 14:32
- - axa09   тоесть в моём случае уже ничего не придумать?   Feb 24 2009, 15:33
- - aaarrr   Ну, можно Write Buffer включить - сразу прибавится...   Feb 24 2009, 15:50
- - axa09   Он включен(бит buferable-1) или в другом месте еще...   Feb 24 2009, 19:50
- - aaarrr   Вы же писали: Цитата0x00200С00 - периферия(дисплей...   Feb 24 2009, 20:01
- - axa09   А разве можно буферизовать дисплей(его регистры)? ...   Feb 24 2009, 21:23
|- - aaarrr   Цитата(axa09 @ Feb 25 2009, 00:23) ведь к...   Feb 24 2009, 21:25
- - axa09   Разобрался! Мусор возникал из-за неверной врем...   Feb 25 2009, 03:41
|- - aaarrr   Цитата(axa09 @ Feb 25 2009, 06:41) для ди...   Feb 25 2009, 11:30
- - axa09   тоесть оставить только buferable для регистров вне...   Feb 25 2009, 12:48
|- - aaarrr   Цитата(axa09 @ Feb 25 2009, 15:48) тоесть...   Feb 25 2009, 12:51
- - axa09   Спасибо за ответы! в целом меня устраивает пр...   Feb 25 2009, 13:20
|- - aaarrr   Цитата(axa09 @ Feb 25 2009, 16:20) просну...   Feb 25 2009, 14:01
- - Rst7   Цитатапроснулся чисто спортивно-исследовательский ...   Feb 25 2009, 14:08
- - axa09   если нетрудно,напишите пожалуйста фрагмент кода на...   Feb 25 2009, 23:48
|- - aaarrr   Цитата(axa09 @ Feb 26 2009, 02:48) читаем...   Feb 26 2009, 00:09
- - axa09   Спасибо за ответы! В той же программе оптими...   Feb 26 2009, 01:35
- - axa09   если текущий режим spi не подходит, можно сменить ...   Feb 26 2009, 02:48
|- - aaarrr   Цитата(axa09 @ Feb 26 2009, 05:48) Получи...   Feb 26 2009, 03:23
- - axa09   удалось запустить ДМА. Фокус с ремэпом прокатл-к т...   Feb 26 2009, 10:48
|- - aaarrr   Цитата(axa09 @ Feb 26 2009, 13:48) кстати...   Feb 26 2009, 12:04
- - axa09   как и когда очищать буферизованый буфер для ДМА? ...   Feb 26 2009, 12:40
|- - aaarrr   Цитата(axa09 @ Feb 26 2009, 15:40) как и ...   Feb 26 2009, 12:50
- - axa09   Не совсем понял. команду очистки давать до старта ...   Feb 26 2009, 15:10
|- - aaarrr   Цитата(axa09 @ Feb 26 2009, 18:10) Не сов...   Feb 26 2009, 15:15
- - axa09   Подскажите пожалуйста где здесь функция очистки бу...   Feb 26 2009, 23:09
|- - aaarrr   Цитата(axa09 @ Feb 27 2009, 02:09) Подска...   Feb 26 2009, 23:19
- - axa09   тоесть Rd должен быть равен нулю: mov r0, 0 mcr p...   Feb 27 2009, 00:07
- - axa09   в чём хорош режим сквозной записи кэша по сравнени...   Feb 27 2009, 04:58


Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 23:03
Рейтинг@Mail.ru


Страница сгенерированна за 0.0161 секунд с 7
ELECTRONIX ©2004-2016