|
Почему с PowerPac код работает быстрее, чем просто на Cи? |
|
|
|
Nov 29 2010, 14:19
|

Местный
  
Группа: Участник
Сообщений: 240
Регистрация: 14-04-10
Из: Россия, г.Челябинск
Пользователь №: 56 634

|
int main(void) {
unsigned int temp, MyAdr, MyPins, ii; unsigned int MyArray[5]; ii = 0; FIO4DIR3_bit.P4_0 = 1; // Вывод на выход
while(1) { MyArray[ii] = FIO1PIN; FIO4PIN3_bit.P4_0= ~FIO4PIN3_bit.P4_0; //Дергаем ножкой }
}
Почему с PowerPac скорость выше в 2 раза? Вроде просто Си программа все же ближе к ассемблеру, чем ОС плюс задача?
И сразу еще один вопрос. Частота "подергивания ножкой" с PowerPac 1,2Мгц, а просто Си - 0,5Мгц. Неужели быстрее нельзя? Что за операции такие производит контроллер, когда читает порт и записывает в ОЗУ? Это же 50 тактов минимум. И как в ИАРе вообще можно посмотреть время выполнения?
Забыл уточнить. OLIMEX-LPC2478
|
|
|
|
|
 |
Ответов
|
Nov 30 2010, 10:01
|

Местный
  
Группа: Участник
Сообщений: 240
Регистрация: 14-04-10
Из: Россия, г.Челябинск
Пользователь №: 56 634

|
Цитата(scifi @ Nov 30 2010, 14:27)  Для более быстрого ввода-вывода используют иные периферийные устройства, а не GPIO. это какие, например? Цитата(Сергей Борщ @ Nov 29 2010, 19:34)  Рискну предположить, что PowerPack в процессе старта настраивает PLL, а ваша программа работает напрямую от кварца или внутреннего RC. Использую функцию InitClock() определенную в sys.h. Устанавливает в 72МГц тактовую частоту ядра. При отладке SYS_GetFsclk(); возвращает 72 000 000. Т.е. работает на 72МГц PCLKSEL1_bit.PCLK_GPIO = 1; - частота работы порта вывода также 72МГц (делитель 1). До этого было 00 - что означало 72МГц/4 И все равно результат не дотягивает совсем до ожидаемого. Что еще можно сделать? Добавил цикл задержки. Инкремент до 70 в цикле for. Результат оказался гораздо больше. Хотя должно быть 1-2мкс. Все же не проходит ощущение, что работает контроллер совсем не на 72МГц.
|
|
|
|
|
Nov 30 2010, 10:07
|

Беспросветный оптимист
     
Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646

|
Цитата(kolobochishe @ Nov 30 2010, 13:01)  Добавил цикл задержки. Инкремент до 70 в цикле for. Результат оказался гораздо больше. Хотя должно быть 1-2мкс. Все же не проходит ощущение, что работает контроллер совсем не на 72МГц. На самом деле есть ещё задержки чтения флеши (если программа работает не из RAM) Плюс, каждый переход сбрасывает конвейер, что тоже сильно влияет (команды выполняются не за 1 такт). Ну а что происходит в действительности - очень просто посмотреть в листинге, и к гадалке ходить не надо.
--------------------
Программирование делится на системное и бессистемное. ©Моё :) — а для кого-то БГ — это Bill Gilbert =)
|
|
|
|
Сообщений в этой теме
kolobochishe Почему с PowerPac код работает быстрее, чем просто на Cи? Nov 29 2010, 14:19 Сергей Борщ Рискну предположить, что PowerPack в процессе стар... Nov 29 2010, 14:34 MALLOY2 PowerPack правильно настроил проц на максимальную ... Nov 29 2010, 14:35    kolobochishe Цитата(MrYuran @ Nov 30 2010, 15:07) На с... Nov 30 2010, 11:17 kolobochishe PowerPac настроил регистры MAMCR=1 и MAMTIM=5. Поэ... Nov 30 2010, 13:40 MrYuran Я, конечно, [пока] не спец по АРМовой периферии, н... Nov 30 2010, 14:21 kolobochishe Цитата(MrYuran @ Nov 30 2010, 19:21) Ну а... Dec 1 2010, 04:38 GetSmart Если создать переменную и её инвертировать, а пото... Dec 1 2010, 09:53 kolobochishe Понял. Пример упрощенный, мягко говоря. Элементов ... Dec 1 2010, 10:09 scifi Цитата(kolobochishe @ Dec 1 2010, 13:09) ... Dec 1 2010, 10:28  kolobochishe Цитата(scifi @ Dec 1 2010, 15:28) Кстати,... Dec 1 2010, 14:01 MrYuran Так вроде ж есть специально для этого MCI ?
Чтобы ... Dec 1 2010, 14:14 kolobochishe Цитата(MrYuran @ Dec 1 2010, 19:14) Так в... Dec 2 2010, 04:18  MrYuran Цитата(kolobochishe @ Dec 2 2010, 07:18) ... Dec 2 2010, 06:53 scifi Ещё АЦП можно на внешнюю шину LPC2478 посадить, ес... Dec 1 2010, 16:49 kolobochishe Для SD карт есть режим 4 бита. Возможно 100Мб/с эт... Dec 2 2010, 07:24 MrYuran Цитата(kolobochishe @ Dec 2 2010, 10:24) ... Dec 2 2010, 07:38 ElefantElectronics [CENSORED]
Работает медленно про тому что Вы не чи... Dec 9 2010, 17:34 IgorKossak QUOTE (ElefantElectronics @ Dec 9 2010, 19... Dec 9 2010, 17:55
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|