Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: ADuC7026 сильно тормозит
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
condor
Попробовал непрерывно помахать ножкой на 7026 и получил меандр с периодом 12мкс. По прикидкам должно было получится на порядок быстрее.
Пробовал на таком коде. Тактирование от внутреннего генератора с PLL ~42МГц. Инвертирование ноги скомпилилось в 8 инструкций. Как они могут выполнятся за ~240 тактов?

Код
int main (void)
{
    PLLKEY1 = 0xAA;
    PLLCON = 0x21;
    PLLKEY2 = 0x55;
    
    POWKEY1 = 0x01;
    POWCON = 0;
    POWKEY2= 0xF4;

    GP1CON = 0x00000000;
    GP1DAT = 0x01000000;
    
    while(1)
        GP1DAT ^= 0x00010000;
}

Код
  GP1DAT ^= 0x00010000;
00080188  480A    LDR    R0, [PC,#0x028]
0008018A  490A    LDR    R1, [PC,#0x028]
0008018C  6809    LDR    R1, [R1, #0]
0008018E  2280    MOV    R2, #128
00080190  0252    LSL    R2, R2, #9
00080192  404A    EOR    R2, R1
00080194  6002    STR    R2, [R0, #0]
00080196  E7F7    B    0x080188

Прерывания таймера работают правильно, так что частота с PLL действительно 42МГц.

Кто-нибудь сталкивался с таким?
etoja
Официальный дистрибьютор (www.autex.ru) сказал, что эти процессоры сняты с производства, так что ногами можно не махать.
Длина кода зависит от компилятора и опций оптимизации. При работе программы во FLASH памяти быстродействие процессора равно 21MIPS.
condor
Цитата(etoja @ Apr 24 2008, 07:10) *
Официальный дистрибьютор (www.autex.ru) сказал, что эти процессоры сняты с производства, так что ногами можно не махать.
Длина кода зависит от компилятора и опций оптимизации. При работе программы во FLASH памяти быстродействие процессора равно 21MIPS.

На сайте АД они значаться как Production, или они сайт не обновляют?

Ассемблерный код я привел. Там 8 инструкций. Допустим в среднем 3 такта на иструкцию. Тогда должно быть 24 такта, а не 240.
21MIPS это если в ARM работать, а как видно код в Thumb'е. Кстати, из RAM работает так же медленно.

Такое впечатление, что для тактовой ядра не сбрасывается делитель на 8 установленный после сброса. Хотя в отладчике в регистрах настройки сидят правильные числа. И эта частота у них одна с таймером, а таймер считает правильно.
condor
Скорее всего тормозил я. Сегодня все работает как положено 08.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.