AlexBoy
Apr 6 2006, 13:50
Привет всем!
За сколько итераций должен выполняться пустой цикл в 1сек?
Я настроил PLLA на 180mhz, думал будет порядка 60млн. итераций,
а получается 36млн. Выполняется в SRAM, кеш инструкций включен.
delay = 35800000;
for(i=0;i<delay;i++);
00200264 [0xe3a01000] mov r1,#0
00200268 [0xe1510000] cmp r1,r0
0020026c [0x32811001] addcc r1,r1,#1
00200270 [0x3afffffc] bcc 0x200268
pPIOA->PIO_SODR = 0x01;
00200274 [0xe5847030] str r7,[r4,#0x30]
время выполнения инструкции можно посмотреть в бумажке
ARM920T Technical Reference Manual
Для данного случая (учитывая, что выборка команд из кеша):
00200268 [0xe1510000] cmp r1,r0 1 такт
0020026c [0x32811001] addcc r1,r1,#1 1 такт
00200270 [0x3afffffc] bcc 0x200268 3 такта
что дает 5 тактов на 180МГц = 36циклов в сек
Цитата(sapID @ Apr 7 2006, 10:09)

что дает 5 тактов на 180МГц = 36циклов в сек
Тока 36 "Мегациклов" в сек.
AlexBoy
Apr 7 2006, 10:15
> Тока 36 "Мегациклов" в сек.

Тогда значит все в порядке, я просто думал что все команды в нем по одному такту выполняются. Спасибо.