|
Инициализация клоков vybird, Работает как черепаха... |
|
|
|
Sep 19 2014, 18:54
|
Гуру
     
Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143

|
День добрый. Программирую проц под иаром, вроде все ок, но решил проверить, насколько быстр данный проц, и вот тут меня постигло недоумение... Задал я простой тестик, счетчик, который прибавляется на 1 пока идет 1 сек, без оптимизации и т.п. Итого, на А5, на который идет тактировка 500!!! МГц, счетчик насчитал около 2000000. В отладке посмотрел, на прибавление 1 и выполнения while с условием, выполняется 10 асмовских команд. Итого получаем черепашью скорость, если так мягко выразиться Для примера запустил тоже самое на стм32f407 на 160МГц результат был в 6 раз больше... Может у кого есть светлые мысли, или там еще каких-нить делителей понапичкали... Вот код инициализации Код void SystemInit(void) { CCM->CLPCR &= ~CCM_CLPCR_FXOSC_PWRDWN_MASK;
while(!(CCM_CSR_FXOSC_RDY_MASK & CCM->CSR));
CCM->CCSR |= CCM_CCSR_FAST_CLK_SEL_MASK;
// using PLL1 PFD3 //Enable CCM, SRC, and more CCM->CCGR4 |= CCM_CCGR4_CG10(1); // WKPU ungate CCM->CCGR4 |= CCM_CCGR4_CG11(1); // CCM ungate CCM->CCGR4 |= CCM_CCGR4_CG12(1); // GPC ungate CCM->CCGR4 |= CCM_CCGR4_CG14(1); // SRC ungate CCM->CCGR3 |= CCM_CCGR3_CG0(1); // ANADIG ungate
//Enable IOMUX CCM->CCGR2 |= CCM_CCGR2_CG8(1); // IOMUX Controller ungate CCM->CCGR2 |= CCM_CCGR2_CG9(1); // Port A Controller ungate CCM->CCGR2 |= CCM_CCGR2_CG10(1); // Port B Controller ungate CCM->CCGR2 |= CCM_CCGR2_CG11(1); // Port C Controller ungate CCM->CCGR2 |= CCM_CCGR2_CG12(1); // Port D Controller ungate CCM->CCGR2 |= CCM_CCGR2_CG13(1); // Port E Controller ungate
/* enable PLLs in Anadig */ ANADIG->PLL1_CTRL=0x00002001; while(!(ANADIG_PLL1_CTRL_LOCK_MASK & ANADIG->PLL1_CTRL));//wait until lock
ANADIG->PLL2_CTRL=0x00002001; while(!(ANADIG_PLL2_CTRL_LOCK_MASK & ANADIG->PLL2_CTRL));//wait until lock ANADIG->PLL4_CTRL=0x00002031; //PLL4 while(!(ANADIG_PLL4_CTRL_LOCK_MASK & ANADIG->PLL4_CTRL));//wait until lock ANADIG->PLL5_CTRL=0x00002001; //PLL5 while(!(ANADIG_PLL5_CTRL_LOCK_MASK & ANADIG->PLL5_CTRL));//wait until lock ANADIG->PLL6_CTRL=0x00002028; //PLL6 while(!(ANADIG_PLL6_CTRL_LOCK_MASK & ANADIG->PLL6_CTRL));//wait until lock
//Use 500MHz CA5, 400 MHz DDR(async), 166MHz CM4, and 83MHz bus (PFD1=500MHz) //CCM->CCSR=0x0001FF24; //PLL1 uses PLL1_PFD3, enable all PLL1 and PLL2, select Fast Clock, and sys_clock_sel use PLL1 CCM->CCSR=0x0001FF24; //PLL1 uses PLL1_PFD3, enable all PLL1 and PLL2, select Fast Clock, and sys_clock_sel use PLL1 CCM->CACRR=0x00000810; //ARM_DIV=0 (div by 1), BUS_DIV=2 (div by 3), ipg_div value is 1 (div by 2)
}
|
|
|
|
|
 |
Ответов
|
Oct 7 2014, 04:19
|

Местный
  
Группа: Свой
Сообщений: 310
Регистрация: 15-10-04
Пользователь №: 884

|
Цитата(mantech @ Sep 29 2014, 21:06)  Пока только у М4 стала равна стм, с А5 пока все так же уныло... И все же очень интересно, как с производительностью A5?
--------------------
"Я люблю путешествовать, посещать новые города, страны, знакомиться с новыми людьми." Чингисхан.
|
|
|
|
|
Oct 7 2014, 06:46
|
Гуру
     
Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143

|
Цитата(Porychik Kize @ Oct 7 2014, 07:19)  И все же очень интересно, как с производительностью A5? Она меньше М4. Запускал линукс, пишет 256bogomips, сколько это в реальных мипсах - х.з, но явно больше, чем в моей проге. С чем это связано - незнаю, единственное, есть подозрение, что как-то неправильно подключаю кеш, т.к. при его подключении рост составляет 10%, а в случае М4 - увеличение в 4 раза! Второе - проц упорно не хочет работать на 168МГц, М4 в смысле, т.е прога пишет, что частота именно такая и есть, но работает как на 132. Линукс, кстати тоже только на 400\132 работает, может брачный камень у меня попался... Или мешает то, что прогу гружу через JTAG, т.к. видимо здесь нет никого, кто бы поделился, каким образом ее в нанд-флеш загрузить, или нехотят рассказывать. Через "задний проход"(убут, фтп-сетка и т.п.) я не пробовал, т.к. в убутах и его командах не особо разбираюсь...
|
|
|
|
|
Oct 7 2014, 08:42
|

Местный
  
Группа: Свой
Сообщений: 204
Регистрация: 14-10-05
Из: г. Москва
Пользователь №: 9 641

|
Цитата(mantech @ Oct 7 2014, 10:46)  Линукс, кстати тоже только на 400\132 работает, может брачный камень у меня попался... Если у Вас на проце написано 0N02G, 1N02G или 2N02G, то у такого проца есть проблемы с генерацией 500 МГц в PLL. См. errata e6235 в атаче и здесь http://cache.freescale.com/files/32bit/doc...mp;fileExt=.pdf.
|
|
|
|
|
Oct 8 2014, 14:21
|
Гуру
     
Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143

|
Вообщем решил я сегодня еще раз проверить, достал меня этот хренов камешек, если честно, но думаю, загружу-ка я свою прогу не в "особо быструю" статическую память, а в ДДР...
По логике вещей, быстродействие в ДДР должно упасть в полтора-2 раза по сравнению свнутренней статикой, запускаю тест, в котором после 100 000 000 итераций производится вывод в уарт.
Запускаю в статике, результат 1 сообщение за 11 секунд. Быстродействие на уровне СТМ32Ф4 на частоте 70 мегагерц!!! Причем частота А5 - 400 мегагерц - жуткий тормоз!!
Ту же самую прогу гружу в ДДР, запускаю...... и чуть не падаю со стула!!! она БЫСТРЕЕ в 11 РАЗ!!! Вопрос - что за хренотень с этим камнем??? Такое впечатление, что весь он сплошная еррата...
У кого есть какие мысли по этому поводу??
|
|
|
|
|
Oct 9 2014, 05:42
|
Знающий
   
Группа: Участник
Сообщений: 745
Регистрация: 28-12-06
Пользователь №: 23 960

|
Цитата(mantech @ Oct 8 2014, 18:21)  Ту же самую прогу гружу в ДДР, запускаю...... и чуть не падаю со стула!!! она БЫСТРЕЕ в 11 РАЗ!!! Вопрос - что за хренотень с этим камнем??? Такое впечатление, что весь он сплошная еррата... У кого есть какие мысли по этому поводу?? Мысль что у вас область SRAM объявлена некэшируемой. Так часто делают потому что в SRAM кладут критические данные которым кэширование мешает. Перетряхните настройки кэширования. в u-boot какие результаты ?
|
|
|
|
|
Oct 9 2014, 05:48
|
Гуру
     
Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143

|
Цитата(_3m @ Oct 9 2014, 08:42)  Мысль что у вас область SRAM объявлена некэшируемой. Так часто делают потому что в SRAM кладут критические данные которым кэширование мешает. Перетряхните настройки кэширования. в u-boot какие результаты ? Тогда стесняюсь спросить, а какая частота внутренней памяти?? Ну хорошо, пусть она некэшируемая, хотя настройки mmu в mqx говорят об обратном, неужели ее частота меньше частоты флеша в стм407?? И второе, что меня убивает, как такая медленная память может быть кэшем 2го уровня?? Мысли есть? По поводу убутов и прочего гнушного софта уже где-то писал - нет никакого желания и времени разгребать по 500 файлов, ставить виртуалки с линуксом и изучать все это чудо-юдо. Поэтому не зннаю как и что в нем проверять...
Сообщение отредактировал mantech - Oct 9 2014, 05:52
|
|
|
|
Сообщений в этой теме
mantech Инициализация клоков vybird Sep 19 2014, 18:54 Integro Откуда программа выполняется, DDR?
Кэш включен?
к... Sep 21 2014, 09:05 mantech Цитата(Integro @ Sep 21 2014, 12:05) Отку... Sep 21 2014, 15:03 Zwerg_nase Цитата(mantech @ Sep 19 2014, 22:54) День... Sep 23 2014, 14:09 mantech Цитата(Zwerg_nase @ Sep 23 2014, 17:09) р... Sep 23 2014, 18:14  Zwerg_nase Цитата(mantech @ Sep 23 2014, 22:14) Я в ... Sep 24 2014, 11:34   mantech Цитата(Zwerg_nase @ Sep 24 2014, 14:34) А... Sep 24 2014, 14:04    Zwerg_nase Цитата(mantech @ Sep 24 2014, 18:04) Знач... Sep 24 2014, 14:24     mantech Цитата(Zwerg_nase @ Sep 24 2014, 17:24) З... Sep 24 2014, 15:01      Zwerg_nase Цитата(mantech @ Sep 24 2014, 19:01) проч... Sep 25 2014, 11:38       mantech Цитата(Zwerg_nase @ Sep 25 2014, 14:38) М... Sep 25 2014, 17:36        Zwerg_nase Цитата(mantech @ Sep 25 2014, 21:36) В см... Sep 26 2014, 07:41         mantech Цитата(Zwerg_nase @ Sep 26 2014, 10:41) Е... Sep 26 2014, 12:05         _3m Цитата(mantech @ Oct 9 2014, 09:48) Тогда... Oct 9 2014, 12:09          mantech Цитата(_3m @ Oct 9 2014, 15:09) Документы... Oct 9 2014, 17:38           _3m Цитата(mantech @ Oct 9 2014, 21:38) Дак в... Oct 10 2014, 05:44            mantech Цитата(_3m @ Oct 10 2014, 08:44) Чтобы не... Oct 11 2014, 11:35             _3m Цитата(mantech @ Oct 11 2014, 15:35) Вы б... Oct 12 2014, 05:44              mantech Цитата(_3m @ Oct 12 2014, 08:44) Кэш L2 в... Oct 12 2014, 05:56 psL u-boot это же bare-metal код, кто мешает посмотрет... Oct 9 2014, 18:13 mantech Цитата(psL @ Oct 9 2014, 21:13) u-boot эт... Oct 9 2014, 19:24  psL Цитата(mantech @ Oct 9 2014, 23:24) убут ... Oct 9 2014, 22:13
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|