Миландр

Ключевым подразделением нашей компании является Центр Проектирования интегральных микросхем
Текущее время: 2017-окт-17 18:13

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ 1 сообщение ] 
Автор Сообщение
 Заголовок сообщения: DSP Memory
СообщениеДобавлено: 2015-май-07 16:04 
Не в сети

Зарегистрирован: 2014-июл-28 10:25
Сообщения: 23
Всем добрый день!
Есть вопрос по поводу использования памяти DSP RISC ядром. Правильно ли я понимаю, что даже при одинаковых синхроимпульсах обеих систем, есть вероятность считать неверные данные из DSP памяти, если не пользоваться при каждой записи ожиданием бита BRTRD?

Возникла проблема: один и тот же алгоритм работает при расположении переменных во внешней памяти, и зависает проц в рандомный момент выполнения программы при расположении переменных в DSP памяти. При этом отваливается jtag, предполагаю, что вываливаюсь в HardFault или какое другое исключение, т.к. может происходит деление на 0 - значение переменной считалось нулем до того как записалось в память DSP.

Может где ошибка у меня в конфигурации. Вот код конфигурации клоков при использовании DSP памяти RISC ядром
Код:
void ClockConfig()
{
   
   RST_CLK->HS_CONTROL = RST_CLK_HS_CONTROL_HSE_ON;
   while((RST_CLK->CLOCK_STATUS & RST_CLK_CLOCK_STATUS_HSE_RDY) != RST_CLK_CLOCK_STATUS_HSE_RDY);

   RST_CLK->CPU_CLOCK = (2 << RST_CLK_CPU_CLOCK_CPU_C1_SEL_Pos); //CPU_C1 = HSE = 12.000 MHz
   RST_CLK->DSP_CLOCK = 2 << RST_CLK_DSP_CLOCK_DSP_C1_SEL_Pos;   //DSP_C1_SEL = HSE = 12 MHz

   RST_CLK->PLL_CONTROL =  (5 << RST_CLK_PLL_CONTROL_PLL_CPU_MUL_Pos) | RST_CLK_PLL_CONTROL_PLL_CPU_ON| RST_CLK_PLL_CONTROL_PLL_DSP_ON
                               |(5 << RST_CLK_PLL_CONTROL_PLL_DSP_MUL_Pos);
                                                // 7: CPU 8*12MHz = 96MHz
                                                // 6: CPU 7*12MHz = 84MHz
                                                // 5: CPU 6*12MHz = 72MHz
                                                // 4: CPU 5*12MHz = 60MHz
                                                // 3: CPU 4*12MHz = 48MHz
                                                // 2: CPU 3*12MHz = 36MHz
                                                // 1: CPU 2*12MHz = 24MHz
                                                // 0: CPU 1*12MHz = 12MHz

   while((RST_CLK->CLOCK_STATUS & RST_CLK_CLOCK_STATUS_PLL_CPU_RDY) != RST_CLK_CLOCK_STATUS_PLL_CPU_RDY);   
   
   RST_CLK->CPU_CLOCK |= (RST_CLK_CPU_CLOCK_CPU_C2_SEL)|(1 << RST_CLK_CPU_CLOCK_HCLK_SEL_Pos);     //CPU Clock = 72MHz
 
   RST_CLK->PER_CLOCK|=(0x3F<<21)|(1<<29)|(1<<7)|(1<<1)|(7<<14);    //Enable clock of uart2 PORTA, PORTB, PORTC, PORTD, PORTE, UART3, PORTF, ssp4, Timer1-3
   RST_CLK->UART_CLOCK = (1 << 26)|(1 << 25);                   //UART2_CLOCK = 72MHz, UART3_CLOCK = 72MHz
   RST_CLK->SSP_CLOCK2 = 1<<24;                           // SSP4 clock enable
   RST_CLK->TIM_CLOCK = (7<<24)|0x07|(6<<8)|(6<<16);            // TIM1 clock enable, TIM1 clock = HSE/64 = 1125kHz; TIM2 clock enable, TIM2 clock = HSE/128 = 375kHz; //TIM3 clock enable, TIM3 clock = HSE/128 = 375kHz
   
   RST_CLK->PER_CLOCK |= 1 << 3;    //RST_CLK_PCLKcmd(RST_CLK_PCLK_EEPROM,ENABLE);
   EEPROM->CMD = 3 << 3;
   
   while((RST_CLK->CLOCK_STATUS & RST_CLK_CLOCK_STATUS_PLL_DSP_RDY) != RST_CLK_CLOCK_STATUS_PLL_DSP_RDY);
    RST_CLK->DSP_CLOCK |= RST_CLK_DSP_CLOCK_DSP_C2_SEL | RST_CLK_DSP_CLOCK_DSP_CLK_EN;   
   
   RST_CLK->DSP_CONTROL_STATUS&=0xFFFB;    // DSP mem clock

   while((RST_CLK->DSP_CONTROL_STATUS&0x4000)==0);
   DSP_CLK->CLKMD=0x6000;  //Enable DSP Clock
}


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ 1 сообщение ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB